blink 0.1.23 → 0.1.24
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/dist/cli/index.js +13 -19
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire}from"node:module";import EventEmitter,{EventEmitter as EventEmitter$1,addAbortListener,on,once,setMaxListeners}from"node:events";import childProcess,{ChildProcess,exec,execFile,execSync,spawn,spawnSync}from"node:child_process";import*as path$6 from"node:path";import path,{basename,dirname,join,posix,win32}from"node:path";import*as fs$5 from"node:fs";import fs,{appendFileSync,createReadStream,createWriteStream,existsSync,promises,readFileSync,statSync,writeFileSync}from"node:fs";import*as process$2 from"node:process";import process$1,{cwd,env,execArgv,execPath,hrtime,platform,stdin,stdout}from"node:process";import crypto$1,{randomUUID}from"crypto";import*as fs$38 from"fs/promises";import{mkdir,readFile,readdir,stat,writeFile}from"fs/promises";import path$1,{basename as basename$1,dirname as dirname$1,join as join$1,normalize,relative,resolve,sep}from"path";import{Buffer as Buffer$1}from"node:buffer";import url,{URL as URL$1,fileURLToPath,pathToFileURL}from"node:url";import{TextDecoder as TextDecoder$1,aborted,callbackify,debuglog,inspect,promisify,stripVTControlCharacters}from"node:util";import*as fs$4 from"node:fs/promises";import fs$1,{constants,lstat,readFile as readFile$1,readdir as readdir$1,readlink,realpath,stat as stat$1}from"node:fs/promises";import*as os$4 from"node:os";import os,{EOL,constants as constants$1,platform as platform$1}from"node:os";import{errorMonitor}from"events";import*as https$5 from"https";import*as http$7 from"http";import{createServer}from"http";import{Readable}from"stream";import*as zlib$4 from"zlib";import Stream,{Duplex,PassThrough,Readable as Readable$1,Stream as Stream$1,Transform,Writable,getDefaultHighWaterMark}from"node:stream";import{createRequire as createRequire$1}from"module";import{types}from"util";import os$1 from"os";import{z}from"zod";import*as nativeFs from"fs";import fs$2,{createWriteStream as createWriteStream$1,existsSync as existsSync$1,lstatSync,mkdirSync,readFileSync as readFileSync$1,readdir as readdir$2,readdirSync,readlinkSync,realpathSync,writeFile as writeFile$1,writeFileSync as writeFileSync$1}from"fs";import{spawn as spawn$1}from"child_process";import*as z4 from"zod/v4";import z6,{z as z$1}from"zod/v4";import{ZodFirstPartyTypeKind}from"zod/v3";import tty from"node:tty";import*as http$5 from"node:http";import http,{ServerResponse}from"node:http";import*as crypto$8 from"node:crypto";import crypto$2,{createHash,randomUUID as randomUUID$1}from"node:crypto";import*as net$5 from"node:net";import net from"node:net";import*as readline from"node:readline";import O from"node:readline";import{StringDecoder}from"node:string_decoder";import{scheduler,setImmediate as setImmediate$1,setTimeout as setTimeout$1}from"node:timers/promises";import{serialize}from"node:v8";import{finished,pipeline}from"node:stream/promises";import{checkServerIdentity}from"node:tls";import https from"node:https";import{ADDRCONFIG,ALL,V4MAPPED,lookup,promises as promises$1}from"node:dns";import{AsyncLocalStorage}from"node:async_hooks";var __create=Object.create,__defProp$5=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__getOwnPropNames$1=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp$1=Object.prototype.hasOwnProperty,__esmMin=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res),__commonJSMin=(cb,mod$1)=>()=>(mod$1||cb((mod$1={exports:{}}).exports,mod$1),mod$1.exports),__export$6=(target,all$2)=>{for(var name$7 in all$2)__defProp$5(target,name$7,{get:all$2[name$7],enumerable:!0})},__copyProps$1=(to,from$1,except,desc)=>{if(from$1&&typeof from$1==`object`||typeof from$1==`function`)for(var keys=__getOwnPropNames$1(from$1),i$5=0,n$2=keys.length,key;i$5<n$2;i$5++)key=keys[i$5],!__hasOwnProp$1.call(to,key)&&key!==except&&__defProp$5(to,key,{get:(k$2=>from$1[k$2]).bind(null,key),enumerable:!(desc=__getOwnPropDesc$1(from$1,key))||desc.enumerable});return to},__reExport=(target,mod$1,secondTarget)=>(__copyProps$1(target,mod$1,`default`),secondTarget&&__copyProps$1(secondTarget,mod$1,`default`)),__toESM=(mod$1,isNodeMode,target)=>(target=mod$1==null?{}:__create(__getProtoOf(mod$1)),__copyProps$1(isNodeMode||!mod$1||!mod$1.__esModule?__defProp$5(target,`default`,{value:mod$1,enumerable:!0}):target,mod$1)),__toCommonJS$1=mod$1=>__copyProps$1(__defProp$5({},`__esModule`,{value:!0}),mod$1),__require$1=createRequire(import.meta.url),require_error$2=__commonJSMin((exports=>{var CommanderError$3=class extends Error{constructor(exitCode,code$1,message){super(message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=code$1,this.exitCode=exitCode,this.nestedError=void 0}},InvalidArgumentError$40=class extends CommanderError$3{constructor(message){super(1,`commander.invalidArgument`,message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};exports.CommanderError=CommanderError$3,exports.InvalidArgumentError=InvalidArgumentError$40})),require_argument=__commonJSMin((exports=>{let{InvalidArgumentError:InvalidArgumentError$39}=require_error$2();var Argument$3=class{constructor(name$7,description){switch(this.description=description||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,name$7[0]){case`<`:this.required=!0,this._name=name$7.slice(1,-1);break;case`[`:this.required=!1,this._name=name$7.slice(1,-1);break;default:this.required=!0,this._name=name$7;break}this._name.length>3&&this._name.slice(-3)===`...`&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(value,previous){return previous===this.defaultValue||!Array.isArray(previous)?[value]:previous.concat(value)}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}argParser(fn){return this.parseArg=fn,this}choices(values){return this.argChoices=values.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError$39(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._concatValue(arg,previous):arg},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function humanReadableArgName$2(arg){let nameOutput=arg.name()+(arg.variadic===!0?`...`:``);return arg.required?`<`+nameOutput+`>`:`[`+nameOutput+`]`}exports.Argument=Argument$3,exports.humanReadableArgName=humanReadableArgName$2})),require_help=__commonJSMin((exports=>{let{humanReadableArgName:humanReadableArgName$1}=require_argument();var Help$3=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(contextOptions){this.helpWidth=this.helpWidth??contextOptions.helpWidth??80}visibleCommands(cmd){let visibleCommands=cmd.commands.filter(cmd$1=>!cmd$1._hidden),helpCommand=cmd._getHelpCommand();return helpCommand&&!helpCommand._hidden&&visibleCommands.push(helpCommand),this.sortSubcommands&&visibleCommands.sort((a$3,b$4)=>a$3.name().localeCompare(b$4.name())),visibleCommands}compareOptions(a$3,b$4){let getSortKey=option$1=>option$1.short?option$1.short.replace(/^-/,``):option$1.long.replace(/^--/,``);return getSortKey(a$3).localeCompare(getSortKey(b$4))}visibleOptions(cmd){let visibleOptions=cmd.options.filter(option$1=>!option$1.hidden),helpOption=cmd._getHelpOption();if(helpOption&&!helpOption.hidden){let removeShort=helpOption.short&&cmd._findOption(helpOption.short),removeLong=helpOption.long&&cmd._findOption(helpOption.long);!removeShort&&!removeLong?visibleOptions.push(helpOption):helpOption.long&&!removeLong?visibleOptions.push(cmd.createOption(helpOption.long,helpOption.description)):helpOption.short&&!removeShort&&visibleOptions.push(cmd.createOption(helpOption.short,helpOption.description))}return this.sortOptions&&visibleOptions.sort(this.compareOptions),visibleOptions}visibleGlobalOptions(cmd){if(!this.showGlobalOptions)return[];let globalOptions=[];for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent){let visibleOptions=ancestorCmd.options.filter(option$1=>!option$1.hidden);globalOptions.push(...visibleOptions)}return this.sortOptions&&globalOptions.sort(this.compareOptions),globalOptions}visibleArguments(cmd){return cmd._argsDescription&&cmd.registeredArguments.forEach(argument=>{argument.description=argument.description||cmd._argsDescription[argument.name()]||``}),cmd.registeredArguments.find(argument=>argument.description)?cmd.registeredArguments:[]}subcommandTerm(cmd){let args=cmd.registeredArguments.map(arg=>humanReadableArgName$1(arg)).join(` `);return cmd._name+(cmd._aliases[0]?`|`+cmd._aliases[0]:``)+(cmd.options.length?` [options]`:``)+(args?` `+args:``)}optionTerm(option$1){return option$1.flags}argumentTerm(argument){return argument.name()}longestSubcommandTermLength(cmd,helper){return helper.visibleCommands(cmd).reduce((max$2,command)=>Math.max(max$2,this.displayWidth(helper.styleSubcommandTerm(helper.subcommandTerm(command)))),0)}longestOptionTermLength(cmd,helper){return helper.visibleOptions(cmd).reduce((max$2,option$1)=>Math.max(max$2,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option$1)))),0)}longestGlobalOptionTermLength(cmd,helper){return helper.visibleGlobalOptions(cmd).reduce((max$2,option$1)=>Math.max(max$2,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option$1)))),0)}longestArgumentTermLength(cmd,helper){return helper.visibleArguments(cmd).reduce((max$2,argument)=>Math.max(max$2,this.displayWidth(helper.styleArgumentTerm(helper.argumentTerm(argument)))),0)}commandUsage(cmd){let cmdName=cmd._name;cmd._aliases[0]&&(cmdName=cmdName+`|`+cmd._aliases[0]);let ancestorCmdNames=``;for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent)ancestorCmdNames=ancestorCmd.name()+` `+ancestorCmdNames;return ancestorCmdNames+cmdName+` `+cmd.usage()}commandDescription(cmd){return cmd.description()}subcommandDescription(cmd){return cmd.summary()||cmd.description()}optionDescription(option$1){let extraInfo=[];if(option$1.argChoices&&extraInfo.push(`choices: ${option$1.argChoices.map(choice$1=>JSON.stringify(choice$1)).join(`, `)}`),option$1.defaultValue!==void 0){let showDefault=option$1.required||option$1.optional||option$1.isBoolean()&&typeof option$1.defaultValue==`boolean`;showDefault&&extraInfo.push(`default: ${option$1.defaultValueDescription||JSON.stringify(option$1.defaultValue)}`)}if(option$1.presetArg!==void 0&&option$1.optional&&extraInfo.push(`preset: ${JSON.stringify(option$1.presetArg)}`),option$1.envVar!==void 0&&extraInfo.push(`env: ${option$1.envVar}`),extraInfo.length>0){let extraDescription=`(${extraInfo.join(`, `)})`;return option$1.description?`${option$1.description} ${extraDescription}`:extraDescription}return option$1.description}argumentDescription(argument){let extraInfo=[];if(argument.argChoices&&extraInfo.push(`choices: ${argument.argChoices.map(choice$1=>JSON.stringify(choice$1)).join(`, `)}`),argument.defaultValue!==void 0&&extraInfo.push(`default: ${argument.defaultValueDescription||JSON.stringify(argument.defaultValue)}`),extraInfo.length>0){let extraDescription=`(${extraInfo.join(`, `)})`;return argument.description?`${argument.description} ${extraDescription}`:extraDescription}return argument.description}formatItemList(heading$1,items,helper){return items.length===0?[]:[helper.styleTitle(heading$1),...items,``]}groupItems(unsortedItems,visibleItems,getGroup){let result=new Map;return unsortedItems.forEach(item=>{let group=getGroup(item);result.has(group)||result.set(group,[])}),visibleItems.forEach(item=>{let group=getGroup(item);result.has(group)||result.set(group,[]),result.get(group).push(item)}),result}formatHelp(cmd,helper){let termWidth=helper.padWidth(cmd,helper),helpWidth=helper.helpWidth??80;function callFormatItem(term,description){return helper.formatItem(term,termWidth,description,helper)}let output=[`${helper.styleTitle(`Usage:`)} ${helper.styleUsage(helper.commandUsage(cmd))}`,``],commandDescription=helper.commandDescription(cmd);commandDescription.length>0&&(output=output.concat([helper.boxWrap(helper.styleCommandDescription(commandDescription),helpWidth),``]));let argumentList=helper.visibleArguments(cmd).map(argument=>callFormatItem(helper.styleArgumentTerm(helper.argumentTerm(argument)),helper.styleArgumentDescription(helper.argumentDescription(argument))));output=output.concat(this.formatItemList(`Arguments:`,argumentList,helper));let optionGroups=this.groupItems(cmd.options,helper.visibleOptions(cmd),option$1=>option$1.helpGroupHeading??`Options:`);if(optionGroups.forEach((options$1,group)=>{let optionList=options$1.map(option$1=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option$1)),helper.styleOptionDescription(helper.optionDescription(option$1))));output=output.concat(this.formatItemList(group,optionList,helper))}),helper.showGlobalOptions){let globalOptionList=helper.visibleGlobalOptions(cmd).map(option$1=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option$1)),helper.styleOptionDescription(helper.optionDescription(option$1))));output=output.concat(this.formatItemList(`Global Options:`,globalOptionList,helper))}let commandGroups=this.groupItems(cmd.commands,helper.visibleCommands(cmd),sub=>sub.helpGroup()||`Commands:`);return commandGroups.forEach((commands,group)=>{let commandList=commands.map(sub=>callFormatItem(helper.styleSubcommandTerm(helper.subcommandTerm(sub)),helper.styleSubcommandDescription(helper.subcommandDescription(sub))));output=output.concat(this.formatItemList(group,commandList,helper))}),output.join(`
|
|
2
|
+
import{createRequire}from"node:module";import{errorMonitor}from"events";import*as https$5 from"https";import*as http$7 from"http";import{createServer}from"http";import crypto$1,{randomUUID}from"crypto";import{Readable}from"stream";import*as zlib$4 from"zlib";import EventEmitter,{EventEmitter as EventEmitter$1,addAbortListener,on,once,setMaxListeners}from"node:events";import childProcess,{ChildProcess,exec,execFile,execSync,spawn,spawnSync}from"node:child_process";import*as path$6 from"node:path";import path,{basename,dirname,join,posix,win32}from"node:path";import*as fs$5 from"node:fs";import fs,{appendFileSync,createReadStream,createWriteStream,existsSync,promises,readFileSync,statSync,writeFileSync}from"node:fs";import*as process$2 from"node:process";import process$1,{cwd,env,execArgv,execPath,hrtime,platform,stdin,stdout}from"node:process";import*as fs$38 from"fs/promises";import{mkdir,readFile,readdir,stat,writeFile}from"fs/promises";import path$1,{basename as basename$1,dirname as dirname$1,join as join$1,normalize,relative,resolve,sep}from"path";import{Buffer as Buffer$1}from"node:buffer";import url,{URL as URL$1,fileURLToPath,pathToFileURL}from"node:url";import{TextDecoder as TextDecoder$1,aborted,callbackify,debuglog,inspect,promisify,stripVTControlCharacters}from"node:util";import*as fs$4 from"node:fs/promises";import fs$1,{constants,lstat,readFile as readFile$1,readdir as readdir$1,readlink,realpath,stat as stat$1}from"node:fs/promises";import*as os$4 from"node:os";import os,{EOL,constants as constants$1,platform as platform$1}from"node:os";import Stream,{Duplex,PassThrough,Readable as Readable$1,Stream as Stream$1,Transform,Writable,getDefaultHighWaterMark}from"node:stream";import{createRequire as createRequire$1}from"module";import{types}from"util";import os$1 from"os";import{z}from"zod";import*as nativeFs from"fs";import fs$2,{createWriteStream as createWriteStream$1,existsSync as existsSync$1,lstatSync,mkdirSync,readFileSync as readFileSync$1,readdir as readdir$2,readdirSync,readlinkSync,realpathSync,writeFile as writeFile$1,writeFileSync as writeFileSync$1}from"fs";import{spawn as spawn$1}from"child_process";import*as z4 from"zod/v4";import z6,{z as z$1}from"zod/v4";import{ZodFirstPartyTypeKind}from"zod/v3";import tty from"node:tty";import*as http$5 from"node:http";import http,{ServerResponse}from"node:http";import*as crypto$8 from"node:crypto";import crypto$2,{createHash,randomUUID as randomUUID$1}from"node:crypto";import*as net$5 from"node:net";import net from"node:net";import*as readline from"node:readline";import O from"node:readline";import{StringDecoder}from"node:string_decoder";import{scheduler,setImmediate as setImmediate$1,setTimeout as setTimeout$1}from"node:timers/promises";import{serialize}from"node:v8";import{finished,pipeline}from"node:stream/promises";import{checkServerIdentity}from"node:tls";import https from"node:https";import{ADDRCONFIG,ALL,V4MAPPED,lookup,promises as promises$1}from"node:dns";import{AsyncLocalStorage}from"node:async_hooks";var __create=Object.create,__defProp$5=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__getOwnPropNames$1=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp$1=Object.prototype.hasOwnProperty,__esmMin=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res),__commonJSMin=(cb,mod$1)=>()=>(mod$1||cb((mod$1={exports:{}}).exports,mod$1),mod$1.exports),__export$6=(target,all$2)=>{for(var name$7 in all$2)__defProp$5(target,name$7,{get:all$2[name$7],enumerable:!0})},__copyProps$1=(to,from$1,except,desc)=>{if(from$1&&typeof from$1==`object`||typeof from$1==`function`)for(var keys=__getOwnPropNames$1(from$1),i$5=0,n$2=keys.length,key;i$5<n$2;i$5++)key=keys[i$5],!__hasOwnProp$1.call(to,key)&&key!==except&&__defProp$5(to,key,{get:(k$2=>from$1[k$2]).bind(null,key),enumerable:!(desc=__getOwnPropDesc$1(from$1,key))||desc.enumerable});return to},__reExport=(target,mod$1,secondTarget)=>(__copyProps$1(target,mod$1,`default`),secondTarget&&__copyProps$1(secondTarget,mod$1,`default`)),__toESM=(mod$1,isNodeMode,target)=>(target=mod$1==null?{}:__create(__getProtoOf(mod$1)),__copyProps$1(isNodeMode||!mod$1||!mod$1.__esModule?__defProp$5(target,`default`,{value:mod$1,enumerable:!0}):target,mod$1)),__toCommonJS$1=mod$1=>__copyProps$1(__defProp$5({},`__esModule`,{value:!0}),mod$1),__require$1=createRequire(import.meta.url),require_constants$11=__commonJSMin(((exports,module)=>{let BINARY_TYPES$2=[`nodebuffer`,`arraybuffer`,`fragments`],hasBlob$1=typeof Blob<`u`;hasBlob$1&&BINARY_TYPES$2.push(`blob`),module.exports={BINARY_TYPES:BINARY_TYPES$2,EMPTY_BUFFER:Buffer.alloc(0),GUID:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,hasBlob:hasBlob$1,kForOnEventAttribute:Symbol(`kIsForOnEventAttribute`),kListener:Symbol(`kListener`),kStatusCode:Symbol(`status-code`),kWebSocket:Symbol(`websocket`),NOOP:()=>{}}})),require_buffer_util=__commonJSMin(((exports,module)=>{let{EMPTY_BUFFER:EMPTY_BUFFER$3}=require_constants$11(),FastBuffer$3=Buffer[Symbol.species];function concat$40(list$2,totalLength){if(list$2.length===0)return EMPTY_BUFFER$3;if(list$2.length===1)return list$2[0];let target=Buffer.allocUnsafe(totalLength),offset=0;for(let i$5=0;i$5<list$2.length;i$5++){let buf=list$2[i$5];target.set(buf,offset),offset+=buf.length}return offset<totalLength?new FastBuffer$3(target.buffer,target.byteOffset,offset):target}function _mask(source$39,mask,output,offset,length){for(let i$5=0;i$5<length;i$5++)output[offset+i$5]=source$39[i$5]^mask[i$5&3]}function _unmask(buffer$2,mask){for(let i$5=0;i$5<buffer$2.length;i$5++)buffer$2[i$5]^=mask[i$5&3]}function toArrayBuffer$4(buf){return buf.length===buf.buffer.byteLength?buf.buffer:buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.length)}function toBuffer$6(data$2){if(toBuffer$6.readOnly=!0,Buffer.isBuffer(data$2))return data$2;let buf;return data$2 instanceof ArrayBuffer?buf=new FastBuffer$3(data$2):ArrayBuffer.isView(data$2)?buf=new FastBuffer$3(data$2.buffer,data$2.byteOffset,data$2.byteLength):(buf=Buffer.from(data$2),toBuffer$6.readOnly=!1),buf}if(module.exports={concat:concat$40,mask:_mask,toArrayBuffer:toArrayBuffer$4,toBuffer:toBuffer$6,unmask:_unmask},!process.env.WS_NO_BUFFER_UTIL)try{let bufferUtil$1=__require$1(`bufferutil`);module.exports.mask=function(source$39,mask,output,offset,length){length<48?_mask(source$39,mask,output,offset,length):bufferUtil$1.mask(source$39,mask,output,offset,length)},module.exports.unmask=function(buffer$2,mask){buffer$2.length<32?_unmask(buffer$2,mask):bufferUtil$1.unmask(buffer$2,mask)}}catch{}})),require_limiter=__commonJSMin(((exports,module)=>{let kDone=Symbol(`kDone`),kRun=Symbol(`kRun`);var Limiter$1=class{constructor(concurrency){this[kDone]=()=>{this.pending--,this[kRun]()},this.concurrency=concurrency||1/0,this.jobs=[],this.pending=0}add(job){this.jobs.push(job),this[kRun]()}[kRun](){if(this.pending!==this.concurrency&&this.jobs.length){let job=this.jobs.shift();this.pending++,job(this[kDone])}}};module.exports=Limiter$1})),require_permessage_deflate$1=__commonJSMin(((exports,module)=>{let zlib$8=__require$1(`zlib`),bufferUtil=require_buffer_util(),Limiter=require_limiter(),{kStatusCode:kStatusCode$2}=require_constants$11(),FastBuffer$2=Buffer[Symbol.species],TRAILER=Buffer.from([0,0,255,255]),kPerMessageDeflate=Symbol(`permessage-deflate`),kTotalLength=Symbol(`total-length`),kCallback=Symbol(`callback`),kBuffers=Symbol(`buffers`),kError$4=Symbol(`error`),zlibLimiter;var PerMessageDeflate$6=class{constructor(options$1,isServer,maxPayload){if(this._maxPayload=maxPayload|0,this._options=options$1||{},this._threshold=this._options.threshold===void 0?1024:this._options.threshold,this._isServer=!!isServer,this._deflate=null,this._inflate=null,this.params=null,!zlibLimiter){let concurrency=this._options.concurrencyLimit===void 0?10:this._options.concurrencyLimit;zlibLimiter=new Limiter(concurrency)}}static get extensionName(){return`permessage-deflate`}offer(){let params={};return this._options.serverNoContextTakeover&&(params.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(params.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(params.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?params.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits??(params.client_max_window_bits=!0),params}accept(configurations){return configurations=this.normalizeParams(configurations),this.params=this._isServer?this.acceptAsServer(configurations):this.acceptAsClient(configurations),this.params}cleanup(){if(this._inflate&&=(this._inflate.close(),null),this._deflate){let callback$1=this._deflate[kCallback];this._deflate.close(),this._deflate=null,callback$1&&callback$1(Error(`The deflate stream was closed while data was being processed`))}}acceptAsServer(offers){let opts=this._options,accepted=offers.find(params=>!(opts.serverNoContextTakeover===!1&¶ms.server_no_context_takeover||params.server_max_window_bits&&(opts.serverMaxWindowBits===!1||typeof opts.serverMaxWindowBits==`number`&&opts.serverMaxWindowBits>params.server_max_window_bits)||typeof opts.clientMaxWindowBits==`number`&&!params.client_max_window_bits));if(!accepted)throw Error(`None of the extension offers can be accepted`);return opts.serverNoContextTakeover&&(accepted.server_no_context_takeover=!0),opts.clientNoContextTakeover&&(accepted.client_no_context_takeover=!0),typeof opts.serverMaxWindowBits==`number`&&(accepted.server_max_window_bits=opts.serverMaxWindowBits),typeof opts.clientMaxWindowBits==`number`?accepted.client_max_window_bits=opts.clientMaxWindowBits:(accepted.client_max_window_bits===!0||opts.clientMaxWindowBits===!1)&&delete accepted.client_max_window_bits,accepted}acceptAsClient(response){let params=response[0];if(this._options.clientNoContextTakeover===!1&¶ms.client_no_context_takeover)throw Error(`Unexpected parameter "client_no_context_takeover"`);if(!params.client_max_window_bits)typeof this._options.clientMaxWindowBits==`number`&&(params.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==`number`&¶ms.client_max_window_bits>this._options.clientMaxWindowBits)throw Error(`Unexpected or invalid parameter "client_max_window_bits"`);return params}normalizeParams(configurations){return configurations.forEach(params=>{Object.keys(params).forEach(key=>{let value=params[key];if(value.length>1)throw Error(`Parameter "${key}" must have only a single value`);if(value=value[0],key===`client_max_window_bits`){if(value!==!0){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else if(key===`server_max_window_bits`){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(key===`client_no_context_takeover`||key===`server_no_context_takeover`){if(value!==!0)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else throw Error(`Unknown parameter "${key}"`);params[key]=value})}),configurations}decompress(data$2,fin,callback$1){zlibLimiter.add(done=>{this._decompress(data$2,fin,(err$1,result)=>{done(),callback$1(err$1,result)})})}compress(data$2,fin,callback$1){zlibLimiter.add(done=>{this._compress(data$2,fin,(err$1,result)=>{done(),callback$1(err$1,result)})})}_decompress(data$2,fin,callback$1){let endpoint=this._isServer?`client`:`server`;if(!this._inflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$8.Z_DEFAULT_WINDOWBITS;this._inflate=zlib$8.createInflateRaw({...this._options.zlibInflateOptions,windowBits}),this._inflate[kPerMessageDeflate]=this,this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],this._inflate.on(`error`,inflateOnError),this._inflate.on(`data`,inflateOnData)}this._inflate[kCallback]=callback$1,this._inflate.write(data$2),fin&&this._inflate.write(TRAILER),this._inflate.flush(()=>{let err$1=this._inflate[kError$4];if(err$1){this._inflate.close(),this._inflate=null,callback$1(err$1);return}let data$3=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._inflate.reset()),callback$1(null,data$3)})}_compress(data$2,fin,callback$1){let endpoint=this._isServer?`server`:`client`;if(!this._deflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$8.Z_DEFAULT_WINDOWBITS;this._deflate=zlib$8.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits}),this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],this._deflate.on(`data`,deflateOnData)}this._deflate[kCallback]=callback$1,this._deflate.write(data$2),this._deflate.flush(zlib$8.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let data$3=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);fin&&(data$3=new FastBuffer$2(data$3.buffer,data$3.byteOffset,data$3.length-4)),this._deflate[kCallback]=null,this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._deflate.reset(),callback$1(null,data$3)})}};module.exports=PerMessageDeflate$6;function deflateOnData(chunk$1){this[kBuffers].push(chunk$1),this[kTotalLength]+=chunk$1.length}function inflateOnData(chunk$1){if(this[kTotalLength]+=chunk$1.length,this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload){this[kBuffers].push(chunk$1);return}this[kError$4]=RangeError(`Max payload size exceeded`),this[kError$4].code=`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`,this[kError$4][kStatusCode$2]=1009,this.removeListener(`data`,inflateOnData),this.reset()}function inflateOnError(err$1){if(this[kPerMessageDeflate]._inflate=null,this[kError$4]){this[kCallback](this[kError$4]);return}err$1[kStatusCode$2]=1007,this[kCallback](err$1)}})),require_validation$1=__commonJSMin(((exports,module)=>{let{isUtf8:isUtf8$1}=__require$1(`buffer`),{hasBlob}=require_constants$11(),tokenChars$2=[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];function isValidStatusCode$4(code$1){return code$1>=1e3&&code$1<=1014&&code$1!==1004&&code$1!==1005&&code$1!==1006||code$1>=3e3&&code$1<=4999}function _isValidUTF8(buf){let len$1=buf.length,i$5=0;for(;i$5<len$1;)if(!(buf[i$5]&128))i$5++;else if((buf[i$5]&224)==192){if(i$5+1===len$1||(buf[i$5+1]&192)!=128||(buf[i$5]&254)==192)return!1;i$5+=2}else if((buf[i$5]&240)==224){if(i$5+2>=len$1||(buf[i$5+1]&192)!=128||(buf[i$5+2]&192)!=128||buf[i$5]===224&&(buf[i$5+1]&224)==128||buf[i$5]===237&&(buf[i$5+1]&224)==160)return!1;i$5+=3}else if((buf[i$5]&248)==240){if(i$5+3>=len$1||(buf[i$5+1]&192)!=128||(buf[i$5+2]&192)!=128||(buf[i$5+3]&192)!=128||buf[i$5]===240&&(buf[i$5+1]&240)==128||buf[i$5]===244&&buf[i$5+1]>143||buf[i$5]>244)return!1;i$5+=4}else return!1;return!0}function isBlob$6(value){return hasBlob&&typeof value==`object`&&typeof value.arrayBuffer==`function`&&typeof value.type==`string`&&typeof value.stream==`function`&&(value[Symbol.toStringTag]===`Blob`||value[Symbol.toStringTag]===`File`)}if(module.exports={isBlob:isBlob$6,isValidStatusCode:isValidStatusCode$4,isValidUTF8:_isValidUTF8,tokenChars:tokenChars$2},isUtf8$1)module.exports.isValidUTF8=function(buf){return buf.length<24?_isValidUTF8(buf):isUtf8$1(buf)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let isValidUTF8$1=__require$1(`utf-8-validate`);module.exports.isValidUTF8=function(buf){return buf.length<32?_isValidUTF8(buf):isValidUTF8$1(buf)}}catch{}})),require_receiver$1=__commonJSMin(((exports,module)=>{let{Writable:Writable$10}=__require$1(`stream`),PerMessageDeflate$5=require_permessage_deflate$1(),{BINARY_TYPES:BINARY_TYPES$1,EMPTY_BUFFER:EMPTY_BUFFER$2,kStatusCode:kStatusCode$1,kWebSocket:kWebSocket$3}=require_constants$11(),{concat:concat$39,toArrayBuffer:toArrayBuffer$3,unmask}=require_buffer_util(),{isValidStatusCode:isValidStatusCode$3,isValidUTF8}=require_validation$1(),FastBuffer$1=Buffer[Symbol.species],GET_INFO=0,GET_PAYLOAD_LENGTH_16=1,GET_PAYLOAD_LENGTH_64=2,GET_MASK=3,GET_DATA=4,INFLATING=5,DEFER_EVENT=6;var Receiver$2=class extends Writable$10{constructor(options$1={}){super(),this._allowSynchronousEvents=options$1.allowSynchronousEvents===void 0?!0:options$1.allowSynchronousEvents,this._binaryType=options$1.binaryType||BINARY_TYPES$1[0],this._extensions=options$1.extensions||{},this._isServer=!!options$1.isServer,this._maxPayload=options$1.maxPayload|0,this._skipUTF8Validation=!!options$1.skipUTF8Validation,this[kWebSocket$3]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(chunk$1,encoding,cb){if(this._opcode===8&&this._state==0)return cb();this._bufferedBytes+=chunk$1.length,this._buffers.push(chunk$1),this.startLoop(cb)}consume(n$2){if(this._bufferedBytes-=n$2,n$2===this._buffers[0].length)return this._buffers.shift();if(n$2<this._buffers[0].length){let buf=this._buffers[0];return this._buffers[0]=new FastBuffer$1(buf.buffer,buf.byteOffset+n$2,buf.length-n$2),new FastBuffer$1(buf.buffer,buf.byteOffset,n$2)}let dst=Buffer.allocUnsafe(n$2);do{let buf=this._buffers[0],offset=dst.length-n$2;n$2>=buf.length?dst.set(this._buffers.shift(),offset):(dst.set(new Uint8Array(buf.buffer,buf.byteOffset,n$2),offset),this._buffers[0]=new FastBuffer$1(buf.buffer,buf.byteOffset+n$2,buf.length-n$2)),n$2-=buf.length}while(n$2>0);return dst}startLoop(cb){this._loop=!0;do switch(this._state){case 0:this.getInfo(cb);break;case 1:this.getPayloadLength16(cb);break;case 2:this.getPayloadLength64(cb);break;case 3:this.getMask();break;case 4:this.getData(cb);break;case 5:case 6:this._loop=!1;return}while(this._loop);this._errored||cb()}getInfo(cb){if(this._bufferedBytes<2){this._loop=!1;return}let buf=this.consume(2);if(buf[0]&48){let error$65=this.createError(RangeError,`RSV2 and RSV3 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_2_3`);cb(error$65);return}let compressed=(buf[0]&64)==64;if(compressed&&!this._extensions[PerMessageDeflate$5.extensionName]){let error$65=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);cb(error$65);return}if(this._fin=(buf[0]&128)==128,this._opcode=buf[0]&15,this._payloadLength=buf[1]&127,this._opcode===0){if(compressed){let error$65=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);cb(error$65);return}if(!this._fragmented){let error$65=this.createError(RangeError,`invalid opcode 0`,!0,1002,`WS_ERR_INVALID_OPCODE`);cb(error$65);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let error$65=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`);cb(error$65);return}this._compressed=compressed}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let error$65=this.createError(RangeError,`FIN must be set`,!0,1002,`WS_ERR_EXPECTED_FIN`);cb(error$65);return}if(compressed){let error$65=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);cb(error$65);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let error$65=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,`WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH`);cb(error$65);return}}else{let error$65=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`);cb(error$65);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(buf[1]&128)==128,this._isServer){if(!this._masked){let error$65=this.createError(RangeError,`MASK must be set`,!0,1002,`WS_ERR_EXPECTED_MASK`);cb(error$65);return}}else if(this._masked){let error$65=this.createError(RangeError,`MASK must be clear`,!0,1002,`WS_ERR_UNEXPECTED_MASK`);cb(error$65);return}this._payloadLength===126?this._state=1:this._payloadLength===127?this._state=2:this.haveLength(cb)}getPayloadLength16(cb){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(cb)}getPayloadLength64(cb){if(this._bufferedBytes<8){this._loop=!1;return}let buf=this.consume(8),num=buf.readUInt32BE(0);if(num>2**21-1){let error$65=this.createError(RangeError,`Unsupported WebSocket frame: payload length > 2^53 - 1`,!1,1009,`WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH`);cb(error$65);return}this._payloadLength=num*2**32+buf.readUInt32BE(4),this.haveLength(cb)}haveLength(cb){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let error$65=this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`);cb(error$65);return}this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(cb){let data$2=EMPTY_BUFFER$2;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}data$2=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&unmask(data$2,this._mask)}if(this._opcode>7){this.controlMessage(data$2,cb);return}if(this._compressed){this._state=5,this.decompress(data$2,cb);return}data$2.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(data$2)),this.dataMessage(cb)}decompress(data$2,cb){let perMessageDeflate=this._extensions[PerMessageDeflate$5.extensionName];perMessageDeflate.decompress(data$2,this._fin,(err$1,buf)=>{if(err$1)return cb(err$1);if(buf.length){if(this._messageLength+=buf.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let error$65=this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`);cb(error$65);return}this._fragments.push(buf)}this.dataMessage(cb),this._state===0&&this.startLoop(cb)})}dataMessage(cb){if(!this._fin){this._state=0;return}let messageLength=this._messageLength,fragments=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let data$2;data$2=this._binaryType===`nodebuffer`?concat$39(fragments,messageLength):this._binaryType===`arraybuffer`?toArrayBuffer$3(concat$39(fragments,messageLength)):this._binaryType===`blob`?new Blob(fragments):fragments,this._allowSynchronousEvents?(this.emit(`message`,data$2,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,data$2,!0),this._state=0,this.startLoop(cb)}))}else{let buf=concat$39(fragments,messageLength);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){let error$65=this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`);cb(error$65);return}this._state===5||this._allowSynchronousEvents?(this.emit(`message`,buf,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,buf,!1),this._state=0,this.startLoop(cb)}))}}controlMessage(data$2,cb){if(this._opcode===8){if(data$2.length===0)this._loop=!1,this.emit(`conclude`,1005,EMPTY_BUFFER$2),this.end();else{let code$1=data$2.readUInt16BE(0);if(!isValidStatusCode$3(code$1)){let error$65=this.createError(RangeError,`invalid status code ${code$1}`,!0,1002,`WS_ERR_INVALID_CLOSE_CODE`);cb(error$65);return}let buf=new FastBuffer$1(data$2.buffer,data$2.byteOffset+2,data$2.length-2);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){let error$65=this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`);cb(error$65);return}this._loop=!1,this.emit(`conclude`,code$1,buf),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?`ping`:`pong`,data$2),this._state=0):(this._state=6,setImmediate(()=>{this.emit(this._opcode===9?`ping`:`pong`,data$2),this._state=0,this.startLoop(cb)}))}createError(ErrorCtor,message,prefix,statusCode,errorCode){this._loop=!1,this._errored=!0;let err$1=new ErrorCtor(prefix?`Invalid WebSocket frame: ${message}`:message);return Error.captureStackTrace(err$1,this.createError),err$1.code=errorCode,err$1[kStatusCode$1]=statusCode,err$1}};module.exports=Receiver$2})),require_sender$1=__commonJSMin(((exports,module)=>{let{Duplex:Duplex$6}=__require$1(`stream`),{randomFillSync}=__require$1(`crypto`),PerMessageDeflate$4=require_permessage_deflate$1(),{EMPTY_BUFFER:EMPTY_BUFFER$1,kWebSocket:kWebSocket$2,NOOP:NOOP$3}=require_constants$11(),{isBlob:isBlob$5,isValidStatusCode:isValidStatusCode$2}=require_validation$1(),{mask:applyMask,toBuffer:toBuffer$5}=require_buffer_util(),kByteLength=Symbol(`kByteLength`),maskBuffer=Buffer.alloc(4),RANDOM_POOL_SIZE=8*1024,randomPool,randomPoolPointer=RANDOM_POOL_SIZE,DEFAULT=0,DEFLATING=1,GET_BLOB_DATA=2;var Sender$2=class Sender$2{constructor(socket,extensions$1,generateMask$1){this._extensions=extensions$1||{},generateMask$1&&(this._generateMask=generateMask$1,this._maskBuffer=Buffer.alloc(4)),this._socket=socket,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=NOOP$3,this[kWebSocket$2]=void 0}static frame(data$2,options$1){let mask,merge$5=!1,offset=2,skipMasking=!1;options$1.mask&&(mask=options$1.maskBuffer||maskBuffer,options$1.generateMask?options$1.generateMask(mask):(randomPoolPointer===RANDOM_POOL_SIZE&&(randomPool===void 0&&(randomPool=Buffer.alloc(RANDOM_POOL_SIZE)),randomFillSync(randomPool,0,RANDOM_POOL_SIZE),randomPoolPointer=0),mask[0]=randomPool[randomPoolPointer++],mask[1]=randomPool[randomPoolPointer++],mask[2]=randomPool[randomPoolPointer++],mask[3]=randomPool[randomPoolPointer++]),skipMasking=(mask[0]|mask[1]|mask[2]|mask[3])===0,offset=6);let dataLength;typeof data$2==`string`?(!options$1.mask||skipMasking)&&options$1[kByteLength]!==void 0?dataLength=options$1[kByteLength]:(data$2=Buffer.from(data$2),dataLength=data$2.length):(dataLength=data$2.length,merge$5=options$1.mask&&options$1.readOnly&&!skipMasking);let payloadLength=dataLength;dataLength>=65536?(offset+=8,payloadLength=127):dataLength>125&&(offset+=2,payloadLength=126);let target=Buffer.allocUnsafe(merge$5?dataLength+offset:offset);return target[0]=options$1.fin?options$1.opcode|128:options$1.opcode,options$1.rsv1&&(target[0]|=64),target[1]=payloadLength,payloadLength===126?target.writeUInt16BE(dataLength,2):payloadLength===127&&(target[2]=target[3]=0,target.writeUIntBE(dataLength,4,6)),!options$1.mask||(target[1]|=128,target[offset-4]=mask[0],target[offset-3]=mask[1],target[offset-2]=mask[2],target[offset-1]=mask[3],skipMasking)?[target,data$2]:merge$5?(applyMask(data$2,mask,target,offset,dataLength),[target]):(applyMask(data$2,mask,data$2,0,dataLength),[target,data$2])}close(code$1,data$2,mask,cb){let buf;if(code$1===void 0)buf=EMPTY_BUFFER$1;else if(typeof code$1!=`number`||!isValidStatusCode$2(code$1))throw TypeError(`First argument must be a valid error code number`);else if(data$2===void 0||!data$2.length)buf=Buffer.allocUnsafe(2),buf.writeUInt16BE(code$1,0);else{let length=Buffer.byteLength(data$2);if(length>123)throw RangeError(`The message must not be greater than 123 bytes`);buf=Buffer.allocUnsafe(2+length),buf.writeUInt16BE(code$1,0),typeof data$2==`string`?buf.write(data$2,2):buf.set(data$2,2)}let options$1={[kByteLength]:buf.length,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state===0?this.sendFrame(Sender$2.frame(buf,options$1),cb):this.enqueue([this.dispatch,buf,!1,options$1,cb])}ping(data$2,mask,cb){let byteLength$2,readOnly;if(typeof data$2==`string`?(byteLength$2=Buffer.byteLength(data$2),readOnly=!1):isBlob$5(data$2)?(byteLength$2=data$2.size,readOnly=!1):(data$2=toBuffer$5(data$2),byteLength$2=data$2.length,readOnly=toBuffer$5.readOnly),byteLength$2>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options$1={[kByteLength]:byteLength$2,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:9,readOnly,rsv1:!1};isBlob$5(data$2)?this._state===0?this.getBlobData(data$2,!1,options$1,cb):this.enqueue([this.getBlobData,data$2,!1,options$1,cb]):this._state===0?this.sendFrame(Sender$2.frame(data$2,options$1),cb):this.enqueue([this.dispatch,data$2,!1,options$1,cb])}pong(data$2,mask,cb){let byteLength$2,readOnly;if(typeof data$2==`string`?(byteLength$2=Buffer.byteLength(data$2),readOnly=!1):isBlob$5(data$2)?(byteLength$2=data$2.size,readOnly=!1):(data$2=toBuffer$5(data$2),byteLength$2=data$2.length,readOnly=toBuffer$5.readOnly),byteLength$2>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options$1={[kByteLength]:byteLength$2,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:10,readOnly,rsv1:!1};isBlob$5(data$2)?this._state===0?this.getBlobData(data$2,!1,options$1,cb):this.enqueue([this.getBlobData,data$2,!1,options$1,cb]):this._state===0?this.sendFrame(Sender$2.frame(data$2,options$1),cb):this.enqueue([this.dispatch,data$2,!1,options$1,cb])}send(data$2,options$1,cb){let perMessageDeflate=this._extensions[PerMessageDeflate$4.extensionName],opcode=options$1.binary?2:1,rsv1=options$1.compress,byteLength$2,readOnly;typeof data$2==`string`?(byteLength$2=Buffer.byteLength(data$2),readOnly=!1):isBlob$5(data$2)?(byteLength$2=data$2.size,readOnly=!1):(data$2=toBuffer$5(data$2),byteLength$2=data$2.length,readOnly=toBuffer$5.readOnly),this._firstFragment?(this._firstFragment=!1,rsv1&&perMessageDeflate&&perMessageDeflate.params[perMessageDeflate._isServer?`server_no_context_takeover`:`client_no_context_takeover`]&&(rsv1=byteLength$2>=perMessageDeflate._threshold),this._compress=rsv1):(rsv1=!1,opcode=0),options$1.fin&&(this._firstFragment=!0);let opts={[kByteLength]:byteLength$2,fin:options$1.fin,generateMask:this._generateMask,mask:options$1.mask,maskBuffer:this._maskBuffer,opcode,readOnly,rsv1};isBlob$5(data$2)?this._state===0?this.getBlobData(data$2,this._compress,opts,cb):this.enqueue([this.getBlobData,data$2,this._compress,opts,cb]):this._state===0?this.dispatch(data$2,this._compress,opts,cb):this.enqueue([this.dispatch,data$2,this._compress,opts,cb])}getBlobData(blob,compress,options$1,cb){this._bufferedBytes+=options$1[kByteLength],this._state=2,blob.arrayBuffer().then(arrayBuffer=>{if(this._socket.destroyed){let err$1=Error(`The socket was closed while the blob was being read`);process.nextTick(callCallbacks,this,err$1,cb);return}this._bufferedBytes-=options$1[kByteLength];let data$2=toBuffer$5(arrayBuffer);compress?this.dispatch(data$2,compress,options$1,cb):(this._state=0,this.sendFrame(Sender$2.frame(data$2,options$1),cb),this.dequeue())}).catch(err$1=>{process.nextTick(onError$2,this,err$1,cb)})}dispatch(data$2,compress,options$1,cb){if(!compress){this.sendFrame(Sender$2.frame(data$2,options$1),cb);return}let perMessageDeflate=this._extensions[PerMessageDeflate$4.extensionName];this._bufferedBytes+=options$1[kByteLength],this._state=1,perMessageDeflate.compress(data$2,options$1.fin,(_$6,buf)=>{if(this._socket.destroyed){let err$1=Error(`The socket was closed while data was being compressed`);callCallbacks(this,err$1,cb);return}this._bufferedBytes-=options$1[kByteLength],this._state=0,options$1.readOnly=!1,this.sendFrame(Sender$2.frame(buf,options$1),cb),this.dequeue()})}dequeue(){for(;this._state===0&&this._queue.length;){let params=this._queue.shift();this._bufferedBytes-=params[3][kByteLength],Reflect.apply(params[0],this,params.slice(1))}}enqueue(params){this._bufferedBytes+=params[3][kByteLength],this._queue.push(params)}sendFrame(list$2,cb){list$2.length===2?(this._socket.cork(),this._socket.write(list$2[0]),this._socket.write(list$2[1],cb),this._socket.uncork()):this._socket.write(list$2[0],cb)}};module.exports=Sender$2;function callCallbacks(sender,err$1,cb){typeof cb==`function`&&cb(err$1);for(let i$5=0;i$5<sender._queue.length;i$5++){let params=sender._queue[i$5],callback$1=params[params.length-1];typeof callback$1==`function`&&callback$1(err$1)}}function onError$2(sender,err$1,cb){callCallbacks(sender,err$1,cb),sender.onerror(err$1)}})),require_event_target=__commonJSMin(((exports,module)=>{let{kForOnEventAttribute:kForOnEventAttribute$1,kListener:kListener$2}=require_constants$11(),kCode=Symbol(`kCode`),kData=Symbol(`kData`),kError$3=Symbol(`kError`),kMessage=Symbol(`kMessage`),kReason=Symbol(`kReason`),kTarget=Symbol(`kTarget`),kType=Symbol(`kType`),kWasClean=Symbol(`kWasClean`);var Event$1=class{constructor(type){this[kTarget]=null,this[kType]=type}get target(){return this[kTarget]}get type(){return this[kType]}};Object.defineProperty(Event$1.prototype,`target`,{enumerable:!0}),Object.defineProperty(Event$1.prototype,`type`,{enumerable:!0});var CloseEvent$3=class extends Event$1{constructor(type,options$1={}){super(type),this[kCode]=options$1.code===void 0?0:options$1.code,this[kReason]=options$1.reason===void 0?``:options$1.reason,this[kWasClean]=options$1.wasClean===void 0?!1:options$1.wasClean}get code(){return this[kCode]}get reason(){return this[kReason]}get wasClean(){return this[kWasClean]}};Object.defineProperty(CloseEvent$3.prototype,`code`,{enumerable:!0}),Object.defineProperty(CloseEvent$3.prototype,`reason`,{enumerable:!0}),Object.defineProperty(CloseEvent$3.prototype,`wasClean`,{enumerable:!0});var ErrorEvent$4=class extends Event$1{constructor(type,options$1={}){super(type),this[kError$3]=options$1.error===void 0?null:options$1.error,this[kMessage]=options$1.message===void 0?``:options$1.message}get error(){return this[kError$3]}get message(){return this[kMessage]}};Object.defineProperty(ErrorEvent$4.prototype,`error`,{enumerable:!0}),Object.defineProperty(ErrorEvent$4.prototype,`message`,{enumerable:!0});var MessageEvent$3=class extends Event$1{constructor(type,options$1={}){super(type),this[kData]=options$1.data===void 0?null:options$1.data}get data(){return this[kData]}};Object.defineProperty(MessageEvent$3.prototype,`data`,{enumerable:!0});let EventTarget$1={addEventListener(type,handler,options$1={}){for(let listener of this.listeners(type))if(!options$1[kForOnEventAttribute$1]&&listener[kListener$2]===handler&&!listener[kForOnEventAttribute$1])return;let wrapper;if(type===`message`)wrapper=function(data$2,isBinary$1){let event=new MessageEvent$3(`message`,{data:isBinary$1?data$2:data$2.toString()});event[kTarget]=this,callListener(handler,this,event)};else if(type===`close`)wrapper=function(code$1,message){let event=new CloseEvent$3(`close`,{code:code$1,reason:message.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});event[kTarget]=this,callListener(handler,this,event)};else if(type===`error`)wrapper=function(error$65){let event=new ErrorEvent$4(`error`,{error:error$65,message:error$65.message});event[kTarget]=this,callListener(handler,this,event)};else if(type===`open`)wrapper=function(){let event=new Event$1(`open`);event[kTarget]=this,callListener(handler,this,event)};else return;wrapper[kForOnEventAttribute$1]=!!options$1[kForOnEventAttribute$1],wrapper[kListener$2]=handler,options$1.once?this.once(type,wrapper):this.on(type,wrapper)},removeEventListener(type,handler){for(let listener of this.listeners(type))if(listener[kListener$2]===handler&&!listener[kForOnEventAttribute$1]){this.removeListener(type,listener);break}}};module.exports={CloseEvent:CloseEvent$3,ErrorEvent:ErrorEvent$4,Event:Event$1,EventTarget:EventTarget$1,MessageEvent:MessageEvent$3};function callListener(listener,thisArg,event){typeof listener==`object`&&listener.handleEvent?listener.handleEvent.call(listener,event):listener.call(thisArg,event)}})),require_extension=__commonJSMin(((exports,module)=>{let{tokenChars:tokenChars$1}=require_validation$1();function push$2(dest,name$7,elem){dest[name$7]===void 0?dest[name$7]=[elem]:dest[name$7].push(elem)}function parse$21(header){let offers=Object.create(null),params=Object.create(null),mustUnescape=!1,isEscaping=!1,inQuotes=!1,extensionName,paramName,start$1=-1,code$1=-1,end=-1,i$5=0;for(;i$5<header.length;i$5++)if(code$1=header.charCodeAt(i$5),extensionName===void 0)if(end===-1&&tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(i$5!==0&&(code$1===32||code$1===9))end===-1&&start$1!==-1&&(end=i$5);else if(code$1===59||code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5);let name$7=header.slice(start$1,end);code$1===44?(push$2(offers,name$7,params),params=Object.create(null)):extensionName=name$7,start$1=end=-1}else throw SyntaxError(`Unexpected character at index ${i$5}`);else if(paramName===void 0)if(end===-1&&tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(code$1===32||code$1===9)end===-1&&start$1!==-1&&(end=i$5);else if(code$1===59||code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5),push$2(params,header.slice(start$1,end),!0),code$1===44&&(push$2(offers,extensionName,params),params=Object.create(null),extensionName=void 0),start$1=end=-1}else if(code$1===61&&start$1!==-1&&end===-1)paramName=header.slice(start$1,i$5),start$1=end=-1;else throw SyntaxError(`Unexpected character at index ${i$5}`);else if(isEscaping){if(tokenChars$1[code$1]!==1)throw SyntaxError(`Unexpected character at index ${i$5}`);start$1===-1?start$1=i$5:mustUnescape||=!0,isEscaping=!1}else if(inQuotes)if(tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(code$1===34&&start$1!==-1)inQuotes=!1,end=i$5;else if(code$1===92)isEscaping=!0;else throw SyntaxError(`Unexpected character at index ${i$5}`);else if(code$1===34&&header.charCodeAt(i$5-1)===61)inQuotes=!0;else if(end===-1&&tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(start$1!==-1&&(code$1===32||code$1===9))end===-1&&(end=i$5);else if(code$1===59||code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5);let value=header.slice(start$1,end);mustUnescape&&=(value=value.replace(/\\/g,``),!1),push$2(params,paramName,value),code$1===44&&(push$2(offers,extensionName,params),params=Object.create(null),extensionName=void 0),paramName=void 0,start$1=end=-1}else throw SyntaxError(`Unexpected character at index ${i$5}`);if(start$1===-1||inQuotes||code$1===32||code$1===9)throw SyntaxError(`Unexpected end of input`);end===-1&&(end=i$5);let token$1=header.slice(start$1,end);return extensionName===void 0?push$2(offers,token$1,params):(paramName===void 0?push$2(params,token$1,!0):mustUnescape?push$2(params,paramName,token$1.replace(/\\/g,``)):push$2(params,paramName,token$1),push$2(offers,extensionName,params)),offers}function format$3(extensions$1){return Object.keys(extensions$1).map(extension$1=>{let configurations=extensions$1[extension$1];return Array.isArray(configurations)||(configurations=[configurations]),configurations.map(params=>[extension$1].concat(Object.keys(params).map(k$2=>{let values=params[k$2];return Array.isArray(values)||(values=[values]),values.map(v$2=>v$2===!0?k$2:`${k$2}=${v$2}`).join(`; `)})).join(`; `)).join(`, `)}).join(`, `)}module.exports={format:format$3,parse:parse$21}})),require_websocket$1=__commonJSMin(((exports,module)=>{let EventEmitter$14=__require$1(`events`),https$9=__require$1(`https`),http$15=__require$1(`http`),net$8=__require$1(`net`),tls$6=__require$1(`tls`),{randomBytes,createHash:createHash$2}=__require$1(`crypto`),{Duplex:Duplex$5,Readable:Readable$14}=__require$1(`stream`),{URL:URL$11}=__require$1(`url`),PerMessageDeflate$3=require_permessage_deflate$1(),Receiver$1=require_receiver$1(),Sender$1=require_sender$1(),{isBlob:isBlob$4}=require_validation$1(),{BINARY_TYPES,EMPTY_BUFFER,GUID:GUID$1,kForOnEventAttribute,kListener:kListener$1,kStatusCode,kWebSocket:kWebSocket$1,NOOP:NOOP$2}=require_constants$11(),{EventTarget:{addEventListener,removeEventListener}}=require_event_target(),{format:format$2,parse:parse$20}=require_extension(),{toBuffer:toBuffer$4}=require_buffer_util(),closeTimeout=30*1e3,kAborted=Symbol(`kAborted`),protocolVersions=[8,13],readyStates=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],subprotocolRegex=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;var WebSocket$8=class WebSocket$8 extends EventEmitter$14{constructor(address,protocols,options$1){super(),this._binaryType=BINARY_TYPES[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=EMPTY_BUFFER,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol=``,this._readyState=WebSocket$8.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,address===null?(this._autoPong=options$1.autoPong,this._isServer=!0):(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,protocols===void 0?protocols=[]:Array.isArray(protocols)||(typeof protocols==`object`&&protocols?(options$1=protocols,protocols=[]):protocols=[protocols]),initAsClient(this,address,protocols,options$1))}get binaryType(){return this._binaryType}set binaryType(type){BINARY_TYPES.includes(type)&&(this._binaryType=type,this._receiver&&(this._receiver._binaryType=type))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(socket,head,options$1){let receiver=new Receiver$1({allowSynchronousEvents:options$1.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:options$1.maxPayload,skipUTF8Validation:options$1.skipUTF8Validation}),sender=new Sender$1(socket,this._extensions,options$1.generateMask);this._receiver=receiver,this._sender=sender,this._socket=socket,receiver[kWebSocket$1]=this,sender[kWebSocket$1]=this,socket[kWebSocket$1]=this,receiver.on(`conclude`,receiverOnConclude),receiver.on(`drain`,receiverOnDrain),receiver.on(`error`,receiverOnError),receiver.on(`message`,receiverOnMessage),receiver.on(`ping`,receiverOnPing),receiver.on(`pong`,receiverOnPong),sender.onerror=senderOnError,socket.setTimeout&&socket.setTimeout(0),socket.setNoDelay&&socket.setNoDelay(),head.length>0&&socket.unshift(head),socket.on(`close`,socketOnClose),socket.on(`data`,socketOnData),socket.on(`end`,socketOnEnd),socket.on(`error`,socketOnError$1),this._readyState=WebSocket$8.OPEN,this.emit(`open`)}emitClose(){if(!this._socket){this._readyState=WebSocket$8.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage);return}this._extensions[PerMessageDeflate$3.extensionName]&&this._extensions[PerMessageDeflate$3.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=WebSocket$8.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage)}close(code$1,data$2){if(this.readyState!==WebSocket$8.CLOSED){if(this.readyState===WebSocket$8.CONNECTING){let msg=`WebSocket was closed before the connection was established`;abortHandshake$1(this,this._req,`WebSocket was closed before the connection was established`);return}if(this.readyState===WebSocket$8.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=WebSocket$8.CLOSING,this._sender.close(code$1,data$2,!this._isServer,err$1=>{err$1||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),setCloseTimer(this)}}pause(){this.readyState===WebSocket$8.CONNECTING||this.readyState===WebSocket$8.CLOSED||(this._paused=!0,this._socket.pause())}ping(data$2,mask,cb){if(this.readyState===WebSocket$8.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data$2==`function`?(cb=data$2,data$2=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data$2==`number`&&(data$2=data$2.toString()),this.readyState!==WebSocket$8.OPEN){sendAfterClose(this,data$2,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.ping(data$2||EMPTY_BUFFER,mask,cb)}pong(data$2,mask,cb){if(this.readyState===WebSocket$8.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data$2==`function`?(cb=data$2,data$2=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data$2==`number`&&(data$2=data$2.toString()),this.readyState!==WebSocket$8.OPEN){sendAfterClose(this,data$2,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.pong(data$2||EMPTY_BUFFER,mask,cb)}resume(){this.readyState===WebSocket$8.CONNECTING||this.readyState===WebSocket$8.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(data$2,options$1,cb){if(this.readyState===WebSocket$8.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof options$1==`function`&&(cb=options$1,options$1={}),typeof data$2==`number`&&(data$2=data$2.toString()),this.readyState!==WebSocket$8.OPEN){sendAfterClose(this,data$2,cb);return}let opts={binary:typeof data$2!=`string`,mask:!this._isServer,compress:!0,fin:!0,...options$1};this._extensions[PerMessageDeflate$3.extensionName]||(opts.compress=!1),this._sender.send(data$2||EMPTY_BUFFER,opts,cb)}terminate(){if(this.readyState!==WebSocket$8.CLOSED){if(this.readyState===WebSocket$8.CONNECTING){let msg=`WebSocket was closed before the connection was established`;abortHandshake$1(this,this._req,`WebSocket was closed before the connection was established`);return}this._socket&&(this._readyState=WebSocket$8.CLOSING,this._socket.destroy())}}};Object.defineProperty(WebSocket$8,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket$8.prototype,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket$8,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket$8.prototype,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket$8,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket$8.prototype,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket$8,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),Object.defineProperty(WebSocket$8.prototype,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),[`binaryType`,`bufferedAmount`,`extensions`,`isPaused`,`protocol`,`readyState`,`url`].forEach(property=>{Object.defineProperty(WebSocket$8.prototype,property,{enumerable:!0})}),[`open`,`error`,`close`,`message`].forEach(method=>{Object.defineProperty(WebSocket$8.prototype,`on${method}`,{enumerable:!0,get(){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute])return listener[kListener$1];return null},set(handler){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute]){this.removeListener(method,listener);break}typeof handler==`function`&&this.addEventListener(method,handler,{[kForOnEventAttribute]:!0})}})}),WebSocket$8.prototype.addEventListener=addEventListener,WebSocket$8.prototype.removeEventListener=removeEventListener,module.exports=WebSocket$8;function initAsClient(websocket,address,protocols,options$1){let opts={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:protocolVersions[1],maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...options$1,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:`GET`,host:void 0,path:void 0,port:void 0};if(websocket._autoPong=opts.autoPong,!protocolVersions.includes(opts.protocolVersion))throw RangeError(`Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(`, `)})`);let parsedUrl;if(address instanceof URL$11)parsedUrl=address;else try{parsedUrl=new URL$11(address)}catch{throw SyntaxError(`Invalid URL: ${address}`)}parsedUrl.protocol===`http:`?parsedUrl.protocol=`ws:`:parsedUrl.protocol===`https:`&&(parsedUrl.protocol=`wss:`),websocket._url=parsedUrl.href;let isSecure=parsedUrl.protocol===`wss:`,isIpcUrl=parsedUrl.protocol===`ws+unix:`,invalidUrlMessage;if(parsedUrl.protocol!==`ws:`&&!isSecure&&!isIpcUrl?invalidUrlMessage=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:isIpcUrl&&!parsedUrl.pathname?invalidUrlMessage=`The URL's pathname is empty`:parsedUrl.hash&&(invalidUrlMessage=`The URL contains a fragment identifier`),invalidUrlMessage){let err$1=SyntaxError(invalidUrlMessage);if(websocket._redirects===0)throw err$1;emitErrorAndClose(websocket,err$1);return}let defaultPort$1=isSecure?443:80,key=randomBytes(16).toString(`base64`),request$3=isSecure?https$9.request:http$15.request,protocolSet=new Set,perMessageDeflate;if(opts.createConnection=opts.createConnection||(isSecure?tlsConnect:netConnect),opts.defaultPort=opts.defaultPort||defaultPort$1,opts.port=parsedUrl.port||defaultPort$1,opts.host=parsedUrl.hostname.startsWith(`[`)?parsedUrl.hostname.slice(1,-1):parsedUrl.hostname,opts.headers={...opts.headers,"Sec-WebSocket-Version":opts.protocolVersion,"Sec-WebSocket-Key":key,Connection:`Upgrade`,Upgrade:`websocket`},opts.path=parsedUrl.pathname+parsedUrl.search,opts.timeout=opts.handshakeTimeout,opts.perMessageDeflate&&(perMessageDeflate=new PerMessageDeflate$3(opts.perMessageDeflate===!0?{}:opts.perMessageDeflate,!1,opts.maxPayload),opts.headers[`Sec-WebSocket-Extensions`]=format$2({[PerMessageDeflate$3.extensionName]:perMessageDeflate.offer()})),protocols.length){for(let protocol of protocols){if(typeof protocol!=`string`||!subprotocolRegex.test(protocol)||protocolSet.has(protocol))throw SyntaxError(`An invalid or duplicated subprotocol was specified`);protocolSet.add(protocol)}opts.headers[`Sec-WebSocket-Protocol`]=protocols.join(`,`)}if(opts.origin&&(opts.protocolVersion<13?opts.headers[`Sec-WebSocket-Origin`]=opts.origin:opts.headers.Origin=opts.origin),(parsedUrl.username||parsedUrl.password)&&(opts.auth=`${parsedUrl.username}:${parsedUrl.password}`),isIpcUrl){let parts=opts.path.split(`:`);opts.socketPath=parts[0],opts.path=parts[1]}let req$1;if(opts.followRedirects){if(websocket._redirects===0){websocket._originalIpc=isIpcUrl,websocket._originalSecure=isSecure,websocket._originalHostOrSocketPath=isIpcUrl?opts.socketPath:parsedUrl.host;let headers$2=options$1&&options$1.headers;if(options$1={...options$1,headers:{}},headers$2)for(let[key$1,value]of Object.entries(headers$2))options$1.headers[key$1.toLowerCase()]=value}else if(websocket.listenerCount(`redirect`)===0){let isSameHost=isIpcUrl?websocket._originalIpc?opts.socketPath===websocket._originalHostOrSocketPath:!1:websocket._originalIpc?!1:parsedUrl.host===websocket._originalHostOrSocketPath;(!isSameHost||websocket._originalSecure&&!isSecure)&&(delete opts.headers.authorization,delete opts.headers.cookie,isSameHost||delete opts.headers.host,opts.auth=void 0)}opts.auth&&!options$1.headers.authorization&&(options$1.headers.authorization=`Basic `+Buffer.from(opts.auth).toString(`base64`)),req$1=websocket._req=request$3(opts),websocket._redirects&&websocket.emit(`redirect`,websocket.url,req$1)}else req$1=websocket._req=request$3(opts);opts.timeout&&req$1.on(`timeout`,()=>{abortHandshake$1(websocket,req$1,`Opening handshake has timed out`)}),req$1.on(`error`,err$1=>{req$1===null||req$1[kAborted]||(req$1=websocket._req=null,emitErrorAndClose(websocket,err$1))}),req$1.on(`response`,res=>{let location=res.headers.location,statusCode=res.statusCode;if(location&&opts.followRedirects&&statusCode>=300&&statusCode<400){if(++websocket._redirects>opts.maxRedirects){abortHandshake$1(websocket,req$1,`Maximum redirects exceeded`);return}req$1.abort();let addr;try{addr=new URL$11(location,address)}catch{let err$1=SyntaxError(`Invalid URL: ${location}`);emitErrorAndClose(websocket,err$1);return}initAsClient(websocket,addr,protocols,options$1)}else websocket.emit(`unexpected-response`,req$1,res)||abortHandshake$1(websocket,req$1,`Unexpected server response: ${res.statusCode}`)}),req$1.on(`upgrade`,(res,socket,head)=>{if(websocket.emit(`upgrade`,res),websocket.readyState!==WebSocket$8.CONNECTING)return;req$1=websocket._req=null;let upgrade$1=res.headers.upgrade;if(upgrade$1===void 0||upgrade$1.toLowerCase()!==`websocket`){abortHandshake$1(websocket,socket,`Invalid Upgrade header`);return}let digest=createHash$2(`sha1`).update(key+GUID$1).digest(`base64`);if(res.headers[`sec-websocket-accept`]!==digest){abortHandshake$1(websocket,socket,`Invalid Sec-WebSocket-Accept header`);return}let serverProt=res.headers[`sec-websocket-protocol`],protError;if(serverProt===void 0?protocolSet.size&&(protError=`Server sent no subprotocol`):protocolSet.size?protocolSet.has(serverProt)||(protError=`Server sent an invalid subprotocol`):protError=`Server sent a subprotocol but none was requested`,protError){abortHandshake$1(websocket,socket,protError);return}serverProt&&(websocket._protocol=serverProt);let secWebSocketExtensions=res.headers[`sec-websocket-extensions`];if(secWebSocketExtensions!==void 0){if(!perMessageDeflate){let message=`Server sent a Sec-WebSocket-Extensions header but no extension was requested`;abortHandshake$1(websocket,socket,`Server sent a Sec-WebSocket-Extensions header but no extension was requested`);return}let extensions$1;try{extensions$1=parse$20(secWebSocketExtensions)}catch{let message=`Invalid Sec-WebSocket-Extensions header`;abortHandshake$1(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}let extensionNames=Object.keys(extensions$1);if(extensionNames.length!==1||extensionNames[0]!==PerMessageDeflate$3.extensionName){let message=`Server indicated an extension that was not requested`;abortHandshake$1(websocket,socket,`Server indicated an extension that was not requested`);return}try{perMessageDeflate.accept(extensions$1[PerMessageDeflate$3.extensionName])}catch{let message=`Invalid Sec-WebSocket-Extensions header`;abortHandshake$1(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}websocket._extensions[PerMessageDeflate$3.extensionName]=perMessageDeflate}websocket.setSocket(socket,head,{allowSynchronousEvents:opts.allowSynchronousEvents,generateMask:opts.generateMask,maxPayload:opts.maxPayload,skipUTF8Validation:opts.skipUTF8Validation})}),opts.finishRequest?opts.finishRequest(req$1,websocket):req$1.end()}function emitErrorAndClose(websocket,err$1){websocket._readyState=WebSocket$8.CLOSING,websocket._errorEmitted=!0,websocket.emit(`error`,err$1),websocket.emitClose()}function netConnect(options$1){return options$1.path=options$1.socketPath,net$8.connect(options$1)}function tlsConnect(options$1){return options$1.path=void 0,!options$1.servername&&options$1.servername!==``&&(options$1.servername=net$8.isIP(options$1.host)?``:options$1.host),tls$6.connect(options$1)}function abortHandshake$1(websocket,stream$10,message){websocket._readyState=WebSocket$8.CLOSING;let err$1=Error(message);Error.captureStackTrace(err$1,abortHandshake$1),stream$10.setHeader?(stream$10[kAborted]=!0,stream$10.abort(),stream$10.socket&&!stream$10.socket.destroyed&&stream$10.socket.destroy(),process.nextTick(emitErrorAndClose,websocket,err$1)):(stream$10.destroy(err$1),stream$10.once(`error`,websocket.emit.bind(websocket,`error`)),stream$10.once(`close`,websocket.emitClose.bind(websocket)))}function sendAfterClose(websocket,data$2,cb){if(data$2){let length=isBlob$4(data$2)?data$2.size:toBuffer$4(data$2).length;websocket._socket?websocket._sender._bufferedBytes+=length:websocket._bufferedAmount+=length}if(cb){let err$1=Error(`WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`);process.nextTick(cb,err$1)}}function receiverOnConclude(code$1,reason){let websocket=this[kWebSocket$1];websocket._closeFrameReceived=!0,websocket._closeMessage=reason,websocket._closeCode=code$1,websocket._socket[kWebSocket$1]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume$2,websocket._socket),code$1===1005?websocket.close():websocket.close(code$1,reason))}function receiverOnDrain(){let websocket=this[kWebSocket$1];websocket.isPaused||websocket._socket.resume()}function receiverOnError(err$1){let websocket=this[kWebSocket$1];websocket._socket[kWebSocket$1]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume$2,websocket._socket),websocket.close(err$1[kStatusCode])),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err$1))}function receiverOnFinish(){this[kWebSocket$1].emitClose()}function receiverOnMessage(data$2,isBinary$1){this[kWebSocket$1].emit(`message`,data$2,isBinary$1)}function receiverOnPing(data$2){let websocket=this[kWebSocket$1];websocket._autoPong&&websocket.pong(data$2,!this._isServer,NOOP$2),websocket.emit(`ping`,data$2)}function receiverOnPong(data$2){this[kWebSocket$1].emit(`pong`,data$2)}function resume$2(stream$10){stream$10.resume()}function senderOnError(err$1){let websocket=this[kWebSocket$1];websocket.readyState!==WebSocket$8.CLOSED&&(websocket.readyState===WebSocket$8.OPEN&&(websocket._readyState=WebSocket$8.CLOSING,setCloseTimer(websocket)),this._socket.end(),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err$1)))}function setCloseTimer(websocket){websocket._closeTimer=setTimeout(websocket._socket.destroy.bind(websocket._socket),3e4)}function socketOnClose(){let websocket=this[kWebSocket$1];this.removeListener(`close`,socketOnClose),this.removeListener(`data`,socketOnData),this.removeListener(`end`,socketOnEnd),websocket._readyState=WebSocket$8.CLOSING;let chunk$1;!this._readableState.endEmitted&&!websocket._closeFrameReceived&&!websocket._receiver._writableState.errorEmitted&&(chunk$1=websocket._socket.read())!==null&&websocket._receiver.write(chunk$1),websocket._receiver.end(),this[kWebSocket$1]=void 0,clearTimeout(websocket._closeTimer),websocket._receiver._writableState.finished||websocket._receiver._writableState.errorEmitted?websocket.emitClose():(websocket._receiver.on(`error`,receiverOnFinish),websocket._receiver.on(`finish`,receiverOnFinish))}function socketOnData(chunk$1){this[kWebSocket$1]._receiver.write(chunk$1)||this.pause()}function socketOnEnd(){let websocket=this[kWebSocket$1];websocket._readyState=WebSocket$8.CLOSING,websocket._receiver.end(),this.end()}function socketOnError$1(){let websocket=this[kWebSocket$1];this.removeListener(`error`,socketOnError$1),this.on(`error`,NOOP$2),websocket&&(websocket._readyState=WebSocket$8.CLOSING,this.destroy())}})),require_stream=__commonJSMin(((exports,module)=>{require_websocket$1();let{Duplex:Duplex$4}=__require$1(`stream`);function emitClose$1(stream$10){stream$10.emit(`close`)}function duplexOnEnd(){!this.destroyed&&this._writableState.finished&&this.destroy()}function duplexOnError(err$1){this.removeListener(`error`,duplexOnError),this.destroy(),this.listenerCount(`error`)===0&&this.emit(`error`,err$1)}function createWebSocketStream$1(ws$2,options$1){let terminateOnDestroy=!0,duplex$1=new Duplex$4({...options$1,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return ws$2.on(`message`,function(msg,isBinary$1){let data$2=!isBinary$1&&duplex$1._readableState.objectMode?msg.toString():msg;duplex$1.push(data$2)||ws$2.pause()}),ws$2.once(`error`,function(err$1){duplex$1.destroyed||(terminateOnDestroy=!1,duplex$1.destroy(err$1))}),ws$2.once(`close`,function(){duplex$1.destroyed||duplex$1.push(null)}),duplex$1._destroy=function(err$1,callback$1){if(ws$2.readyState===ws$2.CLOSED){callback$1(err$1),process.nextTick(emitClose$1,duplex$1);return}let called=!1;ws$2.once(`error`,function(err$2){called=!0,callback$1(err$2)}),ws$2.once(`close`,function(){called||callback$1(err$1),process.nextTick(emitClose$1,duplex$1)}),terminateOnDestroy&&ws$2.terminate()},duplex$1._final=function(callback$1){if(ws$2.readyState===ws$2.CONNECTING){ws$2.once(`open`,function(){duplex$1._final(callback$1)});return}ws$2._socket!==null&&(ws$2._socket._writableState.finished?(callback$1(),duplex$1._readableState.endEmitted&&duplex$1.destroy()):(ws$2._socket.once(`finish`,function(){callback$1()}),ws$2.close()))},duplex$1._read=function(){ws$2.isPaused&&ws$2.resume()},duplex$1._write=function(chunk$1,encoding,callback$1){if(ws$2.readyState===ws$2.CONNECTING){ws$2.once(`open`,function(){duplex$1._write(chunk$1,encoding,callback$1)});return}ws$2.send(chunk$1,callback$1)},duplex$1.on(`end`,duplexOnEnd),duplex$1.on(`error`,duplexOnError),duplex$1}module.exports=createWebSocketStream$1})),require_subprotocol=__commonJSMin(((exports,module)=>{let{tokenChars}=require_validation$1();function parse$19(header){let protocols=new Set,start$1=-1,end=-1,i$5=0;for(;i$5<header.length;i$5++){let code$1=header.charCodeAt(i$5);if(end===-1&&tokenChars[code$1]===1)start$1===-1&&(start$1=i$5);else if(i$5!==0&&(code$1===32||code$1===9))end===-1&&start$1!==-1&&(end=i$5);else if(code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5);let protocol$1=header.slice(start$1,end);if(protocols.has(protocol$1))throw SyntaxError(`The "${protocol$1}" subprotocol is duplicated`);protocols.add(protocol$1),start$1=end=-1}else throw SyntaxError(`Unexpected character at index ${i$5}`)}if(start$1===-1||end!==-1)throw SyntaxError(`Unexpected end of input`);let protocol=header.slice(start$1,i$5);if(protocols.has(protocol))throw SyntaxError(`The "${protocol}" subprotocol is duplicated`);return protocols.add(protocol),protocols}module.exports={parse:parse$19}})),require_websocket_server=__commonJSMin(((exports,module)=>{let EventEmitter$13=__require$1(`events`),http$14=__require$1(`http`),{Duplex:Duplex$3}=__require$1(`stream`),{createHash:createHash$1}=__require$1(`crypto`),extension=require_extension(),PerMessageDeflate$2=require_permessage_deflate$1(),subprotocol=require_subprotocol(),WebSocket$7=require_websocket$1(),{GUID,kWebSocket}=require_constants$11(),keyRegex=/^[+/0-9A-Za-z]{22}==$/,RUNNING=0,CLOSING=1,CLOSED$2=2;var WebSocketServer$1=class extends EventEmitter$13{constructor(options$1,callback$1){if(super(),options$1={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:WebSocket$7,...options$1},options$1.port==null&&!options$1.server&&!options$1.noServer||options$1.port!=null&&(options$1.server||options$1.noServer)||options$1.server&&options$1.noServer)throw TypeError(`One and only one of the "port", "server", or "noServer" options must be specified`);if(options$1.port==null?options$1.server&&(this._server=options$1.server):(this._server=http$14.createServer((req$1,res)=>{let body=http$14.STATUS_CODES[426];res.writeHead(426,{"Content-Length":body.length,"Content-Type":`text/plain`}),res.end(body)}),this._server.listen(options$1.port,options$1.host,options$1.backlog,callback$1)),this._server){let emitConnection=this.emit.bind(this,`connection`);this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,`listening`),error:this.emit.bind(this,`error`),upgrade:(req$1,socket,head)=>{this.handleUpgrade(req$1,socket,head,emitConnection)}})}options$1.perMessageDeflate===!0&&(options$1.perMessageDeflate={}),options$1.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=options$1,this._state=0}address(){if(this.options.noServer)throw Error(`The server is operating in "noServer" mode`);return this._server?this._server.address():null}close(cb){if(this._state===2){cb&&this.once(`close`,()=>{cb(Error(`The server is not running`))}),process.nextTick(emitClose,this);return}if(cb&&this.once(`close`,cb),this._state!==1)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(emitClose,this);else{let server=this._server;this._removeListeners(),this._removeListeners=this._server=null,server.close(()=>{emitClose(this)})}}shouldHandle(req$1){if(this.options.path){let index=req$1.url.indexOf(`?`),pathname=index===-1?req$1.url:req$1.url.slice(0,index);if(pathname!==this.options.path)return!1}return!0}handleUpgrade(req$1,socket,head,cb){socket.on(`error`,socketOnError);let key=req$1.headers[`sec-websocket-key`],upgrade$1=req$1.headers.upgrade,version$5=+req$1.headers[`sec-websocket-version`];if(req$1.method!==`GET`){let message=`Invalid HTTP method`;abortHandshakeOrEmitwsClientError(this,req$1,socket,405,`Invalid HTTP method`);return}if(upgrade$1===void 0||upgrade$1.toLowerCase()!==`websocket`){let message=`Invalid Upgrade header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Invalid Upgrade header`);return}if(key===void 0||!keyRegex.test(key)){let message=`Missing or invalid Sec-WebSocket-Key header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Missing or invalid Sec-WebSocket-Key header`);return}if(version$5!==13&&version$5!==8){let message=`Missing or invalid Sec-WebSocket-Version header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Missing or invalid Sec-WebSocket-Version header`,{"Sec-WebSocket-Version":`13, 8`});return}if(!this.shouldHandle(req$1)){abortHandshake(socket,400);return}let secWebSocketProtocol=req$1.headers[`sec-websocket-protocol`],protocols=new Set;if(secWebSocketProtocol!==void 0)try{protocols=subprotocol.parse(secWebSocketProtocol)}catch{let message=`Invalid Sec-WebSocket-Protocol header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Invalid Sec-WebSocket-Protocol header`);return}let secWebSocketExtensions=req$1.headers[`sec-websocket-extensions`],extensions$1={};if(this.options.perMessageDeflate&&secWebSocketExtensions!==void 0){let perMessageDeflate=new PerMessageDeflate$2(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let offers=extension.parse(secWebSocketExtensions);offers[PerMessageDeflate$2.extensionName]&&(perMessageDeflate.accept(offers[PerMessageDeflate$2.extensionName]),extensions$1[PerMessageDeflate$2.extensionName]=perMessageDeflate)}catch{let message=`Invalid or unacceptable Sec-WebSocket-Extensions header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Invalid or unacceptable Sec-WebSocket-Extensions header`);return}}if(this.options.verifyClient){let info$1={origin:req$1.headers[`${version$5===8?`sec-websocket-origin`:`origin`}`],secure:!!(req$1.socket.authorized||req$1.socket.encrypted),req:req$1};if(this.options.verifyClient.length===2){this.options.verifyClient(info$1,(verified,code$1,message,headers$2)=>{if(!verified)return abortHandshake(socket,code$1||401,message,headers$2);this.completeUpgrade(extensions$1,key,protocols,req$1,socket,head,cb)});return}if(!this.options.verifyClient(info$1))return abortHandshake(socket,401)}this.completeUpgrade(extensions$1,key,protocols,req$1,socket,head,cb)}completeUpgrade(extensions$1,key,protocols,req$1,socket,head,cb){if(!socket.readable||!socket.writable)return socket.destroy();if(socket[kWebSocket])throw Error(`server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration`);if(this._state>0)return abortHandshake(socket,503);let digest=createHash$1(`sha1`).update(key+GUID).digest(`base64`),headers$2=[`HTTP/1.1 101 Switching Protocols`,`Upgrade: websocket`,`Connection: Upgrade`,`Sec-WebSocket-Accept: ${digest}`],ws$2=new this.options.WebSocket(null,void 0,this.options);if(protocols.size){let protocol=this.options.handleProtocols?this.options.handleProtocols(protocols,req$1):protocols.values().next().value;protocol&&(headers$2.push(`Sec-WebSocket-Protocol: ${protocol}`),ws$2._protocol=protocol)}if(extensions$1[PerMessageDeflate$2.extensionName]){let params=extensions$1[PerMessageDeflate$2.extensionName].params,value=extension.format({[PerMessageDeflate$2.extensionName]:[params]});headers$2.push(`Sec-WebSocket-Extensions: ${value}`),ws$2._extensions=extensions$1}this.emit(`headers`,headers$2,req$1),socket.write(headers$2.concat(`\r
|
|
3
|
+
`).join(`\r
|
|
4
|
+
`)),socket.removeListener(`error`,socketOnError),ws$2.setSocket(socket,head,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(ws$2),ws$2.on(`close`,()=>{this.clients.delete(ws$2),this._shouldEmitClose&&!this.clients.size&&process.nextTick(emitClose,this)})),cb(ws$2,req$1)}};module.exports=WebSocketServer$1;function addListeners(server,map$3){for(let event of Object.keys(map$3))server.on(event,map$3[event]);return function(){for(let event of Object.keys(map$3))server.removeListener(event,map$3[event])}}function emitClose(server){server._state=2,server.emit(`close`)}function socketOnError(){this.destroy()}function abortHandshake(socket,code$1,message,headers$2){message||=http$14.STATUS_CODES[code$1],headers$2={Connection:`close`,"Content-Type":`text/html`,"Content-Length":Buffer.byteLength(message),...headers$2},socket.once(`finish`,socket.destroy),socket.end(`HTTP/1.1 ${code$1} ${http$14.STATUS_CODES[code$1]}\r\n`+Object.keys(headers$2).map(h$4=>`${h$4}: ${headers$2[h$4]}`).join(`\r
|
|
5
|
+
`)+`\r
|
|
6
|
+
\r
|
|
7
|
+
`+message)}function abortHandshakeOrEmitwsClientError(server,req$1,socket,code$1,message,headers$2){if(server.listenerCount(`wsClientError`)){let err$1=Error(message);Error.captureStackTrace(err$1,abortHandshakeOrEmitwsClientError),server.emit(`wsClientError`,err$1,socket,req$1)}else abortHandshake(socket,code$1,message,headers$2)}})),import_stream,import_receiver,import_sender,import_websocket,import_websocket_server,wrapper_default,init_wrapper=__esmMin((()=>{import_stream=__toESM(require_stream(),1),import_receiver=__toESM(require_receiver$1(),1),import_sender=__toESM(require_sender$1(),1),import_websocket=__toESM(require_websocket$1(),1),import_websocket_server=__toESM(require_websocket_server(),1),wrapper_default=import_websocket.default})),require_error$2=__commonJSMin((exports=>{var CommanderError$3=class extends Error{constructor(exitCode,code$1,message){super(message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=code$1,this.exitCode=exitCode,this.nestedError=void 0}},InvalidArgumentError$40=class extends CommanderError$3{constructor(message){super(1,`commander.invalidArgument`,message),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};exports.CommanderError=CommanderError$3,exports.InvalidArgumentError=InvalidArgumentError$40})),require_argument=__commonJSMin((exports=>{let{InvalidArgumentError:InvalidArgumentError$39}=require_error$2();var Argument$3=class{constructor(name$7,description){switch(this.description=description||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,name$7[0]){case`<`:this.required=!0,this._name=name$7.slice(1,-1);break;case`[`:this.required=!1,this._name=name$7.slice(1,-1);break;default:this.required=!0,this._name=name$7;break}this._name.length>3&&this._name.slice(-3)===`...`&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(value,previous){return previous===this.defaultValue||!Array.isArray(previous)?[value]:previous.concat(value)}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}argParser(fn){return this.parseArg=fn,this}choices(values){return this.argChoices=values.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError$39(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._concatValue(arg,previous):arg},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function humanReadableArgName$2(arg){let nameOutput=arg.name()+(arg.variadic===!0?`...`:``);return arg.required?`<`+nameOutput+`>`:`[`+nameOutput+`]`}exports.Argument=Argument$3,exports.humanReadableArgName=humanReadableArgName$2})),require_help=__commonJSMin((exports=>{let{humanReadableArgName:humanReadableArgName$1}=require_argument();var Help$3=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(contextOptions){this.helpWidth=this.helpWidth??contextOptions.helpWidth??80}visibleCommands(cmd){let visibleCommands=cmd.commands.filter(cmd$1=>!cmd$1._hidden),helpCommand=cmd._getHelpCommand();return helpCommand&&!helpCommand._hidden&&visibleCommands.push(helpCommand),this.sortSubcommands&&visibleCommands.sort((a$3,b$4)=>a$3.name().localeCompare(b$4.name())),visibleCommands}compareOptions(a$3,b$4){let getSortKey=option$1=>option$1.short?option$1.short.replace(/^-/,``):option$1.long.replace(/^--/,``);return getSortKey(a$3).localeCompare(getSortKey(b$4))}visibleOptions(cmd){let visibleOptions=cmd.options.filter(option$1=>!option$1.hidden),helpOption=cmd._getHelpOption();if(helpOption&&!helpOption.hidden){let removeShort=helpOption.short&&cmd._findOption(helpOption.short),removeLong=helpOption.long&&cmd._findOption(helpOption.long);!removeShort&&!removeLong?visibleOptions.push(helpOption):helpOption.long&&!removeLong?visibleOptions.push(cmd.createOption(helpOption.long,helpOption.description)):helpOption.short&&!removeShort&&visibleOptions.push(cmd.createOption(helpOption.short,helpOption.description))}return this.sortOptions&&visibleOptions.sort(this.compareOptions),visibleOptions}visibleGlobalOptions(cmd){if(!this.showGlobalOptions)return[];let globalOptions=[];for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent){let visibleOptions=ancestorCmd.options.filter(option$1=>!option$1.hidden);globalOptions.push(...visibleOptions)}return this.sortOptions&&globalOptions.sort(this.compareOptions),globalOptions}visibleArguments(cmd){return cmd._argsDescription&&cmd.registeredArguments.forEach(argument=>{argument.description=argument.description||cmd._argsDescription[argument.name()]||``}),cmd.registeredArguments.find(argument=>argument.description)?cmd.registeredArguments:[]}subcommandTerm(cmd){let args=cmd.registeredArguments.map(arg=>humanReadableArgName$1(arg)).join(` `);return cmd._name+(cmd._aliases[0]?`|`+cmd._aliases[0]:``)+(cmd.options.length?` [options]`:``)+(args?` `+args:``)}optionTerm(option$1){return option$1.flags}argumentTerm(argument){return argument.name()}longestSubcommandTermLength(cmd,helper){return helper.visibleCommands(cmd).reduce((max$2,command)=>Math.max(max$2,this.displayWidth(helper.styleSubcommandTerm(helper.subcommandTerm(command)))),0)}longestOptionTermLength(cmd,helper){return helper.visibleOptions(cmd).reduce((max$2,option$1)=>Math.max(max$2,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option$1)))),0)}longestGlobalOptionTermLength(cmd,helper){return helper.visibleGlobalOptions(cmd).reduce((max$2,option$1)=>Math.max(max$2,this.displayWidth(helper.styleOptionTerm(helper.optionTerm(option$1)))),0)}longestArgumentTermLength(cmd,helper){return helper.visibleArguments(cmd).reduce((max$2,argument)=>Math.max(max$2,this.displayWidth(helper.styleArgumentTerm(helper.argumentTerm(argument)))),0)}commandUsage(cmd){let cmdName=cmd._name;cmd._aliases[0]&&(cmdName=cmdName+`|`+cmd._aliases[0]);let ancestorCmdNames=``;for(let ancestorCmd=cmd.parent;ancestorCmd;ancestorCmd=ancestorCmd.parent)ancestorCmdNames=ancestorCmd.name()+` `+ancestorCmdNames;return ancestorCmdNames+cmdName+` `+cmd.usage()}commandDescription(cmd){return cmd.description()}subcommandDescription(cmd){return cmd.summary()||cmd.description()}optionDescription(option$1){let extraInfo=[];if(option$1.argChoices&&extraInfo.push(`choices: ${option$1.argChoices.map(choice$1=>JSON.stringify(choice$1)).join(`, `)}`),option$1.defaultValue!==void 0){let showDefault=option$1.required||option$1.optional||option$1.isBoolean()&&typeof option$1.defaultValue==`boolean`;showDefault&&extraInfo.push(`default: ${option$1.defaultValueDescription||JSON.stringify(option$1.defaultValue)}`)}if(option$1.presetArg!==void 0&&option$1.optional&&extraInfo.push(`preset: ${JSON.stringify(option$1.presetArg)}`),option$1.envVar!==void 0&&extraInfo.push(`env: ${option$1.envVar}`),extraInfo.length>0){let extraDescription=`(${extraInfo.join(`, `)})`;return option$1.description?`${option$1.description} ${extraDescription}`:extraDescription}return option$1.description}argumentDescription(argument){let extraInfo=[];if(argument.argChoices&&extraInfo.push(`choices: ${argument.argChoices.map(choice$1=>JSON.stringify(choice$1)).join(`, `)}`),argument.defaultValue!==void 0&&extraInfo.push(`default: ${argument.defaultValueDescription||JSON.stringify(argument.defaultValue)}`),extraInfo.length>0){let extraDescription=`(${extraInfo.join(`, `)})`;return argument.description?`${argument.description} ${extraDescription}`:extraDescription}return argument.description}formatItemList(heading$1,items,helper){return items.length===0?[]:[helper.styleTitle(heading$1),...items,``]}groupItems(unsortedItems,visibleItems,getGroup){let result=new Map;return unsortedItems.forEach(item=>{let group=getGroup(item);result.has(group)||result.set(group,[])}),visibleItems.forEach(item=>{let group=getGroup(item);result.has(group)||result.set(group,[]),result.get(group).push(item)}),result}formatHelp(cmd,helper){let termWidth=helper.padWidth(cmd,helper),helpWidth=helper.helpWidth??80;function callFormatItem(term,description){return helper.formatItem(term,termWidth,description,helper)}let output=[`${helper.styleTitle(`Usage:`)} ${helper.styleUsage(helper.commandUsage(cmd))}`,``],commandDescription=helper.commandDescription(cmd);commandDescription.length>0&&(output=output.concat([helper.boxWrap(helper.styleCommandDescription(commandDescription),helpWidth),``]));let argumentList=helper.visibleArguments(cmd).map(argument=>callFormatItem(helper.styleArgumentTerm(helper.argumentTerm(argument)),helper.styleArgumentDescription(helper.argumentDescription(argument))));output=output.concat(this.formatItemList(`Arguments:`,argumentList,helper));let optionGroups=this.groupItems(cmd.options,helper.visibleOptions(cmd),option$1=>option$1.helpGroupHeading??`Options:`);if(optionGroups.forEach((options$1,group)=>{let optionList=options$1.map(option$1=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option$1)),helper.styleOptionDescription(helper.optionDescription(option$1))));output=output.concat(this.formatItemList(group,optionList,helper))}),helper.showGlobalOptions){let globalOptionList=helper.visibleGlobalOptions(cmd).map(option$1=>callFormatItem(helper.styleOptionTerm(helper.optionTerm(option$1)),helper.styleOptionDescription(helper.optionDescription(option$1))));output=output.concat(this.formatItemList(`Global Options:`,globalOptionList,helper))}let commandGroups=this.groupItems(cmd.commands,helper.visibleCommands(cmd),sub=>sub.helpGroup()||`Commands:`);return commandGroups.forEach((commands,group)=>{let commandList=commands.map(sub=>callFormatItem(helper.styleSubcommandTerm(helper.subcommandTerm(sub)),helper.styleSubcommandDescription(helper.subcommandDescription(sub))));output=output.concat(this.formatItemList(group,commandList,helper))}),output.join(`
|
|
3
8
|
`)}displayWidth(str$1){return stripColor$1(str$1).length}styleTitle(str$1){return str$1}styleUsage(str$1){return str$1.split(` `).map(word=>word===`[options]`?this.styleOptionText(word):word===`[command]`?this.styleSubcommandText(word):word[0]===`[`||word[0]===`<`?this.styleArgumentText(word):this.styleCommandText(word)).join(` `)}styleCommandDescription(str$1){return this.styleDescriptionText(str$1)}styleOptionDescription(str$1){return this.styleDescriptionText(str$1)}styleSubcommandDescription(str$1){return this.styleDescriptionText(str$1)}styleArgumentDescription(str$1){return this.styleDescriptionText(str$1)}styleDescriptionText(str$1){return str$1}styleOptionTerm(str$1){return this.styleOptionText(str$1)}styleSubcommandTerm(str$1){return str$1.split(` `).map(word=>word===`[options]`?this.styleOptionText(word):word[0]===`[`||word[0]===`<`?this.styleArgumentText(word):this.styleSubcommandText(word)).join(` `)}styleArgumentTerm(str$1){return this.styleArgumentText(str$1)}styleOptionText(str$1){return str$1}styleArgumentText(str$1){return str$1}styleSubcommandText(str$1){return str$1}styleCommandText(str$1){return str$1}padWidth(cmd,helper){return Math.max(helper.longestOptionTermLength(cmd,helper),helper.longestGlobalOptionTermLength(cmd,helper),helper.longestSubcommandTermLength(cmd,helper),helper.longestArgumentTermLength(cmd,helper))}preformatted(str$1){return/\n[^\S\r\n]/.test(str$1)}formatItem(term,termWidth,description,helper){let itemIndent=2,itemIndentStr=` `.repeat(2);if(!description)return itemIndentStr+term;let paddedTerm=term.padEnd(termWidth+term.length-helper.displayWidth(term)),spacerWidth=2,helpWidth=this.helpWidth??80,remainingWidth=helpWidth-termWidth-2-2,formattedDescription;if(remainingWidth<this.minWidthToWrap||helper.preformatted(description))formattedDescription=description;else{let wrappedDescription=helper.boxWrap(description,remainingWidth);formattedDescription=wrappedDescription.replace(/\n/g,`
|
|
4
9
|
`+` `.repeat(termWidth+2))}return itemIndentStr+paddedTerm+` `.repeat(2)+formattedDescription.replace(/\n/g,`\n${itemIndentStr}`)}boxWrap(str$1,width){if(width<this.minWidthToWrap)return str$1;let rawLines=str$1.split(/\r\n|\n/),chunkPattern=/[\s]*[^\s]+/g,wrappedLines=[];return rawLines.forEach(line$1=>{let chunks=line$1.match(chunkPattern);if(chunks===null){wrappedLines.push(``);return}let sumChunks=[chunks.shift()],sumWidth=this.displayWidth(sumChunks[0]);chunks.forEach(chunk$1=>{let visibleWidth=this.displayWidth(chunk$1);if(sumWidth+visibleWidth<=width){sumChunks.push(chunk$1),sumWidth+=visibleWidth;return}wrappedLines.push(sumChunks.join(``));let nextChunk=chunk$1.trimStart();sumChunks=[nextChunk],sumWidth=this.displayWidth(nextChunk)}),wrappedLines.push(sumChunks.join(``))}),wrappedLines.join(`
|
|
5
10
|
`)}};function stripColor$1(str$1){let sgrPattern=/\x1b\[\d*(;\d*)*m/g;return str$1.replace(sgrPattern,``)}exports.Help=Help$3,exports.stripColor=stripColor$1})),require_option=__commonJSMin((exports=>{let{InvalidArgumentError:InvalidArgumentError$38}=require_error$2();var Option$3=class{constructor(flags,description){this.flags=flags,this.description=description||``,this.required=flags.includes(`<`),this.optional=flags.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(flags),this.mandatory=!1;let optionFlags=splitOptionFlags(flags);this.short=optionFlags.shortFlag,this.long=optionFlags.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(value,description){return this.defaultValue=value,this.defaultValueDescription=description,this}preset(arg){return this.presetArg=arg,this}conflicts(names$1){return this.conflictsWith=this.conflictsWith.concat(names$1),this}implies(impliedOptionValues){let newImplied=impliedOptionValues;return typeof impliedOptionValues==`string`&&(newImplied={[impliedOptionValues]:!0}),this.implied=Object.assign(this.implied||{},newImplied),this}env(name$7){return this.envVar=name$7,this}argParser(fn){return this.parseArg=fn,this}makeOptionMandatory(mandatory=!0){return this.mandatory=!!mandatory,this}hideHelp(hide=!0){return this.hidden=!!hide,this}_concatValue(value,previous){return previous===this.defaultValue||!Array.isArray(previous)?[value]:previous.concat(value)}choices(values){return this.argChoices=values.slice(),this.parseArg=(arg,previous)=>{if(!this.argChoices.includes(arg))throw new InvalidArgumentError$38(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._concatValue(arg,previous):arg},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?camelcase(this.name().replace(/^no-/,``)):camelcase(this.name())}helpGroup(heading$1){return this.helpGroupHeading=heading$1,this}is(arg){return this.short===arg||this.long===arg}isBoolean(){return!this.required&&!this.optional&&!this.negate}},DualOptions$1=class{constructor(options$1){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,options$1.forEach(option$1=>{option$1.negate?this.negativeOptions.set(option$1.attributeName(),option$1):this.positiveOptions.set(option$1.attributeName(),option$1)}),this.negativeOptions.forEach((value,key)=>{this.positiveOptions.has(key)&&this.dualOptions.add(key)})}valueFromOption(value,option$1){let optionKey=option$1.attributeName();if(!this.dualOptions.has(optionKey))return!0;let preset=this.negativeOptions.get(optionKey).presetArg,negativeValue=preset===void 0?!1:preset;return option$1.negate===(negativeValue===value)}};function camelcase(str$1){return str$1.split(`-`).reduce((str$2,word)=>str$2+word[0].toUpperCase()+word.slice(1))}function splitOptionFlags(flags){let shortFlag,longFlag,shortFlagExp=/^-[^-]$/,longFlagExp=/^--[^-]/,flagParts=flags.split(/[ |,]+/).concat(`guard`);if(shortFlagExp.test(flagParts[0])&&(shortFlag=flagParts.shift()),longFlagExp.test(flagParts[0])&&(longFlag=flagParts.shift()),!shortFlag&&shortFlagExp.test(flagParts[0])&&(shortFlag=flagParts.shift()),!shortFlag&&longFlagExp.test(flagParts[0])&&(shortFlag=longFlag,longFlag=flagParts.shift()),flagParts[0].startsWith(`-`)){let unsupportedFlag=flagParts[0],baseError=`option creation failed due to '${unsupportedFlag}' in option flags '${flags}'`;throw/^-[^-][^-]/.test(unsupportedFlag)?Error(`${baseError}
|
|
@@ -8,7 +13,7 @@ import{createRequire}from"node:module";import EventEmitter,{EventEmitter as Even
|
|
|
8
13
|
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`):shortFlagExp.test(unsupportedFlag)?Error(`${baseError}
|
|
9
14
|
- too many short flags`):longFlagExp.test(unsupportedFlag)?Error(`${baseError}
|
|
10
15
|
- too many long flags`):Error(`${baseError}
|
|
11
|
-
- unrecognised flag format`)}if(shortFlag===void 0&&longFlag===void 0)throw Error(`option creation failed due to no flags found in '${flags}'.`);return{shortFlag,longFlag}}exports.Option=Option$3,exports.DualOptions=DualOptions$1})),require_suggestSimilar=__commonJSMin((exports=>{let maxDistance=3;function editDistance(a$3,b$4){if(Math.abs(a$3.length-b$4.length)>3)return Math.max(a$3.length,b$4.length);let d$5=[];for(let i$5=0;i$5<=a$3.length;i$5++)d$5[i$5]=[i$5];for(let j$2=0;j$2<=b$4.length;j$2++)d$5[0][j$2]=j$2;for(let j$2=1;j$2<=b$4.length;j$2++)for(let i$5=1;i$5<=a$3.length;i$5++){let cost=1;cost=a$3[i$5-1]===b$4[j$2-1]?0:1,d$5[i$5][j$2]=Math.min(d$5[i$5-1][j$2]+1,d$5[i$5][j$2-1]+1,d$5[i$5-1][j$2-1]+cost),i$5>1&&j$2>1&&a$3[i$5-1]===b$4[j$2-2]&&a$3[i$5-2]===b$4[j$2-1]&&(d$5[i$5][j$2]=Math.min(d$5[i$5][j$2],d$5[i$5-2][j$2-2]+1))}return d$5[a$3.length][b$4.length]}function suggestSimilar$1(word,candidates){if(!candidates||candidates.length===0)return``;candidates=Array.from(new Set(candidates));let searchingOptions=word.startsWith(`--`);searchingOptions&&(word=word.slice(2),candidates=candidates.map(candidate=>candidate.slice(2)));let similar=[],bestDistance=3,minSimilarity=.4;return candidates.forEach(candidate=>{if(candidate.length<=1)return;let distance=editDistance(word,candidate),length=Math.max(word.length,candidate.length),similarity=(length-distance)/length;similarity>.4&&(distance<bestDistance?(bestDistance=distance,similar=[candidate]):distance===bestDistance&&similar.push(candidate))}),similar.sort((a$3,b$4)=>a$3.localeCompare(b$4)),searchingOptions&&(similar=similar.map(candidate=>`--${candidate}`)),similar.length>1?`\n(Did you mean one of ${similar.join(`, `)}?)`:similar.length===1?`\n(Did you mean ${similar[0]}?)`:``}exports.suggestSimilar=suggestSimilar$1})),require_command=__commonJSMin((exports=>{let EventEmitter$
|
|
16
|
+
- unrecognised flag format`)}if(shortFlag===void 0&&longFlag===void 0)throw Error(`option creation failed due to no flags found in '${flags}'.`);return{shortFlag,longFlag}}exports.Option=Option$3,exports.DualOptions=DualOptions$1})),require_suggestSimilar=__commonJSMin((exports=>{let maxDistance=3;function editDistance(a$3,b$4){if(Math.abs(a$3.length-b$4.length)>3)return Math.max(a$3.length,b$4.length);let d$5=[];for(let i$5=0;i$5<=a$3.length;i$5++)d$5[i$5]=[i$5];for(let j$2=0;j$2<=b$4.length;j$2++)d$5[0][j$2]=j$2;for(let j$2=1;j$2<=b$4.length;j$2++)for(let i$5=1;i$5<=a$3.length;i$5++){let cost=1;cost=a$3[i$5-1]===b$4[j$2-1]?0:1,d$5[i$5][j$2]=Math.min(d$5[i$5-1][j$2]+1,d$5[i$5][j$2-1]+1,d$5[i$5-1][j$2-1]+cost),i$5>1&&j$2>1&&a$3[i$5-1]===b$4[j$2-2]&&a$3[i$5-2]===b$4[j$2-1]&&(d$5[i$5][j$2]=Math.min(d$5[i$5][j$2],d$5[i$5-2][j$2-2]+1))}return d$5[a$3.length][b$4.length]}function suggestSimilar$1(word,candidates){if(!candidates||candidates.length===0)return``;candidates=Array.from(new Set(candidates));let searchingOptions=word.startsWith(`--`);searchingOptions&&(word=word.slice(2),candidates=candidates.map(candidate=>candidate.slice(2)));let similar=[],bestDistance=3,minSimilarity=.4;return candidates.forEach(candidate=>{if(candidate.length<=1)return;let distance=editDistance(word,candidate),length=Math.max(word.length,candidate.length),similarity=(length-distance)/length;similarity>.4&&(distance<bestDistance?(bestDistance=distance,similar=[candidate]):distance===bestDistance&&similar.push(candidate))}),similar.sort((a$3,b$4)=>a$3.localeCompare(b$4)),searchingOptions&&(similar=similar.map(candidate=>`--${candidate}`)),similar.length>1?`\n(Did you mean one of ${similar.join(`, `)}?)`:similar.length===1?`\n(Did you mean ${similar[0]}?)`:``}exports.suggestSimilar=suggestSimilar$1})),require_command=__commonJSMin((exports=>{let EventEmitter$12=__require$1(`node:events`).EventEmitter,childProcess$2=__require$1(`node:child_process`),path$37=__require$1(`node:path`),fs$44=__require$1(`node:fs`),process$9=__require$1(`node:process`),{Argument:Argument$2,humanReadableArgName}=require_argument(),{CommanderError:CommanderError$2}=require_error$2(),{Help:Help$2,stripColor}=require_help(),{Option:Option$2,DualOptions}=require_option(),{suggestSimilar}=require_suggestSimilar();var Command$3=class Command$3 extends EventEmitter$12{constructor(name$7){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=name$7||``,this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description=``,this._summary=``,this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:str$1=>process$9.stdout.write(str$1),writeErr:str$1=>process$9.stderr.write(str$1),outputError:(str$1,write$2)=>write$2(str$1),getOutHelpWidth:()=>process$9.stdout.isTTY?process$9.stdout.columns:void 0,getErrHelpWidth:()=>process$9.stderr.isTTY?process$9.stderr.columns:void 0,getOutHasColors:()=>useColor()??(process$9.stdout.isTTY&&process$9.stdout.hasColors?.()),getErrHasColors:()=>useColor()??(process$9.stderr.isTTY&&process$9.stderr.hasColors?.()),stripColor:str$1=>stripColor(str$1)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(sourceCommand){return this._outputConfiguration=sourceCommand._outputConfiguration,this._helpOption=sourceCommand._helpOption,this._helpCommand=sourceCommand._helpCommand,this._helpConfiguration=sourceCommand._helpConfiguration,this._exitCallback=sourceCommand._exitCallback,this._storeOptionsAsProperties=sourceCommand._storeOptionsAsProperties,this._combineFlagAndOptionalValue=sourceCommand._combineFlagAndOptionalValue,this._allowExcessArguments=sourceCommand._allowExcessArguments,this._enablePositionalOptions=sourceCommand._enablePositionalOptions,this._showHelpAfterError=sourceCommand._showHelpAfterError,this._showSuggestionAfterError=sourceCommand._showSuggestionAfterError,this}_getCommandAndAncestors(){let result=[];for(let command=this;command;command=command.parent)result.push(command);return result}command(nameAndArgs,actionOptsOrExecDesc,execOpts){let desc=actionOptsOrExecDesc,opts=execOpts;typeof desc==`object`&&desc&&(opts=desc,desc=null),opts||={};let[,name$7,args]=nameAndArgs.match(/([^ ]+) *(.*)/),cmd=this.createCommand(name$7);return desc&&(cmd.description(desc),cmd._executableHandler=!0),opts.isDefault&&(this._defaultCommandName=cmd._name),cmd._hidden=!!(opts.noHelp||opts.hidden),cmd._executableFile=opts.executableFile||null,args&&cmd.arguments(args),this._registerCommand(cmd),cmd.parent=this,cmd.copyInheritedSettings(this),desc?this:cmd}createCommand(name$7){return new Command$3(name$7)}createHelp(){return Object.assign(new Help$2,this.configureHelp())}configureHelp(configuration){return configuration===void 0?this._helpConfiguration:(this._helpConfiguration=configuration,this)}configureOutput(configuration){return configuration===void 0?this._outputConfiguration:(this._outputConfiguration=Object.assign({},this._outputConfiguration,configuration),this)}showHelpAfterError(displayHelp=!0){return typeof displayHelp!=`string`&&(displayHelp=!!displayHelp),this._showHelpAfterError=displayHelp,this}showSuggestionAfterError(displaySuggestion=!0){return this._showSuggestionAfterError=!!displaySuggestion,this}addCommand(cmd,opts){if(!cmd._name)throw Error(`Command passed to .addCommand() must have a name
|
|
12
17
|
- specify the name in Command constructor or using .name()`);return opts||={},opts.isDefault&&(this._defaultCommandName=cmd._name),(opts.noHelp||opts.hidden)&&(cmd._hidden=!0),this._registerCommand(cmd),cmd.parent=this,cmd._checkForBrokenPassThrough(),this}createArgument(name$7,description){return new Argument$2(name$7,description)}argument(name$7,description,parseArg,defaultValue){let argument=this.createArgument(name$7,description);return typeof parseArg==`function`?argument.default(defaultValue).argParser(parseArg):argument.default(parseArg),this.addArgument(argument),this}arguments(names$1){return names$1.trim().split(/ +/).forEach(detail=>{this.argument(detail)}),this}addArgument(argument){let previousArgument=this.registeredArguments.slice(-1)[0];if(previousArgument&&previousArgument.variadic)throw Error(`only the last argument can be variadic '${previousArgument.name()}'`);if(argument.required&&argument.defaultValue!==void 0&&argument.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${argument.name()}'`);return this.registeredArguments.push(argument),this}helpCommand(enableOrNameAndArgs,description){if(typeof enableOrNameAndArgs==`boolean`)return this._addImplicitHelpCommand=enableOrNameAndArgs,enableOrNameAndArgs&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;let nameAndArgs=enableOrNameAndArgs??`help [command]`,[,helpName,helpArgs]=nameAndArgs.match(/([^ ]+) *(.*)/),helpDescription=description??`display help for command`,helpCommand=this.createCommand(helpName);return helpCommand.helpOption(!1),helpArgs&&helpCommand.arguments(helpArgs),helpDescription&&helpCommand.description(helpDescription),this._addImplicitHelpCommand=!0,this._helpCommand=helpCommand,(enableOrNameAndArgs||description)&&this._initCommandGroup(helpCommand),this}addHelpCommand(helpCommand,deprecatedDescription){return typeof helpCommand==`object`?(this._addImplicitHelpCommand=!0,this._helpCommand=helpCommand,this._initCommandGroup(helpCommand),this):(this.helpCommand(helpCommand,deprecatedDescription),this)}_getHelpCommand(){let hasImplicitHelpCommand=this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand(`help`));return hasImplicitHelpCommand?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(event,listener){let allowedValues=[`preSubcommand`,`preAction`,`postAction`];if(!allowedValues.includes(event))throw Error(`Unexpected value for event passed to hook : '${event}'.
|
|
13
18
|
Expecting one of '${allowedValues.join(`', '`)}'`);return this._lifeCycleHooks[event]?this._lifeCycleHooks[event].push(listener):this._lifeCycleHooks[event]=[listener],this}exitOverride(fn){return fn?this._exitCallback=fn:this._exitCallback=err$1=>{if(err$1.code!==`commander.executeSubCommandAsync`)throw err$1},this}_exit(exitCode,code$1,message){this._exitCallback&&this._exitCallback(new CommanderError$2(exitCode,code$1,message)),process$9.exit(exitCode)}action(fn){let listener=args=>{let expectedArgsCount=this.registeredArguments.length,actionArgs=args.slice(0,expectedArgsCount);return this._storeOptionsAsProperties?actionArgs[expectedArgsCount]=this:actionArgs[expectedArgsCount]=this.opts(),actionArgs.push(this),fn.apply(this,actionArgs)};return this._actionHandler=listener,this}createOption(flags,description){return new Option$2(flags,description)}_callParseArg(target,value,previous,invalidArgumentMessage){try{return target.parseArg(value,previous)}catch(err$1){if(err$1.code===`commander.invalidArgument`){let message=`${invalidArgumentMessage} ${err$1.message}`;this.error(message,{exitCode:err$1.exitCode,code:err$1.code})}throw err$1}}_registerOption(option$1){let matchingOption=option$1.short&&this._findOption(option$1.short)||option$1.long&&this._findOption(option$1.long);if(matchingOption){let matchingFlag=option$1.long&&this._findOption(option$1.long)?option$1.long:option$1.short;throw Error(`Cannot add option '${option$1.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${matchingFlag}'
|
|
14
19
|
- already used by option '${matchingOption.flags}'`)}this._initOptionGroup(option$1),this.options.push(option$1)}_registerCommand(command){let knownBy=cmd=>[cmd.name()].concat(cmd.aliases()),alreadyUsed=knownBy(command).find(name$7=>this._findCommand(name$7));if(alreadyUsed){let existingCmd=knownBy(this._findCommand(alreadyUsed)).join(`|`),newCmd=knownBy(command).join(`|`);throw Error(`cannot add command '${newCmd}' as already have command '${existingCmd}'`)}this._initCommandGroup(command),this.commands.push(command)}addOption(option$1){this._registerOption(option$1);let oname=option$1.name(),name$7=option$1.attributeName();if(option$1.negate){let positiveLongFlag=option$1.long.replace(/^--no-/,`--`);this._findOption(positiveLongFlag)||this.setOptionValueWithSource(name$7,option$1.defaultValue===void 0?!0:option$1.defaultValue,`default`)}else option$1.defaultValue!==void 0&&this.setOptionValueWithSource(name$7,option$1.defaultValue,`default`);let handleOptionValue=(val,invalidValueMessage,valueSource)=>{val==null&&option$1.presetArg!==void 0&&(val=option$1.presetArg);let oldValue=this.getOptionValue(name$7);val!==null&&option$1.parseArg?val=this._callParseArg(option$1,val,oldValue,invalidValueMessage):val!==null&&option$1.variadic&&(val=option$1._concatValue(val,oldValue)),val??=option$1.negate?!1:option$1.isBoolean()||option$1.optional?!0:``,this.setOptionValueWithSource(name$7,val,valueSource)};return this.on(`option:`+oname,val=>{let invalidValueMessage=`error: option '${option$1.flags}' argument '${val}' is invalid.`;handleOptionValue(val,invalidValueMessage,`cli`)}),option$1.envVar&&this.on(`optionEnv:`+oname,val=>{let invalidValueMessage=`error: option '${option$1.flags}' value '${val}' from env '${option$1.envVar}' is invalid.`;handleOptionValue(val,invalidValueMessage,`env`)}),this}_optionEx(config$3,flags,description,fn,defaultValue){if(typeof flags==`object`&&flags instanceof Option$2)throw Error(`To add an Option object use addOption() instead of option() or requiredOption()`);let option$1=this.createOption(flags,description);if(option$1.makeOptionMandatory(!!config$3.mandatory),typeof fn==`function`)option$1.default(defaultValue).argParser(fn);else if(fn instanceof RegExp){let regex$3=fn;fn=(val,def$31)=>{let m$3=regex$3.exec(val);return m$3?m$3[0]:def$31},option$1.default(defaultValue).argParser(fn)}else option$1.default(fn);return this.addOption(option$1)}option(flags,description,parseArg,defaultValue){return this._optionEx({},flags,description,parseArg,defaultValue)}requiredOption(flags,description,parseArg,defaultValue){return this._optionEx({mandatory:!0},flags,description,parseArg,defaultValue)}combineFlagAndOptionalValue(combine=!0){return this._combineFlagAndOptionalValue=!!combine,this}allowUnknownOption(allowUnknown=!0){return this._allowUnknownOption=!!allowUnknown,this}allowExcessArguments(allowExcess=!0){return this._allowExcessArguments=!!allowExcess,this}enablePositionalOptions(positional=!0){return this._enablePositionalOptions=!!positional,this}passThroughOptions(passThrough=!0){return this._passThroughOptions=!!passThrough,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(storeAsProperties=!0){if(this.options.length)throw Error(`call .storeOptionsAsProperties() before adding options`);if(Object.keys(this._optionValues).length)throw Error(`call .storeOptionsAsProperties() before setting option values`);return this._storeOptionsAsProperties=!!storeAsProperties,this}getOptionValue(key){return this._storeOptionsAsProperties?this[key]:this._optionValues[key]}setOptionValue(key,value){return this.setOptionValueWithSource(key,value,void 0)}setOptionValueWithSource(key,value,source$39){return this._storeOptionsAsProperties?this[key]=value:this._optionValues[key]=value,this._optionValueSources[key]=source$39,this}getOptionValueSource(key){return this._optionValueSources[key]}getOptionValueSourceWithGlobals(key){let source$39;return this._getCommandAndAncestors().forEach(cmd=>{cmd.getOptionValueSource(key)!==void 0&&(source$39=cmd.getOptionValueSource(key))}),source$39}_prepareUserArgs(argv$1,parseOptions){if(argv$1!==void 0&&!Array.isArray(argv$1))throw Error(`first parameter to parse must be array or undefined`);if(parseOptions||={},argv$1===void 0&&parseOptions.from===void 0){process$9.versions?.electron&&(parseOptions.from=`electron`);let execArgv$1=process$9.execArgv??[];(execArgv$1.includes(`-e`)||execArgv$1.includes(`--eval`)||execArgv$1.includes(`-p`)||execArgv$1.includes(`--print`))&&(parseOptions.from=`eval`)}argv$1===void 0&&(argv$1=process$9.argv),this.rawArgs=argv$1.slice();let userArgs;switch(parseOptions.from){case void 0:case`node`:this._scriptPath=argv$1[1],userArgs=argv$1.slice(2);break;case`electron`:process$9.defaultApp?(this._scriptPath=argv$1[1],userArgs=argv$1.slice(2)):userArgs=argv$1.slice(1);break;case`user`:userArgs=argv$1.slice(0);break;case`eval`:userArgs=argv$1.slice(1);break;default:throw Error(`unexpected parse option { from: '${parseOptions.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||`program`,userArgs}parse(argv$1,parseOptions){this._prepareForParse();let userArgs=this._prepareUserArgs(argv$1,parseOptions);return this._parseCommand([],userArgs),this}async parseAsync(argv$1,parseOptions){this._prepareForParse();let userArgs=this._prepareUserArgs(argv$1,parseOptions);return await this._parseCommand([],userArgs),this}_prepareForParse(){this._savedState===null?this.saveStateBeforeParse():this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
|
|
@@ -17,12 +22,7 @@ Expecting one of '${allowedValues.join(`', '`)}'`);return this._lifeCycleHooks[e
|
|
|
17
22
|
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
18
23
|
- ${executableDirMessage}`;throw Error(executableMissing)}_executeSubCommand(subcommand,args){args=args.slice();let launchWithNode=!1,sourceExt=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function findFile(baseDir,baseName){let localBin=path$37.resolve(baseDir,baseName);if(fs$44.existsSync(localBin))return localBin;if(sourceExt.includes(path$37.extname(baseName)))return;let foundExt=sourceExt.find(ext$1=>fs$44.existsSync(`${localBin}${ext$1}`));if(foundExt)return`${localBin}${foundExt}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let executableFile=subcommand._executableFile||`${this._name}-${subcommand._name}`,executableDir=this._executableDir||``;if(this._scriptPath){let resolvedScriptPath;try{resolvedScriptPath=fs$44.realpathSync(this._scriptPath)}catch{resolvedScriptPath=this._scriptPath}executableDir=path$37.resolve(path$37.dirname(resolvedScriptPath),executableDir)}if(executableDir){let localFile=findFile(executableDir,executableFile);if(!localFile&&!subcommand._executableFile&&this._scriptPath){let legacyName=path$37.basename(this._scriptPath,path$37.extname(this._scriptPath));legacyName!==this._name&&(localFile=findFile(executableDir,`${legacyName}-${subcommand._name}`))}executableFile=localFile||executableFile}launchWithNode=sourceExt.includes(path$37.extname(executableFile));let proc$1;if(process$9.platform===`win32`?(this._checkForMissingExecutable(executableFile,executableDir,subcommand._name),args.unshift(executableFile),args=incrementNodeInspectorPort(process$9.execArgv).concat(args),proc$1=childProcess$2.spawn(process$9.execPath,args,{stdio:`inherit`})):launchWithNode?(args.unshift(executableFile),args=incrementNodeInspectorPort(process$9.execArgv).concat(args),proc$1=childProcess$2.spawn(process$9.argv[0],args,{stdio:`inherit`})):proc$1=childProcess$2.spawn(executableFile,args,{stdio:`inherit`}),!proc$1.killed){let signals$2=[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`];signals$2.forEach(signal=>{process$9.on(signal,()=>{proc$1.killed===!1&&proc$1.exitCode===null&&proc$1.kill(signal)})})}let exitCallback=this._exitCallback;proc$1.on(`close`,code$1=>{code$1??=1,exitCallback?exitCallback(new CommanderError$2(code$1,`commander.executeSubCommandAsync`,`(close)`)):process$9.exit(code$1)}),proc$1.on(`error`,err$1=>{if(err$1.code===`ENOENT`)this._checkForMissingExecutable(executableFile,executableDir,subcommand._name);else if(err$1.code===`EACCES`)throw Error(`'${executableFile}' not executable`);if(!exitCallback)process$9.exit(1);else{let wrappedError=new CommanderError$2(1,`commander.executeSubCommandAsync`,`(error)`);wrappedError.nestedError=err$1,exitCallback(wrappedError)}}),this.runningCommand=proc$1}_dispatchSubcommand(commandName,operands,unknown$2){let subCommand=this._findCommand(commandName);subCommand||this.help({error:!0}),subCommand._prepareForParse();let promiseChain;return promiseChain=this._chainOrCallSubCommandHook(promiseChain,subCommand,`preSubcommand`),promiseChain=this._chainOrCall(promiseChain,()=>{if(subCommand._executableHandler)this._executeSubCommand(subCommand,operands.concat(unknown$2));else return subCommand._parseCommand(operands,unknown$2)}),promiseChain}_dispatchHelpCommand(subcommandName){subcommandName||this.help();let subCommand=this._findCommand(subcommandName);return subCommand&&!subCommand._executableHandler&&subCommand.help(),this._dispatchSubcommand(subcommandName,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((arg,i$5)=>{arg.required&&this.args[i$5]==null&&this.missingArgument(arg.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let myParseArg=(argument,value,previous)=>{let parsedValue=value;if(value!==null&&argument.parseArg){let invalidValueMessage=`error: command-argument value '${value}' is invalid for argument '${argument.name()}'.`;parsedValue=this._callParseArg(argument,value,previous,invalidValueMessage)}return parsedValue};this._checkNumberOfArguments();let processedArgs=[];this.registeredArguments.forEach((declaredArg,index)=>{let value=declaredArg.defaultValue;declaredArg.variadic?index<this.args.length?(value=this.args.slice(index),declaredArg.parseArg&&(value=value.reduce((processed,v$2)=>myParseArg(declaredArg,v$2,processed),declaredArg.defaultValue))):value===void 0&&(value=[]):index<this.args.length&&(value=this.args[index],declaredArg.parseArg&&(value=myParseArg(declaredArg,value,declaredArg.defaultValue))),processedArgs[index]=value}),this.processedArgs=processedArgs}_chainOrCall(promise$2,fn){return promise$2&&promise$2.then&&typeof promise$2.then==`function`?promise$2.then(()=>fn()):fn()}_chainOrCallHooks(promise$2,event){let result=promise$2,hooks=[];return this._getCommandAndAncestors().reverse().filter(cmd=>cmd._lifeCycleHooks[event]!==void 0).forEach(hookedCommand=>{hookedCommand._lifeCycleHooks[event].forEach(callback$1=>{hooks.push({hookedCommand,callback:callback$1})})}),event===`postAction`&&hooks.reverse(),hooks.forEach(hookDetail=>{result=this._chainOrCall(result,()=>hookDetail.callback(hookDetail.hookedCommand,this))}),result}_chainOrCallSubCommandHook(promise$2,subCommand,event){let result=promise$2;return this._lifeCycleHooks[event]!==void 0&&this._lifeCycleHooks[event].forEach(hook=>{result=this._chainOrCall(result,()=>hook(this,subCommand))}),result}_parseCommand(operands,unknown$2){let parsed=this.parseOptions(unknown$2);if(this._parseOptionsEnv(),this._parseOptionsImplied(),operands=operands.concat(parsed.operands),unknown$2=parsed.unknown,this.args=operands.concat(unknown$2),operands&&this._findCommand(operands[0]))return this._dispatchSubcommand(operands[0],operands.slice(1),unknown$2);if(this._getHelpCommand()&&operands[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(operands[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(unknown$2),this._dispatchSubcommand(this._defaultCommandName,operands,unknown$2);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(parsed.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let checkForUnknownOptions=()=>{parsed.unknown.length>0&&this.unknownOption(parsed.unknown[0])},commandEvent=`command:${this.name()}`;if(this._actionHandler){checkForUnknownOptions(),this._processArguments();let promiseChain;return promiseChain=this._chainOrCallHooks(promiseChain,`preAction`),promiseChain=this._chainOrCall(promiseChain,()=>this._actionHandler(this.processedArgs)),this.parent&&(promiseChain=this._chainOrCall(promiseChain,()=>{this.parent.emit(commandEvent,operands,unknown$2)})),promiseChain=this._chainOrCallHooks(promiseChain,`postAction`),promiseChain}if(this.parent&&this.parent.listenerCount(commandEvent))checkForUnknownOptions(),this._processArguments(),this.parent.emit(commandEvent,operands,unknown$2);else if(operands.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,operands,unknown$2);this.listenerCount(`command:*`)?this.emit(`command:*`,operands,unknown$2):this.commands.length?this.unknownCommand():(checkForUnknownOptions(),this._processArguments())}else this.commands.length?(checkForUnknownOptions(),this.help({error:!0})):(checkForUnknownOptions(),this._processArguments())}_findCommand(name$7){if(name$7)return this.commands.find(cmd=>cmd._name===name$7||cmd._aliases.includes(name$7))}_findOption(arg){return this.options.find(option$1=>option$1.is(arg))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(cmd=>{cmd.options.forEach(anOption=>{anOption.mandatory&&cmd.getOptionValue(anOption.attributeName())===void 0&&cmd.missingMandatoryOptionValue(anOption)})})}_checkForConflictingLocalOptions(){let definedNonDefaultOptions=this.options.filter(option$1=>{let optionKey=option$1.attributeName();return this.getOptionValue(optionKey)===void 0?!1:this.getOptionValueSource(optionKey)!==`default`}),optionsWithConflicting=definedNonDefaultOptions.filter(option$1=>option$1.conflictsWith.length>0);optionsWithConflicting.forEach(option$1=>{let conflictingAndDefined=definedNonDefaultOptions.find(defined=>option$1.conflictsWith.includes(defined.attributeName()));conflictingAndDefined&&this._conflictingOption(option$1,conflictingAndDefined)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(cmd=>{cmd._checkForConflictingLocalOptions()})}parseOptions(argv$1){let operands=[],unknown$2=[],dest=operands,args=argv$1.slice();function maybeOption(arg){return arg.length>1&&arg[0]===`-`}let negativeNumberArg=arg=>/^-\d*\.?\d+(e[+-]?\d+)?$/.test(arg)?!this._getCommandAndAncestors().some(cmd=>cmd.options.map(opt=>opt.short).some(short=>/^-\d$/.test(short))):!1,activeVariadicOption=null;for(;args.length;){let arg=args.shift();if(arg===`--`){dest===unknown$2&&dest.push(arg),dest.push(...args);break}if(activeVariadicOption&&(!maybeOption(arg)||negativeNumberArg(arg))){this.emit(`option:${activeVariadicOption.name()}`,arg);continue}if(activeVariadicOption=null,maybeOption(arg)){let option$1=this._findOption(arg);if(option$1){if(option$1.required){let value=args.shift();value===void 0&&this.optionMissingArgument(option$1),this.emit(`option:${option$1.name()}`,value)}else if(option$1.optional){let value=null;args.length>0&&(!maybeOption(args[0])||negativeNumberArg(args[0]))&&(value=args.shift()),this.emit(`option:${option$1.name()}`,value)}else this.emit(`option:${option$1.name()}`);activeVariadicOption=option$1.variadic?option$1:null;continue}}if(arg.length>2&&arg[0]===`-`&&arg[1]!==`-`){let option$1=this._findOption(`-${arg[1]}`);if(option$1){option$1.required||option$1.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${option$1.name()}`,arg.slice(2)):(this.emit(`option:${option$1.name()}`),args.unshift(`-${arg.slice(2)}`));continue}}if(/^--[^=]+=/.test(arg)){let index=arg.indexOf(`=`),option$1=this._findOption(arg.slice(0,index));if(option$1&&(option$1.required||option$1.optional)){this.emit(`option:${option$1.name()}`,arg.slice(index+1));continue}}if(dest===operands&&maybeOption(arg)&&!(this.commands.length===0&&negativeNumberArg(arg))&&(dest=unknown$2),(this._enablePositionalOptions||this._passThroughOptions)&&operands.length===0&&unknown$2.length===0){if(this._findCommand(arg)){operands.push(arg),args.length>0&&unknown$2.push(...args);break}else if(this._getHelpCommand()&&arg===this._getHelpCommand().name()){operands.push(arg),args.length>0&&operands.push(...args);break}else if(this._defaultCommandName){unknown$2.push(arg),args.length>0&&unknown$2.push(...args);break}}if(this._passThroughOptions){dest.push(arg),args.length>0&&dest.push(...args);break}dest.push(arg)}return{operands,unknown:unknown$2}}opts(){if(this._storeOptionsAsProperties){let result={},len$1=this.options.length;for(let i$5=0;i$5<len$1;i$5++){let key=this.options[i$5].attributeName();result[key]=key===this._versionOptionName?this._version:this[key]}return result}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((combinedOptions,cmd)=>Object.assign(combinedOptions,cmd.opts()),{})}error(message,errorOptions){this._outputConfiguration.outputError(`${message}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
|
|
19
24
|
`),this.outputHelp({error:!0}));let config$3=errorOptions||{},exitCode=config$3.exitCode||1,code$1=config$3.code||`commander.error`;this._exit(exitCode,code$1,message)}_parseOptionsEnv(){this.options.forEach(option$1=>{if(option$1.envVar&&option$1.envVar in process$9.env){let optionKey=option$1.attributeName();(this.getOptionValue(optionKey)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(optionKey)))&&(option$1.required||option$1.optional?this.emit(`optionEnv:${option$1.name()}`,process$9.env[option$1.envVar]):this.emit(`optionEnv:${option$1.name()}`))}})}_parseOptionsImplied(){let dualHelper=new DualOptions(this.options),hasCustomOptionValue=optionKey=>this.getOptionValue(optionKey)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(optionKey));this.options.filter(option$1=>option$1.implied!==void 0&&hasCustomOptionValue(option$1.attributeName())&&dualHelper.valueFromOption(this.getOptionValue(option$1.attributeName()),option$1)).forEach(option$1=>{Object.keys(option$1.implied).filter(impliedKey=>!hasCustomOptionValue(impliedKey)).forEach(impliedKey=>{this.setOptionValueWithSource(impliedKey,option$1.implied[impliedKey],`implied`)})})}missingArgument(name$7){let message=`error: missing required argument '${name$7}'`;this.error(message,{code:`commander.missingArgument`})}optionMissingArgument(option$1){let message=`error: option '${option$1.flags}' argument missing`;this.error(message,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(option$1){let message=`error: required option '${option$1.flags}' not specified`;this.error(message,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(option$1,conflictingOption){let findBestOptionFromValue=option$2=>{let optionKey=option$2.attributeName(),optionValue=this.getOptionValue(optionKey),negativeOption=this.options.find(target=>target.negate&&optionKey===target.attributeName()),positiveOption=this.options.find(target=>!target.negate&&optionKey===target.attributeName());return negativeOption&&(negativeOption.presetArg===void 0&&optionValue===!1||negativeOption.presetArg!==void 0&&optionValue===negativeOption.presetArg)?negativeOption:positiveOption||option$2},getErrorMessage$6=option$2=>{let bestOption=findBestOptionFromValue(option$2),optionKey=bestOption.attributeName(),source$39=this.getOptionValueSource(optionKey);return source$39===`env`?`environment variable '${bestOption.envVar}'`:`option '${bestOption.flags}'`},message=`error: ${getErrorMessage$6(option$1)} cannot be used with ${getErrorMessage$6(conflictingOption)}`;this.error(message,{code:`commander.conflictingOption`})}unknownOption(flag){if(this._allowUnknownOption)return;let suggestion=``;if(flag.startsWith(`--`)&&this._showSuggestionAfterError){let candidateFlags=[],command=this;do{let moreFlags=command.createHelp().visibleOptions(command).filter(option$1=>option$1.long).map(option$1=>option$1.long);candidateFlags=candidateFlags.concat(moreFlags),command=command.parent}while(command&&!command._enablePositionalOptions);suggestion=suggestSimilar(flag,candidateFlags)}let message=`error: unknown option '${flag}'${suggestion}`;this.error(message,{code:`commander.unknownOption`})}_excessArguments(receivedArgs){if(this._allowExcessArguments)return;let expected=this.registeredArguments.length,s$3=expected===1?``:`s`,forSubcommand=this.parent?` for '${this.name()}'`:``,message=`error: too many arguments${forSubcommand}. Expected ${expected} argument${s$3} but got ${receivedArgs.length}.`;this.error(message,{code:`commander.excessArguments`})}unknownCommand(){let unknownName=this.args[0],suggestion=``;if(this._showSuggestionAfterError){let candidateNames=[];this.createHelp().visibleCommands(this).forEach(command=>{candidateNames.push(command.name()),command.alias()&&candidateNames.push(command.alias())}),suggestion=suggestSimilar(unknownName,candidateNames)}let message=`error: unknown command '${unknownName}'${suggestion}`;this.error(message,{code:`commander.unknownCommand`})}version(str$1,flags,description){if(str$1===void 0)return this._version;this._version=str$1,flags||=`-V, --version`,description||=`output the version number`;let versionOption=this.createOption(flags,description);return this._versionOptionName=versionOption.attributeName(),this._registerOption(versionOption),this.on(`option:`+versionOption.name(),()=>{this._outputConfiguration.writeOut(`${str$1}\n`),this._exit(0,`commander.version`,str$1)}),this}description(str$1,argsDescription){return str$1===void 0&&argsDescription===void 0?this._description:(this._description=str$1,argsDescription&&(this._argsDescription=argsDescription),this)}summary(str$1){return str$1===void 0?this._summary:(this._summary=str$1,this)}alias(alias){if(alias===void 0)return this._aliases[0];let command=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(command=this.commands[this.commands.length-1]),alias===command._name)throw Error(`Command alias can't be the same as its name`);let matchingCommand=this.parent?._findCommand(alias);if(matchingCommand){let existingCmd=[matchingCommand.name()].concat(matchingCommand.aliases()).join(`|`);throw Error(`cannot add alias '${alias}' to command '${this.name()}' as already have command '${existingCmd}'`)}return command._aliases.push(alias),this}aliases(aliases$1){return aliases$1===void 0?this._aliases:(aliases$1.forEach(alias=>this.alias(alias)),this)}usage(str$1){if(str$1===void 0){if(this._usage)return this._usage;let args=this.registeredArguments.map(arg=>humanReadableArgName(arg));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?args:[]).join(` `)}return this._usage=str$1,this}name(str$1){return str$1===void 0?this._name:(this._name=str$1,this)}helpGroup(heading$1){return heading$1===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=heading$1,this)}commandsGroup(heading$1){return heading$1===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=heading$1,this)}optionsGroup(heading$1){return heading$1===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=heading$1,this)}_initOptionGroup(option$1){this._defaultOptionGroup&&!option$1.helpGroupHeading&&option$1.helpGroup(this._defaultOptionGroup)}_initCommandGroup(cmd){this._defaultCommandGroup&&!cmd.helpGroup()&&cmd.helpGroup(this._defaultCommandGroup)}nameFromFilename(filename){return this._name=path$37.basename(filename,path$37.extname(filename)),this}executableDir(path$38){return path$38===void 0?this._executableDir:(this._executableDir=path$38,this)}helpInformation(contextOptions){let helper=this.createHelp(),context$1=this._getOutputContext(contextOptions);helper.prepareContext({error:context$1.error,helpWidth:context$1.helpWidth,outputHasColors:context$1.hasColors});let text$3=helper.formatHelp(this,helper);return context$1.hasColors?text$3:this._outputConfiguration.stripColor(text$3)}_getOutputContext(contextOptions){contextOptions||={};let error$65=!!contextOptions.error,baseWrite,hasColors$1,helpWidth;error$65?(baseWrite=str$1=>this._outputConfiguration.writeErr(str$1),hasColors$1=this._outputConfiguration.getErrHasColors(),helpWidth=this._outputConfiguration.getErrHelpWidth()):(baseWrite=str$1=>this._outputConfiguration.writeOut(str$1),hasColors$1=this._outputConfiguration.getOutHasColors(),helpWidth=this._outputConfiguration.getOutHelpWidth());let write$2=str$1=>(hasColors$1||(str$1=this._outputConfiguration.stripColor(str$1)),baseWrite(str$1));return{error:error$65,write:write$2,hasColors:hasColors$1,helpWidth}}outputHelp(contextOptions){let deprecatedCallback;typeof contextOptions==`function`&&(deprecatedCallback=contextOptions,contextOptions=void 0);let outputContext=this._getOutputContext(contextOptions),eventContext={error:outputContext.error,write:outputContext.write,command:this};this._getCommandAndAncestors().reverse().forEach(command=>command.emit(`beforeAllHelp`,eventContext)),this.emit(`beforeHelp`,eventContext);let helpInformation=this.helpInformation({error:outputContext.error});if(deprecatedCallback&&(helpInformation=deprecatedCallback(helpInformation),typeof helpInformation!=`string`&&!Buffer.isBuffer(helpInformation)))throw Error(`outputHelp callback must return a string or a Buffer`);outputContext.write(helpInformation),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,eventContext),this._getCommandAndAncestors().forEach(command=>command.emit(`afterAllHelp`,eventContext))}helpOption(flags,description){return typeof flags==`boolean`?(flags?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(flags??`-h, --help`,description??`display help for command`),(flags||description)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(option$1){return this._helpOption=option$1,this._initOptionGroup(option$1),this}help(contextOptions){this.outputHelp(contextOptions);let exitCode=Number(process$9.exitCode??0);exitCode===0&&contextOptions&&typeof contextOptions!=`function`&&contextOptions.error&&(exitCode=1),this._exit(exitCode,`commander.help`,`(outputHelp)`)}addHelpText(position,text$3){let allowedValues=[`beforeAll`,`before`,`after`,`afterAll`];if(!allowedValues.includes(position))throw Error(`Unexpected value for position to addHelpText.
|
|
20
|
-
Expecting one of '${allowedValues.join(`', '`)}'`);let helpEvent=`${position}Help`;return this.on(helpEvent,context$1=>{let helpStr;helpStr=typeof text$3==`function`?text$3({error:context$1.error,command:context$1.command}):text$3,helpStr&&context$1.write(`${helpStr}\n`)}),this}_outputHelpIfRequested(args){let helpOption=this._getHelpOption(),helpRequested=helpOption&&args.find(arg=>helpOption.is(arg));helpRequested&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function incrementNodeInspectorPort(args){return args.map(arg=>{if(!arg.startsWith(`--inspect`))return arg;let debugOption,debugHost=`127.0.0.1`,debugPort=`9229`,match$1;return(match$1=arg.match(/^(--inspect(-brk)?)$/))===null?(match$1=arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(match$1=arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(debugOption=match$1[1],debugHost=match$1[3],debugPort=match$1[4]):(debugOption=match$1[1],/^\d+$/.test(match$1[3])?debugPort=match$1[3]:debugHost=match$1[3]):debugOption=match$1[1],debugOption&&debugPort!==`0`?`${debugOption}=${debugHost}:${parseInt(debugPort)+1}`:arg})}function useColor(){if(process$9.env.NO_COLOR||process$9.env.FORCE_COLOR===`0`||process$9.env.FORCE_COLOR===`false`)return!1;if(process$9.env.FORCE_COLOR||process$9.env.CLICOLOR_FORCE!==void 0)return!0}exports.Command=Command$3,exports.useColor=useColor})),require_commander=__commonJSMin((exports=>{let{Argument:Argument$1}=require_argument(),{Command:Command$2}=require_command(),{CommanderError:CommanderError$1,InvalidArgumentError:InvalidArgumentError$37}=require_error$2(),{Help:Help$1}=require_help(),{Option:Option$1}=require_option();exports.program=new Command$2,exports.createCommand=name$7=>new Command$2(name$7),exports.createOption=(flags,description)=>new Option$1(flags,description),exports.createArgument=(name$7,description)=>new Argument$1(name$7,description),exports.Command=Command$2,exports.Option=Option$1,exports.Argument=Argument$1,exports.Help=Help$1,exports.CommanderError=CommanderError$1,exports.InvalidArgumentError=InvalidArgumentError$37,exports.InvalidOptionArgumentError=InvalidArgumentError$37})),import_commander=__toESM(require_commander(),1);const{program,createCommand,createArgument,createOption,CommanderError,InvalidArgumentError:InvalidArgumentError$36,InvalidOptionArgumentError,Command:Command$1,Argument,Option,Help}=import_commander.default;async function build$1(path$38,{outdir}={}){outdir||=await resolveOutputDirectory(path$38);let outfile=join$1(outdir,`agent.js`),esbuild=loadEsbuild(),result=await esbuild.build({...sharedBuildOptions,entryPoints:[path$38],outfile});if(result.errors.length>0)throw Error(`Failed to build agent!`);return{outfile}}async function watch(entrypoint,{onErrors,onBuildStart,onBuildEnd,outdir}){let esbuild=loadEsbuild();outdir||=await resolveOutputDirectory(entrypoint);let outfile=join$1(outdir,`agent.js`),context$1=await esbuild.context({...sharedBuildOptions,entryPoints:[entrypoint],logLevel:`silent`,outfile,plugins:[{name:`blink-dev-server`,setup(build$11){build$11.onStart(()=>{onBuildStart?.()}),build$11.onEnd(result=>{if(result.errors.length>0){onErrors?.(result.errors);return}onBuildEnd?.({outfile})})}}]});return await context$1.watch(),{dispose:()=>{context$1.dispose()}}}async function resolveEntrypoint(directory){let packageJsonPath=await findNearestEntry(directory,`package.json`);if(!packageJsonPath)throw Error(`No package.json found in ${directory}`);let packageJson$1=JSON.parse(await readFile(packageJsonPath,`utf-8`)),main=packageJson$1.main;if(!main)throw Error(`"main" is not set in ${relative(process.cwd(),packageJsonPath)}. It should be set to the entrypoint of your agent.`);let mainPath=join$1(dirname$1(packageJsonPath),main),stats=await stat(mainPath);if(!stats.isFile())throw Error(`${mainPath} is not a file.`);return mainPath}async function resolveOutputDirectory(path$38){let nodeModulesPath=await findNearestEntry(path$38,`node_modules`);if(!nodeModulesPath){let stats=await stat(path$38);return stats.isDirectory()?join$1(path$38,`.blink`):join$1(dirname$1(path$38),`.blink`)}let blinkPath=join$1(nodeModulesPath,`.blink`);return await mkdir(blinkPath,{recursive:!0}),blinkPath}async function findNearestEntry(startDir,name$7){let currentDir=startDir;for(;currentDir!==dirname$1(currentDir);){let file$1=join$1(currentDir,name$7);try{return await stat(file$1),file$1}catch{}currentDir=dirname$1(currentDir)}}const sharedBuildOptions={bundle:!0,format:`cjs`,platform:`node`,target:`node18`,sourcemap:`inline`},loadEsbuild=()=>{try{return __require$1(`esbuild`)}catch{throw Error("esbuild is not installed. Please install it with `bun add esbuild`.")}};async function build(directory){directory||=process.cwd();let entrypoint=await resolveEntrypoint(directory),{outfile}=await build$1(entrypoint);console.log(`Built agent.js to ${outfile}`)}let isDockerCached;function hasDockerEnv(){try{return fs.statSync(`/.dockerenv`),!0}catch{return!1}}function hasDockerCGroup(){try{return fs.readFileSync(`/proc/self/cgroup`,`utf8`).includes(`docker`)}catch{return!1}}function isDocker(){return isDockerCached===void 0&&(isDockerCached=hasDockerEnv()||hasDockerCGroup()),isDockerCached}let cachedResult;const hasContainerEnv=()=>{try{return fs.statSync(`/run/.containerenv`),!0}catch{return!1}};function isInsideContainer(){return cachedResult===void 0&&(cachedResult=hasContainerEnv()||isDocker()),cachedResult}const isWsl=()=>{if(process$1.platform!==`linux`)return!1;if(os.release().toLowerCase().includes(`microsoft`))return!isInsideContainer();try{return fs.readFileSync(`/proc/version`,`utf8`).toLowerCase().includes(`microsoft`)?!isInsideContainer():!1}catch{return!1}};var is_wsl_default=process$1.env.__IS_WSL_TEST__?isWsl:isWsl();const wslDrivesMountPoint=(()=>{let defaultMountPoint=`/mnt/`,mountPoint;return async function(){if(mountPoint)return mountPoint;let configFilePath$1=`/etc/wsl.conf`,isConfigFileExists=!1;try{await fs$1.access(configFilePath$1,constants.F_OK),isConfigFileExists=!0}catch{}if(!isConfigFileExists)return defaultMountPoint;let configContent=await fs$1.readFile(configFilePath$1,{encoding:`utf8`}),configMountPoint=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(configContent);return configMountPoint?(mountPoint=configMountPoint.groups.mountPoint.trim(),mountPoint=mountPoint.endsWith(`/`)?mountPoint:`${mountPoint}/`,mountPoint):defaultMountPoint}})(),powerShellPathFromWsl=async()=>{let mountPoint=await wslDrivesMountPoint();return`${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},powerShellPath=async()=>is_wsl_default?powerShellPathFromWsl():`${process$1.env.SYSTEMROOT||process$1.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;function defineLazyProperty(object$5,propertyName,valueGetter){let define$2=value=>Object.defineProperty(object$5,propertyName,{value,enumerable:!0,writable:!0});return Object.defineProperty(object$5,propertyName,{configurable:!0,enumerable:!0,get(){let result=valueGetter();return define$2(result),result},set(value){define$2(value)}}),object$5}const execFileAsync$4=promisify(execFile);async function defaultBrowserId(){if(process$1.platform!==`darwin`)throw Error(`macOS only`);let{stdout:stdout$1}=await execFileAsync$4(`defaults`,[`read`,`com.apple.LaunchServices/com.apple.launchservices.secure`,`LSHandlers`]),match$1=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(stdout$1);return match$1?.groups.id??`com.apple.Safari`}const execFileAsync$3=promisify(execFile);async function runAppleScript(script,{humanReadableOutput=!0}={}){if(process$1.platform!==`darwin`)throw Error(`macOS only`);let outputArguments=humanReadableOutput?[]:[`-ss`],{stdout:stdout$1}=await execFileAsync$3(`osascript`,[`-e`,script,outputArguments]);return stdout$1.trim()}async function bundleName(bundleId){return runAppleScript(`tell application "Finder" to set app_path to application file id "${bundleId}" as string\ntell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}const execFileAsync$2=promisify(execFile),windowsBrowserProgIds={AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:`Edge`,id:`com.microsoft.edge.old`},MSEdgeDHTML:{name:`Edge`,id:`com.microsoft.edge`},MSEdgeHTM:{name:`Edge`,id:`com.microsoft.edge`},"IE.HTTP":{name:`Internet Explorer`,id:`com.microsoft.ie`},FirefoxURL:{name:`Firefox`,id:`org.mozilla.firefox`},ChromeHTML:{name:`Chrome`,id:`com.google.chrome`},BraveHTML:{name:`Brave`,id:`com.brave.Browser`},BraveBHTML:{name:`Brave Beta`,id:`com.brave.Browser.beta`},BraveSSHTM:{name:`Brave Nightly`,id:`com.brave.Browser.nightly`}};var UnknownBrowserError=class extends Error{};async function defaultBrowser$1(_execFileAsync=execFileAsync$2){let{stdout:stdout$1}=await _execFileAsync(`reg`,[`QUERY`,` HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice`,`/v`,`ProgId`]),match$1=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(stdout$1);if(!match$1)throw new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(stdout$1)}`);let{id}=match$1.groups,browser=windowsBrowserProgIds[id];if(!browser)throw new UnknownBrowserError(`Unknown browser ID: ${id}`);return browser}const execFileAsync$1=promisify(execFile),titleize=string$5=>string$5.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,x$4=>x$4.toUpperCase());async function defaultBrowser(){if(process$1.platform===`darwin`){let id=await defaultBrowserId(),name$7=await bundleName(id);return{name:name$7,id}}if(process$1.platform===`linux`){let{stdout:stdout$1}=await execFileAsync$1(`xdg-mime`,[`query`,`default`,`x-scheme-handler/http`]),id=stdout$1.trim(),name$7=titleize(id.replace(/.desktop$/,``).replace(`-`,` `));return{name:name$7,id}}if(process$1.platform===`win32`)return defaultBrowser$1();throw Error(`Only macOS, Linux, and Windows are supported`)}const execFile$1=promisify(childProcess.execFile),__dirname$3=path.dirname(fileURLToPath(import.meta.url)),localXdgOpenPath=path.join(__dirname$3,`xdg-open`),{platform:platform$4,arch}=process$1;async function getWindowsDefaultBrowserFromWsl(){let powershellPath=await powerShellPath(),rawCommand=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,encodedCommand=Buffer$1.from(rawCommand,`utf16le`).toString(`base64`),{stdout:stdout$1}=await execFile$1(powershellPath,[`-NoProfile`,`-NonInteractive`,`-ExecutionPolicy`,`Bypass`,`-EncodedCommand`,encodedCommand],{encoding:`utf8`}),progId=stdout$1.trim(),browserMap={ChromeHTML:`com.google.chrome`,BraveHTML:`com.brave.Browser`,MSEdgeHTM:`com.microsoft.edge`,FirefoxURL:`org.mozilla.firefox`};return browserMap[progId]?{id:browserMap[progId]}:{}}const pTryEach=async(array$2,mapper)=>{let latestError;for(let item of array$2)try{return await mapper(item)}catch(error$65){latestError=error$65}throw latestError},baseOpen=async options$1=>{if(options$1={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...options$1},Array.isArray(options$1.app))return pTryEach(options$1.app,singleApp=>baseOpen({...options$1,app:singleApp}));let{name:app,arguments:appArguments=[]}=options$1.app??{};if(appArguments=[...appArguments],Array.isArray(app))return pTryEach(app,appName=>baseOpen({...options$1,app:{name:appName,arguments:appArguments}}));if(app===`browser`||app===`browserPrivate`){let ids={"com.google.chrome":`chrome`,"google-chrome.desktop":`chrome`,"com.brave.Browser":`brave`,"org.mozilla.firefox":`firefox`,"firefox.desktop":`firefox`,"com.microsoft.msedge":`edge`,"com.microsoft.edge":`edge`,"com.microsoft.edgemac":`edge`,"microsoft-edge.desktop":`edge`},flags={chrome:`--incognito`,brave:`--incognito`,firefox:`--private-window`,edge:`--inPrivate`},browser=is_wsl_default?await getWindowsDefaultBrowserFromWsl():await defaultBrowser();if(browser.id in ids){let browserName=ids[browser.id];return app===`browserPrivate`&&appArguments.push(flags[browserName]),baseOpen({...options$1,app:{name:apps[browserName],arguments:appArguments}})}throw Error(`${browser.name} is not supported as a default browser`)}let command,cliArguments=[],childProcessOptions={};if(platform$4===`darwin`)command=`open`,options$1.wait&&cliArguments.push(`--wait-apps`),options$1.background&&cliArguments.push(`--background`),options$1.newInstance&&cliArguments.push(`--new`),app&&cliArguments.push(`-a`,app);else if(platform$4===`win32`||is_wsl_default&&!isInsideContainer()&&!app){command=await powerShellPath(),cliArguments.push(`-NoProfile`,`-NonInteractive`,`-ExecutionPolicy`,`Bypass`,`-EncodedCommand`),is_wsl_default||(childProcessOptions.windowsVerbatimArguments=!0);let encodedArguments=[`Start`];options$1.wait&&encodedArguments.push(`-Wait`),app?(encodedArguments.push(`"\`"${app}\`""`),options$1.target&&appArguments.push(options$1.target)):options$1.target&&encodedArguments.push(`"${options$1.target}"`),appArguments.length>0&&(appArguments=appArguments.map(argument=>`"\`"${argument}\`""`),encodedArguments.push(`-ArgumentList`,appArguments.join(`,`))),options$1.target=Buffer$1.from(encodedArguments.join(` `),`utf16le`).toString(`base64`)}else{if(app)command=app;else{let isBundled=!__dirname$3||__dirname$3===`/`,exeLocalXdgOpen=!1;try{await fs$1.access(localXdgOpenPath,constants.X_OK),exeLocalXdgOpen=!0}catch{}let useSystemXdgOpen=process$1.versions.electron??(platform$4===`android`||isBundled||!exeLocalXdgOpen);command=useSystemXdgOpen?`xdg-open`:localXdgOpenPath}appArguments.length>0&&cliArguments.push(...appArguments),options$1.wait||(childProcessOptions.stdio=`ignore`,childProcessOptions.detached=!0)}platform$4===`darwin`&&appArguments.length>0&&cliArguments.push(`--args`,...appArguments),options$1.target&&cliArguments.push(options$1.target);let subprocess=childProcess.spawn(command,cliArguments,childProcessOptions);return options$1.wait?new Promise((resolve$10,reject)=>{subprocess.once(`error`,reject),subprocess.once(`close`,exitCode=>{if(!options$1.allowNonzeroExitCode&&exitCode>0){reject(Error(`Exited with code ${exitCode}`));return}resolve$10(subprocess)})}):(subprocess.unref(),subprocess)},open$2=(target,options$1)=>{if(typeof target!=`string`)throw TypeError("Expected a `target`");return baseOpen({...options$1,target})};function detectArchBinary(binary){if(typeof binary==`string`||Array.isArray(binary))return binary;let{[arch]:archBinary}=binary;if(!archBinary)throw Error(`${arch} is not supported`);return archBinary}function detectPlatformBinary({[platform$4]:platformBinary},{wsl}){if(wsl&&is_wsl_default)return detectArchBinary(wsl);if(!platformBinary)throw Error(`${platform$4} is not supported`);return detectArchBinary(platformBinary)}const apps={};defineLazyProperty(apps,`chrome`,()=>detectPlatformBinary({darwin:`google chrome`,win32:`chrome`,linux:[`google-chrome`,`google-chrome-stable`,`chromium`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`,x64:[`/mnt/c/Program Files/Google/Chrome/Application/chrome.exe`,`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`]}})),defineLazyProperty(apps,`brave`,()=>detectPlatformBinary({darwin:`brave browser`,win32:`brave`,linux:[`brave-browser`,`brave`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`,x64:[`/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe`,`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`]}})),defineLazyProperty(apps,`firefox`,()=>detectPlatformBinary({darwin:`firefox`,win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:`firefox`},{wsl:`/mnt/c/Program Files/Mozilla Firefox/firefox.exe`})),defineLazyProperty(apps,`edge`,()=>detectPlatformBinary({darwin:`microsoft edge`,win32:`msedge`,linux:[`microsoft-edge`,`microsoft-edge-dev`]},{wsl:`/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe`})),defineLazyProperty(apps,`browser`,()=>`browser`),defineLazyProperty(apps,`browserPrivate`,()=>`browserPrivate`);var open_default=open$2,require_constants$11=__commonJSMin(((exports,module)=>{let BINARY_TYPES$2=[`nodebuffer`,`arraybuffer`,`fragments`],hasBlob$1=typeof Blob<`u`;hasBlob$1&&BINARY_TYPES$2.push(`blob`),module.exports={BINARY_TYPES:BINARY_TYPES$2,EMPTY_BUFFER:Buffer.alloc(0),GUID:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,hasBlob:hasBlob$1,kForOnEventAttribute:Symbol(`kIsForOnEventAttribute`),kListener:Symbol(`kListener`),kStatusCode:Symbol(`status-code`),kWebSocket:Symbol(`websocket`),NOOP:()=>{}}})),require_buffer_util=__commonJSMin(((exports,module)=>{let{EMPTY_BUFFER:EMPTY_BUFFER$3}=require_constants$11(),FastBuffer$3=Buffer[Symbol.species];function concat$40(list$2,totalLength){if(list$2.length===0)return EMPTY_BUFFER$3;if(list$2.length===1)return list$2[0];let target=Buffer.allocUnsafe(totalLength),offset=0;for(let i$5=0;i$5<list$2.length;i$5++){let buf=list$2[i$5];target.set(buf,offset),offset+=buf.length}return offset<totalLength?new FastBuffer$3(target.buffer,target.byteOffset,offset):target}function _mask(source$39,mask,output,offset,length){for(let i$5=0;i$5<length;i$5++)output[offset+i$5]=source$39[i$5]^mask[i$5&3]}function _unmask(buffer$2,mask){for(let i$5=0;i$5<buffer$2.length;i$5++)buffer$2[i$5]^=mask[i$5&3]}function toArrayBuffer$4(buf){return buf.length===buf.buffer.byteLength?buf.buffer:buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.length)}function toBuffer$6(data$2){if(toBuffer$6.readOnly=!0,Buffer.isBuffer(data$2))return data$2;let buf;return data$2 instanceof ArrayBuffer?buf=new FastBuffer$3(data$2):ArrayBuffer.isView(data$2)?buf=new FastBuffer$3(data$2.buffer,data$2.byteOffset,data$2.byteLength):(buf=Buffer.from(data$2),toBuffer$6.readOnly=!1),buf}if(module.exports={concat:concat$40,mask:_mask,toArrayBuffer:toArrayBuffer$4,toBuffer:toBuffer$6,unmask:_unmask},!process.env.WS_NO_BUFFER_UTIL)try{let bufferUtil$1=__require$1(`bufferutil`);module.exports.mask=function(source$39,mask,output,offset,length){length<48?_mask(source$39,mask,output,offset,length):bufferUtil$1.mask(source$39,mask,output,offset,length)},module.exports.unmask=function(buffer$2,mask){buffer$2.length<32?_unmask(buffer$2,mask):bufferUtil$1.unmask(buffer$2,mask)}}catch{}})),require_limiter=__commonJSMin(((exports,module)=>{let kDone=Symbol(`kDone`),kRun=Symbol(`kRun`);var Limiter$1=class{constructor(concurrency){this[kDone]=()=>{this.pending--,this[kRun]()},this.concurrency=concurrency||1/0,this.jobs=[],this.pending=0}add(job){this.jobs.push(job),this[kRun]()}[kRun](){if(this.pending!==this.concurrency&&this.jobs.length){let job=this.jobs.shift();this.pending++,job(this[kDone])}}};module.exports=Limiter$1})),require_permessage_deflate$1=__commonJSMin(((exports,module)=>{let zlib$8=__require$1(`zlib`),bufferUtil=require_buffer_util(),Limiter=require_limiter(),{kStatusCode:kStatusCode$2}=require_constants$11(),FastBuffer$2=Buffer[Symbol.species],TRAILER=Buffer.from([0,0,255,255]),kPerMessageDeflate=Symbol(`permessage-deflate`),kTotalLength=Symbol(`total-length`),kCallback=Symbol(`callback`),kBuffers=Symbol(`buffers`),kError$4=Symbol(`error`),zlibLimiter;var PerMessageDeflate$6=class{constructor(options$1,isServer,maxPayload){if(this._maxPayload=maxPayload|0,this._options=options$1||{},this._threshold=this._options.threshold===void 0?1024:this._options.threshold,this._isServer=!!isServer,this._deflate=null,this._inflate=null,this.params=null,!zlibLimiter){let concurrency=this._options.concurrencyLimit===void 0?10:this._options.concurrencyLimit;zlibLimiter=new Limiter(concurrency)}}static get extensionName(){return`permessage-deflate`}offer(){let params={};return this._options.serverNoContextTakeover&&(params.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(params.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(params.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?params.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits??(params.client_max_window_bits=!0),params}accept(configurations){return configurations=this.normalizeParams(configurations),this.params=this._isServer?this.acceptAsServer(configurations):this.acceptAsClient(configurations),this.params}cleanup(){if(this._inflate&&=(this._inflate.close(),null),this._deflate){let callback$1=this._deflate[kCallback];this._deflate.close(),this._deflate=null,callback$1&&callback$1(Error(`The deflate stream was closed while data was being processed`))}}acceptAsServer(offers){let opts=this._options,accepted=offers.find(params=>!(opts.serverNoContextTakeover===!1&¶ms.server_no_context_takeover||params.server_max_window_bits&&(opts.serverMaxWindowBits===!1||typeof opts.serverMaxWindowBits==`number`&&opts.serverMaxWindowBits>params.server_max_window_bits)||typeof opts.clientMaxWindowBits==`number`&&!params.client_max_window_bits));if(!accepted)throw Error(`None of the extension offers can be accepted`);return opts.serverNoContextTakeover&&(accepted.server_no_context_takeover=!0),opts.clientNoContextTakeover&&(accepted.client_no_context_takeover=!0),typeof opts.serverMaxWindowBits==`number`&&(accepted.server_max_window_bits=opts.serverMaxWindowBits),typeof opts.clientMaxWindowBits==`number`?accepted.client_max_window_bits=opts.clientMaxWindowBits:(accepted.client_max_window_bits===!0||opts.clientMaxWindowBits===!1)&&delete accepted.client_max_window_bits,accepted}acceptAsClient(response){let params=response[0];if(this._options.clientNoContextTakeover===!1&¶ms.client_no_context_takeover)throw Error(`Unexpected parameter "client_no_context_takeover"`);if(!params.client_max_window_bits)typeof this._options.clientMaxWindowBits==`number`&&(params.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits==`number`&¶ms.client_max_window_bits>this._options.clientMaxWindowBits)throw Error(`Unexpected or invalid parameter "client_max_window_bits"`);return params}normalizeParams(configurations){return configurations.forEach(params=>{Object.keys(params).forEach(key=>{let value=params[key];if(value.length>1)throw Error(`Parameter "${key}" must have only a single value`);if(value=value[0],key===`client_max_window_bits`){if(value!==!0){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else if(key===`server_max_window_bits`){let num=+value;if(!Number.isInteger(num)||num<8||num>15)throw TypeError(`Invalid value for parameter "${key}": ${value}`);value=num}else if(key===`client_no_context_takeover`||key===`server_no_context_takeover`){if(value!==!0)throw TypeError(`Invalid value for parameter "${key}": ${value}`)}else throw Error(`Unknown parameter "${key}"`);params[key]=value})}),configurations}decompress(data$2,fin,callback$1){zlibLimiter.add(done=>{this._decompress(data$2,fin,(err$1,result)=>{done(),callback$1(err$1,result)})})}compress(data$2,fin,callback$1){zlibLimiter.add(done=>{this._compress(data$2,fin,(err$1,result)=>{done(),callback$1(err$1,result)})})}_decompress(data$2,fin,callback$1){let endpoint=this._isServer?`client`:`server`;if(!this._inflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$8.Z_DEFAULT_WINDOWBITS;this._inflate=zlib$8.createInflateRaw({...this._options.zlibInflateOptions,windowBits}),this._inflate[kPerMessageDeflate]=this,this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],this._inflate.on(`error`,inflateOnError),this._inflate.on(`data`,inflateOnData)}this._inflate[kCallback]=callback$1,this._inflate.write(data$2),fin&&this._inflate.write(TRAILER),this._inflate.flush(()=>{let err$1=this._inflate[kError$4];if(err$1){this._inflate.close(),this._inflate=null,callback$1(err$1);return}let data$3=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[kTotalLength]=0,this._inflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._inflate.reset()),callback$1(null,data$3)})}_compress(data$2,fin,callback$1){let endpoint=this._isServer?`server`:`client`;if(!this._deflate){let key=`${endpoint}_max_window_bits`,windowBits=typeof this.params[key]==`number`?this.params[key]:zlib$8.Z_DEFAULT_WINDOWBITS;this._deflate=zlib$8.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits}),this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],this._deflate.on(`data`,deflateOnData)}this._deflate[kCallback]=callback$1,this._deflate.write(data$2),this._deflate.flush(zlib$8.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let data$3=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);fin&&(data$3=new FastBuffer$2(data$3.buffer,data$3.byteOffset,data$3.length-4)),this._deflate[kCallback]=null,this._deflate[kTotalLength]=0,this._deflate[kBuffers]=[],fin&&this.params[`${endpoint}_no_context_takeover`]&&this._deflate.reset(),callback$1(null,data$3)})}};module.exports=PerMessageDeflate$6;function deflateOnData(chunk$1){this[kBuffers].push(chunk$1),this[kTotalLength]+=chunk$1.length}function inflateOnData(chunk$1){if(this[kTotalLength]+=chunk$1.length,this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload){this[kBuffers].push(chunk$1);return}this[kError$4]=RangeError(`Max payload size exceeded`),this[kError$4].code=`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`,this[kError$4][kStatusCode$2]=1009,this.removeListener(`data`,inflateOnData),this.reset()}function inflateOnError(err$1){if(this[kPerMessageDeflate]._inflate=null,this[kError$4]){this[kCallback](this[kError$4]);return}err$1[kStatusCode$2]=1007,this[kCallback](err$1)}})),require_validation$1=__commonJSMin(((exports,module)=>{let{isUtf8:isUtf8$1}=__require$1(`buffer`),{hasBlob}=require_constants$11(),tokenChars$2=[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];function isValidStatusCode$4(code$1){return code$1>=1e3&&code$1<=1014&&code$1!==1004&&code$1!==1005&&code$1!==1006||code$1>=3e3&&code$1<=4999}function _isValidUTF8(buf){let len$1=buf.length,i$5=0;for(;i$5<len$1;)if(!(buf[i$5]&128))i$5++;else if((buf[i$5]&224)==192){if(i$5+1===len$1||(buf[i$5+1]&192)!=128||(buf[i$5]&254)==192)return!1;i$5+=2}else if((buf[i$5]&240)==224){if(i$5+2>=len$1||(buf[i$5+1]&192)!=128||(buf[i$5+2]&192)!=128||buf[i$5]===224&&(buf[i$5+1]&224)==128||buf[i$5]===237&&(buf[i$5+1]&224)==160)return!1;i$5+=3}else if((buf[i$5]&248)==240){if(i$5+3>=len$1||(buf[i$5+1]&192)!=128||(buf[i$5+2]&192)!=128||(buf[i$5+3]&192)!=128||buf[i$5]===240&&(buf[i$5+1]&240)==128||buf[i$5]===244&&buf[i$5+1]>143||buf[i$5]>244)return!1;i$5+=4}else return!1;return!0}function isBlob$6(value){return hasBlob&&typeof value==`object`&&typeof value.arrayBuffer==`function`&&typeof value.type==`string`&&typeof value.stream==`function`&&(value[Symbol.toStringTag]===`Blob`||value[Symbol.toStringTag]===`File`)}if(module.exports={isBlob:isBlob$6,isValidStatusCode:isValidStatusCode$4,isValidUTF8:_isValidUTF8,tokenChars:tokenChars$2},isUtf8$1)module.exports.isValidUTF8=function(buf){return buf.length<24?_isValidUTF8(buf):isUtf8$1(buf)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let isValidUTF8$1=__require$1(`utf-8-validate`);module.exports.isValidUTF8=function(buf){return buf.length<32?_isValidUTF8(buf):isValidUTF8$1(buf)}}catch{}})),require_receiver$1=__commonJSMin(((exports,module)=>{let{Writable:Writable$10}=__require$1(`stream`),PerMessageDeflate$5=require_permessage_deflate$1(),{BINARY_TYPES:BINARY_TYPES$1,EMPTY_BUFFER:EMPTY_BUFFER$2,kStatusCode:kStatusCode$1,kWebSocket:kWebSocket$3}=require_constants$11(),{concat:concat$39,toArrayBuffer:toArrayBuffer$3,unmask}=require_buffer_util(),{isValidStatusCode:isValidStatusCode$3,isValidUTF8}=require_validation$1(),FastBuffer$1=Buffer[Symbol.species],GET_INFO=0,GET_PAYLOAD_LENGTH_16=1,GET_PAYLOAD_LENGTH_64=2,GET_MASK=3,GET_DATA=4,INFLATING=5,DEFER_EVENT=6;var Receiver$2=class extends Writable$10{constructor(options$1={}){super(),this._allowSynchronousEvents=options$1.allowSynchronousEvents===void 0?!0:options$1.allowSynchronousEvents,this._binaryType=options$1.binaryType||BINARY_TYPES$1[0],this._extensions=options$1.extensions||{},this._isServer=!!options$1.isServer,this._maxPayload=options$1.maxPayload|0,this._skipUTF8Validation=!!options$1.skipUTF8Validation,this[kWebSocket$3]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(chunk$1,encoding,cb){if(this._opcode===8&&this._state==0)return cb();this._bufferedBytes+=chunk$1.length,this._buffers.push(chunk$1),this.startLoop(cb)}consume(n$2){if(this._bufferedBytes-=n$2,n$2===this._buffers[0].length)return this._buffers.shift();if(n$2<this._buffers[0].length){let buf=this._buffers[0];return this._buffers[0]=new FastBuffer$1(buf.buffer,buf.byteOffset+n$2,buf.length-n$2),new FastBuffer$1(buf.buffer,buf.byteOffset,n$2)}let dst=Buffer.allocUnsafe(n$2);do{let buf=this._buffers[0],offset=dst.length-n$2;n$2>=buf.length?dst.set(this._buffers.shift(),offset):(dst.set(new Uint8Array(buf.buffer,buf.byteOffset,n$2),offset),this._buffers[0]=new FastBuffer$1(buf.buffer,buf.byteOffset+n$2,buf.length-n$2)),n$2-=buf.length}while(n$2>0);return dst}startLoop(cb){this._loop=!0;do switch(this._state){case 0:this.getInfo(cb);break;case 1:this.getPayloadLength16(cb);break;case 2:this.getPayloadLength64(cb);break;case 3:this.getMask();break;case 4:this.getData(cb);break;case 5:case 6:this._loop=!1;return}while(this._loop);this._errored||cb()}getInfo(cb){if(this._bufferedBytes<2){this._loop=!1;return}let buf=this.consume(2);if(buf[0]&48){let error$65=this.createError(RangeError,`RSV2 and RSV3 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_2_3`);cb(error$65);return}let compressed=(buf[0]&64)==64;if(compressed&&!this._extensions[PerMessageDeflate$5.extensionName]){let error$65=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);cb(error$65);return}if(this._fin=(buf[0]&128)==128,this._opcode=buf[0]&15,this._payloadLength=buf[1]&127,this._opcode===0){if(compressed){let error$65=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);cb(error$65);return}if(!this._fragmented){let error$65=this.createError(RangeError,`invalid opcode 0`,!0,1002,`WS_ERR_INVALID_OPCODE`);cb(error$65);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let error$65=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`);cb(error$65);return}this._compressed=compressed}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let error$65=this.createError(RangeError,`FIN must be set`,!0,1002,`WS_ERR_EXPECTED_FIN`);cb(error$65);return}if(compressed){let error$65=this.createError(RangeError,`RSV1 must be clear`,!0,1002,`WS_ERR_UNEXPECTED_RSV_1`);cb(error$65);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let error$65=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,`WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH`);cb(error$65);return}}else{let error$65=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,`WS_ERR_INVALID_OPCODE`);cb(error$65);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(buf[1]&128)==128,this._isServer){if(!this._masked){let error$65=this.createError(RangeError,`MASK must be set`,!0,1002,`WS_ERR_EXPECTED_MASK`);cb(error$65);return}}else if(this._masked){let error$65=this.createError(RangeError,`MASK must be clear`,!0,1002,`WS_ERR_UNEXPECTED_MASK`);cb(error$65);return}this._payloadLength===126?this._state=1:this._payloadLength===127?this._state=2:this.haveLength(cb)}getPayloadLength16(cb){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(cb)}getPayloadLength64(cb){if(this._bufferedBytes<8){this._loop=!1;return}let buf=this.consume(8),num=buf.readUInt32BE(0);if(num>2**21-1){let error$65=this.createError(RangeError,`Unsupported WebSocket frame: payload length > 2^53 - 1`,!1,1009,`WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH`);cb(error$65);return}this._payloadLength=num*2**32+buf.readUInt32BE(4),this.haveLength(cb)}haveLength(cb){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let error$65=this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`);cb(error$65);return}this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(cb){let data$2=EMPTY_BUFFER$2;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}data$2=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&unmask(data$2,this._mask)}if(this._opcode>7){this.controlMessage(data$2,cb);return}if(this._compressed){this._state=5,this.decompress(data$2,cb);return}data$2.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(data$2)),this.dataMessage(cb)}decompress(data$2,cb){let perMessageDeflate=this._extensions[PerMessageDeflate$5.extensionName];perMessageDeflate.decompress(data$2,this._fin,(err$1,buf)=>{if(err$1)return cb(err$1);if(buf.length){if(this._messageLength+=buf.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let error$65=this.createError(RangeError,`Max payload size exceeded`,!1,1009,`WS_ERR_UNSUPPORTED_MESSAGE_LENGTH`);cb(error$65);return}this._fragments.push(buf)}this.dataMessage(cb),this._state===0&&this.startLoop(cb)})}dataMessage(cb){if(!this._fin){this._state=0;return}let messageLength=this._messageLength,fragments=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let data$2;data$2=this._binaryType===`nodebuffer`?concat$39(fragments,messageLength):this._binaryType===`arraybuffer`?toArrayBuffer$3(concat$39(fragments,messageLength)):this._binaryType===`blob`?new Blob(fragments):fragments,this._allowSynchronousEvents?(this.emit(`message`,data$2,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,data$2,!0),this._state=0,this.startLoop(cb)}))}else{let buf=concat$39(fragments,messageLength);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){let error$65=this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`);cb(error$65);return}this._state===5||this._allowSynchronousEvents?(this.emit(`message`,buf,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit(`message`,buf,!1),this._state=0,this.startLoop(cb)}))}}controlMessage(data$2,cb){if(this._opcode===8){if(data$2.length===0)this._loop=!1,this.emit(`conclude`,1005,EMPTY_BUFFER$2),this.end();else{let code$1=data$2.readUInt16BE(0);if(!isValidStatusCode$3(code$1)){let error$65=this.createError(RangeError,`invalid status code ${code$1}`,!0,1002,`WS_ERR_INVALID_CLOSE_CODE`);cb(error$65);return}let buf=new FastBuffer$1(data$2.buffer,data$2.byteOffset+2,data$2.length-2);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){let error$65=this.createError(Error,`invalid UTF-8 sequence`,!0,1007,`WS_ERR_INVALID_UTF8`);cb(error$65);return}this._loop=!1,this.emit(`conclude`,code$1,buf),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?`ping`:`pong`,data$2),this._state=0):(this._state=6,setImmediate(()=>{this.emit(this._opcode===9?`ping`:`pong`,data$2),this._state=0,this.startLoop(cb)}))}createError(ErrorCtor,message,prefix,statusCode,errorCode){this._loop=!1,this._errored=!0;let err$1=new ErrorCtor(prefix?`Invalid WebSocket frame: ${message}`:message);return Error.captureStackTrace(err$1,this.createError),err$1.code=errorCode,err$1[kStatusCode$1]=statusCode,err$1}};module.exports=Receiver$2})),require_sender$1=__commonJSMin(((exports,module)=>{let{Duplex:Duplex$6}=__require$1(`stream`),{randomFillSync}=__require$1(`crypto`),PerMessageDeflate$4=require_permessage_deflate$1(),{EMPTY_BUFFER:EMPTY_BUFFER$1,kWebSocket:kWebSocket$2,NOOP:NOOP$3}=require_constants$11(),{isBlob:isBlob$5,isValidStatusCode:isValidStatusCode$2}=require_validation$1(),{mask:applyMask,toBuffer:toBuffer$5}=require_buffer_util(),kByteLength=Symbol(`kByteLength`),maskBuffer=Buffer.alloc(4),RANDOM_POOL_SIZE=8*1024,randomPool,randomPoolPointer=RANDOM_POOL_SIZE,DEFAULT=0,DEFLATING=1,GET_BLOB_DATA=2;var Sender$2=class Sender$2{constructor(socket,extensions$1,generateMask$1){this._extensions=extensions$1||{},generateMask$1&&(this._generateMask=generateMask$1,this._maskBuffer=Buffer.alloc(4)),this._socket=socket,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=NOOP$3,this[kWebSocket$2]=void 0}static frame(data$2,options$1){let mask,merge$5=!1,offset=2,skipMasking=!1;options$1.mask&&(mask=options$1.maskBuffer||maskBuffer,options$1.generateMask?options$1.generateMask(mask):(randomPoolPointer===RANDOM_POOL_SIZE&&(randomPool===void 0&&(randomPool=Buffer.alloc(RANDOM_POOL_SIZE)),randomFillSync(randomPool,0,RANDOM_POOL_SIZE),randomPoolPointer=0),mask[0]=randomPool[randomPoolPointer++],mask[1]=randomPool[randomPoolPointer++],mask[2]=randomPool[randomPoolPointer++],mask[3]=randomPool[randomPoolPointer++]),skipMasking=(mask[0]|mask[1]|mask[2]|mask[3])===0,offset=6);let dataLength;typeof data$2==`string`?(!options$1.mask||skipMasking)&&options$1[kByteLength]!==void 0?dataLength=options$1[kByteLength]:(data$2=Buffer.from(data$2),dataLength=data$2.length):(dataLength=data$2.length,merge$5=options$1.mask&&options$1.readOnly&&!skipMasking);let payloadLength=dataLength;dataLength>=65536?(offset+=8,payloadLength=127):dataLength>125&&(offset+=2,payloadLength=126);let target=Buffer.allocUnsafe(merge$5?dataLength+offset:offset);return target[0]=options$1.fin?options$1.opcode|128:options$1.opcode,options$1.rsv1&&(target[0]|=64),target[1]=payloadLength,payloadLength===126?target.writeUInt16BE(dataLength,2):payloadLength===127&&(target[2]=target[3]=0,target.writeUIntBE(dataLength,4,6)),!options$1.mask||(target[1]|=128,target[offset-4]=mask[0],target[offset-3]=mask[1],target[offset-2]=mask[2],target[offset-1]=mask[3],skipMasking)?[target,data$2]:merge$5?(applyMask(data$2,mask,target,offset,dataLength),[target]):(applyMask(data$2,mask,data$2,0,dataLength),[target,data$2])}close(code$1,data$2,mask,cb){let buf;if(code$1===void 0)buf=EMPTY_BUFFER$1;else if(typeof code$1!=`number`||!isValidStatusCode$2(code$1))throw TypeError(`First argument must be a valid error code number`);else if(data$2===void 0||!data$2.length)buf=Buffer.allocUnsafe(2),buf.writeUInt16BE(code$1,0);else{let length=Buffer.byteLength(data$2);if(length>123)throw RangeError(`The message must not be greater than 123 bytes`);buf=Buffer.allocUnsafe(2+length),buf.writeUInt16BE(code$1,0),typeof data$2==`string`?buf.write(data$2,2):buf.set(data$2,2)}let options$1={[kByteLength]:buf.length,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state===0?this.sendFrame(Sender$2.frame(buf,options$1),cb):this.enqueue([this.dispatch,buf,!1,options$1,cb])}ping(data$2,mask,cb){let byteLength$2,readOnly;if(typeof data$2==`string`?(byteLength$2=Buffer.byteLength(data$2),readOnly=!1):isBlob$5(data$2)?(byteLength$2=data$2.size,readOnly=!1):(data$2=toBuffer$5(data$2),byteLength$2=data$2.length,readOnly=toBuffer$5.readOnly),byteLength$2>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options$1={[kByteLength]:byteLength$2,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:9,readOnly,rsv1:!1};isBlob$5(data$2)?this._state===0?this.getBlobData(data$2,!1,options$1,cb):this.enqueue([this.getBlobData,data$2,!1,options$1,cb]):this._state===0?this.sendFrame(Sender$2.frame(data$2,options$1),cb):this.enqueue([this.dispatch,data$2,!1,options$1,cb])}pong(data$2,mask,cb){let byteLength$2,readOnly;if(typeof data$2==`string`?(byteLength$2=Buffer.byteLength(data$2),readOnly=!1):isBlob$5(data$2)?(byteLength$2=data$2.size,readOnly=!1):(data$2=toBuffer$5(data$2),byteLength$2=data$2.length,readOnly=toBuffer$5.readOnly),byteLength$2>125)throw RangeError(`The data size must not be greater than 125 bytes`);let options$1={[kByteLength]:byteLength$2,fin:!0,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:10,readOnly,rsv1:!1};isBlob$5(data$2)?this._state===0?this.getBlobData(data$2,!1,options$1,cb):this.enqueue([this.getBlobData,data$2,!1,options$1,cb]):this._state===0?this.sendFrame(Sender$2.frame(data$2,options$1),cb):this.enqueue([this.dispatch,data$2,!1,options$1,cb])}send(data$2,options$1,cb){let perMessageDeflate=this._extensions[PerMessageDeflate$4.extensionName],opcode=options$1.binary?2:1,rsv1=options$1.compress,byteLength$2,readOnly;typeof data$2==`string`?(byteLength$2=Buffer.byteLength(data$2),readOnly=!1):isBlob$5(data$2)?(byteLength$2=data$2.size,readOnly=!1):(data$2=toBuffer$5(data$2),byteLength$2=data$2.length,readOnly=toBuffer$5.readOnly),this._firstFragment?(this._firstFragment=!1,rsv1&&perMessageDeflate&&perMessageDeflate.params[perMessageDeflate._isServer?`server_no_context_takeover`:`client_no_context_takeover`]&&(rsv1=byteLength$2>=perMessageDeflate._threshold),this._compress=rsv1):(rsv1=!1,opcode=0),options$1.fin&&(this._firstFragment=!0);let opts={[kByteLength]:byteLength$2,fin:options$1.fin,generateMask:this._generateMask,mask:options$1.mask,maskBuffer:this._maskBuffer,opcode,readOnly,rsv1};isBlob$5(data$2)?this._state===0?this.getBlobData(data$2,this._compress,opts,cb):this.enqueue([this.getBlobData,data$2,this._compress,opts,cb]):this._state===0?this.dispatch(data$2,this._compress,opts,cb):this.enqueue([this.dispatch,data$2,this._compress,opts,cb])}getBlobData(blob,compress,options$1,cb){this._bufferedBytes+=options$1[kByteLength],this._state=2,blob.arrayBuffer().then(arrayBuffer=>{if(this._socket.destroyed){let err$1=Error(`The socket was closed while the blob was being read`);process.nextTick(callCallbacks,this,err$1,cb);return}this._bufferedBytes-=options$1[kByteLength];let data$2=toBuffer$5(arrayBuffer);compress?this.dispatch(data$2,compress,options$1,cb):(this._state=0,this.sendFrame(Sender$2.frame(data$2,options$1),cb),this.dequeue())}).catch(err$1=>{process.nextTick(onError$2,this,err$1,cb)})}dispatch(data$2,compress,options$1,cb){if(!compress){this.sendFrame(Sender$2.frame(data$2,options$1),cb);return}let perMessageDeflate=this._extensions[PerMessageDeflate$4.extensionName];this._bufferedBytes+=options$1[kByteLength],this._state=1,perMessageDeflate.compress(data$2,options$1.fin,(_$6,buf)=>{if(this._socket.destroyed){let err$1=Error(`The socket was closed while data was being compressed`);callCallbacks(this,err$1,cb);return}this._bufferedBytes-=options$1[kByteLength],this._state=0,options$1.readOnly=!1,this.sendFrame(Sender$2.frame(buf,options$1),cb),this.dequeue()})}dequeue(){for(;this._state===0&&this._queue.length;){let params=this._queue.shift();this._bufferedBytes-=params[3][kByteLength],Reflect.apply(params[0],this,params.slice(1))}}enqueue(params){this._bufferedBytes+=params[3][kByteLength],this._queue.push(params)}sendFrame(list$2,cb){list$2.length===2?(this._socket.cork(),this._socket.write(list$2[0]),this._socket.write(list$2[1],cb),this._socket.uncork()):this._socket.write(list$2[0],cb)}};module.exports=Sender$2;function callCallbacks(sender,err$1,cb){typeof cb==`function`&&cb(err$1);for(let i$5=0;i$5<sender._queue.length;i$5++){let params=sender._queue[i$5],callback$1=params[params.length-1];typeof callback$1==`function`&&callback$1(err$1)}}function onError$2(sender,err$1,cb){callCallbacks(sender,err$1,cb),sender.onerror(err$1)}})),require_event_target=__commonJSMin(((exports,module)=>{let{kForOnEventAttribute:kForOnEventAttribute$1,kListener:kListener$2}=require_constants$11(),kCode=Symbol(`kCode`),kData=Symbol(`kData`),kError$3=Symbol(`kError`),kMessage=Symbol(`kMessage`),kReason=Symbol(`kReason`),kTarget=Symbol(`kTarget`),kType=Symbol(`kType`),kWasClean=Symbol(`kWasClean`);var Event$1=class{constructor(type){this[kTarget]=null,this[kType]=type}get target(){return this[kTarget]}get type(){return this[kType]}};Object.defineProperty(Event$1.prototype,`target`,{enumerable:!0}),Object.defineProperty(Event$1.prototype,`type`,{enumerable:!0});var CloseEvent$3=class extends Event$1{constructor(type,options$1={}){super(type),this[kCode]=options$1.code===void 0?0:options$1.code,this[kReason]=options$1.reason===void 0?``:options$1.reason,this[kWasClean]=options$1.wasClean===void 0?!1:options$1.wasClean}get code(){return this[kCode]}get reason(){return this[kReason]}get wasClean(){return this[kWasClean]}};Object.defineProperty(CloseEvent$3.prototype,`code`,{enumerable:!0}),Object.defineProperty(CloseEvent$3.prototype,`reason`,{enumerable:!0}),Object.defineProperty(CloseEvent$3.prototype,`wasClean`,{enumerable:!0});var ErrorEvent$4=class extends Event$1{constructor(type,options$1={}){super(type),this[kError$3]=options$1.error===void 0?null:options$1.error,this[kMessage]=options$1.message===void 0?``:options$1.message}get error(){return this[kError$3]}get message(){return this[kMessage]}};Object.defineProperty(ErrorEvent$4.prototype,`error`,{enumerable:!0}),Object.defineProperty(ErrorEvent$4.prototype,`message`,{enumerable:!0});var MessageEvent$3=class extends Event$1{constructor(type,options$1={}){super(type),this[kData]=options$1.data===void 0?null:options$1.data}get data(){return this[kData]}};Object.defineProperty(MessageEvent$3.prototype,`data`,{enumerable:!0});let EventTarget$1={addEventListener(type,handler,options$1={}){for(let listener of this.listeners(type))if(!options$1[kForOnEventAttribute$1]&&listener[kListener$2]===handler&&!listener[kForOnEventAttribute$1])return;let wrapper;if(type===`message`)wrapper=function(data$2,isBinary$1){let event=new MessageEvent$3(`message`,{data:isBinary$1?data$2:data$2.toString()});event[kTarget]=this,callListener(handler,this,event)};else if(type===`close`)wrapper=function(code$1,message){let event=new CloseEvent$3(`close`,{code:code$1,reason:message.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});event[kTarget]=this,callListener(handler,this,event)};else if(type===`error`)wrapper=function(error$65){let event=new ErrorEvent$4(`error`,{error:error$65,message:error$65.message});event[kTarget]=this,callListener(handler,this,event)};else if(type===`open`)wrapper=function(){let event=new Event$1(`open`);event[kTarget]=this,callListener(handler,this,event)};else return;wrapper[kForOnEventAttribute$1]=!!options$1[kForOnEventAttribute$1],wrapper[kListener$2]=handler,options$1.once?this.once(type,wrapper):this.on(type,wrapper)},removeEventListener(type,handler){for(let listener of this.listeners(type))if(listener[kListener$2]===handler&&!listener[kForOnEventAttribute$1]){this.removeListener(type,listener);break}}};module.exports={CloseEvent:CloseEvent$3,ErrorEvent:ErrorEvent$4,Event:Event$1,EventTarget:EventTarget$1,MessageEvent:MessageEvent$3};function callListener(listener,thisArg,event){typeof listener==`object`&&listener.handleEvent?listener.handleEvent.call(listener,event):listener.call(thisArg,event)}})),require_extension=__commonJSMin(((exports,module)=>{let{tokenChars:tokenChars$1}=require_validation$1();function push$2(dest,name$7,elem){dest[name$7]===void 0?dest[name$7]=[elem]:dest[name$7].push(elem)}function parse$21(header){let offers=Object.create(null),params=Object.create(null),mustUnescape=!1,isEscaping=!1,inQuotes=!1,extensionName,paramName,start$1=-1,code$1=-1,end=-1,i$5=0;for(;i$5<header.length;i$5++)if(code$1=header.charCodeAt(i$5),extensionName===void 0)if(end===-1&&tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(i$5!==0&&(code$1===32||code$1===9))end===-1&&start$1!==-1&&(end=i$5);else if(code$1===59||code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5);let name$7=header.slice(start$1,end);code$1===44?(push$2(offers,name$7,params),params=Object.create(null)):extensionName=name$7,start$1=end=-1}else throw SyntaxError(`Unexpected character at index ${i$5}`);else if(paramName===void 0)if(end===-1&&tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(code$1===32||code$1===9)end===-1&&start$1!==-1&&(end=i$5);else if(code$1===59||code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5),push$2(params,header.slice(start$1,end),!0),code$1===44&&(push$2(offers,extensionName,params),params=Object.create(null),extensionName=void 0),start$1=end=-1}else if(code$1===61&&start$1!==-1&&end===-1)paramName=header.slice(start$1,i$5),start$1=end=-1;else throw SyntaxError(`Unexpected character at index ${i$5}`);else if(isEscaping){if(tokenChars$1[code$1]!==1)throw SyntaxError(`Unexpected character at index ${i$5}`);start$1===-1?start$1=i$5:mustUnescape||=!0,isEscaping=!1}else if(inQuotes)if(tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(code$1===34&&start$1!==-1)inQuotes=!1,end=i$5;else if(code$1===92)isEscaping=!0;else throw SyntaxError(`Unexpected character at index ${i$5}`);else if(code$1===34&&header.charCodeAt(i$5-1)===61)inQuotes=!0;else if(end===-1&&tokenChars$1[code$1]===1)start$1===-1&&(start$1=i$5);else if(start$1!==-1&&(code$1===32||code$1===9))end===-1&&(end=i$5);else if(code$1===59||code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5);let value=header.slice(start$1,end);mustUnescape&&=(value=value.replace(/\\/g,``),!1),push$2(params,paramName,value),code$1===44&&(push$2(offers,extensionName,params),params=Object.create(null),extensionName=void 0),paramName=void 0,start$1=end=-1}else throw SyntaxError(`Unexpected character at index ${i$5}`);if(start$1===-1||inQuotes||code$1===32||code$1===9)throw SyntaxError(`Unexpected end of input`);end===-1&&(end=i$5);let token$1=header.slice(start$1,end);return extensionName===void 0?push$2(offers,token$1,params):(paramName===void 0?push$2(params,token$1,!0):mustUnescape?push$2(params,paramName,token$1.replace(/\\/g,``)):push$2(params,paramName,token$1),push$2(offers,extensionName,params)),offers}function format$3(extensions$1){return Object.keys(extensions$1).map(extension$1=>{let configurations=extensions$1[extension$1];return Array.isArray(configurations)||(configurations=[configurations]),configurations.map(params=>[extension$1].concat(Object.keys(params).map(k$2=>{let values=params[k$2];return Array.isArray(values)||(values=[values]),values.map(v$2=>v$2===!0?k$2:`${k$2}=${v$2}`).join(`; `)})).join(`; `)).join(`, `)}).join(`, `)}module.exports={format:format$3,parse:parse$21}})),require_websocket$1=__commonJSMin(((exports,module)=>{let EventEmitter$13=__require$1(`events`),https$9=__require$1(`https`),http$15=__require$1(`http`),net$8=__require$1(`net`),tls$6=__require$1(`tls`),{randomBytes,createHash:createHash$2}=__require$1(`crypto`),{Duplex:Duplex$5,Readable:Readable$14}=__require$1(`stream`),{URL:URL$11}=__require$1(`url`),PerMessageDeflate$3=require_permessage_deflate$1(),Receiver$1=require_receiver$1(),Sender$1=require_sender$1(),{isBlob:isBlob$4}=require_validation$1(),{BINARY_TYPES,EMPTY_BUFFER,GUID:GUID$1,kForOnEventAttribute,kListener:kListener$1,kStatusCode,kWebSocket:kWebSocket$1,NOOP:NOOP$2}=require_constants$11(),{EventTarget:{addEventListener,removeEventListener}}=require_event_target(),{format:format$2,parse:parse$20}=require_extension(),{toBuffer:toBuffer$4}=require_buffer_util(),closeTimeout=30*1e3,kAborted=Symbol(`kAborted`),protocolVersions=[8,13],readyStates=[`CONNECTING`,`OPEN`,`CLOSING`,`CLOSED`],subprotocolRegex=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;var WebSocket$7=class WebSocket$7 extends EventEmitter$13{constructor(address,protocols,options$1){super(),this._binaryType=BINARY_TYPES[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=EMPTY_BUFFER,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol=``,this._readyState=WebSocket$7.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,address===null?(this._autoPong=options$1.autoPong,this._isServer=!0):(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,protocols===void 0?protocols=[]:Array.isArray(protocols)||(typeof protocols==`object`&&protocols?(options$1=protocols,protocols=[]):protocols=[protocols]),initAsClient(this,address,protocols,options$1))}get binaryType(){return this._binaryType}set binaryType(type){BINARY_TYPES.includes(type)&&(this._binaryType=type,this._receiver&&(this._receiver._binaryType=type))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(socket,head,options$1){let receiver=new Receiver$1({allowSynchronousEvents:options$1.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:options$1.maxPayload,skipUTF8Validation:options$1.skipUTF8Validation}),sender=new Sender$1(socket,this._extensions,options$1.generateMask);this._receiver=receiver,this._sender=sender,this._socket=socket,receiver[kWebSocket$1]=this,sender[kWebSocket$1]=this,socket[kWebSocket$1]=this,receiver.on(`conclude`,receiverOnConclude),receiver.on(`drain`,receiverOnDrain),receiver.on(`error`,receiverOnError),receiver.on(`message`,receiverOnMessage),receiver.on(`ping`,receiverOnPing),receiver.on(`pong`,receiverOnPong),sender.onerror=senderOnError,socket.setTimeout&&socket.setTimeout(0),socket.setNoDelay&&socket.setNoDelay(),head.length>0&&socket.unshift(head),socket.on(`close`,socketOnClose),socket.on(`data`,socketOnData),socket.on(`end`,socketOnEnd),socket.on(`error`,socketOnError$1),this._readyState=WebSocket$7.OPEN,this.emit(`open`)}emitClose(){if(!this._socket){this._readyState=WebSocket$7.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage);return}this._extensions[PerMessageDeflate$3.extensionName]&&this._extensions[PerMessageDeflate$3.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=WebSocket$7.CLOSED,this.emit(`close`,this._closeCode,this._closeMessage)}close(code$1,data$2){if(this.readyState!==WebSocket$7.CLOSED){if(this.readyState===WebSocket$7.CONNECTING){let msg=`WebSocket was closed before the connection was established`;abortHandshake$1(this,this._req,`WebSocket was closed before the connection was established`);return}if(this.readyState===WebSocket$7.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=WebSocket$7.CLOSING,this._sender.close(code$1,data$2,!this._isServer,err$1=>{err$1||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),setCloseTimer(this)}}pause(){this.readyState===WebSocket$7.CONNECTING||this.readyState===WebSocket$7.CLOSED||(this._paused=!0,this._socket.pause())}ping(data$2,mask,cb){if(this.readyState===WebSocket$7.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data$2==`function`?(cb=data$2,data$2=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data$2==`number`&&(data$2=data$2.toString()),this.readyState!==WebSocket$7.OPEN){sendAfterClose(this,data$2,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.ping(data$2||EMPTY_BUFFER,mask,cb)}pong(data$2,mask,cb){if(this.readyState===WebSocket$7.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof data$2==`function`?(cb=data$2,data$2=mask=void 0):typeof mask==`function`&&(cb=mask,mask=void 0),typeof data$2==`number`&&(data$2=data$2.toString()),this.readyState!==WebSocket$7.OPEN){sendAfterClose(this,data$2,cb);return}mask===void 0&&(mask=!this._isServer),this._sender.pong(data$2||EMPTY_BUFFER,mask,cb)}resume(){this.readyState===WebSocket$7.CONNECTING||this.readyState===WebSocket$7.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(data$2,options$1,cb){if(this.readyState===WebSocket$7.CONNECTING)throw Error(`WebSocket is not open: readyState 0 (CONNECTING)`);if(typeof options$1==`function`&&(cb=options$1,options$1={}),typeof data$2==`number`&&(data$2=data$2.toString()),this.readyState!==WebSocket$7.OPEN){sendAfterClose(this,data$2,cb);return}let opts={binary:typeof data$2!=`string`,mask:!this._isServer,compress:!0,fin:!0,...options$1};this._extensions[PerMessageDeflate$3.extensionName]||(opts.compress=!1),this._sender.send(data$2||EMPTY_BUFFER,opts,cb)}terminate(){if(this.readyState!==WebSocket$7.CLOSED){if(this.readyState===WebSocket$7.CONNECTING){let msg=`WebSocket was closed before the connection was established`;abortHandshake$1(this,this._req,`WebSocket was closed before the connection was established`);return}this._socket&&(this._readyState=WebSocket$7.CLOSING,this._socket.destroy())}}};Object.defineProperty(WebSocket$7,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket$7.prototype,`CONNECTING`,{enumerable:!0,value:readyStates.indexOf(`CONNECTING`)}),Object.defineProperty(WebSocket$7,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket$7.prototype,`OPEN`,{enumerable:!0,value:readyStates.indexOf(`OPEN`)}),Object.defineProperty(WebSocket$7,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket$7.prototype,`CLOSING`,{enumerable:!0,value:readyStates.indexOf(`CLOSING`)}),Object.defineProperty(WebSocket$7,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),Object.defineProperty(WebSocket$7.prototype,`CLOSED`,{enumerable:!0,value:readyStates.indexOf(`CLOSED`)}),[`binaryType`,`bufferedAmount`,`extensions`,`isPaused`,`protocol`,`readyState`,`url`].forEach(property=>{Object.defineProperty(WebSocket$7.prototype,property,{enumerable:!0})}),[`open`,`error`,`close`,`message`].forEach(method=>{Object.defineProperty(WebSocket$7.prototype,`on${method}`,{enumerable:!0,get(){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute])return listener[kListener$1];return null},set(handler){for(let listener of this.listeners(method))if(listener[kForOnEventAttribute]){this.removeListener(method,listener);break}typeof handler==`function`&&this.addEventListener(method,handler,{[kForOnEventAttribute]:!0})}})}),WebSocket$7.prototype.addEventListener=addEventListener,WebSocket$7.prototype.removeEventListener=removeEventListener,module.exports=WebSocket$7;function initAsClient(websocket,address,protocols,options$1){let opts={allowSynchronousEvents:!0,autoPong:!0,protocolVersion:protocolVersions[1],maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...options$1,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:`GET`,host:void 0,path:void 0,port:void 0};if(websocket._autoPong=opts.autoPong,!protocolVersions.includes(opts.protocolVersion))throw RangeError(`Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(`, `)})`);let parsedUrl;if(address instanceof URL$11)parsedUrl=address;else try{parsedUrl=new URL$11(address)}catch{throw SyntaxError(`Invalid URL: ${address}`)}parsedUrl.protocol===`http:`?parsedUrl.protocol=`ws:`:parsedUrl.protocol===`https:`&&(parsedUrl.protocol=`wss:`),websocket._url=parsedUrl.href;let isSecure=parsedUrl.protocol===`wss:`,isIpcUrl=parsedUrl.protocol===`ws+unix:`,invalidUrlMessage;if(parsedUrl.protocol!==`ws:`&&!isSecure&&!isIpcUrl?invalidUrlMessage=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:isIpcUrl&&!parsedUrl.pathname?invalidUrlMessage=`The URL's pathname is empty`:parsedUrl.hash&&(invalidUrlMessage=`The URL contains a fragment identifier`),invalidUrlMessage){let err$1=SyntaxError(invalidUrlMessage);if(websocket._redirects===0)throw err$1;emitErrorAndClose(websocket,err$1);return}let defaultPort$1=isSecure?443:80,key=randomBytes(16).toString(`base64`),request$3=isSecure?https$9.request:http$15.request,protocolSet=new Set,perMessageDeflate;if(opts.createConnection=opts.createConnection||(isSecure?tlsConnect:netConnect),opts.defaultPort=opts.defaultPort||defaultPort$1,opts.port=parsedUrl.port||defaultPort$1,opts.host=parsedUrl.hostname.startsWith(`[`)?parsedUrl.hostname.slice(1,-1):parsedUrl.hostname,opts.headers={...opts.headers,"Sec-WebSocket-Version":opts.protocolVersion,"Sec-WebSocket-Key":key,Connection:`Upgrade`,Upgrade:`websocket`},opts.path=parsedUrl.pathname+parsedUrl.search,opts.timeout=opts.handshakeTimeout,opts.perMessageDeflate&&(perMessageDeflate=new PerMessageDeflate$3(opts.perMessageDeflate===!0?{}:opts.perMessageDeflate,!1,opts.maxPayload),opts.headers[`Sec-WebSocket-Extensions`]=format$2({[PerMessageDeflate$3.extensionName]:perMessageDeflate.offer()})),protocols.length){for(let protocol of protocols){if(typeof protocol!=`string`||!subprotocolRegex.test(protocol)||protocolSet.has(protocol))throw SyntaxError(`An invalid or duplicated subprotocol was specified`);protocolSet.add(protocol)}opts.headers[`Sec-WebSocket-Protocol`]=protocols.join(`,`)}if(opts.origin&&(opts.protocolVersion<13?opts.headers[`Sec-WebSocket-Origin`]=opts.origin:opts.headers.Origin=opts.origin),(parsedUrl.username||parsedUrl.password)&&(opts.auth=`${parsedUrl.username}:${parsedUrl.password}`),isIpcUrl){let parts=opts.path.split(`:`);opts.socketPath=parts[0],opts.path=parts[1]}let req$1;if(opts.followRedirects){if(websocket._redirects===0){websocket._originalIpc=isIpcUrl,websocket._originalSecure=isSecure,websocket._originalHostOrSocketPath=isIpcUrl?opts.socketPath:parsedUrl.host;let headers$2=options$1&&options$1.headers;if(options$1={...options$1,headers:{}},headers$2)for(let[key$1,value]of Object.entries(headers$2))options$1.headers[key$1.toLowerCase()]=value}else if(websocket.listenerCount(`redirect`)===0){let isSameHost=isIpcUrl?websocket._originalIpc?opts.socketPath===websocket._originalHostOrSocketPath:!1:websocket._originalIpc?!1:parsedUrl.host===websocket._originalHostOrSocketPath;(!isSameHost||websocket._originalSecure&&!isSecure)&&(delete opts.headers.authorization,delete opts.headers.cookie,isSameHost||delete opts.headers.host,opts.auth=void 0)}opts.auth&&!options$1.headers.authorization&&(options$1.headers.authorization=`Basic `+Buffer.from(opts.auth).toString(`base64`)),req$1=websocket._req=request$3(opts),websocket._redirects&&websocket.emit(`redirect`,websocket.url,req$1)}else req$1=websocket._req=request$3(opts);opts.timeout&&req$1.on(`timeout`,()=>{abortHandshake$1(websocket,req$1,`Opening handshake has timed out`)}),req$1.on(`error`,err$1=>{req$1===null||req$1[kAborted]||(req$1=websocket._req=null,emitErrorAndClose(websocket,err$1))}),req$1.on(`response`,res=>{let location=res.headers.location,statusCode=res.statusCode;if(location&&opts.followRedirects&&statusCode>=300&&statusCode<400){if(++websocket._redirects>opts.maxRedirects){abortHandshake$1(websocket,req$1,`Maximum redirects exceeded`);return}req$1.abort();let addr;try{addr=new URL$11(location,address)}catch{let err$1=SyntaxError(`Invalid URL: ${location}`);emitErrorAndClose(websocket,err$1);return}initAsClient(websocket,addr,protocols,options$1)}else websocket.emit(`unexpected-response`,req$1,res)||abortHandshake$1(websocket,req$1,`Unexpected server response: ${res.statusCode}`)}),req$1.on(`upgrade`,(res,socket,head)=>{if(websocket.emit(`upgrade`,res),websocket.readyState!==WebSocket$7.CONNECTING)return;req$1=websocket._req=null;let upgrade$1=res.headers.upgrade;if(upgrade$1===void 0||upgrade$1.toLowerCase()!==`websocket`){abortHandshake$1(websocket,socket,`Invalid Upgrade header`);return}let digest=createHash$2(`sha1`).update(key+GUID$1).digest(`base64`);if(res.headers[`sec-websocket-accept`]!==digest){abortHandshake$1(websocket,socket,`Invalid Sec-WebSocket-Accept header`);return}let serverProt=res.headers[`sec-websocket-protocol`],protError;if(serverProt===void 0?protocolSet.size&&(protError=`Server sent no subprotocol`):protocolSet.size?protocolSet.has(serverProt)||(protError=`Server sent an invalid subprotocol`):protError=`Server sent a subprotocol but none was requested`,protError){abortHandshake$1(websocket,socket,protError);return}serverProt&&(websocket._protocol=serverProt);let secWebSocketExtensions=res.headers[`sec-websocket-extensions`];if(secWebSocketExtensions!==void 0){if(!perMessageDeflate){let message=`Server sent a Sec-WebSocket-Extensions header but no extension was requested`;abortHandshake$1(websocket,socket,`Server sent a Sec-WebSocket-Extensions header but no extension was requested`);return}let extensions$1;try{extensions$1=parse$20(secWebSocketExtensions)}catch{let message=`Invalid Sec-WebSocket-Extensions header`;abortHandshake$1(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}let extensionNames=Object.keys(extensions$1);if(extensionNames.length!==1||extensionNames[0]!==PerMessageDeflate$3.extensionName){let message=`Server indicated an extension that was not requested`;abortHandshake$1(websocket,socket,`Server indicated an extension that was not requested`);return}try{perMessageDeflate.accept(extensions$1[PerMessageDeflate$3.extensionName])}catch{let message=`Invalid Sec-WebSocket-Extensions header`;abortHandshake$1(websocket,socket,`Invalid Sec-WebSocket-Extensions header`);return}websocket._extensions[PerMessageDeflate$3.extensionName]=perMessageDeflate}websocket.setSocket(socket,head,{allowSynchronousEvents:opts.allowSynchronousEvents,generateMask:opts.generateMask,maxPayload:opts.maxPayload,skipUTF8Validation:opts.skipUTF8Validation})}),opts.finishRequest?opts.finishRequest(req$1,websocket):req$1.end()}function emitErrorAndClose(websocket,err$1){websocket._readyState=WebSocket$7.CLOSING,websocket._errorEmitted=!0,websocket.emit(`error`,err$1),websocket.emitClose()}function netConnect(options$1){return options$1.path=options$1.socketPath,net$8.connect(options$1)}function tlsConnect(options$1){return options$1.path=void 0,!options$1.servername&&options$1.servername!==``&&(options$1.servername=net$8.isIP(options$1.host)?``:options$1.host),tls$6.connect(options$1)}function abortHandshake$1(websocket,stream$10,message){websocket._readyState=WebSocket$7.CLOSING;let err$1=Error(message);Error.captureStackTrace(err$1,abortHandshake$1),stream$10.setHeader?(stream$10[kAborted]=!0,stream$10.abort(),stream$10.socket&&!stream$10.socket.destroyed&&stream$10.socket.destroy(),process.nextTick(emitErrorAndClose,websocket,err$1)):(stream$10.destroy(err$1),stream$10.once(`error`,websocket.emit.bind(websocket,`error`)),stream$10.once(`close`,websocket.emitClose.bind(websocket)))}function sendAfterClose(websocket,data$2,cb){if(data$2){let length=isBlob$4(data$2)?data$2.size:toBuffer$4(data$2).length;websocket._socket?websocket._sender._bufferedBytes+=length:websocket._bufferedAmount+=length}if(cb){let err$1=Error(`WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`);process.nextTick(cb,err$1)}}function receiverOnConclude(code$1,reason){let websocket=this[kWebSocket$1];websocket._closeFrameReceived=!0,websocket._closeMessage=reason,websocket._closeCode=code$1,websocket._socket[kWebSocket$1]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume$2,websocket._socket),code$1===1005?websocket.close():websocket.close(code$1,reason))}function receiverOnDrain(){let websocket=this[kWebSocket$1];websocket.isPaused||websocket._socket.resume()}function receiverOnError(err$1){let websocket=this[kWebSocket$1];websocket._socket[kWebSocket$1]!==void 0&&(websocket._socket.removeListener(`data`,socketOnData),process.nextTick(resume$2,websocket._socket),websocket.close(err$1[kStatusCode])),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err$1))}function receiverOnFinish(){this[kWebSocket$1].emitClose()}function receiverOnMessage(data$2,isBinary$1){this[kWebSocket$1].emit(`message`,data$2,isBinary$1)}function receiverOnPing(data$2){let websocket=this[kWebSocket$1];websocket._autoPong&&websocket.pong(data$2,!this._isServer,NOOP$2),websocket.emit(`ping`,data$2)}function receiverOnPong(data$2){this[kWebSocket$1].emit(`pong`,data$2)}function resume$2(stream$10){stream$10.resume()}function senderOnError(err$1){let websocket=this[kWebSocket$1];websocket.readyState!==WebSocket$7.CLOSED&&(websocket.readyState===WebSocket$7.OPEN&&(websocket._readyState=WebSocket$7.CLOSING,setCloseTimer(websocket)),this._socket.end(),websocket._errorEmitted||(websocket._errorEmitted=!0,websocket.emit(`error`,err$1)))}function setCloseTimer(websocket){websocket._closeTimer=setTimeout(websocket._socket.destroy.bind(websocket._socket),3e4)}function socketOnClose(){let websocket=this[kWebSocket$1];this.removeListener(`close`,socketOnClose),this.removeListener(`data`,socketOnData),this.removeListener(`end`,socketOnEnd),websocket._readyState=WebSocket$7.CLOSING;let chunk$1;!this._readableState.endEmitted&&!websocket._closeFrameReceived&&!websocket._receiver._writableState.errorEmitted&&(chunk$1=websocket._socket.read())!==null&&websocket._receiver.write(chunk$1),websocket._receiver.end(),this[kWebSocket$1]=void 0,clearTimeout(websocket._closeTimer),websocket._receiver._writableState.finished||websocket._receiver._writableState.errorEmitted?websocket.emitClose():(websocket._receiver.on(`error`,receiverOnFinish),websocket._receiver.on(`finish`,receiverOnFinish))}function socketOnData(chunk$1){this[kWebSocket$1]._receiver.write(chunk$1)||this.pause()}function socketOnEnd(){let websocket=this[kWebSocket$1];websocket._readyState=WebSocket$7.CLOSING,websocket._receiver.end(),this.end()}function socketOnError$1(){let websocket=this[kWebSocket$1];this.removeListener(`error`,socketOnError$1),this.on(`error`,NOOP$2),websocket&&(websocket._readyState=WebSocket$7.CLOSING,this.destroy())}})),require_stream=__commonJSMin(((exports,module)=>{require_websocket$1();let{Duplex:Duplex$4}=__require$1(`stream`);function emitClose$1(stream$10){stream$10.emit(`close`)}function duplexOnEnd(){!this.destroyed&&this._writableState.finished&&this.destroy()}function duplexOnError(err$1){this.removeListener(`error`,duplexOnError),this.destroy(),this.listenerCount(`error`)===0&&this.emit(`error`,err$1)}function createWebSocketStream$1(ws$2,options$1){let terminateOnDestroy=!0,duplex$1=new Duplex$4({...options$1,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return ws$2.on(`message`,function(msg,isBinary$1){let data$2=!isBinary$1&&duplex$1._readableState.objectMode?msg.toString():msg;duplex$1.push(data$2)||ws$2.pause()}),ws$2.once(`error`,function(err$1){duplex$1.destroyed||(terminateOnDestroy=!1,duplex$1.destroy(err$1))}),ws$2.once(`close`,function(){duplex$1.destroyed||duplex$1.push(null)}),duplex$1._destroy=function(err$1,callback$1){if(ws$2.readyState===ws$2.CLOSED){callback$1(err$1),process.nextTick(emitClose$1,duplex$1);return}let called=!1;ws$2.once(`error`,function(err$2){called=!0,callback$1(err$2)}),ws$2.once(`close`,function(){called||callback$1(err$1),process.nextTick(emitClose$1,duplex$1)}),terminateOnDestroy&&ws$2.terminate()},duplex$1._final=function(callback$1){if(ws$2.readyState===ws$2.CONNECTING){ws$2.once(`open`,function(){duplex$1._final(callback$1)});return}ws$2._socket!==null&&(ws$2._socket._writableState.finished?(callback$1(),duplex$1._readableState.endEmitted&&duplex$1.destroy()):(ws$2._socket.once(`finish`,function(){callback$1()}),ws$2.close()))},duplex$1._read=function(){ws$2.isPaused&&ws$2.resume()},duplex$1._write=function(chunk$1,encoding,callback$1){if(ws$2.readyState===ws$2.CONNECTING){ws$2.once(`open`,function(){duplex$1._write(chunk$1,encoding,callback$1)});return}ws$2.send(chunk$1,callback$1)},duplex$1.on(`end`,duplexOnEnd),duplex$1.on(`error`,duplexOnError),duplex$1}module.exports=createWebSocketStream$1})),require_subprotocol=__commonJSMin(((exports,module)=>{let{tokenChars}=require_validation$1();function parse$19(header){let protocols=new Set,start$1=-1,end=-1,i$5=0;for(;i$5<header.length;i$5++){let code$1=header.charCodeAt(i$5);if(end===-1&&tokenChars[code$1]===1)start$1===-1&&(start$1=i$5);else if(i$5!==0&&(code$1===32||code$1===9))end===-1&&start$1!==-1&&(end=i$5);else if(code$1===44){if(start$1===-1)throw SyntaxError(`Unexpected character at index ${i$5}`);end===-1&&(end=i$5);let protocol$1=header.slice(start$1,end);if(protocols.has(protocol$1))throw SyntaxError(`The "${protocol$1}" subprotocol is duplicated`);protocols.add(protocol$1),start$1=end=-1}else throw SyntaxError(`Unexpected character at index ${i$5}`)}if(start$1===-1||end!==-1)throw SyntaxError(`Unexpected end of input`);let protocol=header.slice(start$1,i$5);if(protocols.has(protocol))throw SyntaxError(`The "${protocol}" subprotocol is duplicated`);return protocols.add(protocol),protocols}module.exports={parse:parse$19}})),require_websocket_server=__commonJSMin(((exports,module)=>{let EventEmitter$12=__require$1(`events`),http$14=__require$1(`http`),{Duplex:Duplex$3}=__require$1(`stream`),{createHash:createHash$1}=__require$1(`crypto`),extension=require_extension(),PerMessageDeflate$2=require_permessage_deflate$1(),subprotocol=require_subprotocol(),WebSocket$6=require_websocket$1(),{GUID,kWebSocket}=require_constants$11(),keyRegex=/^[+/0-9A-Za-z]{22}==$/,RUNNING=0,CLOSING=1,CLOSED$2=2;var WebSocketServer$1=class extends EventEmitter$12{constructor(options$1,callback$1){if(super(),options$1={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:WebSocket$6,...options$1},options$1.port==null&&!options$1.server&&!options$1.noServer||options$1.port!=null&&(options$1.server||options$1.noServer)||options$1.server&&options$1.noServer)throw TypeError(`One and only one of the "port", "server", or "noServer" options must be specified`);if(options$1.port==null?options$1.server&&(this._server=options$1.server):(this._server=http$14.createServer((req$1,res)=>{let body=http$14.STATUS_CODES[426];res.writeHead(426,{"Content-Length":body.length,"Content-Type":`text/plain`}),res.end(body)}),this._server.listen(options$1.port,options$1.host,options$1.backlog,callback$1)),this._server){let emitConnection=this.emit.bind(this,`connection`);this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,`listening`),error:this.emit.bind(this,`error`),upgrade:(req$1,socket,head)=>{this.handleUpgrade(req$1,socket,head,emitConnection)}})}options$1.perMessageDeflate===!0&&(options$1.perMessageDeflate={}),options$1.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=options$1,this._state=0}address(){if(this.options.noServer)throw Error(`The server is operating in "noServer" mode`);return this._server?this._server.address():null}close(cb){if(this._state===2){cb&&this.once(`close`,()=>{cb(Error(`The server is not running`))}),process.nextTick(emitClose,this);return}if(cb&&this.once(`close`,cb),this._state!==1)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(emitClose,this);else{let server=this._server;this._removeListeners(),this._removeListeners=this._server=null,server.close(()=>{emitClose(this)})}}shouldHandle(req$1){if(this.options.path){let index=req$1.url.indexOf(`?`),pathname=index===-1?req$1.url:req$1.url.slice(0,index);if(pathname!==this.options.path)return!1}return!0}handleUpgrade(req$1,socket,head,cb){socket.on(`error`,socketOnError);let key=req$1.headers[`sec-websocket-key`],upgrade$1=req$1.headers.upgrade,version$5=+req$1.headers[`sec-websocket-version`];if(req$1.method!==`GET`){let message=`Invalid HTTP method`;abortHandshakeOrEmitwsClientError(this,req$1,socket,405,`Invalid HTTP method`);return}if(upgrade$1===void 0||upgrade$1.toLowerCase()!==`websocket`){let message=`Invalid Upgrade header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Invalid Upgrade header`);return}if(key===void 0||!keyRegex.test(key)){let message=`Missing or invalid Sec-WebSocket-Key header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Missing or invalid Sec-WebSocket-Key header`);return}if(version$5!==13&&version$5!==8){let message=`Missing or invalid Sec-WebSocket-Version header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Missing or invalid Sec-WebSocket-Version header`,{"Sec-WebSocket-Version":`13, 8`});return}if(!this.shouldHandle(req$1)){abortHandshake(socket,400);return}let secWebSocketProtocol=req$1.headers[`sec-websocket-protocol`],protocols=new Set;if(secWebSocketProtocol!==void 0)try{protocols=subprotocol.parse(secWebSocketProtocol)}catch{let message=`Invalid Sec-WebSocket-Protocol header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Invalid Sec-WebSocket-Protocol header`);return}let secWebSocketExtensions=req$1.headers[`sec-websocket-extensions`],extensions$1={};if(this.options.perMessageDeflate&&secWebSocketExtensions!==void 0){let perMessageDeflate=new PerMessageDeflate$2(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let offers=extension.parse(secWebSocketExtensions);offers[PerMessageDeflate$2.extensionName]&&(perMessageDeflate.accept(offers[PerMessageDeflate$2.extensionName]),extensions$1[PerMessageDeflate$2.extensionName]=perMessageDeflate)}catch{let message=`Invalid or unacceptable Sec-WebSocket-Extensions header`;abortHandshakeOrEmitwsClientError(this,req$1,socket,400,`Invalid or unacceptable Sec-WebSocket-Extensions header`);return}}if(this.options.verifyClient){let info$1={origin:req$1.headers[`${version$5===8?`sec-websocket-origin`:`origin`}`],secure:!!(req$1.socket.authorized||req$1.socket.encrypted),req:req$1};if(this.options.verifyClient.length===2){this.options.verifyClient(info$1,(verified,code$1,message,headers$2)=>{if(!verified)return abortHandshake(socket,code$1||401,message,headers$2);this.completeUpgrade(extensions$1,key,protocols,req$1,socket,head,cb)});return}if(!this.options.verifyClient(info$1))return abortHandshake(socket,401)}this.completeUpgrade(extensions$1,key,protocols,req$1,socket,head,cb)}completeUpgrade(extensions$1,key,protocols,req$1,socket,head,cb){if(!socket.readable||!socket.writable)return socket.destroy();if(socket[kWebSocket])throw Error(`server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration`);if(this._state>0)return abortHandshake(socket,503);let digest=createHash$1(`sha1`).update(key+GUID).digest(`base64`),headers$2=[`HTTP/1.1 101 Switching Protocols`,`Upgrade: websocket`,`Connection: Upgrade`,`Sec-WebSocket-Accept: ${digest}`],ws$2=new this.options.WebSocket(null,void 0,this.options);if(protocols.size){let protocol=this.options.handleProtocols?this.options.handleProtocols(protocols,req$1):protocols.values().next().value;protocol&&(headers$2.push(`Sec-WebSocket-Protocol: ${protocol}`),ws$2._protocol=protocol)}if(extensions$1[PerMessageDeflate$2.extensionName]){let params=extensions$1[PerMessageDeflate$2.extensionName].params,value=extension.format({[PerMessageDeflate$2.extensionName]:[params]});headers$2.push(`Sec-WebSocket-Extensions: ${value}`),ws$2._extensions=extensions$1}this.emit(`headers`,headers$2,req$1),socket.write(headers$2.concat(`\r
|
|
21
|
-
`).join(`\r
|
|
22
|
-
`)),socket.removeListener(`error`,socketOnError),ws$2.setSocket(socket,head,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(ws$2),ws$2.on(`close`,()=>{this.clients.delete(ws$2),this._shouldEmitClose&&!this.clients.size&&process.nextTick(emitClose,this)})),cb(ws$2,req$1)}};module.exports=WebSocketServer$1;function addListeners(server,map$3){for(let event of Object.keys(map$3))server.on(event,map$3[event]);return function(){for(let event of Object.keys(map$3))server.removeListener(event,map$3[event])}}function emitClose(server){server._state=2,server.emit(`close`)}function socketOnError(){this.destroy()}function abortHandshake(socket,code$1,message,headers$2){message||=http$14.STATUS_CODES[code$1],headers$2={Connection:`close`,"Content-Type":`text/html`,"Content-Length":Buffer.byteLength(message),...headers$2},socket.once(`finish`,socket.destroy),socket.end(`HTTP/1.1 ${code$1} ${http$14.STATUS_CODES[code$1]}\r\n`+Object.keys(headers$2).map(h$4=>`${h$4}: ${headers$2[h$4]}`).join(`\r
|
|
23
|
-
`)+`\r
|
|
24
|
-
\r
|
|
25
|
-
`+message)}function abortHandshakeOrEmitwsClientError(server,req$1,socket,code$1,message,headers$2){if(server.listenerCount(`wsClientError`)){let err$1=Error(message);Error.captureStackTrace(err$1,abortHandshakeOrEmitwsClientError),server.emit(`wsClientError`,err$1,socket,req$1)}else abortHandshake(socket,code$1,message,headers$2)}})),import_stream,import_receiver,import_sender,import_websocket,import_websocket_server,wrapper_default,init_wrapper=__esmMin((()=>{import_stream=__toESM(require_stream(),1),import_receiver=__toESM(require_receiver$1(),1),import_sender=__toESM(require_sender$1(),1),import_websocket=__toESM(require_websocket$1(),1),import_websocket_server=__toESM(require_websocket_server(),1),wrapper_default=import_websocket.default}));init_wrapper();var Emitter=class{listeners=[];get event(){return listener=>(this.listeners.push(listener),{dispose:()=>{this.listeners=this.listeners.filter(l$2=>l$2!==listener)}})}emit(event){for(let i$5=this.listeners.length-1;i$5>=0;i$5--)this.listeners[i$5]?.(event)}dispose(){this.listeners=[]}};let MessageType=function(MessageType$1){return MessageType$1[MessageType$1.DATA=0]=`DATA`,MessageType$1[MessageType$1.CLOSE=1]=`CLOSE`,MessageType$1[MessageType$1.ERROR=2]=`ERROR`,MessageType$1}({}),Flag=function(Flag$1){return Flag$1[Flag$1.NEW=1]=`NEW`,Flag$1}({});var BufferPool=class{static MAX_POOL_SIZE=100;static COMMON_SIZES=[64,256,1024,4096,16384];static pools=new Map;static{for(let size of this.COMMON_SIZES)this.pools.set(size,[])}static acquire(size){for(let poolSize of this.COMMON_SIZES)if(poolSize>=size){let pool$1=this.pools.get(poolSize);if(pool$1&&pool$1.length>0)return pool$1.pop();break}return new Uint8Array(size)}static release(buffer$2){let size=buffer$2.length;for(let poolSize of this.COMMON_SIZES)if(poolSize===size){let pool$1=this.pools.get(poolSize);pool$1&&pool$1.length<this.MAX_POOL_SIZE&&pool$1.push(buffer$2);break}}},FrameCodec=class FrameCodec{static HEADER_SIZE=4;static MAX_FRAME_SIZE=1024*1024-FrameCodec.HEADER_SIZE;static encode(frame){let payloadLength=frame.payload.length;if(payloadLength>this.MAX_FRAME_SIZE)throw Error(`Frame payload too large: ${payloadLength} > ${this.MAX_FRAME_SIZE}`);let totalSize=this.HEADER_SIZE+payloadLength,result=BufferPool.acquire(totalSize),word=frame.streamId<<8|frame.type<<4|frame.flags&15;return result[0]=word>>>24&255,result[1]=word>>>16&255,result[2]=word>>>8&255,result[3]=word&255,payloadLength>0&&result.set(frame.payload,this.HEADER_SIZE),result.length===totalSize?result:result.subarray(0,totalSize)}static encodeTyped(streamId,msgType,flags,typeByte,payload){let payloadLength=1+payload.length;if(payloadLength>this.MAX_FRAME_SIZE)throw Error(`Frame payload too large: ${payloadLength} > ${this.MAX_FRAME_SIZE}`);let totalSize=this.HEADER_SIZE+payloadLength,result=BufferPool.acquire(totalSize),word=streamId<<8|msgType<<4|flags&15;return result[0]=word>>>24&255,result[1]=word>>>16&255,result[2]=word>>>8&255,result[3]=word&255,result[FrameCodec.HEADER_SIZE]=typeByte&255,payload.length>0&&result.set(payload,FrameCodec.HEADER_SIZE+1),result.length===totalSize?result:result.subarray(0,totalSize)}static decode(data$2){if(data$2.length<FrameCodec.HEADER_SIZE)throw Error(`Invalid frame: too short (${data$2.length} < ${FrameCodec.HEADER_SIZE})`);let word=data$2[0]<<24|data$2[1]<<16|data$2[2]<<8|data$2[3],streamId=word>>>8,typeAndFlags=word&255,type=typeAndFlags>>>4,flags=typeAndFlags&15,payload=data$2.length>FrameCodec.HEADER_SIZE?data$2.subarray(FrameCodec.HEADER_SIZE):new Uint8Array;return{streamId,type,flags,payload}}static releaseBuffer(buffer$2){BufferPool.release(buffer$2)}static getMaxPayloadSize(){return FrameCodec.MAX_FRAME_SIZE}},Stream$7=class{_onData;_onClose;_onError;_disposed=!1;_id;constructor(id,send,sendTypedCb){this.send=send,this.sendTypedCb=sendTypedCb,this._id=id}get id(){return this._id}get onData(){return this._onData||=new Emitter,this._onData.event}get onClose(){return this._onClose||=new Emitter,this._onClose.event}get onError(){return this._onError||=new Emitter,this._onError.event}write(data$2,isFirst=!1){if(this._disposed)throw Error(`Cannot write to disposed stream ${this.id}`);let maxPayload=FrameCodec.getMaxPayloadSize();if(data$2.length<=maxPayload){this.send({streamId:this.id,type:MessageType.DATA,flags:isFirst?Flag.NEW:0,payload:data$2});return}let offset=0,firstChunk=!0;for(;offset<data$2.length;){let remaining=data$2.length-offset,chunkSize=remaining>maxPayload?maxPayload:remaining,chunk$1=data$2.subarray(offset,offset+chunkSize);this.send({streamId:this.id,type:MessageType.DATA,flags:isFirst&&firstChunk?Flag.NEW:0,payload:chunk$1}),offset+=chunkSize,firstChunk=!1}}writeTyped(typeByte,data$2,isFirst=!1){if(this._disposed)throw Error(`Cannot write to disposed stream ${this.id}`);if(!this.sendTypedCb){let merged=new Uint8Array(1+data$2.length);merged[0]=typeByte&255,data$2.length&&merged.set(data$2,1),this.write(merged,isFirst);return}let maxPayload=FrameCodec.getMaxPayloadSize()-1;if(data$2.length<=maxPayload){this.sendTypedCb(this.id,isFirst?Flag.NEW:0,typeByte,data$2);return}let offset=0,firstChunk=!0;for(;offset<data$2.length;){let remaining=data$2.length-offset,chunkSize=remaining>maxPayload?maxPayload:remaining,chunk$1=data$2.subarray(offset,offset+chunkSize);this.sendTypedCb(this.id,isFirst&&firstChunk?Flag.NEW:0,typeByte,chunk$1),offset+=chunkSize,firstChunk=!1}}close(){this._disposed||(this.send({streamId:this.id,type:MessageType.CLOSE,flags:0,payload:new Uint8Array}),this._dispose())}error(message){this._disposed||this.send({streamId:this.id,type:MessageType.ERROR,flags:0,payload:new TextEncoder().encode(message)})}_handleFrame(frame){if(!this._disposed)switch(frame.type){case MessageType.DATA:this._onData?.emit(frame.payload);break;case MessageType.CLOSE:this._onClose?.emit(),this._dispose();break;case MessageType.ERROR:let error$65=new TextDecoder().decode(frame.payload);this._onError?.emit(error$65),this._dispose();break}}_dispose(){this._disposed||(this._disposed=!0,this._onData?.dispose(),this._onClose?.dispose(),this._onError?.dispose(),this._onData=void 0,this._onClose=void 0,this._onError=void 0)}_reset(newId,newSend,newSendTyped){this._dispose(),this._id=newId,this.send=newSend,this.sendTypedCb=newSendTyped,this._disposed=!1}get createdByClient(){return this.id%2==1}get disposed(){return this._disposed}},StreamPool=class{static MAX_POOL_SIZE=200;static pool=[];static acquire(id,send,sendTyped){let stream$10=this.pool.pop();return stream$10?(stream$10._reset(id,send,sendTyped),stream$10):new Stream$7(id,send,sendTyped)}static release(stream$10){this.pool.length<this.MAX_POOL_SIZE&&this.pool.push(stream$10)}},Multiplexer=class{_onNextStreamIDChange=new Emitter;onNextStreamIDChange=this._onNextStreamIDChange.event;_onStream=new Emitter;onStream=this._onStream.event;streams=[];streamCount=0;nextStreamId=1;send;releaseAfterSend;constructor(opts){this.nextStreamId=opts.initialNextStreamID??(opts.isClient?1:2),this.send=opts.send,this.releaseAfterSend=!!opts.releaseAfterSend}getStream(id){return this.streams[id]}createStream(id){id===void 0&&(id=this.nextStreamId,this.nextStreamId+=2,this._onNextStreamIDChange.emit(this.nextStreamId));let existingStream=this.streams[id];if(existingStream&&!existingStream.disposed)throw Error(`Stream ${id} already exists`);let stream$10=StreamPool.acquire(id,frame=>this.sendFrame(frame),(sid,flags,typeByte,payload)=>this.sendFrameTyped(sid,typeByte,flags,payload));return this.streams[id]=stream$10,this.streamCount++,stream$10}sendFrame(frame){let encoded=FrameCodec.encode(frame);try{this.send(encoded)}finally{this.releaseAfterSend&&FrameCodec.releaseBuffer(encoded)}}sendFrameTyped(streamId,appTypeByte,flags,payload){let encoded=FrameCodec.encodeTyped(streamId,MessageType.DATA,flags,appTypeByte,payload);try{this.send(encoded)}finally{this.releaseAfterSend&&FrameCodec.releaseBuffer(encoded)}}handleMessage(data$2){this.handleFrame(FrameCodec.decode(data$2))}handleFrame(frame){let stream$10=this.streams[frame.streamId];(!stream$10||stream$10.disposed)&&(stream$10=StreamPool.acquire(frame.streamId,frame$1=>this.sendFrame(frame$1),(sid,flags,typeByte,payload)=>this.sendFrameTyped(sid,typeByte,flags,payload)),this.streams[frame.streamId]=stream$10,this.streamCount++,this._onStream.emit(stream$10)),stream$10._handleFrame(frame),(frame.type===MessageType.CLOSE||frame.type===MessageType.ERROR)&&(this.streams[frame.streamId]=void 0,this.streamCount--,StreamPool.release(stream$10))}get activeStreamCount(){return this.streamCount}dispose(){for(let stream$10 of this.streams)stream$10&&!stream$10.disposed&&(stream$10.close(),StreamPool.release(stream$10));this.streams.length=0,this.streamCount=0,this._onNextStreamIDChange.dispose(),this._onStream.dispose()}};const defaultMessages=`End-Of-Stream`;var EndOfStreamError=class extends Error{constructor(){super(`End-Of-Stream`),this.name=`EndOfStreamError`}},AbortError$7=class extends Error{constructor(message=`The operation was aborted`){super(message),this.name=`AbortError`}},AbstractStreamReader=class{constructor(){this.endOfStream=!1,this.interrupted=!1,this.peekQueue=[]}async peek(uint8Array,mayBeLess=!1){let bytesRead=await this.read(uint8Array,mayBeLess);return this.peekQueue.push(uint8Array.subarray(0,bytesRead)),bytesRead}async read(buffer$2,mayBeLess=!1){if(buffer$2.length===0)return 0;let bytesRead=this.readFromPeekBuffer(buffer$2);if(this.endOfStream||(bytesRead+=await this.readRemainderFromStream(buffer$2.subarray(bytesRead),mayBeLess)),bytesRead===0&&!mayBeLess)throw new EndOfStreamError;return bytesRead}readFromPeekBuffer(buffer$2){let remaining=buffer$2.length,bytesRead=0;for(;this.peekQueue.length>0&&remaining>0;){let peekData=this.peekQueue.pop();if(!peekData)throw Error(`peekData should be defined`);let lenCopy=Math.min(peekData.length,remaining);buffer$2.set(peekData.subarray(0,lenCopy),bytesRead),bytesRead+=lenCopy,remaining-=lenCopy,lenCopy<peekData.length&&this.peekQueue.push(peekData.subarray(lenCopy))}return bytesRead}async readRemainderFromStream(buffer$2,mayBeLess){let bytesRead=0;for(;bytesRead<buffer$2.length&&!this.endOfStream;){if(this.interrupted)throw new AbortError$7;let chunkLen=await this.readFromStream(buffer$2.subarray(bytesRead),mayBeLess);if(chunkLen===0)break;bytesRead+=chunkLen}if(!mayBeLess&&bytesRead<buffer$2.length)throw new EndOfStreamError;return bytesRead}},WebStreamReader=class extends AbstractStreamReader{constructor(reader){super(),this.reader=reader}async abort(){return this.close()}async close(){this.reader.releaseLock()}},WebStreamByobReader=class extends WebStreamReader{async readFromStream(buffer$2,mayBeLess){if(buffer$2.length===0)return 0;let result=await this.reader.read(new Uint8Array(buffer$2.length),{min:mayBeLess?void 0:buffer$2.length});return result.done&&(this.endOfStream=result.done),result.value?(buffer$2.set(result.value),result.value.length):0}},WebStreamDefaultReader=class extends AbstractStreamReader{constructor(reader){super(),this.reader=reader,this.buffer=null}writeChunk(target,chunk$1){let written=Math.min(chunk$1.length,target.length);return target.set(chunk$1.subarray(0,written)),written<chunk$1.length?this.buffer=chunk$1.subarray(written):this.buffer=null,written}async readFromStream(buffer$2,mayBeLess){if(buffer$2.length===0)return 0;let totalBytesRead=0;for(this.buffer&&(totalBytesRead+=this.writeChunk(buffer$2,this.buffer));totalBytesRead<buffer$2.length&&!this.endOfStream;){let result=await this.reader.read();if(result.done){this.endOfStream=!0;break}result.value&&(totalBytesRead+=this.writeChunk(buffer$2.subarray(totalBytesRead),result.value))}if(!mayBeLess&&totalBytesRead===0&&this.endOfStream)throw new EndOfStreamError;return totalBytesRead}abort(){return this.interrupted=!0,this.reader.cancel()}async close(){await this.abort(),this.reader.releaseLock()}};function makeWebStreamReader(stream$10){try{let reader=stream$10.getReader({mode:`byob`});return reader instanceof ReadableStreamDefaultReader?new WebStreamDefaultReader(reader):new WebStreamByobReader(reader)}catch(error$65){if(error$65 instanceof TypeError)return new WebStreamDefaultReader(stream$10.getReader());throw error$65}}var AbstractTokenizer=class{constructor(options$1){this.numBuffer=new Uint8Array(8),this.position=0,this.onClose=options$1?.onClose,options$1?.abortSignal&&options$1.abortSignal.addEventListener(`abort`,()=>{this.abort()})}async readToken(token$1,position=this.position){let uint8Array=new Uint8Array(token$1.len),len$1=await this.readBuffer(uint8Array,{position});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(uint8Array,0)}async peekToken(token$1,position=this.position){let uint8Array=new Uint8Array(token$1.len),len$1=await this.peekBuffer(uint8Array,{position});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(uint8Array,0)}async readNumber(token$1){let len$1=await this.readBuffer(this.numBuffer,{length:token$1.len});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(this.numBuffer,0)}async peekNumber(token$1){let len$1=await this.peekBuffer(this.numBuffer,{length:token$1.len});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(this.numBuffer,0)}async ignore(length){if(this.fileInfo.size!==void 0){let bytesLeft=this.fileInfo.size-this.position;if(length>bytesLeft)return this.position+=bytesLeft,bytesLeft}return this.position+=length,length}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(uint8Array,options$1){if(!this.supportsRandomAccess()&&options$1&&options$1.position!==void 0&&options$1.position<this.position)throw Error("`options.position` must be equal or greater than `tokenizer.position`");return{mayBeLess:!1,offset:0,length:uint8Array.length,position:this.position,...options$1}}abort(){return Promise.resolve()}};const maxBufferSize=256e3;var ReadStreamTokenizer=class extends AbstractTokenizer{constructor(streamReader,options$1){super(options$1),this.streamReader=streamReader,this.fileInfo=options$1?.fileInfo??{}}async readBuffer(uint8Array,options$1){let normOptions=this.normalizeOptions(uint8Array,options$1),skipBytes=normOptions.position-this.position;if(skipBytes>0)return await this.ignore(skipBytes),this.readBuffer(uint8Array,options$1);if(skipBytes<0)throw Error("`options.position` must be equal or greater than `tokenizer.position`");if(normOptions.length===0)return 0;let bytesRead=await this.streamReader.read(uint8Array.subarray(0,normOptions.length),normOptions.mayBeLess);if(this.position+=bytesRead,(!options$1||!options$1.mayBeLess)&&bytesRead<normOptions.length)throw new EndOfStreamError;return bytesRead}async peekBuffer(uint8Array,options$1){let normOptions=this.normalizeOptions(uint8Array,options$1),bytesRead=0;if(normOptions.position){let skipBytes=normOptions.position-this.position;if(skipBytes>0){let skipBuffer=new Uint8Array(normOptions.length+skipBytes);return bytesRead=await this.peekBuffer(skipBuffer,{mayBeLess:normOptions.mayBeLess}),uint8Array.set(skipBuffer.subarray(skipBytes)),bytesRead-skipBytes}if(skipBytes<0)throw Error(`Cannot peek from a negative offset in a stream`)}if(normOptions.length>0){try{bytesRead=await this.streamReader.peek(uint8Array.subarray(0,normOptions.length),normOptions.mayBeLess)}catch(err$1){if(options$1?.mayBeLess&&err$1 instanceof EndOfStreamError)return 0;throw err$1}if(!normOptions.mayBeLess&&bytesRead<normOptions.length)throw new EndOfStreamError}return bytesRead}async ignore(length){let bufSize=Math.min(256e3,length),buf=new Uint8Array(bufSize),totBytesRead=0;for(;totBytesRead<length;){let remaining=length-totBytesRead,bytesRead=await this.readBuffer(buf,{length:Math.min(bufSize,remaining)});if(bytesRead<0)return bytesRead;totBytesRead+=bytesRead}return totBytesRead}abort(){return this.streamReader.abort()}async close(){return this.streamReader.close()}supportsRandomAccess(){return!1}},BufferTokenizer=class extends AbstractTokenizer{constructor(uint8Array,options$1){super(options$1),this.uint8Array=uint8Array,this.fileInfo={...options$1?.fileInfo??{},size:uint8Array.length}}async readBuffer(uint8Array,options$1){options$1?.position&&(this.position=options$1.position);let bytesRead=await this.peekBuffer(uint8Array,options$1);return this.position+=bytesRead,bytesRead}async peekBuffer(uint8Array,options$1){let normOptions=this.normalizeOptions(uint8Array,options$1),bytes2read=Math.min(this.uint8Array.length-normOptions.position,normOptions.length);if(!normOptions.mayBeLess&&bytes2read<normOptions.length)throw new EndOfStreamError;return uint8Array.set(this.uint8Array.subarray(normOptions.position,normOptions.position+bytes2read)),bytes2read}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(position){this.position=position}};function fromWebStream(webStream,options$1){let webStreamReader=makeWebStreamReader(webStream),_options$1=options$1??{},chainedClose=_options$1.onClose;return _options$1.onClose=async()=>{if(await webStreamReader.close(),chainedClose)return chainedClose()},new ReadStreamTokenizer(webStreamReader,_options$1)}function fromBuffer$1(uint8Array,options$1){return new BufferTokenizer(uint8Array,options$1)}const WINDOWS_1252_EXTRA={128:`€`,130:`‚`,131:`ƒ`,132:`„`,133:`…`,134:`†`,135:`‡`,136:`ˆ`,137:`‰`,138:`Š`,139:`‹`,140:`Œ`,142:`Ž`,145:`‘`,146:`’`,147:`“`,148:`”`,149:`•`,150:`–`,151:`—`,152:`˜`,153:`™`,154:`š`,155:`›`,156:`œ`,158:`ž`,159:`Ÿ`},WINDOWS_1252_REVERSE={};for(let[code$1,char]of Object.entries(WINDOWS_1252_EXTRA))WINDOWS_1252_REVERSE[char]=Number.parseInt(code$1);function textDecode(bytes,encoding=`utf-8`){switch(encoding.toLowerCase()){case`utf-8`:case`utf8`:return globalThis.TextDecoder===void 0?decodeUTF8(bytes):new globalThis.TextDecoder(`utf-8`).decode(bytes);case`utf-16le`:return decodeUTF16LE(bytes);case`ascii`:return decodeASCII(bytes);case`latin1`:case`iso-8859-1`:return decodeLatin1(bytes);case`windows-1252`:return decodeWindows1252(bytes);default:throw RangeError(`Encoding '${encoding}' not supported`)}}function decodeUTF8(bytes){let out=``,i$5=0;for(;i$5<bytes.length;){let b1=bytes[i$5++];if(b1<128)out+=String.fromCharCode(b1);else if(b1<224){let b2=bytes[i$5++]&63;out+=String.fromCharCode((b1&31)<<6|b2)}else if(b1<240){let b2=bytes[i$5++]&63,b3=bytes[i$5++]&63;out+=String.fromCharCode((b1&15)<<12|b2<<6|b3)}else{let b2=bytes[i$5++]&63,b3=bytes[i$5++]&63,b4=bytes[i$5++]&63,cp$1=(b1&7)<<18|b2<<12|b3<<6|b4;cp$1-=65536,out+=String.fromCharCode(55296+(cp$1>>10&1023),56320+(cp$1&1023))}}return out}function decodeUTF16LE(bytes){let out=``;for(let i$5=0;i$5<bytes.length;i$5+=2)out+=String.fromCharCode(bytes[i$5]|bytes[i$5+1]<<8);return out}function decodeASCII(bytes){return String.fromCharCode(...bytes.map(b$4=>b$4&127))}function decodeLatin1(bytes){return String.fromCharCode(...bytes)}function decodeWindows1252(bytes){let out=``;for(let b$4 of bytes)b$4>=128&&b$4<=159&&WINDOWS_1252_EXTRA[b$4]?out+=WINDOWS_1252_EXTRA[b$4]:out+=String.fromCharCode(b$4);return out}function dv(array$2){return new DataView(array$2.buffer,array$2.byteOffset)}const UINT8={len:1,get(array$2,offset){return dv(array$2).getUint8(offset)},put(array$2,offset,value){return dv(array$2).setUint8(offset,value),offset+1}},UINT16_LE={len:2,get(array$2,offset){return dv(array$2).getUint16(offset,!0)},put(array$2,offset,value){return dv(array$2).setUint16(offset,value,!0),offset+2}},UINT16_BE={len:2,get(array$2,offset){return dv(array$2).getUint16(offset)},put(array$2,offset,value){return dv(array$2).setUint16(offset,value),offset+2}},UINT32_LE={len:4,get(array$2,offset){return dv(array$2).getUint32(offset,!0)},put(array$2,offset,value){return dv(array$2).setUint32(offset,value,!0),offset+4}},UINT32_BE={len:4,get(array$2,offset){return dv(array$2).getUint32(offset)},put(array$2,offset,value){return dv(array$2).setUint32(offset,value),offset+4}},INT32_BE={len:4,get(array$2,offset){return dv(array$2).getInt32(offset)},put(array$2,offset,value){return dv(array$2).setInt32(offset,value),offset+4}},UINT64_LE={len:8,get(array$2,offset){return dv(array$2).getBigUint64(offset,!0)},put(array$2,offset,value){return dv(array$2).setBigUint64(offset,value,!0),offset+8}};var StringType=class{constructor(len$1,encoding){this.len=len$1,this.encoding=encoding}get(data$2,offset=0){let bytes=data$2.subarray(offset,offset+this.len);return textDecode(bytes,this.encoding)}},require$1=createRequire$1(`/`),Worker;try{Worker=require$1(`worker_threads`).Worker}catch{}var u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(eb,start$1){for(var b$4=new u16(31),i$5=0;i$5<31;++i$5)b$4[i$5]=start$1+=1<<eb[i$5-1];for(var r$3=new i32(b$4[30]),i$5=1;i$5<30;++i$5)for(var j$2=b$4[i$5];j$2<b$4[i$5+1];++j$2)r$3[j$2]=j$2-b$4[i$5]<<5|i$5;return{b:b$4,r:r$3}},_a$15=freb(fleb,2),fl=_a$15.b,revfl=_a$15.r;fl[28]=258,revfl[258]=28;for(var _b$3=freb(fdeb,0),fd=_b$3.b,revfd=_b$3.r,rev=new u16(32768),i$4=0;i$4<32768;++i$4){var x$3=(i$4&43690)>>1|(i$4&21845)<<1;x$3=(x$3&52428)>>2|(x$3&13107)<<2,x$3=(x$3&61680)>>4|(x$3&3855)<<4,rev[i$4]=((x$3&65280)>>8|(x$3&255)<<8)>>1}for(var hMap=(function(cd,mb,r$3){for(var s$3=cd.length,i$5=0,l$2=new u16(mb);i$5<s$3;++i$5)cd[i$5]&&++l$2[cd[i$5]-1];var le$3=new u16(mb);for(i$5=1;i$5<mb;++i$5)le$3[i$5]=le$3[i$5-1]+l$2[i$5-1]<<1;var co;if(r$3){co=new u16(1<<mb);var rvb=15-mb;for(i$5=0;i$5<s$3;++i$5)if(cd[i$5])for(var sv=i$5<<4|cd[i$5],r_1=mb-cd[i$5],v$2=le$3[cd[i$5]-1]++<<r_1,m$3=v$2|(1<<r_1)-1;v$2<=m$3;++v$2)co[rev[v$2]>>rvb]=sv}else for(co=new u16(s$3),i$5=0;i$5<s$3;++i$5)cd[i$5]&&(co[i$5]=rev[le$3[cd[i$5]-1]++]>>15-cd[i$5]);return co}),flt=new u8(288),i$4=0;i$4<144;++i$4)flt[i$4]=8;for(var i$4=144;i$4<256;++i$4)flt[i$4]=9;for(var i$4=256;i$4<280;++i$4)flt[i$4]=7;for(var i$4=280;i$4<288;++i$4)flt[i$4]=8;for(var fdt=new u8(32),i$4=0;i$4<32;++i$4)fdt[i$4]=5;var flm=hMap(flt,9,0),flrm=hMap(flt,9,1),fdm=hMap(fdt,5,0),fdrm=hMap(fdt,5,1),max$1=function(a$3){for(var m$3=a$3[0],i$5=1;i$5<a$3.length;++i$5)a$3[i$5]>m$3&&(m$3=a$3[i$5]);return m$3},bits=function(d$5,p$2,m$3){var o$3=p$2/8|0;return(d$5[o$3]|d$5[o$3+1]<<8)>>(p$2&7)&m$3},bits16=function(d$5,p$2){var o$3=p$2/8|0;return(d$5[o$3]|d$5[o$3+1]<<8|d$5[o$3+2]<<16)>>(p$2&7)},shft=function(p$2){return(p$2+7)/8|0},slc=function(v$2,s$3,e$2){return(s$3==null||s$3<0)&&(s$3=0),(e$2==null||e$2>v$2.length)&&(e$2=v$2.length),new u8(v$2.subarray(s$3,e$2))},ec=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],err=function(ind,msg,nt){var e$2=Error(msg||ec[ind]);if(e$2.code=ind,Error.captureStackTrace&&Error.captureStackTrace(e$2,err),!nt)throw e$2;return e$2},inflt=function(dat,st,buf,dict){var sl=dat.length,dl=dict?dict.length:0;if(!sl||st.f&&!st.l)return buf||new u8(0);var noBuf=!buf,resize=noBuf||st.i!=2,noSt=st.i;noBuf&&(buf=new u8(sl*3));var cbuf=function(l$3){var bl=buf.length;if(l$3>bl){var nbuf=new u8(Math.max(bl*2,l$3));nbuf.set(buf),buf=nbuf}},final=st.f||0,pos=st.p||0,bt=st.b||0,lm=st.l,dm=st.d,lbt=st.m,dbt=st.n,tbts=sl*8;do{if(!lm){final=bits(dat,pos,1);var type=bits(dat,pos+1,3);if(pos+=3,type)if(type==1)lm=flrm,dm=fdrm,lbt=9,dbt=5;else if(type==2){var hLit=bits(dat,pos,31)+257,hcLen=bits(dat,pos+10,15)+4,tl=hLit+bits(dat,pos+5,31)+1;pos+=14;for(var ldt=new u8(tl),clt=new u8(19),i$5=0;i$5<hcLen;++i$5)clt[clim[i$5]]=bits(dat,pos+i$5*3,7);pos+=hcLen*3;for(var clb=max$1(clt),clbmsk=(1<<clb)-1,clm=hMap(clt,clb,1),i$5=0;i$5<tl;){var r$3=clm[bits(dat,pos,clbmsk)];pos+=r$3&15;var s$3=r$3>>4;if(s$3<16)ldt[i$5++]=s$3;else{var c$3=0,n$2=0;for(s$3==16?(n$2=3+bits(dat,pos,3),pos+=2,c$3=ldt[i$5-1]):s$3==17?(n$2=3+bits(dat,pos,7),pos+=3):s$3==18&&(n$2=11+bits(dat,pos,127),pos+=7);n$2--;)ldt[i$5++]=c$3}}var lt=ldt.subarray(0,hLit),dt=ldt.subarray(hLit);lbt=max$1(lt),dbt=max$1(dt),lm=hMap(lt,lbt,1),dm=hMap(dt,dbt,1)}else err(1);else{var s$3=shft(pos)+4,l$2=dat[s$3-4]|dat[s$3-3]<<8,t$1=s$3+l$2;if(t$1>sl){noSt&&err(0);break}resize&&cbuf(bt+l$2),buf.set(dat.subarray(s$3,t$1),bt),st.b=bt+=l$2,st.p=pos=t$1*8,st.f=final;continue}if(pos>tbts){noSt&&err(0);break}}resize&&cbuf(bt+131072);for(var lms=(1<<lbt)-1,dms=(1<<dbt)-1,lpos=pos;;lpos=pos){var c$3=lm[bits16(dat,pos)&lms],sym=c$3>>4;if(pos+=c$3&15,pos>tbts){noSt&&err(0);break}if(c$3||err(2),sym<256)buf[bt++]=sym;else if(sym==256){lpos=pos,lm=null;break}else{var add=sym-254;if(sym>264){var i$5=sym-257,b$4=fleb[i$5];add=bits(dat,pos,(1<<b$4)-1)+fl[i$5],pos+=b$4}var d$5=dm[bits16(dat,pos)&dms],dsym=d$5>>4;d$5||err(3),pos+=d$5&15;var dt=fd[dsym];if(dsym>3){var b$4=fdeb[dsym];dt+=bits16(dat,pos)&(1<<b$4)-1,pos+=b$4}if(pos>tbts){noSt&&err(0);break}resize&&cbuf(bt+131072);var end=bt+add;if(bt<dt){var shift=dl-dt,dend=Math.min(dt,end);for(shift+bt<0&&err(3);bt<dend;++bt)buf[bt]=dict[shift+bt]}for(;bt<end;++bt)buf[bt]=buf[bt-dt]}}st.l=lm,st.p=lpos,st.b=bt,st.f=final,lm&&(final=1,st.m=lbt,st.d=dm,st.n=dbt)}while(!final);return bt!=buf.length&&noBuf?slc(buf,0,bt):buf.subarray(0,bt)},et=new u8(0),gzs=function(d$5){(d$5[0]!=31||d$5[1]!=139||d$5[2]!=8)&&err(6,`invalid gzip data`);var flg=d$5[3],st=10;flg&4&&(st+=(d$5[10]|d$5[11]<<8)+2);for(var zs=(flg>>3&1)+(flg>>4&1);zs>0;zs-=!d$5[st++]);return st+(flg&2)},gzl=function(d$5){var l$2=d$5.length;return(d$5[l$2-4]|d$5[l$2-3]<<8|d$5[l$2-2]<<16|d$5[l$2-1]<<24)>>>0},zls=function(d$5,dict){return((d$5[0]&15)!=8||d$5[0]>>4>7||(d$5[0]<<8|d$5[1])%31)&&err(6,`invalid zlib data`),(d$5[1]>>5&1)==+!dict&&err(6,`invalid zlib data: `+(d$5[1]&32?`need`:`unexpected`)+` dictionary`),(d$5[1]>>3&4)+2};function inflateSync(data$2,opts){return inflt(data$2,{i:2},opts&&opts.out,opts&&opts.dictionary)}function gunzipSync(data$2,opts){var st=gzs(data$2);return st+8>data$2.length&&err(6,`invalid gzip data`),inflt(data$2.subarray(st,-8),{i:2},opts&&opts.out||new u8(gzl(data$2)),opts&&opts.dictionary)}function unzlibSync(data$2,opts){return inflt(data$2.subarray(zls(data$2,opts&&opts.dictionary),-4),{i:2},opts&&opts.out,opts&&opts.dictionary)}function decompressSync(data$2,opts){return data$2[0]==31&&data$2[1]==139&&data$2[2]==8?gunzipSync(data$2,opts):(data$2[0]&15)!=8||data$2[0]>>4>7||(data$2[0]<<8|data$2[1])%31?inflateSync(data$2,opts):unzlibSync(data$2,opts)}var td=typeof TextDecoder<`u`&&new TextDecoder,tds=0;try{td.decode(et,{stream:!0}),tds=1}catch{}var require_ms=__commonJSMin(((exports,module)=>{var s$2=1e3,m$2=s$2*60,h$3=m$2*60,d$4=h$3*24,w$3=d$4*7,y$2=d$4*365.25;module.exports=function(val,options$1){options$1||={};var type=typeof val;if(type===`string`&&val.length>0)return parse$18(val);if(type===`number`&&isFinite(val))return options$1.long?fmtLong(val):fmtShort(val);throw Error(`val is not a non-empty string or a valid number. val=`+JSON.stringify(val))};function parse$18(str$1){if(str$1=String(str$1),!(str$1.length>100)){var match$1=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str$1);if(match$1){var n$2=parseFloat(match$1[1]),type=(match$1[2]||`ms`).toLowerCase();switch(type){case`years`:case`year`:case`yrs`:case`yr`:case`y`:return n$2*y$2;case`weeks`:case`week`:case`w`:return n$2*w$3;case`days`:case`day`:case`d`:return n$2*d$4;case`hours`:case`hour`:case`hrs`:case`hr`:case`h`:return n$2*h$3;case`minutes`:case`minute`:case`mins`:case`min`:case`m`:return n$2*m$2;case`seconds`:case`second`:case`secs`:case`sec`:case`s`:return n$2*s$2;case`milliseconds`:case`millisecond`:case`msecs`:case`msec`:case`ms`:return n$2;default:return}}}}function fmtShort(ms){var msAbs=Math.abs(ms);return msAbs>=d$4?Math.round(ms/d$4)+`d`:msAbs>=h$3?Math.round(ms/h$3)+`h`:msAbs>=m$2?Math.round(ms/m$2)+`m`:msAbs>=s$2?Math.round(ms/s$2)+`s`:ms+`ms`}function fmtLong(ms){var msAbs=Math.abs(ms);return msAbs>=d$4?plural(ms,msAbs,d$4,`day`):msAbs>=h$3?plural(ms,msAbs,h$3,`hour`):msAbs>=m$2?plural(ms,msAbs,m$2,`minute`):msAbs>=s$2?plural(ms,msAbs,s$2,`second`):ms+` ms`}function plural(ms,msAbs,n$2,name$7){var isPlural=msAbs>=n$2*1.5;return Math.round(ms/n$2)+` `+name$7+(isPlural?`s`:``)}})),require_common$3=__commonJSMin(((exports,module)=>{function setup$7(env$8){createDebug.debug=createDebug,createDebug.default=createDebug,createDebug.coerce=coerce,createDebug.disable=disable,createDebug.enable=enable,createDebug.enabled=enabled,createDebug.humanize=require_ms(),createDebug.destroy=destroy$2,Object.keys(env$8).forEach(key=>{createDebug[key]=env$8[key]}),createDebug.names=[],createDebug.skips=[],createDebug.formatters={};function selectColor(namespace){let hash$2=0;for(let i$5=0;i$5<namespace.length;i$5++)hash$2=(hash$2<<5)-hash$2+namespace.charCodeAt(i$5),hash$2|=0;return createDebug.colors[Math.abs(hash$2)%createDebug.colors.length]}createDebug.selectColor=selectColor;function createDebug(namespace){let prevTime,enableOverride=null,namespacesCache,enabledCache;function debug$11(...args){if(!debug$11.enabled)return;let self$1=debug$11,curr=Number(new Date),ms=curr-(prevTime||curr);self$1.diff=ms,self$1.prev=prevTime,self$1.curr=curr,prevTime=curr,args[0]=createDebug.coerce(args[0]),typeof args[0]!=`string`&&args.unshift(`%O`);let index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,(match$1,format$4)=>{if(match$1===`%%`)return`%`;index++;let formatter$1=createDebug.formatters[format$4];if(typeof formatter$1==`function`){let val=args[index];match$1=formatter$1.call(self$1,val),args.splice(index,1),index--}return match$1}),createDebug.formatArgs.call(self$1,args);let logFn=self$1.log||createDebug.log;logFn.apply(self$1,args)}return debug$11.namespace=namespace,debug$11.useColors=createDebug.useColors(),debug$11.color=createDebug.selectColor(namespace),debug$11.extend=extend$2,debug$11.destroy=createDebug.destroy,Object.defineProperty(debug$11,`enabled`,{enumerable:!0,configurable:!1,get:()=>enableOverride===null?(namespacesCache!==createDebug.namespaces&&(namespacesCache=createDebug.namespaces,enabledCache=createDebug.enabled(namespace)),enabledCache):enableOverride,set:v$2=>{enableOverride=v$2}}),typeof createDebug.init==`function`&&createDebug.init(debug$11),debug$11}function extend$2(namespace,delimiter){let newDebug=createDebug(this.namespace+(delimiter===void 0?`:`:delimiter)+namespace);return newDebug.log=this.log,newDebug}function enable(namespaces){createDebug.save(namespaces),createDebug.namespaces=namespaces,createDebug.names=[],createDebug.skips=[];let split=(typeof namespaces==`string`?namespaces:``).trim().replace(/\s+/g,`,`).split(`,`).filter(Boolean);for(let ns of split)ns[0]===`-`?createDebug.skips.push(ns.slice(1)):createDebug.names.push(ns)}function matchesTemplate(search,template$1){let searchIndex=0,templateIndex=0,starIndex=-1,matchIndex=0;for(;searchIndex<search.length;)if(templateIndex<template$1.length&&(template$1[templateIndex]===search[searchIndex]||template$1[templateIndex]===`*`))template$1[templateIndex]===`*`?(starIndex=templateIndex,matchIndex=searchIndex,templateIndex++):(searchIndex++,templateIndex++);else if(starIndex!==-1)templateIndex=starIndex+1,matchIndex++,searchIndex=matchIndex;else return!1;for(;templateIndex<template$1.length&&template$1[templateIndex]===`*`;)templateIndex++;return templateIndex===template$1.length}function disable(){let namespaces=[...createDebug.names,...createDebug.skips.map(namespace=>`-`+namespace)].join(`,`);return createDebug.enable(``),namespaces}function enabled(name$7){for(let skip of createDebug.skips)if(matchesTemplate(name$7,skip))return!1;for(let ns of createDebug.names)if(matchesTemplate(name$7,ns))return!0;return!1}function coerce(val){return val instanceof Error?val.stack||val.message:val}function destroy$2(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return createDebug.enable(createDebug.load()),createDebug}module.exports=setup$7})),require_browser=__commonJSMin(((exports,module)=>{exports.formatArgs=formatArgs$1,exports.save=save$1,exports.load=load$6,exports.useColors=useColors$1,exports.storage=localstorage(),exports.destroy=(()=>{let warned$1=!1;return()=>{warned$1||(warned$1=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),exports.colors=`#0000CC.#0000FF.#0033CC.#0033FF.#0066CC.#0066FF.#0099CC.#0099FF.#00CC00.#00CC33.#00CC66.#00CC99.#00CCCC.#00CCFF.#3300CC.#3300FF.#3333CC.#3333FF.#3366CC.#3366FF.#3399CC.#3399FF.#33CC00.#33CC33.#33CC66.#33CC99.#33CCCC.#33CCFF.#6600CC.#6600FF.#6633CC.#6633FF.#66CC00.#66CC33.#9900CC.#9900FF.#9933CC.#9933FF.#99CC00.#99CC33.#CC0000.#CC0033.#CC0066.#CC0099.#CC00CC.#CC00FF.#CC3300.#CC3333.#CC3366.#CC3399.#CC33CC.#CC33FF.#CC6600.#CC6633.#CC9900.#CC9933.#CCCC00.#CCCC33.#FF0000.#FF0033.#FF0066.#FF0099.#FF00CC.#FF00FF.#FF3300.#FF3333.#FF3366.#FF3399.#FF33CC.#FF33FF.#FF6600.#FF6633.#FF9900.#FF9933.#FFCC00.#FFCC33`.split(`.`);function useColors$1(){if(typeof window<`u`&&window.process&&(window.process.type===`renderer`||window.process.__nwjs))return!0;if(typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let m$3;return typeof document<`u`&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<`u`&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<`u`&&navigator.userAgent&&(m$3=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(m$3[1],10)>=31||typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs$1(args){if(args[0]=(this.useColors?`%c`:``)+this.namespace+(this.useColors?` %c`:` `)+args[0]+(this.useColors?`%c `:` `)+`+`+module.exports.humanize(this.diff),!this.useColors)return;let c$3=`color: `+this.color;args.splice(1,0,c$3,`color: inherit`);let index=0,lastC=0;args[0].replace(/%[a-zA-Z%]/g,match$1=>{match$1!==`%%`&&(index++,match$1===`%c`&&(lastC=index))}),args.splice(lastC,0,c$3)}exports.log=console.debug||console.log||(()=>{});function save$1(namespaces){try{namespaces?exports.storage.setItem(`debug`,namespaces):exports.storage.removeItem(`debug`)}catch{}}function load$6(){let r$3;try{r$3=exports.storage.getItem(`debug`)||exports.storage.getItem(`DEBUG`)}catch{}return!r$3&&typeof process<`u`&&`env`in process&&(r$3=process.env.DEBUG),r$3}function localstorage(){try{return localStorage}catch{}}module.exports=require_common$3()(exports);let{formatters:formatters$1}=module.exports;formatters$1.j=function(v$2){try{return JSON.stringify(v$2)}catch(error$65){return`[UnexpectedJSONParseError]: `+error$65.message}}})),require_has_flag$1=__commonJSMin(((exports,module)=>{module.exports=(flag,argv$1=process.argv)=>{let prefix=flag.startsWith(`-`)?``:flag.length===1?`-`:`--`,position=argv$1.indexOf(prefix+flag),terminatorPosition=argv$1.indexOf(`--`);return position!==-1&&(terminatorPosition===-1||position<terminatorPosition)}})),require_supports_color$2=__commonJSMin(((exports,module)=>{let os$13=__require$1(`os`),tty$5=__require$1(`tty`),hasFlag$5=require_has_flag$1(),{env:env$7}=process,forceColor$3;hasFlag$5(`no-color`)||hasFlag$5(`no-colors`)||hasFlag$5(`color=false`)||hasFlag$5(`color=never`)?forceColor$3=0:(hasFlag$5(`color`)||hasFlag$5(`colors`)||hasFlag$5(`color=true`)||hasFlag$5(`color=always`))&&(forceColor$3=1),`FORCE_COLOR`in env$7&&(forceColor$3=env$7.FORCE_COLOR===`true`?1:env$7.FORCE_COLOR===`false`?0:env$7.FORCE_COLOR.length===0?1:Math.min(parseInt(env$7.FORCE_COLOR,10),3));function translateLevel$4(level$1){return level$1===0?!1:{level:level$1,hasBasic:!0,has256:level$1>=2,has16m:level$1>=3}}function supportsColor$5(haveStream,streamIsTTY){if(forceColor$3===0)return 0;if(hasFlag$5(`color=16m`)||hasFlag$5(`color=full`)||hasFlag$5(`color=truecolor`))return 3;if(hasFlag$5(`color=256`))return 2;if(haveStream&&!streamIsTTY&&forceColor$3===void 0)return 0;let min=forceColor$3||0;if(env$7.TERM===`dumb`)return min;if(process.platform===`win32`){let osRelease=os$13.release().split(`.`);return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if(`CI`in env$7)return[`TRAVIS`,`CIRCLECI`,`APPVEYOR`,`GITLAB_CI`,`GITHUB_ACTIONS`,`BUILDKITE`].some(sign$2=>sign$2 in env$7)||env$7.CI_NAME===`codeship`?1:min;if(`TEAMCITY_VERSION`in env$7)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$7.TEAMCITY_VERSION)?1:0;if(env$7.COLORTERM===`truecolor`)return 3;if(`TERM_PROGRAM`in env$7){let version$5=parseInt((env$7.TERM_PROGRAM_VERSION||``).split(`.`)[0],10);switch(env$7.TERM_PROGRAM){case`iTerm.app`:return version$5>=3?3:2;case`Apple_Terminal`:return 2}}return/-256(color)?$/i.test(env$7.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$7.TERM)||`COLORTERM`in env$7?1:min}function getSupportLevel$3(stream$10){let level$1=supportsColor$5(stream$10,stream$10&&stream$10.isTTY);return translateLevel$4(level$1)}module.exports={supportsColor:getSupportLevel$3,stdout:translateLevel$4(supportsColor$5(!0,tty$5.isatty(1))),stderr:translateLevel$4(supportsColor$5(!0,tty$5.isatty(2)))}})),require_node$18=__commonJSMin(((exports,module)=>{let tty$4=__require$1(`tty`),util$68=__require$1(`util`);exports.init=init$3,exports.log=log$4,exports.formatArgs=formatArgs,exports.save=save,exports.load=load$5,exports.useColors=useColors,exports.destroy=util$68.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),exports.colors=[6,2,3,4,5,1];try{let supportsColor$6=require_supports_color$2();supportsColor$6&&(supportsColor$6.stderr||supportsColor$6).level>=2&&(exports.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}exports.inspectOpts=Object.keys(process.env).filter(key=>/^debug_/i.test(key)).reduce((obj,key)=>{let prop=key.substring(6).toLowerCase().replace(/_([a-z])/g,(_$6,k$2)=>k$2.toUpperCase()),val=process.env[key];return val=/^(yes|on|true|enabled)$/i.test(val)?!0:/^(no|off|false|disabled)$/i.test(val)?!1:val===`null`?null:Number(val),obj[prop]=val,obj},{});function useColors(){return`colors`in exports.inspectOpts?!!exports.inspectOpts.colors:tty$4.isatty(process.stderr.fd)}function formatArgs(args){let{namespace:name$7,useColors:useColors$2}=this;if(useColors$2){let c$3=this.color,colorCode=`\x1B[3`+(c$3<8?c$3:`8;5;`+c$3),prefix=` ${colorCode};1m${name$7} \u001B[0m`;args[0]=prefix+args[0].split(`
|
|
25
|
+
Expecting one of '${allowedValues.join(`', '`)}'`);let helpEvent=`${position}Help`;return this.on(helpEvent,context$1=>{let helpStr;helpStr=typeof text$3==`function`?text$3({error:context$1.error,command:context$1.command}):text$3,helpStr&&context$1.write(`${helpStr}\n`)}),this}_outputHelpIfRequested(args){let helpOption=this._getHelpOption(),helpRequested=helpOption&&args.find(arg=>helpOption.is(arg));helpRequested&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function incrementNodeInspectorPort(args){return args.map(arg=>{if(!arg.startsWith(`--inspect`))return arg;let debugOption,debugHost=`127.0.0.1`,debugPort=`9229`,match$1;return(match$1=arg.match(/^(--inspect(-brk)?)$/))===null?(match$1=arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(match$1=arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(debugOption=match$1[1],debugHost=match$1[3],debugPort=match$1[4]):(debugOption=match$1[1],/^\d+$/.test(match$1[3])?debugPort=match$1[3]:debugHost=match$1[3]):debugOption=match$1[1],debugOption&&debugPort!==`0`?`${debugOption}=${debugHost}:${parseInt(debugPort)+1}`:arg})}function useColor(){if(process$9.env.NO_COLOR||process$9.env.FORCE_COLOR===`0`||process$9.env.FORCE_COLOR===`false`)return!1;if(process$9.env.FORCE_COLOR||process$9.env.CLICOLOR_FORCE!==void 0)return!0}exports.Command=Command$3,exports.useColor=useColor})),require_commander=__commonJSMin((exports=>{let{Argument:Argument$1}=require_argument(),{Command:Command$2}=require_command(),{CommanderError:CommanderError$1,InvalidArgumentError:InvalidArgumentError$37}=require_error$2(),{Help:Help$1}=require_help(),{Option:Option$1}=require_option();exports.program=new Command$2,exports.createCommand=name$7=>new Command$2(name$7),exports.createOption=(flags,description)=>new Option$1(flags,description),exports.createArgument=(name$7,description)=>new Argument$1(name$7,description),exports.Command=Command$2,exports.Option=Option$1,exports.Argument=Argument$1,exports.Help=Help$1,exports.CommanderError=CommanderError$1,exports.InvalidArgumentError=InvalidArgumentError$37,exports.InvalidOptionArgumentError=InvalidArgumentError$37}));init_wrapper();var import_commander=__toESM(require_commander(),1);const{program,createCommand,createArgument,createOption,CommanderError,InvalidArgumentError:InvalidArgumentError$36,InvalidOptionArgumentError,Command:Command$1,Argument,Option,Help}=import_commander.default;async function build$1(path$38,{outdir}={}){outdir||=await resolveOutputDirectory(path$38);let outfile=join$1(outdir,`agent.js`),esbuild=loadEsbuild(),result=await esbuild.build({...sharedBuildOptions,entryPoints:[path$38],outfile});if(result.errors.length>0)throw Error(`Failed to build agent!`);return{outfile}}async function watch(entrypoint,{onErrors,onBuildStart,onBuildEnd,outdir}){let esbuild=loadEsbuild();outdir||=await resolveOutputDirectory(entrypoint);let outfile=join$1(outdir,`agent.js`),context$1=await esbuild.context({...sharedBuildOptions,entryPoints:[entrypoint],logLevel:`silent`,outfile,plugins:[{name:`blink-dev-server`,setup(build$11){build$11.onStart(()=>{onBuildStart?.()}),build$11.onEnd(result=>{if(result.errors.length>0){onErrors?.(result.errors);return}onBuildEnd?.({outfile})})}}]});return await context$1.watch(),{dispose:()=>{context$1.dispose()}}}async function resolveEntrypoint(directory){let packageJsonPath=await findNearestEntry(directory,`package.json`);if(!packageJsonPath)throw Error(`No package.json found in ${directory}`);let packageJson$1=JSON.parse(await readFile(packageJsonPath,`utf-8`)),main=packageJson$1.main;if(!main)throw Error(`"main" is not set in ${relative(process.cwd(),packageJsonPath)}. It should be set to the entrypoint of your agent.`);let mainPath=join$1(dirname$1(packageJsonPath),main),stats=await stat(mainPath);if(!stats.isFile())throw Error(`${mainPath} is not a file.`);return mainPath}async function resolveOutputDirectory(path$38){let nodeModulesPath=await findNearestEntry(path$38,`node_modules`);if(!nodeModulesPath){let stats=await stat(path$38);return stats.isDirectory()?join$1(path$38,`.blink`):join$1(dirname$1(path$38),`.blink`)}let blinkPath=join$1(nodeModulesPath,`.blink`);return await mkdir(blinkPath,{recursive:!0}),blinkPath}async function findNearestEntry(startDir,name$7){let currentDir=startDir;for(;currentDir!==dirname$1(currentDir);){let file$1=join$1(currentDir,name$7);try{return await stat(file$1),file$1}catch{}currentDir=dirname$1(currentDir)}}const sharedBuildOptions={bundle:!0,format:`cjs`,platform:`node`,target:`node18`,sourcemap:`inline`},loadEsbuild=()=>{try{return __require$1(`esbuild`)}catch{throw Error("esbuild is not installed. Please install it with `bun add esbuild`.")}};async function build(directory){directory||=process.cwd();let entrypoint=await resolveEntrypoint(directory),{outfile}=await build$1(entrypoint);console.log(`Built agent.js to ${outfile}`)}let isDockerCached;function hasDockerEnv(){try{return fs.statSync(`/.dockerenv`),!0}catch{return!1}}function hasDockerCGroup(){try{return fs.readFileSync(`/proc/self/cgroup`,`utf8`).includes(`docker`)}catch{return!1}}function isDocker(){return isDockerCached===void 0&&(isDockerCached=hasDockerEnv()||hasDockerCGroup()),isDockerCached}let cachedResult;const hasContainerEnv=()=>{try{return fs.statSync(`/run/.containerenv`),!0}catch{return!1}};function isInsideContainer(){return cachedResult===void 0&&(cachedResult=hasContainerEnv()||isDocker()),cachedResult}const isWsl=()=>{if(process$1.platform!==`linux`)return!1;if(os.release().toLowerCase().includes(`microsoft`))return!isInsideContainer();try{return fs.readFileSync(`/proc/version`,`utf8`).toLowerCase().includes(`microsoft`)?!isInsideContainer():!1}catch{return!1}};var is_wsl_default=process$1.env.__IS_WSL_TEST__?isWsl:isWsl();const wslDrivesMountPoint=(()=>{let defaultMountPoint=`/mnt/`,mountPoint;return async function(){if(mountPoint)return mountPoint;let configFilePath$1=`/etc/wsl.conf`,isConfigFileExists=!1;try{await fs$1.access(configFilePath$1,constants.F_OK),isConfigFileExists=!0}catch{}if(!isConfigFileExists)return defaultMountPoint;let configContent=await fs$1.readFile(configFilePath$1,{encoding:`utf8`}),configMountPoint=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(configContent);return configMountPoint?(mountPoint=configMountPoint.groups.mountPoint.trim(),mountPoint=mountPoint.endsWith(`/`)?mountPoint:`${mountPoint}/`,mountPoint):defaultMountPoint}})(),powerShellPathFromWsl=async()=>{let mountPoint=await wslDrivesMountPoint();return`${mountPoint}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},powerShellPath=async()=>is_wsl_default?powerShellPathFromWsl():`${process$1.env.SYSTEMROOT||process$1.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;function defineLazyProperty(object$5,propertyName,valueGetter){let define$2=value=>Object.defineProperty(object$5,propertyName,{value,enumerable:!0,writable:!0});return Object.defineProperty(object$5,propertyName,{configurable:!0,enumerable:!0,get(){let result=valueGetter();return define$2(result),result},set(value){define$2(value)}}),object$5}const execFileAsync$4=promisify(execFile);async function defaultBrowserId(){if(process$1.platform!==`darwin`)throw Error(`macOS only`);let{stdout:stdout$1}=await execFileAsync$4(`defaults`,[`read`,`com.apple.LaunchServices/com.apple.launchservices.secure`,`LSHandlers`]),match$1=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(stdout$1);return match$1?.groups.id??`com.apple.Safari`}const execFileAsync$3=promisify(execFile);async function runAppleScript(script,{humanReadableOutput=!0}={}){if(process$1.platform!==`darwin`)throw Error(`macOS only`);let outputArguments=humanReadableOutput?[]:[`-ss`],{stdout:stdout$1}=await execFileAsync$3(`osascript`,[`-e`,script,outputArguments]);return stdout$1.trim()}async function bundleName(bundleId){return runAppleScript(`tell application "Finder" to set app_path to application file id "${bundleId}" as string\ntell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}const execFileAsync$2=promisify(execFile),windowsBrowserProgIds={AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:`Edge`,id:`com.microsoft.edge.old`},MSEdgeDHTML:{name:`Edge`,id:`com.microsoft.edge`},MSEdgeHTM:{name:`Edge`,id:`com.microsoft.edge`},"IE.HTTP":{name:`Internet Explorer`,id:`com.microsoft.ie`},FirefoxURL:{name:`Firefox`,id:`org.mozilla.firefox`},ChromeHTML:{name:`Chrome`,id:`com.google.chrome`},BraveHTML:{name:`Brave`,id:`com.brave.Browser`},BraveBHTML:{name:`Brave Beta`,id:`com.brave.Browser.beta`},BraveSSHTM:{name:`Brave Nightly`,id:`com.brave.Browser.nightly`}};var UnknownBrowserError=class extends Error{};async function defaultBrowser$1(_execFileAsync=execFileAsync$2){let{stdout:stdout$1}=await _execFileAsync(`reg`,[`QUERY`,` HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice`,`/v`,`ProgId`]),match$1=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(stdout$1);if(!match$1)throw new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(stdout$1)}`);let{id}=match$1.groups,browser=windowsBrowserProgIds[id];if(!browser)throw new UnknownBrowserError(`Unknown browser ID: ${id}`);return browser}const execFileAsync$1=promisify(execFile),titleize=string$5=>string$5.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,x$4=>x$4.toUpperCase());async function defaultBrowser(){if(process$1.platform===`darwin`){let id=await defaultBrowserId(),name$7=await bundleName(id);return{name:name$7,id}}if(process$1.platform===`linux`){let{stdout:stdout$1}=await execFileAsync$1(`xdg-mime`,[`query`,`default`,`x-scheme-handler/http`]),id=stdout$1.trim(),name$7=titleize(id.replace(/.desktop$/,``).replace(`-`,` `));return{name:name$7,id}}if(process$1.platform===`win32`)return defaultBrowser$1();throw Error(`Only macOS, Linux, and Windows are supported`)}const execFile$1=promisify(childProcess.execFile),__dirname$3=path.dirname(fileURLToPath(import.meta.url)),localXdgOpenPath=path.join(__dirname$3,`xdg-open`),{platform:platform$4,arch}=process$1;async function getWindowsDefaultBrowserFromWsl(){let powershellPath=await powerShellPath(),rawCommand=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,encodedCommand=Buffer$1.from(rawCommand,`utf16le`).toString(`base64`),{stdout:stdout$1}=await execFile$1(powershellPath,[`-NoProfile`,`-NonInteractive`,`-ExecutionPolicy`,`Bypass`,`-EncodedCommand`,encodedCommand],{encoding:`utf8`}),progId=stdout$1.trim(),browserMap={ChromeHTML:`com.google.chrome`,BraveHTML:`com.brave.Browser`,MSEdgeHTM:`com.microsoft.edge`,FirefoxURL:`org.mozilla.firefox`};return browserMap[progId]?{id:browserMap[progId]}:{}}const pTryEach=async(array$2,mapper)=>{let latestError;for(let item of array$2)try{return await mapper(item)}catch(error$65){latestError=error$65}throw latestError},baseOpen=async options$1=>{if(options$1={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...options$1},Array.isArray(options$1.app))return pTryEach(options$1.app,singleApp=>baseOpen({...options$1,app:singleApp}));let{name:app,arguments:appArguments=[]}=options$1.app??{};if(appArguments=[...appArguments],Array.isArray(app))return pTryEach(app,appName=>baseOpen({...options$1,app:{name:appName,arguments:appArguments}}));if(app===`browser`||app===`browserPrivate`){let ids={"com.google.chrome":`chrome`,"google-chrome.desktop":`chrome`,"com.brave.Browser":`brave`,"org.mozilla.firefox":`firefox`,"firefox.desktop":`firefox`,"com.microsoft.msedge":`edge`,"com.microsoft.edge":`edge`,"com.microsoft.edgemac":`edge`,"microsoft-edge.desktop":`edge`},flags={chrome:`--incognito`,brave:`--incognito`,firefox:`--private-window`,edge:`--inPrivate`},browser=is_wsl_default?await getWindowsDefaultBrowserFromWsl():await defaultBrowser();if(browser.id in ids){let browserName=ids[browser.id];return app===`browserPrivate`&&appArguments.push(flags[browserName]),baseOpen({...options$1,app:{name:apps[browserName],arguments:appArguments}})}throw Error(`${browser.name} is not supported as a default browser`)}let command,cliArguments=[],childProcessOptions={};if(platform$4===`darwin`)command=`open`,options$1.wait&&cliArguments.push(`--wait-apps`),options$1.background&&cliArguments.push(`--background`),options$1.newInstance&&cliArguments.push(`--new`),app&&cliArguments.push(`-a`,app);else if(platform$4===`win32`||is_wsl_default&&!isInsideContainer()&&!app){command=await powerShellPath(),cliArguments.push(`-NoProfile`,`-NonInteractive`,`-ExecutionPolicy`,`Bypass`,`-EncodedCommand`),is_wsl_default||(childProcessOptions.windowsVerbatimArguments=!0);let encodedArguments=[`Start`];options$1.wait&&encodedArguments.push(`-Wait`),app?(encodedArguments.push(`"\`"${app}\`""`),options$1.target&&appArguments.push(options$1.target)):options$1.target&&encodedArguments.push(`"${options$1.target}"`),appArguments.length>0&&(appArguments=appArguments.map(argument=>`"\`"${argument}\`""`),encodedArguments.push(`-ArgumentList`,appArguments.join(`,`))),options$1.target=Buffer$1.from(encodedArguments.join(` `),`utf16le`).toString(`base64`)}else{if(app)command=app;else{let isBundled=!__dirname$3||__dirname$3===`/`,exeLocalXdgOpen=!1;try{await fs$1.access(localXdgOpenPath,constants.X_OK),exeLocalXdgOpen=!0}catch{}let useSystemXdgOpen=process$1.versions.electron??(platform$4===`android`||isBundled||!exeLocalXdgOpen);command=useSystemXdgOpen?`xdg-open`:localXdgOpenPath}appArguments.length>0&&cliArguments.push(...appArguments),options$1.wait||(childProcessOptions.stdio=`ignore`,childProcessOptions.detached=!0)}platform$4===`darwin`&&appArguments.length>0&&cliArguments.push(`--args`,...appArguments),options$1.target&&cliArguments.push(options$1.target);let subprocess=childProcess.spawn(command,cliArguments,childProcessOptions);return options$1.wait?new Promise((resolve$10,reject)=>{subprocess.once(`error`,reject),subprocess.once(`close`,exitCode=>{if(!options$1.allowNonzeroExitCode&&exitCode>0){reject(Error(`Exited with code ${exitCode}`));return}resolve$10(subprocess)})}):(subprocess.unref(),subprocess)},open$2=(target,options$1)=>{if(typeof target!=`string`)throw TypeError("Expected a `target`");return baseOpen({...options$1,target})};function detectArchBinary(binary){if(typeof binary==`string`||Array.isArray(binary))return binary;let{[arch]:archBinary}=binary;if(!archBinary)throw Error(`${arch} is not supported`);return archBinary}function detectPlatformBinary({[platform$4]:platformBinary},{wsl}){if(wsl&&is_wsl_default)return detectArchBinary(wsl);if(!platformBinary)throw Error(`${platform$4} is not supported`);return detectArchBinary(platformBinary)}const apps={};defineLazyProperty(apps,`chrome`,()=>detectPlatformBinary({darwin:`google chrome`,win32:`chrome`,linux:[`google-chrome`,`google-chrome-stable`,`chromium`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`,x64:[`/mnt/c/Program Files/Google/Chrome/Application/chrome.exe`,`/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe`]}})),defineLazyProperty(apps,`brave`,()=>detectPlatformBinary({darwin:`brave browser`,win32:`brave`,linux:[`brave-browser`,`brave`]},{wsl:{ia32:`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`,x64:[`/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe`,`/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe`]}})),defineLazyProperty(apps,`firefox`,()=>detectPlatformBinary({darwin:`firefox`,win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:`firefox`},{wsl:`/mnt/c/Program Files/Mozilla Firefox/firefox.exe`})),defineLazyProperty(apps,`edge`,()=>detectPlatformBinary({darwin:`microsoft edge`,win32:`msedge`,linux:[`microsoft-edge`,`microsoft-edge-dev`]},{wsl:`/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe`})),defineLazyProperty(apps,`browser`,()=>`browser`),defineLazyProperty(apps,`browserPrivate`,()=>`browserPrivate`);var open_default=open$2,Emitter=class{listeners=[];get event(){return listener=>(this.listeners.push(listener),{dispose:()=>{this.listeners=this.listeners.filter(l$2=>l$2!==listener)}})}emit(event){for(let i$5=this.listeners.length-1;i$5>=0;i$5--)this.listeners[i$5]?.(event)}dispose(){this.listeners=[]}};let MessageType=function(MessageType$1){return MessageType$1[MessageType$1.DATA=0]=`DATA`,MessageType$1[MessageType$1.CLOSE=1]=`CLOSE`,MessageType$1[MessageType$1.ERROR=2]=`ERROR`,MessageType$1}({}),Flag=function(Flag$1){return Flag$1[Flag$1.NEW=1]=`NEW`,Flag$1}({});var BufferPool=class{static MAX_POOL_SIZE=100;static COMMON_SIZES=[64,256,1024,4096,16384];static pools=new Map;static{for(let size of this.COMMON_SIZES)this.pools.set(size,[])}static acquire(size){for(let poolSize of this.COMMON_SIZES)if(poolSize>=size){let pool$1=this.pools.get(poolSize);if(pool$1&&pool$1.length>0)return pool$1.pop();break}return new Uint8Array(size)}static release(buffer$2){let size=buffer$2.length;for(let poolSize of this.COMMON_SIZES)if(poolSize===size){let pool$1=this.pools.get(poolSize);pool$1&&pool$1.length<this.MAX_POOL_SIZE&&pool$1.push(buffer$2);break}}},FrameCodec=class FrameCodec{static HEADER_SIZE=4;static MAX_FRAME_SIZE=1024*1024-FrameCodec.HEADER_SIZE;static encode(frame){let payloadLength=frame.payload.length;if(payloadLength>this.MAX_FRAME_SIZE)throw Error(`Frame payload too large: ${payloadLength} > ${this.MAX_FRAME_SIZE}`);let totalSize=this.HEADER_SIZE+payloadLength,result=BufferPool.acquire(totalSize),word=frame.streamId<<8|frame.type<<4|frame.flags&15;return result[0]=word>>>24&255,result[1]=word>>>16&255,result[2]=word>>>8&255,result[3]=word&255,payloadLength>0&&result.set(frame.payload,this.HEADER_SIZE),result.length===totalSize?result:result.subarray(0,totalSize)}static encodeTyped(streamId,msgType,flags,typeByte,payload){let payloadLength=1+payload.length;if(payloadLength>this.MAX_FRAME_SIZE)throw Error(`Frame payload too large: ${payloadLength} > ${this.MAX_FRAME_SIZE}`);let totalSize=this.HEADER_SIZE+payloadLength,result=BufferPool.acquire(totalSize),word=streamId<<8|msgType<<4|flags&15;return result[0]=word>>>24&255,result[1]=word>>>16&255,result[2]=word>>>8&255,result[3]=word&255,result[FrameCodec.HEADER_SIZE]=typeByte&255,payload.length>0&&result.set(payload,FrameCodec.HEADER_SIZE+1),result.length===totalSize?result:result.subarray(0,totalSize)}static decode(data$2){if(data$2.length<FrameCodec.HEADER_SIZE)throw Error(`Invalid frame: too short (${data$2.length} < ${FrameCodec.HEADER_SIZE})`);let word=data$2[0]<<24|data$2[1]<<16|data$2[2]<<8|data$2[3],streamId=word>>>8,typeAndFlags=word&255,type=typeAndFlags>>>4,flags=typeAndFlags&15,payload=data$2.length>FrameCodec.HEADER_SIZE?data$2.subarray(FrameCodec.HEADER_SIZE):new Uint8Array;return{streamId,type,flags,payload}}static releaseBuffer(buffer$2){BufferPool.release(buffer$2)}static getMaxPayloadSize(){return FrameCodec.MAX_FRAME_SIZE}},Stream$7=class{_onData;_onClose;_onError;_disposed=!1;_id;constructor(id,send,sendTypedCb){this.send=send,this.sendTypedCb=sendTypedCb,this._id=id}get id(){return this._id}get onData(){return this._onData||=new Emitter,this._onData.event}get onClose(){return this._onClose||=new Emitter,this._onClose.event}get onError(){return this._onError||=new Emitter,this._onError.event}write(data$2,isFirst=!1){if(this._disposed)throw Error(`Cannot write to disposed stream ${this.id}`);let maxPayload=FrameCodec.getMaxPayloadSize();if(data$2.length<=maxPayload){this.send({streamId:this.id,type:MessageType.DATA,flags:isFirst?Flag.NEW:0,payload:data$2});return}let offset=0,firstChunk=!0;for(;offset<data$2.length;){let remaining=data$2.length-offset,chunkSize=remaining>maxPayload?maxPayload:remaining,chunk$1=data$2.subarray(offset,offset+chunkSize);this.send({streamId:this.id,type:MessageType.DATA,flags:isFirst&&firstChunk?Flag.NEW:0,payload:chunk$1}),offset+=chunkSize,firstChunk=!1}}writeTyped(typeByte,data$2,isFirst=!1){if(this._disposed)throw Error(`Cannot write to disposed stream ${this.id}`);if(!this.sendTypedCb){let merged=new Uint8Array(1+data$2.length);merged[0]=typeByte&255,data$2.length&&merged.set(data$2,1),this.write(merged,isFirst);return}let maxPayload=FrameCodec.getMaxPayloadSize()-1;if(data$2.length<=maxPayload){this.sendTypedCb(this.id,isFirst?Flag.NEW:0,typeByte,data$2);return}let offset=0,firstChunk=!0;for(;offset<data$2.length;){let remaining=data$2.length-offset,chunkSize=remaining>maxPayload?maxPayload:remaining,chunk$1=data$2.subarray(offset,offset+chunkSize);this.sendTypedCb(this.id,isFirst&&firstChunk?Flag.NEW:0,typeByte,chunk$1),offset+=chunkSize,firstChunk=!1}}close(){this._disposed||(this.send({streamId:this.id,type:MessageType.CLOSE,flags:0,payload:new Uint8Array}),this._dispose())}error(message){this._disposed||this.send({streamId:this.id,type:MessageType.ERROR,flags:0,payload:new TextEncoder().encode(message)})}_handleFrame(frame){if(!this._disposed)switch(frame.type){case MessageType.DATA:this._onData?.emit(frame.payload);break;case MessageType.CLOSE:this._onClose?.emit(),this._dispose();break;case MessageType.ERROR:let error$65=new TextDecoder().decode(frame.payload);this._onError?.emit(error$65),this._dispose();break}}_dispose(){this._disposed||(this._disposed=!0,this._onData?.dispose(),this._onClose?.dispose(),this._onError?.dispose(),this._onData=void 0,this._onClose=void 0,this._onError=void 0)}_reset(newId,newSend,newSendTyped){this._dispose(),this._id=newId,this.send=newSend,this.sendTypedCb=newSendTyped,this._disposed=!1}get createdByClient(){return this.id%2==1}get disposed(){return this._disposed}},StreamPool=class{static MAX_POOL_SIZE=200;static pool=[];static acquire(id,send,sendTyped){let stream$10=this.pool.pop();return stream$10?(stream$10._reset(id,send,sendTyped),stream$10):new Stream$7(id,send,sendTyped)}static release(stream$10){this.pool.length<this.MAX_POOL_SIZE&&this.pool.push(stream$10)}},Multiplexer=class{_onNextStreamIDChange=new Emitter;onNextStreamIDChange=this._onNextStreamIDChange.event;_onStream=new Emitter;onStream=this._onStream.event;streams=[];streamCount=0;nextStreamId=1;send;releaseAfterSend;constructor(opts){this.nextStreamId=opts.initialNextStreamID??(opts.isClient?1:2),this.send=opts.send,this.releaseAfterSend=!!opts.releaseAfterSend}getStream(id){return this.streams[id]}createStream(id){id===void 0&&(id=this.nextStreamId,this.nextStreamId+=2,this._onNextStreamIDChange.emit(this.nextStreamId));let existingStream=this.streams[id];if(existingStream&&!existingStream.disposed)throw Error(`Stream ${id} already exists`);let stream$10=StreamPool.acquire(id,frame=>this.sendFrame(frame),(sid,flags,typeByte,payload)=>this.sendFrameTyped(sid,typeByte,flags,payload));return this.streams[id]=stream$10,this.streamCount++,stream$10}sendFrame(frame){let encoded=FrameCodec.encode(frame);try{this.send(encoded)}finally{this.releaseAfterSend&&FrameCodec.releaseBuffer(encoded)}}sendFrameTyped(streamId,appTypeByte,flags,payload){let encoded=FrameCodec.encodeTyped(streamId,MessageType.DATA,flags,appTypeByte,payload);try{this.send(encoded)}finally{this.releaseAfterSend&&FrameCodec.releaseBuffer(encoded)}}handleMessage(data$2){this.handleFrame(FrameCodec.decode(data$2))}handleFrame(frame){let stream$10=this.streams[frame.streamId];(!stream$10||stream$10.disposed)&&(stream$10=StreamPool.acquire(frame.streamId,frame$1=>this.sendFrame(frame$1),(sid,flags,typeByte,payload)=>this.sendFrameTyped(sid,typeByte,flags,payload)),this.streams[frame.streamId]=stream$10,this.streamCount++,this._onStream.emit(stream$10)),stream$10._handleFrame(frame),(frame.type===MessageType.CLOSE||frame.type===MessageType.ERROR)&&(this.streams[frame.streamId]=void 0,this.streamCount--,StreamPool.release(stream$10))}get activeStreamCount(){return this.streamCount}dispose(){for(let stream$10 of this.streams)stream$10&&!stream$10.disposed&&(stream$10.close(),StreamPool.release(stream$10));this.streams.length=0,this.streamCount=0,this._onNextStreamIDChange.dispose(),this._onStream.dispose()}};const defaultMessages=`End-Of-Stream`;var EndOfStreamError=class extends Error{constructor(){super(`End-Of-Stream`),this.name=`EndOfStreamError`}},AbortError$7=class extends Error{constructor(message=`The operation was aborted`){super(message),this.name=`AbortError`}},AbstractStreamReader=class{constructor(){this.endOfStream=!1,this.interrupted=!1,this.peekQueue=[]}async peek(uint8Array,mayBeLess=!1){let bytesRead=await this.read(uint8Array,mayBeLess);return this.peekQueue.push(uint8Array.subarray(0,bytesRead)),bytesRead}async read(buffer$2,mayBeLess=!1){if(buffer$2.length===0)return 0;let bytesRead=this.readFromPeekBuffer(buffer$2);if(this.endOfStream||(bytesRead+=await this.readRemainderFromStream(buffer$2.subarray(bytesRead),mayBeLess)),bytesRead===0&&!mayBeLess)throw new EndOfStreamError;return bytesRead}readFromPeekBuffer(buffer$2){let remaining=buffer$2.length,bytesRead=0;for(;this.peekQueue.length>0&&remaining>0;){let peekData=this.peekQueue.pop();if(!peekData)throw Error(`peekData should be defined`);let lenCopy=Math.min(peekData.length,remaining);buffer$2.set(peekData.subarray(0,lenCopy),bytesRead),bytesRead+=lenCopy,remaining-=lenCopy,lenCopy<peekData.length&&this.peekQueue.push(peekData.subarray(lenCopy))}return bytesRead}async readRemainderFromStream(buffer$2,mayBeLess){let bytesRead=0;for(;bytesRead<buffer$2.length&&!this.endOfStream;){if(this.interrupted)throw new AbortError$7;let chunkLen=await this.readFromStream(buffer$2.subarray(bytesRead),mayBeLess);if(chunkLen===0)break;bytesRead+=chunkLen}if(!mayBeLess&&bytesRead<buffer$2.length)throw new EndOfStreamError;return bytesRead}},WebStreamReader=class extends AbstractStreamReader{constructor(reader){super(),this.reader=reader}async abort(){return this.close()}async close(){this.reader.releaseLock()}},WebStreamByobReader=class extends WebStreamReader{async readFromStream(buffer$2,mayBeLess){if(buffer$2.length===0)return 0;let result=await this.reader.read(new Uint8Array(buffer$2.length),{min:mayBeLess?void 0:buffer$2.length});return result.done&&(this.endOfStream=result.done),result.value?(buffer$2.set(result.value),result.value.length):0}},WebStreamDefaultReader=class extends AbstractStreamReader{constructor(reader){super(),this.reader=reader,this.buffer=null}writeChunk(target,chunk$1){let written=Math.min(chunk$1.length,target.length);return target.set(chunk$1.subarray(0,written)),written<chunk$1.length?this.buffer=chunk$1.subarray(written):this.buffer=null,written}async readFromStream(buffer$2,mayBeLess){if(buffer$2.length===0)return 0;let totalBytesRead=0;for(this.buffer&&(totalBytesRead+=this.writeChunk(buffer$2,this.buffer));totalBytesRead<buffer$2.length&&!this.endOfStream;){let result=await this.reader.read();if(result.done){this.endOfStream=!0;break}result.value&&(totalBytesRead+=this.writeChunk(buffer$2.subarray(totalBytesRead),result.value))}if(!mayBeLess&&totalBytesRead===0&&this.endOfStream)throw new EndOfStreamError;return totalBytesRead}abort(){return this.interrupted=!0,this.reader.cancel()}async close(){await this.abort(),this.reader.releaseLock()}};function makeWebStreamReader(stream$10){try{let reader=stream$10.getReader({mode:`byob`});return reader instanceof ReadableStreamDefaultReader?new WebStreamDefaultReader(reader):new WebStreamByobReader(reader)}catch(error$65){if(error$65 instanceof TypeError)return new WebStreamDefaultReader(stream$10.getReader());throw error$65}}var AbstractTokenizer=class{constructor(options$1){this.numBuffer=new Uint8Array(8),this.position=0,this.onClose=options$1?.onClose,options$1?.abortSignal&&options$1.abortSignal.addEventListener(`abort`,()=>{this.abort()})}async readToken(token$1,position=this.position){let uint8Array=new Uint8Array(token$1.len),len$1=await this.readBuffer(uint8Array,{position});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(uint8Array,0)}async peekToken(token$1,position=this.position){let uint8Array=new Uint8Array(token$1.len),len$1=await this.peekBuffer(uint8Array,{position});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(uint8Array,0)}async readNumber(token$1){let len$1=await this.readBuffer(this.numBuffer,{length:token$1.len});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(this.numBuffer,0)}async peekNumber(token$1){let len$1=await this.peekBuffer(this.numBuffer,{length:token$1.len});if(len$1<token$1.len)throw new EndOfStreamError;return token$1.get(this.numBuffer,0)}async ignore(length){if(this.fileInfo.size!==void 0){let bytesLeft=this.fileInfo.size-this.position;if(length>bytesLeft)return this.position+=bytesLeft,bytesLeft}return this.position+=length,length}async close(){await this.abort(),await this.onClose?.()}normalizeOptions(uint8Array,options$1){if(!this.supportsRandomAccess()&&options$1&&options$1.position!==void 0&&options$1.position<this.position)throw Error("`options.position` must be equal or greater than `tokenizer.position`");return{mayBeLess:!1,offset:0,length:uint8Array.length,position:this.position,...options$1}}abort(){return Promise.resolve()}};const maxBufferSize=256e3;var ReadStreamTokenizer=class extends AbstractTokenizer{constructor(streamReader,options$1){super(options$1),this.streamReader=streamReader,this.fileInfo=options$1?.fileInfo??{}}async readBuffer(uint8Array,options$1){let normOptions=this.normalizeOptions(uint8Array,options$1),skipBytes=normOptions.position-this.position;if(skipBytes>0)return await this.ignore(skipBytes),this.readBuffer(uint8Array,options$1);if(skipBytes<0)throw Error("`options.position` must be equal or greater than `tokenizer.position`");if(normOptions.length===0)return 0;let bytesRead=await this.streamReader.read(uint8Array.subarray(0,normOptions.length),normOptions.mayBeLess);if(this.position+=bytesRead,(!options$1||!options$1.mayBeLess)&&bytesRead<normOptions.length)throw new EndOfStreamError;return bytesRead}async peekBuffer(uint8Array,options$1){let normOptions=this.normalizeOptions(uint8Array,options$1),bytesRead=0;if(normOptions.position){let skipBytes=normOptions.position-this.position;if(skipBytes>0){let skipBuffer=new Uint8Array(normOptions.length+skipBytes);return bytesRead=await this.peekBuffer(skipBuffer,{mayBeLess:normOptions.mayBeLess}),uint8Array.set(skipBuffer.subarray(skipBytes)),bytesRead-skipBytes}if(skipBytes<0)throw Error(`Cannot peek from a negative offset in a stream`)}if(normOptions.length>0){try{bytesRead=await this.streamReader.peek(uint8Array.subarray(0,normOptions.length),normOptions.mayBeLess)}catch(err$1){if(options$1?.mayBeLess&&err$1 instanceof EndOfStreamError)return 0;throw err$1}if(!normOptions.mayBeLess&&bytesRead<normOptions.length)throw new EndOfStreamError}return bytesRead}async ignore(length){let bufSize=Math.min(256e3,length),buf=new Uint8Array(bufSize),totBytesRead=0;for(;totBytesRead<length;){let remaining=length-totBytesRead,bytesRead=await this.readBuffer(buf,{length:Math.min(bufSize,remaining)});if(bytesRead<0)return bytesRead;totBytesRead+=bytesRead}return totBytesRead}abort(){return this.streamReader.abort()}async close(){return this.streamReader.close()}supportsRandomAccess(){return!1}},BufferTokenizer=class extends AbstractTokenizer{constructor(uint8Array,options$1){super(options$1),this.uint8Array=uint8Array,this.fileInfo={...options$1?.fileInfo??{},size:uint8Array.length}}async readBuffer(uint8Array,options$1){options$1?.position&&(this.position=options$1.position);let bytesRead=await this.peekBuffer(uint8Array,options$1);return this.position+=bytesRead,bytesRead}async peekBuffer(uint8Array,options$1){let normOptions=this.normalizeOptions(uint8Array,options$1),bytes2read=Math.min(this.uint8Array.length-normOptions.position,normOptions.length);if(!normOptions.mayBeLess&&bytes2read<normOptions.length)throw new EndOfStreamError;return uint8Array.set(this.uint8Array.subarray(normOptions.position,normOptions.position+bytes2read)),bytes2read}close(){return super.close()}supportsRandomAccess(){return!0}setPosition(position){this.position=position}};function fromWebStream(webStream,options$1){let webStreamReader=makeWebStreamReader(webStream),_options$1=options$1??{},chainedClose=_options$1.onClose;return _options$1.onClose=async()=>{if(await webStreamReader.close(),chainedClose)return chainedClose()},new ReadStreamTokenizer(webStreamReader,_options$1)}function fromBuffer$1(uint8Array,options$1){return new BufferTokenizer(uint8Array,options$1)}const WINDOWS_1252_EXTRA={128:`€`,130:`‚`,131:`ƒ`,132:`„`,133:`…`,134:`†`,135:`‡`,136:`ˆ`,137:`‰`,138:`Š`,139:`‹`,140:`Œ`,142:`Ž`,145:`‘`,146:`’`,147:`“`,148:`”`,149:`•`,150:`–`,151:`—`,152:`˜`,153:`™`,154:`š`,155:`›`,156:`œ`,158:`ž`,159:`Ÿ`},WINDOWS_1252_REVERSE={};for(let[code$1,char]of Object.entries(WINDOWS_1252_EXTRA))WINDOWS_1252_REVERSE[char]=Number.parseInt(code$1);function textDecode(bytes,encoding=`utf-8`){switch(encoding.toLowerCase()){case`utf-8`:case`utf8`:return globalThis.TextDecoder===void 0?decodeUTF8(bytes):new globalThis.TextDecoder(`utf-8`).decode(bytes);case`utf-16le`:return decodeUTF16LE(bytes);case`ascii`:return decodeASCII(bytes);case`latin1`:case`iso-8859-1`:return decodeLatin1(bytes);case`windows-1252`:return decodeWindows1252(bytes);default:throw RangeError(`Encoding '${encoding}' not supported`)}}function decodeUTF8(bytes){let out=``,i$5=0;for(;i$5<bytes.length;){let b1=bytes[i$5++];if(b1<128)out+=String.fromCharCode(b1);else if(b1<224){let b2=bytes[i$5++]&63;out+=String.fromCharCode((b1&31)<<6|b2)}else if(b1<240){let b2=bytes[i$5++]&63,b3=bytes[i$5++]&63;out+=String.fromCharCode((b1&15)<<12|b2<<6|b3)}else{let b2=bytes[i$5++]&63,b3=bytes[i$5++]&63,b4=bytes[i$5++]&63,cp$1=(b1&7)<<18|b2<<12|b3<<6|b4;cp$1-=65536,out+=String.fromCharCode(55296+(cp$1>>10&1023),56320+(cp$1&1023))}}return out}function decodeUTF16LE(bytes){let out=``;for(let i$5=0;i$5<bytes.length;i$5+=2)out+=String.fromCharCode(bytes[i$5]|bytes[i$5+1]<<8);return out}function decodeASCII(bytes){return String.fromCharCode(...bytes.map(b$4=>b$4&127))}function decodeLatin1(bytes){return String.fromCharCode(...bytes)}function decodeWindows1252(bytes){let out=``;for(let b$4 of bytes)b$4>=128&&b$4<=159&&WINDOWS_1252_EXTRA[b$4]?out+=WINDOWS_1252_EXTRA[b$4]:out+=String.fromCharCode(b$4);return out}function dv(array$2){return new DataView(array$2.buffer,array$2.byteOffset)}const UINT8={len:1,get(array$2,offset){return dv(array$2).getUint8(offset)},put(array$2,offset,value){return dv(array$2).setUint8(offset,value),offset+1}},UINT16_LE={len:2,get(array$2,offset){return dv(array$2).getUint16(offset,!0)},put(array$2,offset,value){return dv(array$2).setUint16(offset,value,!0),offset+2}},UINT16_BE={len:2,get(array$2,offset){return dv(array$2).getUint16(offset)},put(array$2,offset,value){return dv(array$2).setUint16(offset,value),offset+2}},UINT32_LE={len:4,get(array$2,offset){return dv(array$2).getUint32(offset,!0)},put(array$2,offset,value){return dv(array$2).setUint32(offset,value,!0),offset+4}},UINT32_BE={len:4,get(array$2,offset){return dv(array$2).getUint32(offset)},put(array$2,offset,value){return dv(array$2).setUint32(offset,value),offset+4}},INT32_BE={len:4,get(array$2,offset){return dv(array$2).getInt32(offset)},put(array$2,offset,value){return dv(array$2).setInt32(offset,value),offset+4}},UINT64_LE={len:8,get(array$2,offset){return dv(array$2).getBigUint64(offset,!0)},put(array$2,offset,value){return dv(array$2).setBigUint64(offset,value,!0),offset+8}};var StringType=class{constructor(len$1,encoding){this.len=len$1,this.encoding=encoding}get(data$2,offset=0){let bytes=data$2.subarray(offset,offset+this.len);return textDecode(bytes,this.encoding)}},require$1=createRequire$1(`/`),Worker;try{Worker=require$1(`worker_threads`).Worker}catch{}var u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(eb,start$1){for(var b$4=new u16(31),i$5=0;i$5<31;++i$5)b$4[i$5]=start$1+=1<<eb[i$5-1];for(var r$3=new i32(b$4[30]),i$5=1;i$5<30;++i$5)for(var j$2=b$4[i$5];j$2<b$4[i$5+1];++j$2)r$3[j$2]=j$2-b$4[i$5]<<5|i$5;return{b:b$4,r:r$3}},_a$15=freb(fleb,2),fl=_a$15.b,revfl=_a$15.r;fl[28]=258,revfl[258]=28;for(var _b$3=freb(fdeb,0),fd=_b$3.b,revfd=_b$3.r,rev=new u16(32768),i$4=0;i$4<32768;++i$4){var x$3=(i$4&43690)>>1|(i$4&21845)<<1;x$3=(x$3&52428)>>2|(x$3&13107)<<2,x$3=(x$3&61680)>>4|(x$3&3855)<<4,rev[i$4]=((x$3&65280)>>8|(x$3&255)<<8)>>1}for(var hMap=(function(cd,mb,r$3){for(var s$3=cd.length,i$5=0,l$2=new u16(mb);i$5<s$3;++i$5)cd[i$5]&&++l$2[cd[i$5]-1];var le$3=new u16(mb);for(i$5=1;i$5<mb;++i$5)le$3[i$5]=le$3[i$5-1]+l$2[i$5-1]<<1;var co;if(r$3){co=new u16(1<<mb);var rvb=15-mb;for(i$5=0;i$5<s$3;++i$5)if(cd[i$5])for(var sv=i$5<<4|cd[i$5],r_1=mb-cd[i$5],v$2=le$3[cd[i$5]-1]++<<r_1,m$3=v$2|(1<<r_1)-1;v$2<=m$3;++v$2)co[rev[v$2]>>rvb]=sv}else for(co=new u16(s$3),i$5=0;i$5<s$3;++i$5)cd[i$5]&&(co[i$5]=rev[le$3[cd[i$5]-1]++]>>15-cd[i$5]);return co}),flt=new u8(288),i$4=0;i$4<144;++i$4)flt[i$4]=8;for(var i$4=144;i$4<256;++i$4)flt[i$4]=9;for(var i$4=256;i$4<280;++i$4)flt[i$4]=7;for(var i$4=280;i$4<288;++i$4)flt[i$4]=8;for(var fdt=new u8(32),i$4=0;i$4<32;++i$4)fdt[i$4]=5;var flm=hMap(flt,9,0),flrm=hMap(flt,9,1),fdm=hMap(fdt,5,0),fdrm=hMap(fdt,5,1),max$1=function(a$3){for(var m$3=a$3[0],i$5=1;i$5<a$3.length;++i$5)a$3[i$5]>m$3&&(m$3=a$3[i$5]);return m$3},bits=function(d$5,p$2,m$3){var o$3=p$2/8|0;return(d$5[o$3]|d$5[o$3+1]<<8)>>(p$2&7)&m$3},bits16=function(d$5,p$2){var o$3=p$2/8|0;return(d$5[o$3]|d$5[o$3+1]<<8|d$5[o$3+2]<<16)>>(p$2&7)},shft=function(p$2){return(p$2+7)/8|0},slc=function(v$2,s$3,e$2){return(s$3==null||s$3<0)&&(s$3=0),(e$2==null||e$2>v$2.length)&&(e$2=v$2.length),new u8(v$2.subarray(s$3,e$2))},ec=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],err=function(ind,msg,nt){var e$2=Error(msg||ec[ind]);if(e$2.code=ind,Error.captureStackTrace&&Error.captureStackTrace(e$2,err),!nt)throw e$2;return e$2},inflt=function(dat,st,buf,dict){var sl=dat.length,dl=dict?dict.length:0;if(!sl||st.f&&!st.l)return buf||new u8(0);var noBuf=!buf,resize=noBuf||st.i!=2,noSt=st.i;noBuf&&(buf=new u8(sl*3));var cbuf=function(l$3){var bl=buf.length;if(l$3>bl){var nbuf=new u8(Math.max(bl*2,l$3));nbuf.set(buf),buf=nbuf}},final=st.f||0,pos=st.p||0,bt=st.b||0,lm=st.l,dm=st.d,lbt=st.m,dbt=st.n,tbts=sl*8;do{if(!lm){final=bits(dat,pos,1);var type=bits(dat,pos+1,3);if(pos+=3,type)if(type==1)lm=flrm,dm=fdrm,lbt=9,dbt=5;else if(type==2){var hLit=bits(dat,pos,31)+257,hcLen=bits(dat,pos+10,15)+4,tl=hLit+bits(dat,pos+5,31)+1;pos+=14;for(var ldt=new u8(tl),clt=new u8(19),i$5=0;i$5<hcLen;++i$5)clt[clim[i$5]]=bits(dat,pos+i$5*3,7);pos+=hcLen*3;for(var clb=max$1(clt),clbmsk=(1<<clb)-1,clm=hMap(clt,clb,1),i$5=0;i$5<tl;){var r$3=clm[bits(dat,pos,clbmsk)];pos+=r$3&15;var s$3=r$3>>4;if(s$3<16)ldt[i$5++]=s$3;else{var c$3=0,n$2=0;for(s$3==16?(n$2=3+bits(dat,pos,3),pos+=2,c$3=ldt[i$5-1]):s$3==17?(n$2=3+bits(dat,pos,7),pos+=3):s$3==18&&(n$2=11+bits(dat,pos,127),pos+=7);n$2--;)ldt[i$5++]=c$3}}var lt=ldt.subarray(0,hLit),dt=ldt.subarray(hLit);lbt=max$1(lt),dbt=max$1(dt),lm=hMap(lt,lbt,1),dm=hMap(dt,dbt,1)}else err(1);else{var s$3=shft(pos)+4,l$2=dat[s$3-4]|dat[s$3-3]<<8,t$1=s$3+l$2;if(t$1>sl){noSt&&err(0);break}resize&&cbuf(bt+l$2),buf.set(dat.subarray(s$3,t$1),bt),st.b=bt+=l$2,st.p=pos=t$1*8,st.f=final;continue}if(pos>tbts){noSt&&err(0);break}}resize&&cbuf(bt+131072);for(var lms=(1<<lbt)-1,dms=(1<<dbt)-1,lpos=pos;;lpos=pos){var c$3=lm[bits16(dat,pos)&lms],sym=c$3>>4;if(pos+=c$3&15,pos>tbts){noSt&&err(0);break}if(c$3||err(2),sym<256)buf[bt++]=sym;else if(sym==256){lpos=pos,lm=null;break}else{var add=sym-254;if(sym>264){var i$5=sym-257,b$4=fleb[i$5];add=bits(dat,pos,(1<<b$4)-1)+fl[i$5],pos+=b$4}var d$5=dm[bits16(dat,pos)&dms],dsym=d$5>>4;d$5||err(3),pos+=d$5&15;var dt=fd[dsym];if(dsym>3){var b$4=fdeb[dsym];dt+=bits16(dat,pos)&(1<<b$4)-1,pos+=b$4}if(pos>tbts){noSt&&err(0);break}resize&&cbuf(bt+131072);var end=bt+add;if(bt<dt){var shift=dl-dt,dend=Math.min(dt,end);for(shift+bt<0&&err(3);bt<dend;++bt)buf[bt]=dict[shift+bt]}for(;bt<end;++bt)buf[bt]=buf[bt-dt]}}st.l=lm,st.p=lpos,st.b=bt,st.f=final,lm&&(final=1,st.m=lbt,st.d=dm,st.n=dbt)}while(!final);return bt!=buf.length&&noBuf?slc(buf,0,bt):buf.subarray(0,bt)},et=new u8(0),gzs=function(d$5){(d$5[0]!=31||d$5[1]!=139||d$5[2]!=8)&&err(6,`invalid gzip data`);var flg=d$5[3],st=10;flg&4&&(st+=(d$5[10]|d$5[11]<<8)+2);for(var zs=(flg>>3&1)+(flg>>4&1);zs>0;zs-=!d$5[st++]);return st+(flg&2)},gzl=function(d$5){var l$2=d$5.length;return(d$5[l$2-4]|d$5[l$2-3]<<8|d$5[l$2-2]<<16|d$5[l$2-1]<<24)>>>0},zls=function(d$5,dict){return((d$5[0]&15)!=8||d$5[0]>>4>7||(d$5[0]<<8|d$5[1])%31)&&err(6,`invalid zlib data`),(d$5[1]>>5&1)==+!dict&&err(6,`invalid zlib data: `+(d$5[1]&32?`need`:`unexpected`)+` dictionary`),(d$5[1]>>3&4)+2};function inflateSync(data$2,opts){return inflt(data$2,{i:2},opts&&opts.out,opts&&opts.dictionary)}function gunzipSync(data$2,opts){var st=gzs(data$2);return st+8>data$2.length&&err(6,`invalid gzip data`),inflt(data$2.subarray(st,-8),{i:2},opts&&opts.out||new u8(gzl(data$2)),opts&&opts.dictionary)}function unzlibSync(data$2,opts){return inflt(data$2.subarray(zls(data$2,opts&&opts.dictionary),-4),{i:2},opts&&opts.out,opts&&opts.dictionary)}function decompressSync(data$2,opts){return data$2[0]==31&&data$2[1]==139&&data$2[2]==8?gunzipSync(data$2,opts):(data$2[0]&15)!=8||data$2[0]>>4>7||(data$2[0]<<8|data$2[1])%31?inflateSync(data$2,opts):unzlibSync(data$2,opts)}var td=typeof TextDecoder<`u`&&new TextDecoder,tds=0;try{td.decode(et,{stream:!0}),tds=1}catch{}var require_ms=__commonJSMin(((exports,module)=>{var s$2=1e3,m$2=s$2*60,h$3=m$2*60,d$4=h$3*24,w$3=d$4*7,y$2=d$4*365.25;module.exports=function(val,options$1){options$1||={};var type=typeof val;if(type===`string`&&val.length>0)return parse$18(val);if(type===`number`&&isFinite(val))return options$1.long?fmtLong(val):fmtShort(val);throw Error(`val is not a non-empty string or a valid number. val=`+JSON.stringify(val))};function parse$18(str$1){if(str$1=String(str$1),!(str$1.length>100)){var match$1=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str$1);if(match$1){var n$2=parseFloat(match$1[1]),type=(match$1[2]||`ms`).toLowerCase();switch(type){case`years`:case`year`:case`yrs`:case`yr`:case`y`:return n$2*y$2;case`weeks`:case`week`:case`w`:return n$2*w$3;case`days`:case`day`:case`d`:return n$2*d$4;case`hours`:case`hour`:case`hrs`:case`hr`:case`h`:return n$2*h$3;case`minutes`:case`minute`:case`mins`:case`min`:case`m`:return n$2*m$2;case`seconds`:case`second`:case`secs`:case`sec`:case`s`:return n$2*s$2;case`milliseconds`:case`millisecond`:case`msecs`:case`msec`:case`ms`:return n$2;default:return}}}}function fmtShort(ms){var msAbs=Math.abs(ms);return msAbs>=d$4?Math.round(ms/d$4)+`d`:msAbs>=h$3?Math.round(ms/h$3)+`h`:msAbs>=m$2?Math.round(ms/m$2)+`m`:msAbs>=s$2?Math.round(ms/s$2)+`s`:ms+`ms`}function fmtLong(ms){var msAbs=Math.abs(ms);return msAbs>=d$4?plural(ms,msAbs,d$4,`day`):msAbs>=h$3?plural(ms,msAbs,h$3,`hour`):msAbs>=m$2?plural(ms,msAbs,m$2,`minute`):msAbs>=s$2?plural(ms,msAbs,s$2,`second`):ms+` ms`}function plural(ms,msAbs,n$2,name$7){var isPlural=msAbs>=n$2*1.5;return Math.round(ms/n$2)+` `+name$7+(isPlural?`s`:``)}})),require_common$3=__commonJSMin(((exports,module)=>{function setup$7(env$8){createDebug.debug=createDebug,createDebug.default=createDebug,createDebug.coerce=coerce,createDebug.disable=disable,createDebug.enable=enable,createDebug.enabled=enabled,createDebug.humanize=require_ms(),createDebug.destroy=destroy$2,Object.keys(env$8).forEach(key=>{createDebug[key]=env$8[key]}),createDebug.names=[],createDebug.skips=[],createDebug.formatters={};function selectColor(namespace){let hash$2=0;for(let i$5=0;i$5<namespace.length;i$5++)hash$2=(hash$2<<5)-hash$2+namespace.charCodeAt(i$5),hash$2|=0;return createDebug.colors[Math.abs(hash$2)%createDebug.colors.length]}createDebug.selectColor=selectColor;function createDebug(namespace){let prevTime,enableOverride=null,namespacesCache,enabledCache;function debug$11(...args){if(!debug$11.enabled)return;let self$1=debug$11,curr=Number(new Date),ms=curr-(prevTime||curr);self$1.diff=ms,self$1.prev=prevTime,self$1.curr=curr,prevTime=curr,args[0]=createDebug.coerce(args[0]),typeof args[0]!=`string`&&args.unshift(`%O`);let index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,(match$1,format$4)=>{if(match$1===`%%`)return`%`;index++;let formatter$1=createDebug.formatters[format$4];if(typeof formatter$1==`function`){let val=args[index];match$1=formatter$1.call(self$1,val),args.splice(index,1),index--}return match$1}),createDebug.formatArgs.call(self$1,args);let logFn=self$1.log||createDebug.log;logFn.apply(self$1,args)}return debug$11.namespace=namespace,debug$11.useColors=createDebug.useColors(),debug$11.color=createDebug.selectColor(namespace),debug$11.extend=extend$2,debug$11.destroy=createDebug.destroy,Object.defineProperty(debug$11,`enabled`,{enumerable:!0,configurable:!1,get:()=>enableOverride===null?(namespacesCache!==createDebug.namespaces&&(namespacesCache=createDebug.namespaces,enabledCache=createDebug.enabled(namespace)),enabledCache):enableOverride,set:v$2=>{enableOverride=v$2}}),typeof createDebug.init==`function`&&createDebug.init(debug$11),debug$11}function extend$2(namespace,delimiter){let newDebug=createDebug(this.namespace+(delimiter===void 0?`:`:delimiter)+namespace);return newDebug.log=this.log,newDebug}function enable(namespaces){createDebug.save(namespaces),createDebug.namespaces=namespaces,createDebug.names=[],createDebug.skips=[];let split=(typeof namespaces==`string`?namespaces:``).trim().replace(/\s+/g,`,`).split(`,`).filter(Boolean);for(let ns of split)ns[0]===`-`?createDebug.skips.push(ns.slice(1)):createDebug.names.push(ns)}function matchesTemplate(search,template$1){let searchIndex=0,templateIndex=0,starIndex=-1,matchIndex=0;for(;searchIndex<search.length;)if(templateIndex<template$1.length&&(template$1[templateIndex]===search[searchIndex]||template$1[templateIndex]===`*`))template$1[templateIndex]===`*`?(starIndex=templateIndex,matchIndex=searchIndex,templateIndex++):(searchIndex++,templateIndex++);else if(starIndex!==-1)templateIndex=starIndex+1,matchIndex++,searchIndex=matchIndex;else return!1;for(;templateIndex<template$1.length&&template$1[templateIndex]===`*`;)templateIndex++;return templateIndex===template$1.length}function disable(){let namespaces=[...createDebug.names,...createDebug.skips.map(namespace=>`-`+namespace)].join(`,`);return createDebug.enable(``),namespaces}function enabled(name$7){for(let skip of createDebug.skips)if(matchesTemplate(name$7,skip))return!1;for(let ns of createDebug.names)if(matchesTemplate(name$7,ns))return!0;return!1}function coerce(val){return val instanceof Error?val.stack||val.message:val}function destroy$2(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return createDebug.enable(createDebug.load()),createDebug}module.exports=setup$7})),require_browser=__commonJSMin(((exports,module)=>{exports.formatArgs=formatArgs$1,exports.save=save$1,exports.load=load$6,exports.useColors=useColors$1,exports.storage=localstorage(),exports.destroy=(()=>{let warned$1=!1;return()=>{warned$1||(warned$1=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),exports.colors=`#0000CC.#0000FF.#0033CC.#0033FF.#0066CC.#0066FF.#0099CC.#0099FF.#00CC00.#00CC33.#00CC66.#00CC99.#00CCCC.#00CCFF.#3300CC.#3300FF.#3333CC.#3333FF.#3366CC.#3366FF.#3399CC.#3399FF.#33CC00.#33CC33.#33CC66.#33CC99.#33CCCC.#33CCFF.#6600CC.#6600FF.#6633CC.#6633FF.#66CC00.#66CC33.#9900CC.#9900FF.#9933CC.#9933FF.#99CC00.#99CC33.#CC0000.#CC0033.#CC0066.#CC0099.#CC00CC.#CC00FF.#CC3300.#CC3333.#CC3366.#CC3399.#CC33CC.#CC33FF.#CC6600.#CC6633.#CC9900.#CC9933.#CCCC00.#CCCC33.#FF0000.#FF0033.#FF0066.#FF0099.#FF00CC.#FF00FF.#FF3300.#FF3333.#FF3366.#FF3399.#FF33CC.#FF33FF.#FF6600.#FF6633.#FF9900.#FF9933.#FFCC00.#FFCC33`.split(`.`);function useColors$1(){if(typeof window<`u`&&window.process&&(window.process.type===`renderer`||window.process.__nwjs))return!0;if(typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let m$3;return typeof document<`u`&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<`u`&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<`u`&&navigator.userAgent&&(m$3=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(m$3[1],10)>=31||typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs$1(args){if(args[0]=(this.useColors?`%c`:``)+this.namespace+(this.useColors?` %c`:` `)+args[0]+(this.useColors?`%c `:` `)+`+`+module.exports.humanize(this.diff),!this.useColors)return;let c$3=`color: `+this.color;args.splice(1,0,c$3,`color: inherit`);let index=0,lastC=0;args[0].replace(/%[a-zA-Z%]/g,match$1=>{match$1!==`%%`&&(index++,match$1===`%c`&&(lastC=index))}),args.splice(lastC,0,c$3)}exports.log=console.debug||console.log||(()=>{});function save$1(namespaces){try{namespaces?exports.storage.setItem(`debug`,namespaces):exports.storage.removeItem(`debug`)}catch{}}function load$6(){let r$3;try{r$3=exports.storage.getItem(`debug`)||exports.storage.getItem(`DEBUG`)}catch{}return!r$3&&typeof process<`u`&&`env`in process&&(r$3=process.env.DEBUG),r$3}function localstorage(){try{return localStorage}catch{}}module.exports=require_common$3()(exports);let{formatters:formatters$1}=module.exports;formatters$1.j=function(v$2){try{return JSON.stringify(v$2)}catch(error$65){return`[UnexpectedJSONParseError]: `+error$65.message}}})),require_has_flag$1=__commonJSMin(((exports,module)=>{module.exports=(flag,argv$1=process.argv)=>{let prefix=flag.startsWith(`-`)?``:flag.length===1?`-`:`--`,position=argv$1.indexOf(prefix+flag),terminatorPosition=argv$1.indexOf(`--`);return position!==-1&&(terminatorPosition===-1||position<terminatorPosition)}})),require_supports_color$2=__commonJSMin(((exports,module)=>{let os$13=__require$1(`os`),tty$5=__require$1(`tty`),hasFlag$5=require_has_flag$1(),{env:env$7}=process,forceColor$3;hasFlag$5(`no-color`)||hasFlag$5(`no-colors`)||hasFlag$5(`color=false`)||hasFlag$5(`color=never`)?forceColor$3=0:(hasFlag$5(`color`)||hasFlag$5(`colors`)||hasFlag$5(`color=true`)||hasFlag$5(`color=always`))&&(forceColor$3=1),`FORCE_COLOR`in env$7&&(forceColor$3=env$7.FORCE_COLOR===`true`?1:env$7.FORCE_COLOR===`false`?0:env$7.FORCE_COLOR.length===0?1:Math.min(parseInt(env$7.FORCE_COLOR,10),3));function translateLevel$4(level$1){return level$1===0?!1:{level:level$1,hasBasic:!0,has256:level$1>=2,has16m:level$1>=3}}function supportsColor$5(haveStream,streamIsTTY){if(forceColor$3===0)return 0;if(hasFlag$5(`color=16m`)||hasFlag$5(`color=full`)||hasFlag$5(`color=truecolor`))return 3;if(hasFlag$5(`color=256`))return 2;if(haveStream&&!streamIsTTY&&forceColor$3===void 0)return 0;let min=forceColor$3||0;if(env$7.TERM===`dumb`)return min;if(process.platform===`win32`){let osRelease=os$13.release().split(`.`);return Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if(`CI`in env$7)return[`TRAVIS`,`CIRCLECI`,`APPVEYOR`,`GITLAB_CI`,`GITHUB_ACTIONS`,`BUILDKITE`].some(sign$2=>sign$2 in env$7)||env$7.CI_NAME===`codeship`?1:min;if(`TEAMCITY_VERSION`in env$7)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$7.TEAMCITY_VERSION)?1:0;if(env$7.COLORTERM===`truecolor`)return 3;if(`TERM_PROGRAM`in env$7){let version$5=parseInt((env$7.TERM_PROGRAM_VERSION||``).split(`.`)[0],10);switch(env$7.TERM_PROGRAM){case`iTerm.app`:return version$5>=3?3:2;case`Apple_Terminal`:return 2}}return/-256(color)?$/i.test(env$7.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$7.TERM)||`COLORTERM`in env$7?1:min}function getSupportLevel$3(stream$10){let level$1=supportsColor$5(stream$10,stream$10&&stream$10.isTTY);return translateLevel$4(level$1)}module.exports={supportsColor:getSupportLevel$3,stdout:translateLevel$4(supportsColor$5(!0,tty$5.isatty(1))),stderr:translateLevel$4(supportsColor$5(!0,tty$5.isatty(2)))}})),require_node$18=__commonJSMin(((exports,module)=>{let tty$4=__require$1(`tty`),util$68=__require$1(`util`);exports.init=init$3,exports.log=log$4,exports.formatArgs=formatArgs,exports.save=save,exports.load=load$5,exports.useColors=useColors,exports.destroy=util$68.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),exports.colors=[6,2,3,4,5,1];try{let supportsColor$6=require_supports_color$2();supportsColor$6&&(supportsColor$6.stderr||supportsColor$6).level>=2&&(exports.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}exports.inspectOpts=Object.keys(process.env).filter(key=>/^debug_/i.test(key)).reduce((obj,key)=>{let prop=key.substring(6).toLowerCase().replace(/_([a-z])/g,(_$6,k$2)=>k$2.toUpperCase()),val=process.env[key];return val=/^(yes|on|true|enabled)$/i.test(val)?!0:/^(no|off|false|disabled)$/i.test(val)?!1:val===`null`?null:Number(val),obj[prop]=val,obj},{});function useColors(){return`colors`in exports.inspectOpts?!!exports.inspectOpts.colors:tty$4.isatty(process.stderr.fd)}function formatArgs(args){let{namespace:name$7,useColors:useColors$2}=this;if(useColors$2){let c$3=this.color,colorCode=`\x1B[3`+(c$3<8?c$3:`8;5;`+c$3),prefix=` ${colorCode};1m${name$7} \u001B[0m`;args[0]=prefix+args[0].split(`
|
|
26
26
|
`).join(`
|
|
27
27
|
`+prefix),args.push(colorCode+`m+`+module.exports.humanize(this.diff)+`\x1B[0m`)}else args[0]=getDate()+name$7+` `+args[0]}function getDate(){return exports.inspectOpts.hideDate?``:new Date().toISOString()+` `}function log$4(...args){return process.stderr.write(util$68.formatWithOptions(exports.inspectOpts,...args)+`
|
|
28
28
|
`)}function save(namespaces){namespaces?process.env.DEBUG=namespaces:delete process.env.DEBUG}function load$5(){return process.env.DEBUG}function init$3(debug$11){debug$11.inspectOpts={};let keys=Object.keys(exports.inspectOpts);for(let i$5=0;i$5<keys.length;i$5++)debug$11.inspectOpts[keys[i$5]]=exports.inspectOpts[keys[i$5]]}module.exports=require_common$3()(exports);let{formatters}=module.exports;formatters.o=function(v$2){return this.inspectOpts.colors=this.useColors,util$68.inspect(v$2,this.inspectOpts).split(`
|
|
@@ -1132,7 +1132,7 @@ Content-Type: ${value.type||`application/octet-stream`}\r\n\r\n`);blobParts.push
|
|
|
1132
1132
|
ORDER BY cachedAt DESC
|
|
1133
1133
|
LIMIT ?
|
|
1134
1134
|
)
|
|
1135
|
-
`)}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$4=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.cachedAt,value.staleAt,existingValue.id):(this.#prune(),this.#insertValueQuery.run(url$4,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))}createWriteStream(key,value){assertCacheKey(key),assertCacheValue(value);let size=0,body=[],store=this;return new Writable$2({decodeStrings:!0,write(chunk$1,encoding,callback$1){size+=chunk$1.byteLength,size<store.#maxEntrySize?body.push(chunk$1):this.destroy(),callback$1()},final(callback$1){store.set(key,{...value,body}),callback$1()}})}delete(key){if(typeof key!=`object`)throw 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$4=this.#makeValueUrl(key),{headers:headers$2,method}=key,values=this.#getValuesQuery.all(url$4,method);if(values.length===0)return;let now$1=Date.now();for(let value of values){if(now$1>=value.deleteAt&&!canBeExpired)return;let matches=!0;if(value.vary){let vary=JSON.parse(value.vary);for(let header in vary)if(!headerValueEquals(headers$2[header],vary[header])){matches=!1;break}}if(matches)return value}}};function headerValueEquals(lhs,rhs){return lhs==null&&rhs==null?!0:lhs==null&&rhs!=null||lhs!=null&&rhs==null?!1:Array.isArray(lhs)&&Array.isArray(rhs)?lhs.length===rhs.length?lhs.every((x$4,i$5)=>x$4===rhs[i$5]):!1:lhs===rhs}})),require_headers=__commonJSMin(((exports,module)=>{let{kConstruct:kConstruct$7}=require_symbols$1(),{kEnumerableProperty:kEnumerableProperty$9}=require_util$5(),{iteratorMixin,isValidHeaderName:isValidHeaderName$1,isValidHeaderValue}=require_util$4(),{webidl:webidl$11}=require_webidl(),assert$10=__require$1(`node:assert`),util$4=__require$1(`node:util`);function isHTTPWhiteSpaceCharCode(code$1){return code$1===10||code$1===13||code$1===9||code$1===32}function headerValueNormalize(potentialValue){let i$5=0,j$2=potentialValue.length;for(;j$2>i$5&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j$2-1));)--j$2;for(;j$2>i$5&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i$5));)++i$5;return i$5===0&&j$2===potentialValue.length?potentialValue:potentialValue.substring(i$5,j$2)}function fill$1(headers$2,object$5){if(Array.isArray(object$5))for(let i$5=0;i$5<object$5.length;++i$5){let header=object$5[i$5];if(header.length!==2)throw webidl$11.errors.exception({header:`Headers constructor`,message:`expected name/value pair to be length 2, found ${header.length}.`});appendHeader(headers$2,header[0],header[1])}else if(typeof object$5==`object`&&object$5){let keys=Object.keys(object$5);for(let i$5=0;i$5<keys.length;++i$5)appendHeader(headers$2,keys[i$5],object$5[keys[i$5]])}else throw webidl$11.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})}function appendHeader(headers$2,name$7,value){if(value=headerValueNormalize(value),isValidHeaderName$1(name$7)){if(!isValidHeaderValue(value))throw webidl$11.errors.invalidArgument({prefix:`Headers.append`,value,type:`header value`})}else throw webidl$11.errors.invalidArgument({prefix:`Headers.append`,value:name$7,type:`header name`});if(getHeadersGuard$2(headers$2)===`immutable`)throw TypeError(`immutable`);return getHeadersList$2(headers$2).append(name$7,value,!1)}function headersListSortAndCombine(target){let headersList=getHeadersList$2(target);if(!headersList)return[];if(headersList.sortedMap)return headersList.sortedMap;let headers$2=[],names$1=headersList.toSortedArray(),cookies=headersList.cookies;if(cookies===null||cookies.length===1)return headersList.sortedMap=names$1;for(let i$5=0;i$5<names$1.length;++i$5){let{0:name$7,1:value}=names$1[i$5];if(name$7===`set-cookie`)for(let j$2=0;j$2<cookies.length;++j$2)headers$2.push([name$7,cookies[j$2]]);else headers$2.push([name$7,value])}return headersList.sortedMap=headers$2}function compareHeaderName(a$3,b$4){return a$3[0]<b$4[0]?-1:1}var HeadersList$3=class HeadersList$3{cookies=null;sortedMap;headersMap;constructor(init$4){init$4 instanceof HeadersList$3?(this.headersMap=new Map(init$4.headersMap),this.sortedMap=init$4.sortedMap,this.cookies=init$4.cookies===null?null:[...init$4.cookies]):(this.headersMap=new Map(init$4),this.sortedMap=null)}contains(name$7,isLowerCase){return this.headersMap.has(isLowerCase?name$7:name$7.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(name$7,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name$7:name$7.toLowerCase(),exists$3=this.headersMap.get(lowercaseName);if(exists$3){let delimiter=lowercaseName===`cookie`?`; `:`, `;this.headersMap.set(lowercaseName,{name:exists$3.name,value:`${exists$3.value}${delimiter}${value}`})}else this.headersMap.set(lowercaseName,{name:name$7,value});lowercaseName===`set-cookie`&&(this.cookies??=[]).push(value)}set(name$7,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name$7:name$7.toLowerCase();lowercaseName===`set-cookie`&&(this.cookies=[value]),this.headersMap.set(lowercaseName,{name:name$7,value})}delete(name$7,isLowerCase){this.sortedMap=null,isLowerCase||(name$7=name$7.toLowerCase()),name$7===`set-cookie`&&(this.cookies=null),this.headersMap.delete(name$7)}get(name$7,isLowerCase){return this.headersMap.get(isLowerCase?name$7:name$7.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:name$7,1:{value}}of this.headersMap)yield[name$7,value]}get entries(){let headers$2={};if(this.headersMap.size!==0)for(let{name:name$7,value}of this.headersMap.values())headers$2[name$7]=value;return headers$2}rawValues(){return this.headersMap.values()}get entriesList(){let headers$2=[];if(this.headersMap.size!==0)for(let{0:lowerName,1:{name:name$7,value}}of this.headersMap)if(lowerName===`set-cookie`)for(let cookie of this.cookies)headers$2.push([name$7,cookie]);else headers$2.push([name$7,value]);return headers$2}toSortedArray(){let size=this.headersMap.size,array$2=Array(size);if(size<=32){if(size===0)return array$2;let iterator=this.headersMap[Symbol.iterator](),firstValue=iterator.next().value;array$2[0]=[firstValue[0],firstValue[1].value],assert$10(firstValue[1].value!==null);for(let i$5=1,j$2=0,right$1=0,left$1=0,pivot=0,x$4,value;i$5<size;++i$5){for(value=iterator.next().value,x$4=array$2[i$5]=[value[0],value[1].value],assert$10(x$4[1]!==null),left$1=0,right$1=i$5;left$1<right$1;)pivot=left$1+(right$1-left$1>>1),array$2[pivot][0]<=x$4[0]?left$1=pivot+1:right$1=pivot;if(i$5!==pivot){for(j$2=i$5;j$2>left$1;)array$2[j$2]=array$2[--j$2];array$2[left$1]=x$4}}if(!iterator.next().done)throw TypeError(`Unreachable`);return array$2}else{let i$5=0;for(let{0:name$7,1:{value}}of this.headersMap)array$2[i$5++]=[name$7,value],assert$10(value!==null);return array$2.sort(compareHeaderName)}}},Headers$5=class Headers$5{#guard;#headersList;constructor(init$4=void 0){webidl$11.util.markAsUncloneable(this),init$4!==kConstruct$7&&(this.#headersList=new HeadersList$3,this.#guard=`none`,init$4!==void 0&&(init$4=webidl$11.converters.HeadersInit(init$4,`Headers constructor`,`init`),fill$1(this,init$4)))}append(name$7,value){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,2,`Headers.append`);let prefix=`Headers.append`;return name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),value=webidl$11.converters.ByteString(value,prefix,`value`),appendHeader(this,name$7,value)}delete(name$7){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,1,`Headers.delete`);let prefix=`Headers.delete`;if(name$7=webidl$11.converters.ByteString(name$7,`Headers.delete`,`name`),!isValidHeaderName$1(name$7))throw webidl$11.errors.invalidArgument({prefix:`Headers.delete`,value:name$7,type:`header name`});if(this.#guard===`immutable`)throw TypeError(`immutable`);this.#headersList.contains(name$7,!1)&&this.#headersList.delete(name$7,!1)}get(name$7){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,1,`Headers.get`);let prefix=`Headers.get`;if(name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),!isValidHeaderName$1(name$7))throw webidl$11.errors.invalidArgument({prefix,value:name$7,type:`header name`});return this.#headersList.get(name$7,!1)}has(name$7){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,1,`Headers.has`);let prefix=`Headers.has`;if(name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),!isValidHeaderName$1(name$7))throw webidl$11.errors.invalidArgument({prefix,value:name$7,type:`header name`});return this.#headersList.contains(name$7,!1)}set(name$7,value){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,2,`Headers.set`);let prefix=`Headers.set`;if(name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),value=webidl$11.converters.ByteString(value,prefix,`value`),value=headerValueNormalize(value),isValidHeaderName$1(name$7)){if(!isValidHeaderValue(value))throw webidl$11.errors.invalidArgument({prefix,value,type:`header value`})}else throw webidl$11.errors.invalidArgument({prefix,value:name$7,type:`header name`});if(this.#guard===`immutable`)throw TypeError(`immutable`);this.#headersList.set(name$7,value,!1)}getSetCookie(){webidl$11.brandCheck(this,Headers$5);let list$2=this.#headersList.cookies;return list$2?[...list$2]:[]}[util$4.inspect.custom](depth$1,options$1){return options$1.depth??=depth$1,`Headers ${util$4.formatWithOptions(options$1,this.#headersList.entries)}`}static getHeadersGuard(o$3){return o$3.#guard}static setHeadersGuard(o$3,guard){o$3.#guard=guard}static getHeadersList(o$3){return o$3.#headersList}static setHeadersList(target,list$2){target.#headersList=list$2}};let{getHeadersGuard:getHeadersGuard$2,setHeadersGuard:setHeadersGuard$2,getHeadersList:getHeadersList$2,setHeadersList:setHeadersList$2}=Headers$5;Reflect.deleteProperty(Headers$5,`getHeadersGuard`),Reflect.deleteProperty(Headers$5,`setHeadersGuard`),Reflect.deleteProperty(Headers$5,`getHeadersList`),Reflect.deleteProperty(Headers$5,`setHeadersList`),iteratorMixin(`Headers`,Headers$5,headersListSortAndCombine,0,1),Object.defineProperties(Headers$5.prototype,{append:kEnumerableProperty$9,delete:kEnumerableProperty$9,get:kEnumerableProperty$9,has:kEnumerableProperty$9,set:kEnumerableProperty$9,getSetCookie:kEnumerableProperty$9,[Symbol.toStringTag]:{value:`Headers`,configurable:!0},[util$4.inspect.custom]:{enumerable:!1}}),webidl$11.converters.HeadersInit=function(V$5,prefix,argument){if(webidl$11.util.Type(V$5)===webidl$11.util.Types.OBJECT){let iterator=Reflect.get(V$5,Symbol.iterator);if(!util$4.types.isProxy(V$5)&&iterator===Headers$5.prototype.entries)try{return getHeadersList$2(V$5).entriesList}catch{}return typeof iterator==`function`?webidl$11.converters[`sequence<sequence<ByteString>>`](V$5,prefix,argument,iterator.bind(V$5)):webidl$11.converters[`record<ByteString, ByteString>`](V$5,prefix,argument)}throw webidl$11.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})},module.exports={fill:fill$1,compareHeaderName,Headers:Headers$5,HeadersList:HeadersList$3,getHeadersGuard:getHeadersGuard$2,setHeadersGuard:setHeadersGuard$2,setHeadersList:setHeadersList$2,getHeadersList:getHeadersList$2}})),require_response=__commonJSMin(((exports,module)=>{let{Headers:Headers$4,HeadersList:HeadersList$2,fill,getHeadersGuard:getHeadersGuard$1,setHeadersGuard:setHeadersGuard$1,setHeadersList:setHeadersList$1}=require_headers(),{extractBody:extractBody$2,cloneBody:cloneBody$1,mixinBody:mixinBody$1,streamRegistry,bodyUnusable:bodyUnusable$1}=require_body(),util$3=require_util$5(),nodeUtil$1=__require$1(`node:util`),{kEnumerableProperty:kEnumerableProperty$8}=util$3,{isValidReasonPhrase,isCancelled:isCancelled$1,isAborted:isAborted$2,serializeJavascriptValueToJSONString,isErrorLike:isErrorLike$1,isomorphicEncode:isomorphicEncode$1,environmentSettingsObject:relevantRealm}=require_util$4(),{redirectStatusSet:redirectStatusSet$1,nullBodyStatus:nullBodyStatus$1}=require_constants$3(),{webidl:webidl$10}=require_webidl(),{URLSerializer:URLSerializer$3}=require_data_url(),{kConstruct:kConstruct$6}=require_symbols$1(),assert$9=__require$1(`node:assert`),textEncoder=new TextEncoder(`utf-8`);var Response$1=class Response$1{#headers;#state;static error(){let responseObject=fromInnerResponse$2(makeNetworkError$1(),`immutable`);return responseObject}static json(data$2,init$4=void 0){webidl$10.argumentLengthCheck(arguments,1,`Response.json`),init$4!==null&&(init$4=webidl$10.converters.ResponseInit(init$4));let bytes=textEncoder.encode(serializeJavascriptValueToJSONString(data$2)),body=extractBody$2(bytes),responseObject=fromInnerResponse$2(makeResponse$1({}),`response`);return initializeResponse(responseObject,init$4,{body:body[0],type:`application/json`}),responseObject}static redirect(url$4,status=302){webidl$10.argumentLengthCheck(arguments,1,`Response.redirect`),url$4=webidl$10.converters.USVString(url$4),status=webidl$10.converters[`unsigned short`](status);let parsedURL;try{parsedURL=new URL(url$4,relevantRealm.settingsObject.baseUrl)}catch(err$1){throw TypeError(`Failed to parse URL from ${url$4}`,{cause:err$1})}if(!redirectStatusSet$1.has(status))throw RangeError(`Invalid status code ${status}`);let responseObject=fromInnerResponse$2(makeResponse$1({}),`immutable`);responseObject.#state.status=status;let value=isomorphicEncode$1(URLSerializer$3(parsedURL));return responseObject.#state.headersList.append(`location`,value,!0),responseObject}constructor(body=null,init$4=void 0){if(webidl$10.util.markAsUncloneable(this),body===kConstruct$6)return;body!==null&&(body=webidl$10.converters.BodyInit(body,`Response`,`body`)),init$4=webidl$10.converters.ResponseInit(init$4),this.#state=makeResponse$1({}),this.#headers=new Headers$4(kConstruct$6),setHeadersGuard$1(this.#headers,`response`),setHeadersList$1(this.#headers,this.#state.headersList);let bodyWithType=null;if(body!=null){let[extractedBody,type]=extractBody$2(body);bodyWithType={body:extractedBody,type}}initializeResponse(this,init$4,bodyWithType)}get type(){return webidl$10.brandCheck(this,Response$1),this.#state.type}get url(){webidl$10.brandCheck(this,Response$1);let urlList=this.#state.urlList,url$4=urlList[urlList.length-1]??null;return url$4===null?``:URLSerializer$3(url$4,!0)}get redirected(){return webidl$10.brandCheck(this,Response$1),this.#state.urlList.length>1}get status(){return webidl$10.brandCheck(this,Response$1),this.#state.status}get ok(){return webidl$10.brandCheck(this,Response$1),this.#state.status>=200&&this.#state.status<=299}get statusText(){return webidl$10.brandCheck(this,Response$1),this.#state.statusText}get headers(){return webidl$10.brandCheck(this,Response$1),this.#headers}get body(){return webidl$10.brandCheck(this,Response$1),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl$10.brandCheck(this,Response$1),!!this.#state.body&&util$3.isDisturbed(this.#state.body.stream)}clone(){if(webidl$10.brandCheck(this,Response$1),bodyUnusable$1(this.#state))throw webidl$10.errors.exception({header:`Response.clone`,message:`Body has already been consumed.`});let clonedResponse=cloneResponse$1(this.#state);return this.#state.body?.stream&&streamRegistry.register(this,new WeakRef(this.#state.body.stream)),fromInnerResponse$2(clonedResponse,getHeadersGuard$1(this.#headers))}[nodeUtil$1.inspect.custom](depth$1,options$1){options$1.depth===null&&(options$1.depth=2),options$1.colors??=!0;let properties$1={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$1.formatWithOptions(options$1,properties$1)}`}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}};let{getResponseHeaders,setResponseHeaders,getResponseState:getResponseState$2,setResponseState}=Response$1;Reflect.deleteProperty(Response$1,`getResponseHeaders`),Reflect.deleteProperty(Response$1,`setResponseHeaders`),Reflect.deleteProperty(Response$1,`getResponseState`),Reflect.deleteProperty(Response$1,`setResponseState`),mixinBody$1(Response$1,getResponseState$2),Object.defineProperties(Response$1.prototype,{type:kEnumerableProperty$8,url:kEnumerableProperty$8,status:kEnumerableProperty$8,ok:kEnumerableProperty$8,redirected:kEnumerableProperty$8,statusText:kEnumerableProperty$8,headers:kEnumerableProperty$8,clone:kEnumerableProperty$8,body:kEnumerableProperty$8,bodyUsed:kEnumerableProperty$8,[Symbol.toStringTag]:{value:`Response`,configurable:!0}}),Object.defineProperties(Response$1,{json:kEnumerableProperty$8,redirect:kEnumerableProperty$8,error:kEnumerableProperty$8});function cloneResponse$1(response){if(response.internalResponse)return filterResponse$1(cloneResponse$1(response.internalResponse),response.type);let newResponse=makeResponse$1({...response,body:null});return response.body!=null&&(newResponse.body=cloneBody$1(response.body)),newResponse}function makeResponse$1(init$4){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:`default`,status:200,timingInfo:null,cacheState:``,statusText:``,...init$4,headersList:init$4?.headersList?new HeadersList$2(init$4?.headersList):new HeadersList$2,urlList:init$4?.urlList?[...init$4.urlList]:[]}}function makeNetworkError$1(reason){let isError$1=isErrorLike$1(reason);return makeResponse$1({type:`error`,status:0,error:isError$1?reason:Error(reason&&String(reason)),aborted:reason&&reason.name===`AbortError`})}function isNetworkError$1(response){return response.type===`error`&&response.status===0}function makeFilteredResponse(response,state){return state={internalResponse:response,...state},new Proxy(response,{get(target,p$2){return p$2 in state?state[p$2]:target[p$2]},set(target,p$2,value){return assert$9(!(p$2 in state)),target[p$2]=value,!0}})}function filterResponse$1(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:Object.freeze([]),status:0,statusText:``,body:null});if(type===`opaqueredirect`)return makeFilteredResponse(response,{type:`opaqueredirect`,status:0,statusText:``,headersList:[],body:null});assert$9(!1)}function makeAppropriateNetworkError$1(fetchParams,err$1=null){return assert$9(isCancelled$1(fetchParams)),isAborted$2(fetchParams)?makeNetworkError$1(Object.assign(new DOMException(`The operation was aborted.`,`AbortError`),{cause:err$1})):makeNetworkError$1(Object.assign(new DOMException(`Request was cancelled.`),{cause:err$1}))}function initializeResponse(response,init$4,body){if(init$4.status!==null&&(init$4.status<200||init$4.status>599))throw RangeError(`init["status"] must be in the range of 200 to 599, inclusive.`);if(`statusText`in init$4&&init$4.statusText!=null&&!isValidReasonPhrase(String(init$4.statusText)))throw TypeError(`Invalid statusText`);if(`status`in init$4&&init$4.status!=null&&(getResponseState$2(response).status=init$4.status),`statusText`in init$4&&init$4.statusText!=null&&(getResponseState$2(response).statusText=init$4.statusText),`headers`in init$4&&init$4.headers!=null&&fill(getResponseHeaders(response),init$4.headers),body){if(nullBodyStatus$1.includes(response.status))throw webidl$10.errors.exception({header:`Response constructor`,message:`Invalid response status code ${response.status}`});getResponseState$2(response).body=body.body,body.type!=null&&!getResponseState$2(response).headersList.contains(`content-type`,!0)&&getResponseState$2(response).headersList.append(`content-type`,body.type,!0)}}function fromInnerResponse$2(innerResponse,guard){let response=new Response$1(kConstruct$6);setResponseState(response,innerResponse);let headers$2=new Headers$4(kConstruct$6);return setResponseHeaders(response,headers$2),setHeadersList$1(headers$2,innerResponse.headersList),setHeadersGuard$1(headers$2,guard),innerResponse.body?.stream&&streamRegistry.register(response,new WeakRef(innerResponse.body.stream)),response}webidl$10.converters.XMLHttpRequestBodyInit=function(V$5,prefix,name$7){return typeof V$5==`string`?webidl$10.converters.USVString(V$5,prefix,name$7):webidl$10.is.Blob(V$5)||webidl$10.is.BufferSource(V$5)||webidl$10.is.FormData(V$5)||webidl$10.is.URLSearchParams(V$5)?V$5:webidl$10.converters.DOMString(V$5,prefix,name$7)},webidl$10.converters.BodyInit=function(V$5,prefix,argument){return webidl$10.is.ReadableStream(V$5)||V$5?.[Symbol.asyncIterator]?V$5:webidl$10.converters.XMLHttpRequestBodyInit(V$5,prefix,argument)},webidl$10.converters.ResponseInit=webidl$10.dictionaryConverter([{key:`status`,converter:webidl$10.converters[`unsigned short`],defaultValue:()=>200},{key:`statusText`,converter:webidl$10.converters.ByteString,defaultValue:()=>``},{key:`headers`,converter:webidl$10.converters.HeadersInit}]),webidl$10.is.Response=webidl$10.util.MakeTypeAssertion(Response$1),module.exports={isNetworkError:isNetworkError$1,makeNetworkError:makeNetworkError$1,makeResponse:makeResponse$1,makeAppropriateNetworkError:makeAppropriateNetworkError$1,filterResponse:filterResponse$1,Response:Response$1,cloneResponse:cloneResponse$1,fromInnerResponse:fromInnerResponse$2,getResponseState:getResponseState$2}})),require_request=__commonJSMin(((exports,module)=>{let{extractBody:extractBody$1,mixinBody,cloneBody,bodyUnusable}=require_body(),{Headers:Headers$3,fill:fillHeaders,HeadersList:HeadersList$1,setHeadersGuard,getHeadersGuard,setHeadersList,getHeadersList:getHeadersList$1}=require_headers(),util$2=require_util$5(),nodeUtil=__require$1(`node:util`),{isValidHTTPToken,sameOrigin:sameOrigin$1,environmentSettingsObject:environmentSettingsObject$3}=require_util$4(),{forbiddenMethodsSet,corsSafeListedMethodsSet,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,requestDuplex}=require_constants$3(),{kEnumerableProperty:kEnumerableProperty$7,normalizedMethodRecordsBase,normalizedMethodRecords}=util$2,{webidl:webidl$9}=require_webidl(),{URLSerializer:URLSerializer$2}=require_data_url(),{kConstruct:kConstruct$5}=require_symbols$1(),assert$8=__require$1(`node:assert`),{getMaxListeners,setMaxListeners:setMaxListeners$1,defaultMaxListeners}=__require$1(`node:events`),kAbortController=Symbol(`abortController`),requestFinalizer=new FinalizationRegistry(({signal,abort:abort$2})=>{signal.removeEventListener(`abort`,abort$2)}),dependentControllerMap=new WeakMap,abortSignalHasEventHandlerLeakWarning;try{abortSignalHasEventHandlerLeakWarning=getMaxListeners(new AbortController().signal)>0}catch{abortSignalHasEventHandlerLeakWarning=!1}function buildAbort(acRef){return abort$2;function abort$2(){let ac=acRef.deref();if(ac!==void 0){requestFinalizer.unregister(abort$2),this.removeEventListener(`abort`,abort$2),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)}}}}let patchMethodWarning=!1;var Request$3=class Request$3{#signal;#dispatcher;#headers;#state;constructor(input,init$4=void 0){if(webidl$9.util.markAsUncloneable(this),input===kConstruct$5)return;let prefix=`Request constructor`;webidl$9.argumentLengthCheck(arguments,1,`Request constructor`),input=webidl$9.converters.RequestInfo(input),init$4=webidl$9.converters.RequestInit(init$4);let request$3=null,fallbackMode=null,baseUrl=environmentSettingsObject$3.settingsObject.baseUrl,signal=null;if(typeof input==`string`){this.#dispatcher=init$4.dispatcher;let parsedURL;try{parsedURL=new URL(input,baseUrl)}catch(err$1){throw TypeError(`Failed to parse URL from `+input,{cause:err$1})}if(parsedURL.username||parsedURL.password)throw TypeError(`Request cannot be constructed from a URL that includes credentials: `+input);request$3=makeRequest$2({urlList:[parsedURL]}),fallbackMode=`cors`}else assert$8(webidl$9.is.Request(input)),request$3=input.#state,signal=input.#signal,this.#dispatcher=init$4.dispatcher||input.#dispatcher;let origin=environmentSettingsObject$3.settingsObject.origin,window$1=`client`;if(request$3.window?.constructor?.name===`EnvironmentSettingsObject`&&sameOrigin$1(request$3.window,origin)&&(window$1=request$3.window),init$4.window!=null)throw TypeError(`'window' option '${window$1}' must be null`);`window`in init$4&&(window$1=`no-window`),request$3=makeRequest$2({method:request$3.method,headersList:request$3.headersList,unsafeRequest:request$3.unsafeRequest,client:environmentSettingsObject$3.settingsObject,window:window$1,priority:request$3.priority,origin:request$3.origin,referrer:request$3.referrer,referrerPolicy:request$3.referrerPolicy,mode:request$3.mode,credentials:request$3.credentials,cache:request$3.cache,redirect:request$3.redirect,integrity:request$3.integrity,keepalive:request$3.keepalive,reloadNavigation:request$3.reloadNavigation,historyNavigation:request$3.historyNavigation,urlList:[...request$3.urlList]});let initHasKey=Object.keys(init$4).length!==0;if(initHasKey&&(request$3.mode===`navigate`&&(request$3.mode=`same-origin`),request$3.reloadNavigation=!1,request$3.historyNavigation=!1,request$3.origin=`client`,request$3.referrer=`client`,request$3.referrerPolicy=``,request$3.url=request$3.urlList[request$3.urlList.length-1],request$3.urlList=[request$3.url]),init$4.referrer!==void 0){let referrer=init$4.referrer;if(referrer===``)request$3.referrer=`no-referrer`;else{let parsedReferrer;try{parsedReferrer=new URL(referrer,baseUrl)}catch(err$1){throw TypeError(`Referrer "${referrer}" is not a valid URL.`,{cause:err$1})}parsedReferrer.protocol===`about:`&&parsedReferrer.hostname===`client`||origin&&!sameOrigin$1(parsedReferrer,environmentSettingsObject$3.settingsObject.baseUrl)?request$3.referrer=`client`:request$3.referrer=parsedReferrer}}init$4.referrerPolicy!==void 0&&(request$3.referrerPolicy=init$4.referrerPolicy);let mode;if(mode=init$4.mode===void 0?fallbackMode:init$4.mode,mode===`navigate`)throw webidl$9.errors.exception({header:`Request constructor`,message:`invalid request mode navigate.`});if(mode!=null&&(request$3.mode=mode),init$4.credentials!==void 0&&(request$3.credentials=init$4.credentials),init$4.cache!==void 0&&(request$3.cache=init$4.cache),request$3.cache===`only-if-cached`&&request$3.mode!==`same-origin`)throw TypeError(`'only-if-cached' can be set only with 'same-origin' mode`);if(init$4.redirect!==void 0&&(request$3.redirect=init$4.redirect),init$4.integrity!=null&&(request$3.integrity=String(init$4.integrity)),init$4.keepalive!==void 0&&(request$3.keepalive=!!init$4.keepalive),init$4.method!==void 0){let method=init$4.method,mayBeNormalized=normalizedMethodRecords[method];if(mayBeNormalized!==void 0)request$3.method=mayBeNormalized;else{if(!isValidHTTPToken(method))throw TypeError(`'${method}' is not a valid HTTP method.`);let upperCase=method.toUpperCase();if(forbiddenMethodsSet.has(upperCase))throw TypeError(`'${method}' HTTP method is unsupported.`);method=normalizedMethodRecordsBase[upperCase]??method,request$3.method=method}!patchMethodWarning&&request$3.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$4.signal!==void 0&&(signal=init$4.signal),this.#state=request$3;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$2=buildAbort(acRef);abortSignalHasEventHandlerLeakWarning&&getMaxListeners(signal)===defaultMaxListeners&&setMaxListeners$1(1500,signal),util$2.addAbortListener(signal,abort$2),requestFinalizer.register(ac,{signal,abort:abort$2},abort$2)}if(this.#headers=new Headers$3(kConstruct$5),setHeadersList(this.#headers,request$3.headersList),setHeadersGuard(this.#headers,`request`),mode===`no-cors`){if(!corsSafeListedMethodsSet.has(request$3.method))throw TypeError(`'${request$3.method} is unsupported in no-cors mode.`);setHeadersGuard(this.#headers,`request-no-cors`)}if(initHasKey){let headersList=getHeadersList$1(this.#headers),headers$2=init$4.headers===void 0?new HeadersList$1(headersList):init$4.headers;if(headersList.clear(),headers$2 instanceof HeadersList$1){for(let{name:name$7,value}of headers$2.rawValues())headersList.append(name$7,value,!1);headersList.cookies=headers$2.cookies}else fillHeaders(this.#headers,headers$2)}let inputBody=webidl$9.is.Request(input)?input.#state.body:null;if((init$4.body!=null||inputBody!=null)&&(request$3.method===`GET`||request$3.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);let initBody=null;if(init$4.body!=null){let[extractedBody,contentType]=extractBody$1(init$4.body,request$3.keepalive);initBody=extractedBody,contentType&&!getHeadersList$1(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$4.duplex==null)throw TypeError(`RequestInit: duplex option is required when sending a body.`);if(request$3.mode!==`same-origin`&&request$3.mode!==`cors`)throw TypeError(`If request is made from ReadableStream, mode should be "same-origin" or "cors"`);request$3.useCORSPreflightFlag=!0}let finalBody=inputOrInitBody;if(initBody==null&&inputBody!=null){if(bodyUnusable(input.#state))throw 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$9.brandCheck(this,Request$3),this.#state.method}get url(){return webidl$9.brandCheck(this,Request$3),URLSerializer$2(this.#state.url)}get headers(){return webidl$9.brandCheck(this,Request$3),this.#headers}get destination(){return webidl$9.brandCheck(this,Request$3),this.#state.destination}get referrer(){return webidl$9.brandCheck(this,Request$3),this.#state.referrer===`no-referrer`?``:this.#state.referrer===`client`?`about:client`:this.#state.referrer.toString()}get referrerPolicy(){return webidl$9.brandCheck(this,Request$3),this.#state.referrerPolicy}get mode(){return webidl$9.brandCheck(this,Request$3),this.#state.mode}get credentials(){return webidl$9.brandCheck(this,Request$3),this.#state.credentials}get cache(){return webidl$9.brandCheck(this,Request$3),this.#state.cache}get redirect(){return webidl$9.brandCheck(this,Request$3),this.#state.redirect}get integrity(){return webidl$9.brandCheck(this,Request$3),this.#state.integrity}get keepalive(){return webidl$9.brandCheck(this,Request$3),this.#state.keepalive}get isReloadNavigation(){return webidl$9.brandCheck(this,Request$3),this.#state.reloadNavigation}get isHistoryNavigation(){return webidl$9.brandCheck(this,Request$3),this.#state.historyNavigation}get signal(){return webidl$9.brandCheck(this,Request$3),this.#signal}get body(){return webidl$9.brandCheck(this,Request$3),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl$9.brandCheck(this,Request$3),!!this.#state.body&&util$2.isDisturbed(this.#state.body.stream)}get duplex(){return webidl$9.brandCheck(this,Request$3),`half`}clone(){if(webidl$9.brandCheck(this,Request$3),bodyUnusable(this.#state))throw TypeError(`unusable`);let clonedRequest=cloneRequest$1(this.#state),ac=new AbortController;if(this.signal.aborted)ac.abort(this.signal.reason);else{let list$2=dependentControllerMap.get(this.signal);list$2===void 0&&(list$2=new Set,dependentControllerMap.set(this.signal,list$2));let acRef=new WeakRef(ac);list$2.add(acRef),util$2.addAbortListener(ac.signal,buildAbort(acRef))}return fromInnerRequest$1(clonedRequest,this.#dispatcher,ac.signal,getHeadersGuard(this.#headers))}[nodeUtil.inspect.custom](depth$1,options$1){options$1.depth===null&&(options$1.depth=2),options$1.colors??=!0;let properties$1={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$1,properties$1)}`}static setRequestSignal(request$3,newSignal){return request$3.#signal=newSignal,request$3}static getRequestDispatcher(request$3){return request$3.#dispatcher}static setRequestDispatcher(request$3,newDispatcher){request$3.#dispatcher=newDispatcher}static setRequestHeaders(request$3,newHeaders){request$3.#headers=newHeaders}static getRequestState(request$3){return request$3.#state}static setRequestState(request$3,newState){request$3.#state=newState}};let{setRequestSignal,getRequestDispatcher:getRequestDispatcher$1,setRequestDispatcher,setRequestHeaders,getRequestState:getRequestState$2,setRequestState}=Request$3;Reflect.deleteProperty(Request$3,`setRequestSignal`),Reflect.deleteProperty(Request$3,`getRequestDispatcher`),Reflect.deleteProperty(Request$3,`setRequestDispatcher`),Reflect.deleteProperty(Request$3,`setRequestHeaders`),Reflect.deleteProperty(Request$3,`getRequestState`),Reflect.deleteProperty(Request$3,`setRequestState`),mixinBody(Request$3,getRequestState$2);function makeRequest$2(init$4){return{method:init$4.method??`GET`,localURLsOnly:init$4.localURLsOnly??!1,unsafeRequest:init$4.unsafeRequest??!1,body:init$4.body??null,client:init$4.client??null,reservedClient:init$4.reservedClient??null,replacesClientId:init$4.replacesClientId??``,window:init$4.window??`client`,keepalive:init$4.keepalive??!1,serviceWorkers:init$4.serviceWorkers??`all`,initiator:init$4.initiator??``,destination:init$4.destination??``,priority:init$4.priority??null,origin:init$4.origin??`client`,policyContainer:init$4.policyContainer??`client`,referrer:init$4.referrer??`client`,referrerPolicy:init$4.referrerPolicy??``,mode:init$4.mode??`no-cors`,useCORSPreflightFlag:init$4.useCORSPreflightFlag??!1,credentials:init$4.credentials??`same-origin`,useCredentials:init$4.useCredentials??!1,cache:init$4.cache??`default`,redirect:init$4.redirect??`follow`,integrity:init$4.integrity??``,cryptoGraphicsNonceMetadata:init$4.cryptoGraphicsNonceMetadata??``,parserMetadata:init$4.parserMetadata??``,reloadNavigation:init$4.reloadNavigation??!1,historyNavigation:init$4.historyNavigation??!1,userActivation:init$4.userActivation??!1,taintedOrigin:init$4.taintedOrigin??!1,redirectCount:init$4.redirectCount??0,responseTainting:init$4.responseTainting??`basic`,preventNoCacheCacheControlHeaderModification:init$4.preventNoCacheCacheControlHeaderModification??!1,done:init$4.done??!1,timingAllowFailed:init$4.timingAllowFailed??!1,urlList:init$4.urlList,url:init$4.urlList[0],headersList:init$4.headersList?new HeadersList$1(init$4.headersList):new HeadersList$1}}function cloneRequest$1(request$3){let newRequest=makeRequest$2({...request$3,body:null});return request$3.body!=null&&(newRequest.body=cloneBody(request$3.body)),newRequest}function fromInnerRequest$1(innerRequest,dispatcher,signal,guard){let request$3=new Request$3(kConstruct$5);setRequestState(request$3,innerRequest),setRequestDispatcher(request$3,dispatcher),setRequestSignal(request$3,signal);let headers$2=new Headers$3(kConstruct$5);return setRequestHeaders(request$3,headers$2),setHeadersList(headers$2,innerRequest.headersList),setHeadersGuard(headers$2,guard),request$3}Object.defineProperties(Request$3.prototype,{method:kEnumerableProperty$7,url:kEnumerableProperty$7,headers:kEnumerableProperty$7,redirect:kEnumerableProperty$7,clone:kEnumerableProperty$7,signal:kEnumerableProperty$7,duplex:kEnumerableProperty$7,destination:kEnumerableProperty$7,body:kEnumerableProperty$7,bodyUsed:kEnumerableProperty$7,isHistoryNavigation:kEnumerableProperty$7,isReloadNavigation:kEnumerableProperty$7,keepalive:kEnumerableProperty$7,integrity:kEnumerableProperty$7,cache:kEnumerableProperty$7,credentials:kEnumerableProperty$7,attribute:kEnumerableProperty$7,referrerPolicy:kEnumerableProperty$7,referrer:kEnumerableProperty$7,mode:kEnumerableProperty$7,[Symbol.toStringTag]:{value:`Request`,configurable:!0}}),webidl$9.is.Request=webidl$9.util.MakeTypeAssertion(Request$3),webidl$9.converters.RequestInfo=function(V$5){return typeof V$5==`string`?webidl$9.converters.USVString(V$5):webidl$9.is.Request(V$5)?V$5:webidl$9.converters.USVString(V$5)},webidl$9.converters.RequestInit=webidl$9.dictionaryConverter([{key:`method`,converter:webidl$9.converters.ByteString},{key:`headers`,converter:webidl$9.converters.HeadersInit},{key:`body`,converter:webidl$9.nullableConverter(webidl$9.converters.BodyInit)},{key:`referrer`,converter:webidl$9.converters.USVString},{key:`referrerPolicy`,converter:webidl$9.converters.DOMString,allowedValues:referrerPolicy},{key:`mode`,converter:webidl$9.converters.DOMString,allowedValues:requestMode},{key:`credentials`,converter:webidl$9.converters.DOMString,allowedValues:requestCredentials},{key:`cache`,converter:webidl$9.converters.DOMString,allowedValues:requestCache},{key:`redirect`,converter:webidl$9.converters.DOMString,allowedValues:requestRedirect},{key:`integrity`,converter:webidl$9.converters.DOMString},{key:`keepalive`,converter:webidl$9.converters.boolean},{key:`signal`,converter:webidl$9.nullableConverter(signal=>webidl$9.converters.AbortSignal(signal,`RequestInit`,`signal`))},{key:`window`,converter:webidl$9.converters.any},{key:`duplex`,converter:webidl$9.converters.DOMString,allowedValues:requestDuplex},{key:`dispatcher`,converter:webidl$9.converters.any}]),module.exports={Request:Request$3,makeRequest:makeRequest$2,fromInnerRequest:fromInnerRequest$1,cloneRequest:cloneRequest$1,getRequestDispatcher:getRequestDispatcher$1,getRequestState:getRequestState$2}})),require_subresource_integrity=__commonJSMin(((exports,module)=>{let assert$7=__require$1(`node:assert`),validSRIHashAlgorithmTokenSet=new Map([[`sha256`,0],[`sha384`,1],[`sha512`,2]]),crypto$6;try{crypto$6=__require$1(`node:crypto`);let cryptoHashes=crypto$6.getHashes();cryptoHashes.length===0&&validSRIHashAlgorithmTokenSet.clear();for(let algorithm of validSRIHashAlgorithmTokenSet.keys())cryptoHashes.includes(algorithm)===!1&&validSRIHashAlgorithmTokenSet.delete(algorithm)}catch{validSRIHashAlgorithmTokenSet.clear()}let getSRIHashAlgorithmIndex=Map.prototype.get.bind(validSRIHashAlgorithmTokenSet),isValidSRIHashAlgorithm=Map.prototype.has.bind(validSRIHashAlgorithmTokenSet),bytesMatch$1=crypto$6===void 0||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$7(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);if(newAlgorithmIndex<currentAlgorithmIndex)continue;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 expressionAndOptions=item.split(`?`,1),algorithmExpression=expressionAndOptions[0],base64Value=``,algorithmAndValue=[algorithmExpression.slice(0,6),algorithmExpression.slice(7)],algorithm=algorithmAndValue[0];if(!isValidSRIHashAlgorithm(algorithm))continue;algorithmAndValue[1]&&(base64Value=algorithmAndValue[1]);let metadata$1={alg:algorithm,val:base64Value};result.push(metadata$1)}return result}let applyAlgorithmToBytes=(algorithm,bytes)=>crypto$6.hash(algorithm,bytes,`base64`);function caseSensitiveMatch(actualValue,expectedValue){let actualValueLength=actualValue.length;actualValueLength!==0&&actualValue[actualValueLength-1]===`=`&&--actualValueLength,actualValueLength!==0&&actualValue[actualValueLength-1]===`=`&&--actualValueLength;let expectedValueLength=expectedValue.length;if(expectedValueLength!==0&&expectedValue[expectedValueLength-1]===`=`&&--expectedValueLength,expectedValueLength!==0&&expectedValue[expectedValueLength-1]===`=`&&--expectedValueLength,actualValueLength!==expectedValueLength)return!1;for(let i$5=0;i$5<actualValueLength;++i$5)if(!(actualValue[i$5]===expectedValue[i$5]||actualValue[i$5]===`+`&&expectedValue[i$5]===`-`||actualValue[i$5]===`/`&&expectedValue[i$5]===`_`))return!1;return!0}module.exports={applyAlgorithmToBytes,bytesMatch:bytesMatch$1,caseSensitiveMatch,isValidSRIHashAlgorithm,getStrongestMetadata,parseMetadata}})),require_fetch$1=__commonJSMin(((exports,module)=>{let{makeNetworkError,makeAppropriateNetworkError,filterResponse,makeResponse,fromInnerResponse:fromInnerResponse$1,getResponseState:getResponseState$1}=require_response(),{HeadersList}=require_headers(),{Request:Request$2,cloneRequest,getRequestDispatcher,getRequestState:getRequestState$1}=require_request(),zlib=__require$1(`node:zlib`),{makePolicyContainer,clonePolicyContainer,requestBadPort,TAOCheck,appendRequestOriginHeader,responseLocationURL,requestCurrentURL,setRequestReferrerPolicyOnRedirect,tryUpgradeRequestToAPotentiallyTrustworthyURL,createOpaqueTimingInfo,appendFetchMetadata,corsCheck,crossOriginResourcePolicyCheck,determineRequestsReferrer,coarsenedSharedCurrentTime,sameOrigin,isCancelled,isAborted:isAborted$1,isErrorLike,fullyReadBody,readableStreamClose,isomorphicEncode,urlIsLocal,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme$1,urlHasHttpsScheme,clampAndCoarsenConnectionTimingInfo,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType}=require_util$4(),assert$6=__require$1(`node:assert`),{safelyExtractBody,extractBody}=require_body(),{redirectStatusSet,nullBodyStatus,safeMethodsSet,requestBodyHeader,subresourceSet}=require_constants$3(),EE=__require$1(`node:events`),{Readable:Readable$3,pipeline:pipeline$2,finished:finished$1,isErrored,isReadable:isReadable$1}=__require$1(`node:stream`),{addAbortListener:addAbortListener$1,bufferToLowerCasedHeaderName}=require_util$5(),{dataURLProcessor,serializeAMimeType:serializeAMimeType$1,minimizeSupportedMimeType}=require_data_url(),{getGlobalDispatcher:getGlobalDispatcher$2}=require_global(),{webidl:webidl$8}=require_webidl(),{STATUS_CODES}=__require$1(`node:http`),{bytesMatch}=require_subresource_integrity(),{createDeferredPromise:createDeferredPromise$4}=require_promise(),hasZstd=typeof zlib.createZstdDecompress==`function`,GET_OR_HEAD=[`GET`,`HEAD`],defaultUserAgent=typeof __UNDICI_IS_NODE__<`u`||typeof esbuildDetection<`u`?`node`:`undici`,resolveObjectURL;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$65){this.state===`ongoing`&&(this.state=`aborted`,error$65||=new DOMException(`The operation was aborted.`,`AbortError`),this.serializedAbortReason=error$65,this.connection?.destroy(error$65),this.emit(`terminated`,error$65))}};function handleFetchDone(response){finalizeAndReportTiming(response,`fetch`)}function fetch$1(input,init$4=void 0){webidl$8.argumentLengthCheck(arguments,1,`globalThis.fetch`);let p$2=createDeferredPromise$4(),requestObject;try{requestObject=new Request$2(input,init$4)}catch(e$2){return p$2.reject(e$2),p$2.promise}let request$3=getRequestState$1(requestObject);if(requestObject.signal.aborted)return abortFetch(p$2,request$3,null,requestObject.signal.reason),p$2.promise;let globalObject=request$3.client.globalObject;globalObject?.constructor?.name===`ServiceWorkerGlobalScope`&&(request$3.serviceWorkers=`none`);let responseObject=null,locallyAborted=!1,controller=null;addAbortListener$1(requestObject.signal,()=>{locallyAborted=!0,assert$6(controller!=null),controller.abort(requestObject.signal.reason);let realResponse=responseObject?.deref();abortFetch(p$2,request$3,realResponse,requestObject.signal.reason)});let processResponse=response=>{if(!locallyAborted){if(response.aborted){abortFetch(p$2,request$3,responseObject,controller.serializedAbortReason);return}if(response.type===`error`){p$2.reject(TypeError(`fetch failed`,{cause:response.error}));return}responseObject=new WeakRef(fromInnerResponse$1(response,`immutable`)),p$2.resolve(responseObject.deref()),p$2=null}};return controller=fetching$3({request:request$3,processResponseEndOfBody:handleFetchDone,processResponse,dispatcher:getRequestDispatcher(requestObject)}),p$2.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$1(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))}let markResourceTiming=performance.markResourceTiming;function abortFetch(p$2,request$3,responseObject,error$65){if(p$2&&p$2.reject(error$65),request$3.body?.stream!=null&&isReadable$1(request$3.body.stream)&&request$3.body.stream.cancel(error$65).catch(err$1=>{if(err$1.code!==`ERR_INVALID_STATE`)throw err$1}),responseObject==null)return;let response=getResponseState$1(responseObject);response.body?.stream!=null&&isReadable$1(response.body.stream)&&response.body.stream.cancel(error$65).catch(err$1=>{if(err$1.code!==`ERR_INVALID_STATE`)throw err$1})}function fetching$3({request:request$3,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseEndOfBody,processResponseConsumeBody,useParallelQueue=!1,dispatcher=getGlobalDispatcher$2()}){assert$6(dispatcher);let taskDestination=null,crossOriginIsolatedCapability=!1;request$3.client!=null&&(taskDestination=request$3.client.globalObject,crossOriginIsolatedCapability=request$3.client.crossOriginIsolatedCapability);let currentTime=coarsenedSharedCurrentTime(crossOriginIsolatedCapability),timingInfo=createOpaqueTimingInfo({startTime:currentTime}),fetchParams={controller:new Fetch(dispatcher),request:request$3,timingInfo,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseConsumeBody,processResponseEndOfBody,taskDestination,crossOriginIsolatedCapability};if(assert$6(!request$3.body||request$3.body.stream),request$3.window===`client`&&(request$3.window=request$3.client?.globalObject?.constructor?.name===`Window`?request$3.client:`no-window`),request$3.origin===`client`&&(request$3.origin=request$3.client.origin),request$3.policyContainer===`client`&&(request$3.client==null?request$3.policyContainer=makePolicyContainer():request$3.policyContainer=clonePolicyContainer(request$3.client.policyContainer)),!request$3.headersList.contains(`accept`,!0)){let value=`*/*`;request$3.headersList.append(`accept`,`*/*`,!0)}return request$3.headersList.contains(`accept-language`,!0)||request$3.headersList.append(`accept-language`,`*`,!0),request$3.priority,subresourceSet.has(request$3.destination),mainFetch(fetchParams,!1),fetchParams.controller}async function mainFetch(fetchParams,recursive){try{let request$3=fetchParams.request,response=null;if(request$3.localURLsOnly&&!urlIsLocal(requestCurrentURL(request$3))&&(response=makeNetworkError(`local URLs only`)),tryUpgradeRequestToAPotentiallyTrustworthyURL(request$3),requestBadPort(request$3)===`blocked`&&(response=makeNetworkError(`bad port`)),request$3.referrerPolicy===``&&(request$3.referrerPolicy=request$3.policyContainer.referrerPolicy),request$3.referrer!==`no-referrer`&&(request$3.referrer=determineRequestsReferrer(request$3)),response===null){let currentURL=requestCurrentURL(request$3);sameOrigin(currentURL,request$3.url)&&request$3.responseTainting===`basic`||currentURL.protocol===`data:`||request$3.mode===`navigate`||request$3.mode===`websocket`?(request$3.responseTainting=`basic`,response=await schemeFetch(fetchParams)):request$3.mode===`same-origin`?response=makeNetworkError(`request mode cannot be "same-origin"`):request$3.mode===`no-cors`?request$3.redirect===`follow`?(request$3.responseTainting=`opaque`,response=await schemeFetch(fetchParams)):response=makeNetworkError(`redirect mode cannot be "follow" for "no-cors" request`):urlIsHttpHttpsScheme$1(requestCurrentURL(request$3))?(request$3.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$3.responseTainting,request$3.responseTainting===`basic`?response=filterResponse(response,`basic`):request$3.responseTainting===`cors`?response=filterResponse(response,`cors`):request$3.responseTainting===`opaque`?response=filterResponse(response,`opaque`):assert$6(!1));let internalResponse=response.status===0?response:response.internalResponse;if(internalResponse.urlList.length===0&&internalResponse.urlList.push(...request$3.urlList),request$3.timingAllowFailed||(response.timingAllowPassed=!0),response.type===`opaque`&&internalResponse.status===206&&internalResponse.rangeRequested&&!request$3.headers.contains(`range`,!0)&&(response=internalResponse=makeNetworkError()),response.status!==0&&(request$3.method===`HEAD`||request$3.method===`CONNECT`||nullBodyStatus.includes(internalResponse.status))&&(internalResponse.body=null,fetchParams.controller.dump=!0),request$3.integrity){let processBodyError=reason=>fetchFinale(fetchParams,makeNetworkError(reason));if(request$3.responseTainting===`opaque`||response.body==null){processBodyError(response.error);return}let processBody=bytes=>{if(!bytesMatch(bytes,request$3.integrity)){processBodyError(`integrity mismatch`);return}response.body=safelyExtractBody(bytes)[0],fetchFinale(fetchParams,response)};fullyReadBody(response.body,processBody,processBodyError)}else fetchFinale(fetchParams,response)}catch(err$1){fetchParams.controller.terminate(err$1)}}function schemeFetch(fetchParams){if(isCancelled(fetchParams)&&fetchParams.request.redirectCount===0)return Promise.resolve(makeAppropriateNetworkError(fetchParams));let{request:request$3}=fetchParams,{protocol:scheme$1}=requestCurrentURL(request$3);switch(scheme$1){case`about:`:return Promise.resolve(makeNetworkError(`about scheme is not supported`));case`blob:`:{resolveObjectURL||=__require$1(`node:buffer`).resolveObjectURL;let blobURLEntry=requestCurrentURL(request$3);if(blobURLEntry.search.length!==0)return Promise.resolve(makeNetworkError(`NetworkError when attempting to fetch resource.`));let blob=resolveObjectURL(blobURLEntry.toString());if(request$3.method!==`GET`||!webidl$8.is.Blob(blob))return Promise.resolve(makeNetworkError(`invalid method`));let response=makeResponse(),fullLength=blob.size,serializedFullLength=isomorphicEncode(`${fullLength}`),type=blob.type;if(request$3.headersList.contains(`range`,!0)){response.rangeRequested=!0;let rangeHeader=request$3.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,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$3),dataURLStruct=dataURLProcessor(currentURL);if(dataURLStruct===`failure`)return Promise.resolve(makeNetworkError(`failed to fetch the data URL`));let mimeType=serializeAMimeType$1(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$1=>makeNetworkError(err$1));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$1(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!==`navigator`||!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():finished$1(internalResponse.body.stream,()=>{processResponseEndOfBody()})}async function httpFetch(fetchParams){let request$3=fetchParams.request,response=null,actualResponse=null,timingInfo=fetchParams.timingInfo;if(request$3.serviceWorkers,response===null){if(request$3.redirect===`follow`&&(request$3.serviceWorkers=`none`),actualResponse=response=await httpNetworkOrCacheFetch(fetchParams),request$3.responseTainting===`cors`&&corsCheck(request$3,response)===`failure`)return makeNetworkError(`cors failure`);TAOCheck(request$3,response)===`failure`&&(request$3.timingAllowFailed=!0)}return(request$3.responseTainting===`opaque`||response.type===`opaque`)&&crossOriginResourcePolicyCheck(request$3.origin,request$3.client,request$3.destination,actualResponse)===`blocked`?makeNetworkError(`blocked`):(redirectStatusSet.has(actualResponse.status)&&(request$3.redirect!==`manual`&&fetchParams.controller.connection.destroy(void 0,!1),request$3.redirect===`error`?response=makeNetworkError(`unexpected redirect`):request$3.redirect===`manual`?response=actualResponse:request$3.redirect===`follow`?response=await httpRedirectFetch(fetchParams,response):assert$6(!1)),response.timingInfo=timingInfo,response)}function httpRedirectFetch(fetchParams,response){let request$3=fetchParams.request,actualResponse=response.internalResponse?response.internalResponse:response,locationURL;try{if(locationURL=responseLocationURL(actualResponse,requestCurrentURL(request$3).hash),locationURL==null)return response}catch(err$1){return Promise.resolve(makeNetworkError(err$1))}if(!urlIsHttpHttpsScheme$1(locationURL))return Promise.resolve(makeNetworkError(`URL scheme must be a HTTP(S) scheme`));if(request$3.redirectCount===20)return Promise.resolve(makeNetworkError(`redirect count exceeded`));if(request$3.redirectCount+=1,request$3.mode===`cors`&&(locationURL.username||locationURL.password)&&!sameOrigin(request$3,locationURL))return Promise.resolve(makeNetworkError(`cross origin not allowed for request mode "cors"`));if(request$3.responseTainting===`cors`&&(locationURL.username||locationURL.password))return Promise.resolve(makeNetworkError(`URL cannot contain credentials for request mode "cors"`));if(actualResponse.status!==303&&request$3.body!=null&&request$3.body.source==null)return Promise.resolve(makeNetworkError());if([301,302].includes(actualResponse.status)&&request$3.method===`POST`||actualResponse.status===303&&!GET_OR_HEAD.includes(request$3.method)){request$3.method=`GET`,request$3.body=null;for(let headerName of requestBodyHeader)request$3.headersList.delete(headerName)}sameOrigin(requestCurrentURL(request$3),locationURL)||(request$3.headersList.delete(`authorization`,!0),request$3.headersList.delete(`proxy-authorization`,!0),request$3.headersList.delete(`cookie`,!0),request$3.headersList.delete(`host`,!0)),request$3.body!=null&&(assert$6(request$3.body.source!=null),request$3.body=safelyExtractBody(request$3.body.source)[0]);let timingInfo=fetchParams.timingInfo;return timingInfo.redirectEndTime=timingInfo.postRedirectStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability),timingInfo.redirectStartTime===0&&(timingInfo.redirectStartTime=timingInfo.startTime),request$3.urlList.push(locationURL),setRequestReferrerPolicyOnRedirect(request$3,actualResponse),mainFetch(fetchParams,!0)}async function httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch=!1,isNewConnectionFetch=!1){let request$3=fetchParams.request,httpFetchParams=null,httpRequest=null,response=null,httpCache=null;request$3.window===`no-window`&&request$3.redirect===`error`?(httpFetchParams=fetchParams,httpRequest=request$3):(httpRequest=cloneRequest(request$3),httpFetchParams={...fetchParams},httpFetchParams.request=httpRequest);let includeCredentials=request$3.credentials===`include`||request$3.credentials===`same-origin`&&request$3.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.append(`content-length`,contentLengthHeaderValue,!0),contentLength!=null&&httpRequest.keepalive,webidl$8.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`,!0):httpRequest.headersList.append(`accept-encoding`,`gzip, deflate`,!0)),httpRequest.headersList.delete(`host`,!0),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,response??=forwardResponse}if(response.urlList=[...httpRequest.urlList],httpRequest.headersList.contains(`range`,!0)&&(response.rangeRequested=!0),response.requestIncludesCredentials=includeCredentials,response.status===407)return request$3.window===`no-window`?makeNetworkError():isCancelled(fetchParams)?makeAppropriateNetworkError(fetchParams):makeNetworkError(`proxy authentication required`);if(response.status===421&&!isNewConnectionFetch&&(request$3.body==null||request$3.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$6(!fetchParams.controller.connection||fetchParams.controller.connection.destroyed),fetchParams.controller.connection={abort:null,destroyed:!1,destroy(err$1,abort$2=!0){this.destroyed||(this.destroyed=!0,abort$2&&this.abort?.(err$1??new DOMException(`The operation was aborted.`,`AbortError`)))}};let request$3=fetchParams.request,response=null,timingInfo=fetchParams.timingInfo,httpCache=null;request$3.cache=`no-store`,request$3.mode;let requestBody=null;if(request$3.body==null&&fetchParams.processRequestEndOfBody)queueMicrotask(()=>fetchParams.processRequestEndOfBody());else if(request$3.body!=null){let processBodyChunk=async function*(bytes){isCancelled(fetchParams)||(yield bytes,fetchParams.processRequestBodyChunkLength?.(bytes.byteLength))},processEndOfBody=()=>{isCancelled(fetchParams)||fetchParams.processRequestEndOfBody&&fetchParams.processRequestEndOfBody()},processBodyError=e$2=>{isCancelled(fetchParams)||(e$2.name===`AbortError`?fetchParams.controller.abort():fetchParams.controller.terminate(e$2))};requestBody=(async function*(){try{for await(let bytes of request$3.body.stream)yield*processBodyChunk(bytes);processEndOfBody()}catch(err$1){processBodyError(err$1)}})()}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$1){return err$1.name===`AbortError`?(fetchParams.controller.connection.destroy(),makeAppropriateNetworkError(fetchParams,err$1)):makeNetworkError(err$1)}let pullAlgorithm=()=>fetchParams.controller.resume(),cancelAlgorithm=reason=>{isCancelled(fetchParams)||fetchParams.controller.abort(reason)},stream$10=new ReadableStream({start(controller){fetchParams.controller.controller=controller},pull:pullAlgorithm,cancel:cancelAlgorithm,type:`bytes`});response.body={stream:stream$10,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$1(fetchParams))break;bytes=done?void 0:value}catch(err$1){fetchParams.controller.ended&&!timingInfo.encodedBodySize?bytes=void 0:(bytes=err$1,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$2=new Uint8Array(bytes);if(buffer$2.byteLength&&fetchParams.controller.controller.enqueue(buffer$2),isErrored(stream$10)){fetchParams.controller.terminate();return}if(fetchParams.controller.controller.desiredSize<=0)return}};function onAborted(reason){isAborted$1(fetchParams)?(response.aborted=!0,isReadable$1(stream$10)&&fetchParams.controller.controller.error(fetchParams.controller.serializedAbortReason)):isReadable$1(stream$10)&&fetchParams.controller.controller.error(TypeError(`terminated`,{cause:isErrorLike(reason)?reason:void 0})),fetchParams.controller.connection.destroy()}return response;function dispatch({body}){let url$4=requestCurrentURL(request$3),agent=fetchParams.controller.dispatcher;return new Promise((resolve$10,reject)=>agent.dispatch({path:url$4.pathname+url$4.search,origin:url$4.origin,method:request$3.method,body:agent.isMockActive?request$3.body&&(request$3.body.source||request$3.body.stream):body,headers:request$3.headersList.entries,maxRedirections:0,upgrade:request$3.mode===`websocket`?`websocket`:void 0},{body:null,abort:null,onConnect(abort$2){let{connection}=fetchParams.controller;timingInfo.finalConnectionTimingInfo=clampAndCoarsenConnectionTimingInfo(void 0,timingInfo.postRedirectStartTime,fetchParams.crossOriginIsolatedCapability),connection.destroyed?abort$2(new DOMException(`The operation was aborted.`,`AbortError`)):(fetchParams.controller.on(`terminated`,abort$2),this.abort=connection.abort=abort$2),timingInfo.finalNetworkRequestStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onResponseStarted(){timingInfo.finalNetworkResponseStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onHeaders(status,rawHeaders,resume$3,statusText){if(status<200)return!1;let headersList=new HeadersList;for(let i$5=0;i$5<rawHeaders.length;i$5+=2)headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i$5]),rawHeaders[i$5+1].toString(`latin1`),!0);let location=headersList.get(`location`,!0);this.body=new Readable$3({read:resume$3});let willFollow=location&&request$3.redirect===`follow`&&redirectStatusSet.has(status),decoders$1=[];if(request$3.method!==`HEAD`&&request$3.method!==`CONNECT`&&!nullBodyStatus.includes(status)&&!willFollow){let contentEncoding=headersList.get(`content-encoding`,!0),codings=contentEncoding?contentEncoding.toLowerCase().split(`,`):[];for(let i$5=codings.length-1;i$5>=0;--i$5){let coding=codings[i$5].trim();if(coding===`x-gzip`||coding===`gzip`)decoders$1.push(zlib.createGunzip({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding===`deflate`)decoders$1.push(createInflate({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding===`br`)decoders$1.push(zlib.createBrotliDecompress({flush:zlib.constants.BROTLI_OPERATION_FLUSH,finishFlush:zlib.constants.BROTLI_OPERATION_FLUSH}));else if(coding===`zstd`&&hasZstd)decoders$1.push(zlib.createZstdDecompress({flush:zlib.constants.ZSTD_e_continue,finishFlush:zlib.constants.ZSTD_e_end}));else{decoders$1.length=0;break}}}let onError$3=this.onError.bind(this);return resolve$10({status,statusText,headersList,body:decoders$1.length?pipeline$2(this.body,...decoders$1,err$1=>{err$1&&this.onError(err$1)}).on(`error`,onError$3):this.body.on(`error`,onError$3)}),!0},onData(chunk$1){if(fetchParams.controller.dump)return;let bytes=chunk$1;return timingInfo.encodedBodySize+=bytes.byteLength,this.body.push(bytes)},onComplete(){this.abort&&fetchParams.controller.off(`terminated`,this.abort),fetchParams.controller.ended=!0,this.body.push(null)},onError(error$65){this.abort&&fetchParams.controller.off(`terminated`,this.abort),this.body?.destroy(error$65),fetchParams.controller.terminate(error$65),reject(error$65)},onUpgrade(status,rawHeaders,socket){if(status!==101)return;let headersList=new HeadersList;for(let i$5=0;i$5<rawHeaders.length;i$5+=2)headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i$5]),rawHeaders[i$5+1].toString(`latin1`),!0);return resolve$10({status,statusText:STATUS_CODES[status],headersList,socket}),!0}}))}}module.exports={fetch:fetch$1,Fetch,fetching:fetching$3,finalizeAndReportTiming}})),require_util$3=__commonJSMin(((exports,module)=>{let assert$5=__require$1(`node:assert`),{URLSerializer:URLSerializer$1}=require_data_url(),{isValidHeaderName}=require_util$4();function urlEquals$1(A$2,B$2,excludeFragment=!1){let serializedA=URLSerializer$1(A$2,excludeFragment),serializedB=URLSerializer$1(B$2,excludeFragment);return serializedA===serializedB}function getFieldValues$1(header){assert$5(header!==null);let values=[];for(let value of header.split(`,`))value=value.trim(),isValidHeaderName(value)&&values.push(value);return values}module.exports={urlEquals:urlEquals$1,getFieldValues:getFieldValues$1}})),require_cache=__commonJSMin(((exports,module)=>{let assert$4=__require$1(`node:assert`),{kConstruct:kConstruct$4}=require_symbols$1(),{urlEquals,getFieldValues}=require_util$3(),{kEnumerableProperty:kEnumerableProperty$6,isDisturbed}=require_util$5(),{webidl:webidl$7}=require_webidl(),{cloneResponse,fromInnerResponse,getResponseState}=require_response(),{Request:Request$1,fromInnerRequest,getRequestState}=require_request(),{fetching:fetching$2}=require_fetch$1(),{urlIsHttpHttpsScheme,readAllBytes}=require_util$4(),{createDeferredPromise:createDeferredPromise$3}=require_promise();var Cache$1=class Cache$1{#relevantRequestResponseList;constructor(){arguments[0]!==kConstruct$4&&webidl$7.illegalConstructor(),webidl$7.util.markAsUncloneable(this),this.#relevantRequestResponseList=arguments[1]}async match(request$3,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.match`;webidl$7.argumentLengthCheck(arguments,1,prefix),request$3=webidl$7.converters.RequestInfo(request$3),options$1=webidl$7.converters.CacheQueryOptions(options$1,prefix,`options`);let p$2=this.#internalMatchAll(request$3,options$1,1);if(p$2.length!==0)return p$2[0]}async matchAll(request$3=void 0,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.matchAll`;return request$3!==void 0&&(request$3=webidl$7.converters.RequestInfo(request$3)),options$1=webidl$7.converters.CacheQueryOptions(options$1,`Cache.matchAll`,`options`),this.#internalMatchAll(request$3,options$1)}async add(request$3){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.add`;webidl$7.argumentLengthCheck(arguments,1,`Cache.add`),request$3=webidl$7.converters.RequestInfo(request$3);let requests=[request$3],responseArrayPromise=this.addAll(requests);return await responseArrayPromise}async addAll(requests){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.addAll`;webidl$7.argumentLengthCheck(arguments,1,prefix);let responsePromises=[],requestList=[];for(let request$3 of requests){if(request$3===void 0)throw webidl$7.errors.conversionFailed({prefix,argument:`Argument 1`,types:[`undefined is not allowed`]});if(request$3=webidl$7.converters.RequestInfo(request$3),typeof request$3==`string`)continue;let r$3=getRequestState(request$3);if(!urlIsHttpHttpsScheme(r$3.url)||r$3.method!==`GET`)throw webidl$7.errors.exception({header:prefix,message:`Expected http/s scheme when method is not GET.`})}let fetchControllers=[];for(let request$3 of requests){let r$3=getRequestState(new Request$1(request$3));if(!urlIsHttpHttpsScheme(r$3.url))throw webidl$7.errors.exception({header:prefix,message:`Expected http/s scheme.`});r$3.initiator=`fetch`,r$3.destination=`subresource`,requestList.push(r$3);let responsePromise=createDeferredPromise$3();fetchControllers.push(fetching$2({request:r$3,processResponse(response){if(response.type===`error`||response.status===206||response.status<200||response.status>299)responsePromise.reject(webidl$7.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$7.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 p$2=Promise.all(responsePromises),responses=await p$2,operations=[],index=0;for(let response of responses){let operation={type:`put`,request:requestList[index],response};operations.push(operation),index++}let cacheJobPromise=createDeferredPromise$3(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e$2){errorData=e$2}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(void 0):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async put(request$3,response){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.put`;webidl$7.argumentLengthCheck(arguments,2,prefix),request$3=webidl$7.converters.RequestInfo(request$3),response=webidl$7.converters.Response(response,prefix,`response`);let innerRequest=null;if(innerRequest=webidl$7.is.Request(request$3)?getRequestState(request$3):getRequestState(new Request$1(request$3)),!urlIsHttpHttpsScheme(innerRequest.url)||innerRequest.method!==`GET`)throw webidl$7.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$7.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$7.errors.exception({header:prefix,message:`Got * vary field value`})}if(innerResponse.body&&(isDisturbed(innerResponse.body.stream)||innerResponse.body.stream.locked))throw webidl$7.errors.exception({header:prefix,message:`Response body is locked or disturbed`});let clonedResponse=cloneResponse(innerResponse),bodyReadPromise=createDeferredPromise$3();if(innerResponse.body!=null){let stream$10=innerResponse.body.stream,reader=stream$10.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=createDeferredPromise$3(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e$2){errorData=e$2}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve():cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async delete(request$3,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.delete`;webidl$7.argumentLengthCheck(arguments,1,prefix),request$3=webidl$7.converters.RequestInfo(request$3),options$1=webidl$7.converters.CacheQueryOptions(options$1,prefix,`options`);let r$3=null;if(webidl$7.is.Request(request$3)){if(r$3=getRequestState(request$3),r$3.method!==`GET`&&!options$1.ignoreMethod)return!1}else assert$4(typeof request$3==`string`),r$3=getRequestState(new Request$1(request$3));let operations=[],operation={type:`delete`,request:r$3,options:options$1};operations.push(operation);let cacheJobPromise=createDeferredPromise$3(),errorData=null,requestResponses;try{requestResponses=this.#batchCacheOperations(operations)}catch(e$2){errorData=e$2}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(!!requestResponses?.length):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async keys(request$3=void 0,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.keys`;request$3!==void 0&&(request$3=webidl$7.converters.RequestInfo(request$3)),options$1=webidl$7.converters.CacheQueryOptions(options$1,`Cache.keys`,`options`);let r$3=null;if(request$3!==void 0)if(webidl$7.is.Request(request$3)){if(r$3=getRequestState(request$3),r$3.method!==`GET`&&!options$1.ignoreMethod)return[]}else typeof request$3==`string`&&(r$3=getRequestState(new Request$1(request$3)));let promise$2=createDeferredPromise$3(),requests=[];if(request$3===void 0)for(let requestResponse of this.#relevantRequestResponseList)requests.push(requestResponse[0]);else{let requestResponses=this.#queryCache(r$3,options$1);for(let requestResponse of requestResponses)requests.push(requestResponse[0])}return queueMicrotask(()=>{let requestList=[];for(let request$4 of requests){let requestObject=fromInnerRequest(request$4,void 0,new AbortController().signal,`immutable`);requestList.push(requestObject)}promise$2.resolve(Object.freeze(requestList))}),promise$2.promise}#batchCacheOperations(operations){let cache$4=this.#relevantRequestResponseList,backupCache=[...cache$4],addedItems=[],resultList=[];try{for(let operation of operations){if(operation.type!==`delete`&&operation.type!==`put`)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`operation type does not match "delete" or "put"`});if(operation.type===`delete`&&operation.response!=null)throw webidl$7.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$4.indexOf(requestResponse);assert$4(idx!==-1),cache$4.splice(idx,1)}}else if(operation.type===`put`){if(operation.response==null)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`put operation should have an associated response`});let r$3=operation.request;if(!urlIsHttpHttpsScheme(r$3.url))throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`expected http or https scheme`});if(r$3.method!==`GET`)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`not get method`});if(operation.options!=null)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`options must not be defined`});requestResponses=this.#queryCache(operation.request);for(let requestResponse of requestResponses){let idx=cache$4.indexOf(requestResponse);assert$4(idx!==-1),cache$4.splice(idx,1)}cache$4.push([operation.request,operation.response]),addedItems.push([operation.request,operation.response])}resultList.push([operation.request,operation.response])}return resultList}catch(e$2){throw this.#relevantRequestResponseList.length=0,this.#relevantRequestResponseList=backupCache,e$2}}#queryCache(requestQuery,options$1,targetStorage){let resultList=[],storage=targetStorage??this.#relevantRequestResponseList;for(let requestResponse of storage){let[cachedRequest,cachedResponse]=requestResponse;this.#requestMatchesCachedItem(requestQuery,cachedRequest,cachedResponse,options$1)&&resultList.push(requestResponse)}return resultList}#requestMatchesCachedItem(requestQuery,request$3,response=null,options$1){let queryURL=new URL(requestQuery.url),cachedURL=new URL(request$3.url);if(options$1?.ignoreSearch&&(cachedURL.search=``,queryURL.search=``),!urlEquals(queryURL,cachedURL,!0))return!1;if(response==null||options$1?.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$3.headersList.get(fieldValue),queryValue=requestQuery.headersList.get(fieldValue);if(requestValue!==queryValue)return!1}return!0}#internalMatchAll(request$3,options$1,maxResponses=1/0){let r$3=null;if(request$3!==void 0)if(webidl$7.is.Request(request$3)){if(r$3=getRequestState(request$3),r$3.method!==`GET`&&!options$1.ignoreMethod)return[]}else typeof request$3==`string`&&(r$3=getRequestState(new Request$1(request$3)));let responses=[];if(request$3===void 0)for(let requestResponse of this.#relevantRequestResponseList)responses.push(requestResponse[1]);else{let requestResponses=this.#queryCache(r$3,options$1);for(let requestResponse of requestResponses)responses.push(requestResponse[1])}let responseList=[];for(let response of responses){let responseObject=fromInnerResponse(response,`immutable`);if(responseList.push(responseObject.clone()),responseList.length>=maxResponses)break}return Object.freeze(responseList)}};Object.defineProperties(Cache$1.prototype,{[Symbol.toStringTag]:{value:`Cache`,configurable:!0},match:kEnumerableProperty$6,matchAll:kEnumerableProperty$6,add:kEnumerableProperty$6,addAll:kEnumerableProperty$6,put:kEnumerableProperty$6,delete:kEnumerableProperty$6,keys:kEnumerableProperty$6});let cacheQueryOptionConverters=[{key:`ignoreSearch`,converter:webidl$7.converters.boolean,defaultValue:()=>!1},{key:`ignoreMethod`,converter:webidl$7.converters.boolean,defaultValue:()=>!1},{key:`ignoreVary`,converter:webidl$7.converters.boolean,defaultValue:()=>!1}];webidl$7.converters.CacheQueryOptions=webidl$7.dictionaryConverter(cacheQueryOptionConverters),webidl$7.converters.MultiCacheQueryOptions=webidl$7.dictionaryConverter([...cacheQueryOptionConverters,{key:`cacheName`,converter:webidl$7.converters.DOMString}]),webidl$7.converters.Response=webidl$7.interfaceConverter(webidl$7.is.Response,`Response`),webidl$7.converters[`sequence<RequestInfo>`]=webidl$7.sequenceConverter(webidl$7.converters.RequestInfo),module.exports={Cache:Cache$1}})),require_cachestorage=__commonJSMin(((exports,module)=>{let{Cache}=require_cache(),{webidl:webidl$6}=require_webidl(),{kEnumerableProperty:kEnumerableProperty$5}=require_util$5(),{kConstruct:kConstruct$3}=require_symbols$1();var CacheStorage$1=class CacheStorage$1{#caches=new Map;constructor(){arguments[0]!==kConstruct$3&&webidl$6.illegalConstructor(),webidl$6.util.markAsUncloneable(this)}async match(request$3,options$1={}){if(webidl$6.brandCheck(this,CacheStorage$1),webidl$6.argumentLengthCheck(arguments,1,`CacheStorage.match`),request$3=webidl$6.converters.RequestInfo(request$3),options$1=webidl$6.converters.MultiCacheQueryOptions(options$1),options$1.cacheName!=null){if(this.#caches.has(options$1.cacheName)){let cacheList=this.#caches.get(options$1.cacheName),cache$4=new Cache(kConstruct$3,cacheList);return await cache$4.match(request$3,options$1)}}else for(let cacheList of this.#caches.values()){let cache$4=new Cache(kConstruct$3,cacheList),response=await cache$4.match(request$3,options$1);if(response!==void 0)return response}}async has(cacheName){webidl$6.brandCheck(this,CacheStorage$1);let prefix=`CacheStorage.has`;return webidl$6.argumentLengthCheck(arguments,1,prefix),cacheName=webidl$6.converters.DOMString(cacheName,prefix,`cacheName`),this.#caches.has(cacheName)}async open(cacheName){webidl$6.brandCheck(this,CacheStorage$1);let prefix=`CacheStorage.open`;if(webidl$6.argumentLengthCheck(arguments,1,prefix),cacheName=webidl$6.converters.DOMString(cacheName,prefix,`cacheName`),this.#caches.has(cacheName)){let cache$5=this.#caches.get(cacheName);return new Cache(kConstruct$3,cache$5)}let cache$4=[];return this.#caches.set(cacheName,cache$4),new Cache(kConstruct$3,cache$4)}async delete(cacheName){webidl$6.brandCheck(this,CacheStorage$1);let prefix=`CacheStorage.delete`;return webidl$6.argumentLengthCheck(arguments,1,prefix),cacheName=webidl$6.converters.DOMString(cacheName,prefix,`cacheName`),this.#caches.delete(cacheName)}async keys(){webidl$6.brandCheck(this,CacheStorage$1);let keys=this.#caches.keys();return[...keys]}};Object.defineProperties(CacheStorage$1.prototype,{[Symbol.toStringTag]:{value:`CacheStorage`,configurable:!0},match:kEnumerableProperty$5,has:kEnumerableProperty$5,open:kEnumerableProperty$5,delete:kEnumerableProperty$5,keys:kEnumerableProperty$5}),module.exports={CacheStorage:CacheStorage$1}})),require_constants$2=__commonJSMin(((exports,module)=>{let maxAttributeValueSize$1=1024,maxNameValuePairSize$1=4096;module.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}})),require_util$2=__commonJSMin(((exports,module)=>{function isCTLExcludingHtab$1(value){for(let i$5=0;i$5<value.length;++i$5){let code$1=value.charCodeAt(i$5);if(code$1>=0&&code$1<=8||code$1>=10&&code$1<=31||code$1===127)return!0}return!1}function validateCookieName(name$7){for(let i$5=0;i$5<name$7.length;++i$5){let code$1=name$7.charCodeAt(i$5);if(code$1<33||code$1>126||code$1===34||code$1===40||code$1===41||code$1===60||code$1===62||code$1===64||code$1===44||code$1===59||code$1===58||code$1===92||code$1===47||code$1===91||code$1===93||code$1===63||code$1===61||code$1===123||code$1===125)throw Error(`Invalid cookie name`)}}function validateCookieValue(value){let len$1=value.length,i$5=0;if(value[0]===`"`){if(len$1===1||value[len$1-1]!==`"`)throw Error(`Invalid cookie value`);--len$1,++i$5}for(;i$5<len$1;){let code$1=value.charCodeAt(i$5++);if(code$1<33||code$1>126||code$1===34||code$1===44||code$1===59||code$1===92)throw Error(`Invalid cookie value`)}}function validateCookiePath(path$38){for(let i$5=0;i$5<path$38.length;++i$5){let code$1=path$38.charCodeAt(i$5);if(code$1<32||code$1===127||code$1===59)throw Error(`Invalid cookie path`)}}function validateCookieDomain(domain$1){if(domain$1.startsWith(`-`)||domain$1.endsWith(`.`)||domain$1.endsWith(`-`))throw Error(`Invalid cookie domain`)}let 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((_$6,i$5)=>i$5.toString().padStart(2,`0`));function toIMFDate(date$8){return typeof date$8==`number`&&(date$8=new Date(date$8)),`${IMFDays[date$8.getUTCDay()]}, ${IMFPaddedNumbers[date$8.getUTCDate()]} ${IMFMonths[date$8.getUTCMonth()]} ${date$8.getUTCFullYear()} ${IMFPaddedNumbers[date$8.getUTCHours()]}:${IMFPaddedNumbers[date$8.getUTCMinutes()]}:${IMFPaddedNumbers[date$8.getUTCSeconds()]} GMT`}function validateCookieMaxAge(maxAge){if(maxAge<0)throw Error(`Invalid cookie max-age`)}function stringify$1(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 Error(`Invalid unparsed`);let[key,...value]=part.split(`=`);out.push(`${key.trim()}=${value.join(`=`)}`)}return out.join(`; `)}module.exports={isCTLExcludingHtab:isCTLExcludingHtab$1,validateCookieName,validateCookiePath,validateCookieValue,toIMFDate,stringify:stringify$1}})),require_parse$1=__commonJSMin(((exports,module)=>{let{maxNameValuePairSize,maxAttributeValueSize}=require_constants$2(),{isCTLExcludingHtab}=require_util$2(),{collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast$1}=require_data_url(),assert$3=__require$1(`node:assert`),{unescape:qsUnescape}=__require$1(`node:querystring`);function parseSetCookie$1(header){if(isCTLExcludingHtab(header))return null;let nameValuePair=``,unparsedAttributes=``,name$7=``,value=``;if(header.includes(`;`)){let position={position:0};nameValuePair=collectASequenceOfCodePointsFast$1(`;`,header,position),unparsedAttributes=header.slice(position.position)}else nameValuePair=header;if(!nameValuePair.includes(`=`))value=nameValuePair;else{let position={position:0};name$7=collectASequenceOfCodePointsFast$1(`=`,nameValuePair,position),value=nameValuePair.slice(position.position+1)}return name$7=name$7.trim(),value=value.trim(),name$7.length+value.length>maxNameValuePairSize?null:{name:name$7,value:qsUnescape(value),...parseUnparsedAttributes(unparsedAttributes)}}function parseUnparsedAttributes(unparsedAttributes,cookieAttributeList={}){if(unparsedAttributes.length===0)return cookieAttributeList;assert$3(unparsedAttributes[0]===`;`),unparsedAttributes=unparsedAttributes.slice(1);let cookieAv=``;unparsedAttributes.includes(`;`)?(cookieAv=collectASequenceOfCodePointsFast$1(`;`,unparsedAttributes,{position:0}),unparsedAttributes=unparsedAttributes.slice(cookieAv.length)):(cookieAv=unparsedAttributes,unparsedAttributes=``);let attributeName=``,attributeValue=``;if(cookieAv.includes(`=`)){let position={position:0};attributeName=collectASequenceOfCodePointsFast$1(`=`,cookieAv,position),attributeValue=cookieAv.slice(position.position+1)}else attributeName=cookieAv;if(attributeName=attributeName.trim(),attributeValue=attributeValue.trim(),attributeValue.length>maxAttributeValueSize)return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList);let attributeNameLowercase=attributeName.toLowerCase();if(attributeNameLowercase===`expires`){let expiryTime=new Date(attributeValue);cookieAttributeList.expires=expiryTime}else if(attributeNameLowercase===`max-age`){let charCode=attributeValue.charCodeAt(0);if((charCode<48||charCode>57)&&attributeValue[0]!==`-`||!/^\d+$/.test(attributeValue))return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList);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=``;cookiePath=attributeValue.length===0||attributeValue[0]!==`/`?`/`:attributeValue,cookieAttributeList.path=cookiePath}else if(attributeNameLowercase===`secure`)cookieAttributeList.secure=!0;else if(attributeNameLowercase===`httponly`)cookieAttributeList.httpOnly=!0;else if(attributeNameLowercase===`samesite`){let enforcement=`Default`,attributeValueLowercase=attributeValue.toLowerCase();attributeValueLowercase.includes(`none`)&&(enforcement=`None`),attributeValueLowercase.includes(`strict`)&&(enforcement=`Strict`),attributeValueLowercase.includes(`lax`)&&(enforcement=`Lax`),cookieAttributeList.sameSite=enforcement}else cookieAttributeList.unparsed??=[],cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`);return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList)}module.exports={parseSetCookie:parseSetCookie$1,parseUnparsedAttributes}})),require_cookies=__commonJSMin(((exports,module)=>{let{parseSetCookie}=require_parse$1(),{stringify}=require_util$2(),{webidl:webidl$5}=require_webidl(),{Headers:Headers$2}=require_headers(),brandChecks=webidl$5.brandCheckMultiple([Headers$2,globalThis.Headers].filter(Boolean));function getCookies$1(headers$2){webidl$5.argumentLengthCheck(arguments,1,`getCookies`),brandChecks(headers$2);let cookie=headers$2.get(`cookie`),out={};if(!cookie)return out;for(let piece of cookie.split(`;`)){let[name$7,...value]=piece.split(`=`);out[name$7.trim()]=value.join(`=`)}return out}function deleteCookie$1(headers$2,name$7,attributes){brandChecks(headers$2);let prefix=`deleteCookie`;webidl$5.argumentLengthCheck(arguments,2,prefix),name$7=webidl$5.converters.DOMString(name$7,prefix,`name`),attributes=webidl$5.converters.DeleteCookieAttributes(attributes),setCookie$1(headers$2,{name:name$7,value:``,expires:new Date(0),...attributes})}function getSetCookies$1(headers$2){webidl$5.argumentLengthCheck(arguments,1,`getSetCookies`),brandChecks(headers$2);let cookies=headers$2.getSetCookie();return cookies?cookies.map(pair=>parseSetCookie(pair)):[]}function parseCookie$1(cookie){return cookie=webidl$5.converters.DOMString(cookie),parseSetCookie(cookie)}function setCookie$1(headers$2,cookie){webidl$5.argumentLengthCheck(arguments,2,`setCookie`),brandChecks(headers$2),cookie=webidl$5.converters.Cookie(cookie);let str$1=stringify(cookie);str$1&&headers$2.append(`set-cookie`,str$1,!0)}webidl$5.converters.DeleteCookieAttributes=webidl$5.dictionaryConverter([{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`domain`,defaultValue:()=>null}]),webidl$5.converters.Cookie=webidl$5.dictionaryConverter([{converter:webidl$5.converters.DOMString,key:`name`},{converter:webidl$5.converters.DOMString,key:`value`},{converter:webidl$5.nullableConverter(value=>typeof value==`number`?webidl$5.converters[`unsigned long long`](value):new Date(value)),key:`expires`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters[`long long`]),key:`maxAge`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`domain`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.boolean),key:`secure`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.boolean),key:`httpOnly`,defaultValue:()=>null},{converter:webidl$5.converters.USVString,key:`sameSite`,allowedValues:[`Strict`,`Lax`,`None`]},{converter:webidl$5.sequenceConverter(webidl$5.converters.DOMString),key:`unparsed`,defaultValue:()=>[]}]),module.exports={getCookies:getCookies$1,deleteCookie:deleteCookie$1,getSetCookies:getSetCookies$1,setCookie:setCookie$1,parseCookie:parseCookie$1}})),require_events=__commonJSMin(((exports,module)=>{let{webidl:webidl$4}=require_webidl(),{kEnumerableProperty:kEnumerableProperty$4}=require_util$5(),{kConstruct:kConstruct$2}=require_symbols$1();var MessageEvent$2=class MessageEvent$2 extends Event{#eventInit;constructor(type,eventInitDict={}){if(type===kConstruct$2){super(arguments[1],arguments[2]),webidl$4.util.markAsUncloneable(this);return}let prefix=`MessageEvent constructor`;webidl$4.argumentLengthCheck(arguments,1,prefix),type=webidl$4.converters.DOMString(type,prefix,`type`),eventInitDict=webidl$4.converters.MessageEventInit(eventInitDict,prefix,`eventInitDict`),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl$4.util.markAsUncloneable(this)}get data(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.data}get origin(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.origin}get lastEventId(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.lastEventId}get source(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.source}get ports(){return webidl$4.brandCheck(this,MessageEvent$2),Object.isFrozen(this.#eventInit.ports)||Object.freeze(this.#eventInit.ports),this.#eventInit.ports}initMessageEvent(type,bubbles=!1,cancelable=!1,data$2=null,origin=``,lastEventId=``,source$39=null,ports=[]){return webidl$4.brandCheck(this,MessageEvent$2),webidl$4.argumentLengthCheck(arguments,1,`MessageEvent.initMessageEvent`),new MessageEvent$2(type,{bubbles,cancelable,data:data$2,origin,lastEventId,source:source$39,ports})}static createFastMessageEvent(type,init$4){let messageEvent=new MessageEvent$2(kConstruct$2,type,init$4);return messageEvent.#eventInit=init$4,messageEvent.#eventInit.data??=null,messageEvent.#eventInit.origin??=``,messageEvent.#eventInit.lastEventId??=``,messageEvent.#eventInit.source??=null,messageEvent.#eventInit.ports??=[],messageEvent}};let{createFastMessageEvent:createFastMessageEvent$2}=MessageEvent$2;delete MessageEvent$2.createFastMessageEvent;var CloseEvent$2=class CloseEvent$2 extends Event{#eventInit;constructor(type,eventInitDict={}){let prefix=`CloseEvent constructor`;webidl$4.argumentLengthCheck(arguments,1,prefix),type=webidl$4.converters.DOMString(type,prefix,`type`),eventInitDict=webidl$4.converters.CloseEventInit(eventInitDict),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl$4.util.markAsUncloneable(this)}get wasClean(){return webidl$4.brandCheck(this,CloseEvent$2),this.#eventInit.wasClean}get code(){return webidl$4.brandCheck(this,CloseEvent$2),this.#eventInit.code}get reason(){return webidl$4.brandCheck(this,CloseEvent$2),this.#eventInit.reason}},ErrorEvent$2=class ErrorEvent$2 extends Event{#eventInit;constructor(type,eventInitDict){let prefix=`ErrorEvent constructor`;webidl$4.argumentLengthCheck(arguments,1,prefix),super(type,eventInitDict),webidl$4.util.markAsUncloneable(this),type=webidl$4.converters.DOMString(type,prefix,`type`),eventInitDict=webidl$4.converters.ErrorEventInit(eventInitDict??{}),this.#eventInit=eventInitDict}get message(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.message}get filename(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.filename}get lineno(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.lineno}get colno(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.colno}get error(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.error}};Object.defineProperties(MessageEvent$2.prototype,{[Symbol.toStringTag]:{value:`MessageEvent`,configurable:!0},data:kEnumerableProperty$4,origin:kEnumerableProperty$4,lastEventId:kEnumerableProperty$4,source:kEnumerableProperty$4,ports:kEnumerableProperty$4,initMessageEvent:kEnumerableProperty$4}),Object.defineProperties(CloseEvent$2.prototype,{[Symbol.toStringTag]:{value:`CloseEvent`,configurable:!0},reason:kEnumerableProperty$4,code:kEnumerableProperty$4,wasClean:kEnumerableProperty$4}),Object.defineProperties(ErrorEvent$2.prototype,{[Symbol.toStringTag]:{value:`ErrorEvent`,configurable:!0},message:kEnumerableProperty$4,filename:kEnumerableProperty$4,lineno:kEnumerableProperty$4,colno:kEnumerableProperty$4,error:kEnumerableProperty$4}),webidl$4.converters.MessagePort=webidl$4.interfaceConverter(webidl$4.is.MessagePort,`MessagePort`),webidl$4.converters[`sequence<MessagePort>`]=webidl$4.sequenceConverter(webidl$4.converters.MessagePort);let eventInit=[{key:`bubbles`,converter:webidl$4.converters.boolean,defaultValue:()=>!1},{key:`cancelable`,converter:webidl$4.converters.boolean,defaultValue:()=>!1},{key:`composed`,converter:webidl$4.converters.boolean,defaultValue:()=>!1}];webidl$4.converters.MessageEventInit=webidl$4.dictionaryConverter([...eventInit,{key:`data`,converter:webidl$4.converters.any,defaultValue:()=>null},{key:`origin`,converter:webidl$4.converters.USVString,defaultValue:()=>``},{key:`lastEventId`,converter:webidl$4.converters.DOMString,defaultValue:()=>``},{key:`source`,converter:webidl$4.nullableConverter(webidl$4.converters.MessagePort),defaultValue:()=>null},{key:`ports`,converter:webidl$4.converters[`sequence<MessagePort>`],defaultValue:()=>[]}]),webidl$4.converters.CloseEventInit=webidl$4.dictionaryConverter([...eventInit,{key:`wasClean`,converter:webidl$4.converters.boolean,defaultValue:()=>!1},{key:`code`,converter:webidl$4.converters[`unsigned short`],defaultValue:()=>0},{key:`reason`,converter:webidl$4.converters.USVString,defaultValue:()=>``}]),webidl$4.converters.ErrorEventInit=webidl$4.dictionaryConverter([...eventInit,{key:`message`,converter:webidl$4.converters.DOMString,defaultValue:()=>``},{key:`filename`,converter:webidl$4.converters.USVString,defaultValue:()=>``},{key:`lineno`,converter:webidl$4.converters[`unsigned long`],defaultValue:()=>0},{key:`colno`,converter:webidl$4.converters[`unsigned long`],defaultValue:()=>0},{key:`error`,converter:webidl$4.converters.any}]),module.exports={MessageEvent:MessageEvent$2,CloseEvent:CloseEvent$2,ErrorEvent:ErrorEvent$2,createFastMessageEvent:createFastMessageEvent$2}})),require_constants$1=__commonJSMin(((exports,module)=>{let uid$1=`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,staticPropertyDescriptors$1={enumerable:!0,writable:!1,configurable:!1},states$5={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},sentCloseFrameState$4={SENT:1,RECEIVED:2},opcodes$7={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit$1=65535,parserStates$1={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer$2=Buffer.allocUnsafe(0),sendHints$2={text:1,typedArray:2,arrayBuffer:3,blob:4};module.exports={uid:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,sentCloseFrameState:sentCloseFrameState$4,staticPropertyDescriptors:staticPropertyDescriptors$1,states:states$5,opcodes:opcodes$7,maxUnsigned16Bit:65535,parserStates:parserStates$1,emptyBuffer:emptyBuffer$2,sendHints:sendHints$2}})),require_util$1=__commonJSMin(((exports,module)=>{let{states:states$4,opcodes:opcodes$6}=require_constants$1(),{isUtf8}=__require$1(`node:buffer`),{collectASequenceOfCodePointsFast,removeHTTPWhitespace}=require_data_url();function isConnecting$1(readyState){return readyState===states$4.CONNECTING}function isEstablished$3(readyState){return readyState===states$4.OPEN}function isClosing$2(readyState){return readyState===states$4.CLOSING}function isClosed$2(readyState){return readyState===states$4.CLOSED}function fireEvent$1(e$2,target,eventFactory=(type,init$4)=>new Event(type,init$4),eventInitDict={}){let event=eventFactory(e$2,eventInitDict);target.dispatchEvent(event)}function websocketMessageReceived$1(handler,type,data$2){handler.onMessage(type,data$2)}function toArrayBuffer$1(buffer$2){return buffer$2.byteLength===buffer$2.buffer.byteLength?buffer$2.buffer:new Uint8Array(buffer$2).buffer}function isValidSubprotocol$2(protocol){if(protocol.length===0)return!1;for(let i$5=0;i$5<protocol.length;++i$5){let code$1=protocol.charCodeAt(i$5);if(code$1<33||code$1>126||code$1===34||code$1===40||code$1===41||code$1===44||code$1===47||code$1===58||code$1===59||code$1===60||code$1===61||code$1===62||code$1===63||code$1===64||code$1===91||code$1===92||code$1===93||code$1===123||code$1===125)return!1}return!0}function isValidStatusCode$1(code$1){return code$1>=1e3&&code$1<1015?code$1!==1004&&code$1!==1005&&code$1!==1006:code$1>=3e3&&code$1<=4999}function isControlFrame$1(opcode){return opcode===opcodes$6.CLOSE||opcode===opcodes$6.PING||opcode===opcodes$6.PONG}function isContinuationFrame$1(opcode){return opcode===opcodes$6.CONTINUATION}function isTextBinaryFrame$1(opcode){return opcode===opcodes$6.TEXT||opcode===opcodes$6.BINARY}function isValidOpcode$1(opcode){return isTextBinaryFrame$1(opcode)||isContinuationFrame$1(opcode)||isControlFrame$1(opcode)}function parseExtensions$1(extensions$1){let position={position:0},extensionList=new Map;for(;position.position<extensions$1.length;){let pair=collectASequenceOfCodePointsFast(`;`,extensions$1,position),[name$7,value=``]=pair.split(`=`,2);extensionList.set(removeHTTPWhitespace(name$7,!0,!1),removeHTTPWhitespace(value,!1,!0)),position.position++}return extensionList}function isValidClientWindowBits$1(value){for(let i$5=0;i$5<value.length;i$5++){let byte$1=value.charCodeAt(i$5);if(byte$1<48||byte$1>57)return!1}return!0}function getURLRecord$2(url$4,baseURL){let urlRecord;try{urlRecord=new URL(url$4,baseURL)}catch(e$2){throw new DOMException(e$2,`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$2(code$1,reason){if(code$1!==null&&code$1!==1e3&&(code$1<3e3||code$1>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`)}}let utf8Decode$3=(()=>{if(typeof process.versions.icu==`string`){let fatalDecoder=new TextDecoder(`utf-8`,{fatal:!0});return fatalDecoder.decode.bind(fatalDecoder)}return function(buffer$2){if(isUtf8(buffer$2))return buffer$2.toString(`utf-8`);throw TypeError(`Invalid utf-8 received.`)}})();module.exports={isConnecting:isConnecting$1,isEstablished:isEstablished$3,isClosing:isClosing$2,isClosed:isClosed$2,fireEvent:fireEvent$1,isValidSubprotocol:isValidSubprotocol$2,isValidStatusCode:isValidStatusCode$1,websocketMessageReceived:websocketMessageReceived$1,utf8Decode:utf8Decode$3,isControlFrame:isControlFrame$1,isContinuationFrame:isContinuationFrame$1,isTextBinaryFrame:isTextBinaryFrame$1,isValidOpcode:isValidOpcode$1,parseExtensions:parseExtensions$1,isValidClientWindowBits:isValidClientWindowBits$1,toArrayBuffer:toArrayBuffer$1,getURLRecord:getURLRecord$2,validateCloseCodeAndReason:validateCloseCodeAndReason$2}})),require_frame=__commonJSMin(((exports,module)=>{let{maxUnsigned16Bit,opcodes:opcodes$5}=require_constants$1(),BUFFER_SIZE=8*1024,crypto$5,buffer=null,bufIdx=BUFFER_SIZE;try{crypto$5=__require$1(`node:crypto`)}catch{crypto$5={randomFillSync:function(buffer$2,_offset,_size$1){for(let i$5=0;i$5<buffer$2.length;++i$5)buffer$2[i$5]=Math.random()*255|0;return buffer$2}}}function generateMask(){return bufIdx===BUFFER_SIZE&&(bufIdx=0,crypto$5.randomFillSync(buffer??=Buffer.allocUnsafeSlow(BUFFER_SIZE),0,BUFFER_SIZE)),[buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++]]}var WebsocketFrameSend$5=class{constructor(data$2){this.frameData=data$2}createFrame(opcode){let frameData=this.frameData,maskKey=generateMask(),bodyLength$1=frameData?.byteLength??0,payloadLength=bodyLength$1,offset=6;bodyLength$1>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength$1>125&&(offset+=2,payloadLength=126);let buffer$2=Buffer.allocUnsafe(bodyLength$1+offset);buffer$2[0]=buffer$2[1]=0,buffer$2[0]|=128,buffer$2[0]=(buffer$2[0]&240)+opcode,buffer$2[offset-4]=maskKey[0],buffer$2[offset-3]=maskKey[1],buffer$2[offset-2]=maskKey[2],buffer$2[offset-1]=maskKey[3],buffer$2[1]=payloadLength,payloadLength===126?buffer$2.writeUInt16BE(bodyLength$1,2):payloadLength===127&&(buffer$2[2]=buffer$2[3]=0,buffer$2.writeUIntBE(bodyLength$1,4,6)),buffer$2[1]|=128;for(let i$5=0;i$5<bodyLength$1;++i$5)buffer$2[offset+i$5]=frameData[i$5]^maskKey[i$5&3];return buffer$2}static createFastTextFrame(buffer$2){let maskKey=generateMask(),bodyLength$1=buffer$2.length;for(let i$5=0;i$5<bodyLength$1;++i$5)buffer$2[i$5]^=maskKey[i$5&3];let payloadLength=bodyLength$1,offset=6;bodyLength$1>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength$1>125&&(offset+=2,payloadLength=126);let head=Buffer.allocUnsafeSlow(offset);return head[0]=128|opcodes$5.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$1,2):payloadLength===127&&(head[2]=head[3]=0,head.writeUIntBE(bodyLength$1,4,6)),[head,buffer$2]}};module.exports={WebsocketFrameSend:WebsocketFrameSend$5,generateMask}})),require_connection=__commonJSMin(((exports,module)=>{let{uid,states:states$3,sentCloseFrameState:sentCloseFrameState$3,emptyBuffer:emptyBuffer$1,opcodes:opcodes$4}=require_constants$1(),{parseExtensions,isClosed:isClosed$1,isClosing:isClosing$1,isEstablished:isEstablished$2,validateCloseCodeAndReason:validateCloseCodeAndReason$1}=require_util$1(),{makeRequest:makeRequest$1}=require_request(),{fetching:fetching$1}=require_fetch$1(),{Headers:Headers$1,getHeadersList}=require_headers(),{getDecodeSplit}=require_util$4(),{WebsocketFrameSend:WebsocketFrameSend$4}=require_frame(),assert$2=__require$1(`node:assert`),crypto$4;try{crypto$4=__require$1(`node:crypto`)}catch{}function establishWebSocketConnection$2(url$4,protocols,client,handler,options$1){let requestURL=url$4;requestURL.protocol=url$4.protocol===`ws:`?`http:`:`https:`;let request$3=makeRequest$1({urlList:[requestURL],client,serviceWorkers:`none`,referrer:`no-referrer`,mode:`websocket`,credentials:`include`,cache:`no-store`,redirect:`error`});if(options$1.headers){let headersList=getHeadersList(new Headers$1(options$1.headers));request$3.headersList=headersList}let keyValue=crypto$4.randomBytes(16).toString(`base64`);request$3.headersList.append(`sec-websocket-key`,keyValue,!0),request$3.headersList.append(`sec-websocket-version`,`13`,!0);for(let protocol of protocols)request$3.headersList.append(`sec-websocket-protocol`,protocol,!0);let permessageDeflate=`permessage-deflate; client_max_window_bits`;request$3.headersList.append(`sec-websocket-extensions`,`permessage-deflate; client_max_window_bits`,!0);let controller=fetching$1({request:request$3,useParallelQueue:!0,dispatcher:options$1.dispatcher,processResponse(response){if(response.type===`error`&&(handler.readyState=states$3.CLOSED),response.type===`error`||response.status!==101){failWebsocketConnection$3(handler,1002,`Received network error or non-101 status code.`,response.error);return}if(protocols.length!==0&&!response.headersList.get(`Sec-WebSocket-Protocol`)){failWebsocketConnection$3(handler,1002,`Server did not respond with sent protocols.`);return}if(response.headersList.get(`Upgrade`)?.toLowerCase()!==`websocket`){failWebsocketConnection$3(handler,1002,`Server did not set Upgrade header to "websocket".`);return}if(response.headersList.get(`Connection`)?.toLowerCase()!==`upgrade`){failWebsocketConnection$3(handler,1002,`Server did not set Connection header to "upgrade".`);return}let secWSAccept=response.headersList.get(`Sec-WebSocket-Accept`),digest=crypto$4.createHash(`sha1`).update(keyValue+uid).digest(`base64`);if(secWSAccept!==digest){failWebsocketConnection$3(handler,1002,`Incorrect hash received in Sec-WebSocket-Accept header.`);return}let secExtension=response.headersList.get(`Sec-WebSocket-Extensions`),extensions$1;if(secExtension!==null&&(extensions$1=parseExtensions(secExtension),!extensions$1.has(`permessage-deflate`))){failWebsocketConnection$3(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$3.headersList);if(!requestProtocols.includes(secProtocol)){failWebsocketConnection$3(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$1)}});return controller}function closeWebSocketConnection$2(object$5,code$1,reason,validate$6=!1){if(code$1??=null,reason??=``,validate$6&&validateCloseCodeAndReason$1(code$1,reason),!(isClosed$1(object$5.readyState)||isClosing$1(object$5.readyState)))if(!isEstablished$2(object$5.readyState))failWebsocketConnection$3(object$5),object$5.readyState=states$3.CLOSING;else if(!object$5.closeState.has(sentCloseFrameState$3.SENT)&&!object$5.closeState.has(sentCloseFrameState$3.RECEIVED)){let frame=new WebsocketFrameSend$4;reason.length!==0&&code$1===null&&(code$1=1e3),assert$2(code$1===null||Number.isInteger(code$1)),code$1===null&&reason.length===0?frame.frameData=emptyBuffer$1:code$1!==null&&reason===null?(frame.frameData=Buffer.allocUnsafe(2),frame.frameData.writeUInt16BE(code$1,0)):code$1!==null&&reason!==null?(frame.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(reason)),frame.frameData.writeUInt16BE(code$1,0),frame.frameData.write(reason,2,`utf-8`)):frame.frameData=emptyBuffer$1,object$5.socket.write(frame.createFrame(opcodes$4.CLOSE)),object$5.closeState.add(sentCloseFrameState$3.SENT),object$5.readyState=states$3.CLOSING}else object$5.readyState=states$3.CLOSING}function failWebsocketConnection$3(handler,code$1,reason,cause){isEstablished$2(handler.readyState)&&closeWebSocketConnection$2(handler,code$1,reason,!1),handler.controller.abort(),handler.socket?handler.socket.destroyed===!1&&handler.socket.destroy():handler.onSocketClose()}module.exports={establishWebSocketConnection:establishWebSocketConnection$2,failWebsocketConnection:failWebsocketConnection$3,closeWebSocketConnection:closeWebSocketConnection$2}})),require_permessage_deflate=__commonJSMin(((exports,module)=>{let{createInflateRaw,Z_DEFAULT_WINDOWBITS}=__require$1(`node:zlib`),{isValidClientWindowBits}=require_util$1(),tail=Buffer.from([0,0,255,255]),kBuffer=Symbol(`kBuffer`),kLength=Symbol(`kLength`);var PerMessageDeflate$1=class{#inflate;#options={};constructor(extensions$1){this.#options.serverNoContextTakeover=extensions$1.has(`server_no_context_takeover`),this.#options.serverMaxWindowBits=extensions$1.get(`server_max_window_bits`)}decompress(chunk$1,fin,callback$1){if(!this.#inflate){let windowBits=Z_DEFAULT_WINDOWBITS;if(this.#options.serverMaxWindowBits){if(!isValidClientWindowBits(this.#options.serverMaxWindowBits)){callback$1(Error(`Invalid server_max_window_bits`));return}windowBits=Number.parseInt(this.#options.serverMaxWindowBits)}this.#inflate=createInflateRaw({windowBits}),this.#inflate[kBuffer]=[],this.#inflate[kLength]=0,this.#inflate.on(`data`,data$2=>{this.#inflate[kBuffer].push(data$2),this.#inflate[kLength]+=data$2.length}),this.#inflate.on(`error`,err$1=>{this.#inflate=null,callback$1(err$1)})}this.#inflate.write(chunk$1),fin&&this.#inflate.write(tail),this.#inflate.flush(()=>{let full=Buffer.concat(this.#inflate[kBuffer],this.#inflate[kLength]);this.#inflate[kBuffer].length=0,this.#inflate[kLength]=0,callback$1(null,full)})}};module.exports={PerMessageDeflate:PerMessageDeflate$1}})),require_receiver=__commonJSMin(((exports,module)=>{let{Writable:Writable$1}=__require$1(`node:stream`),assert$1=__require$1(`node:assert`),{parserStates,opcodes:opcodes$3,states:states$2,emptyBuffer,sentCloseFrameState:sentCloseFrameState$2}=require_constants$1(),{isValidStatusCode,isValidOpcode,websocketMessageReceived,utf8Decode:utf8Decode$2,isControlFrame,isTextBinaryFrame,isContinuationFrame}=require_util$1(),{failWebsocketConnection:failWebsocketConnection$2}=require_connection(),{WebsocketFrameSend:WebsocketFrameSend$3}=require_frame(),{PerMessageDeflate}=require_permessage_deflate();var ByteParser$2=class extends Writable$1{#buffers=[];#fragmentsBytes=0;#byteOffset=0;#loop=!1;#state=parserStates.INFO;#info={};#fragments=[];#extensions;#handler;constructor(handler,extensions$1){super(),this.#handler=handler,this.#extensions=extensions$1??new Map,this.#extensions.has(`permessage-deflate`)&&this.#extensions.set(`permessage-deflate`,new PerMessageDeflate(extensions$1))}_write(chunk$1,_$6,callback$1){this.#buffers.push(chunk$1),this.#byteOffset+=chunk$1.length,this.#loop=!0,this.run(callback$1)}run(callback$1){for(;this.#loop;)if(this.#state===parserStates.INFO){if(this.#byteOffset<2)return callback$1();let buffer$2=this.consume(2),fin=(buffer$2[0]&128)!=0,opcode=buffer$2[0]&15,masked=(buffer$2[1]&128)==128,fragmented=!fin&&opcode!==opcodes$3.CONTINUATION,payloadLength=buffer$2[1]&127,rsv1=buffer$2[0]&64,rsv2=buffer$2[0]&32,rsv3=buffer$2[0]&16;if(!isValidOpcode(opcode))return failWebsocketConnection$2(this.#handler,1002,`Invalid opcode received`),callback$1();if(masked)return failWebsocketConnection$2(this.#handler,1002,`Frame cannot be masked`),callback$1();if(rsv1!==0&&!this.#extensions.has(`permessage-deflate`)){failWebsocketConnection$2(this.#handler,1002,`Expected RSV1 to be clear.`);return}if(rsv2!==0||rsv3!==0){failWebsocketConnection$2(this.#handler,1002,`RSV1, RSV2, RSV3 must be clear`);return}if(fragmented&&!isTextBinaryFrame(opcode)){failWebsocketConnection$2(this.#handler,1002,`Invalid frame type was fragmented.`);return}if(isTextBinaryFrame(opcode)&&this.#fragments.length>0){failWebsocketConnection$2(this.#handler,1002,`Expected continuation frame`);return}if(this.#info.fragmented&&fragmented){failWebsocketConnection$2(this.#handler,1002,`Fragmented frame exceeded 125 bytes.`);return}if((payloadLength>125||fragmented)&&isControlFrame(opcode)){failWebsocketConnection$2(this.#handler,1002,`Control frame either too large or fragmented`);return}if(isContinuationFrame(opcode)&&this.#fragments.length===0&&!this.#info.compressed){failWebsocketConnection$2(this.#handler,1002,`Unexpected continuation frame`);return}payloadLength<=125?(this.#info.payloadLength=payloadLength,this.#state=parserStates.READ_DATA):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$1();let buffer$2=this.consume(2);this.#info.payloadLength=buffer$2.readUInt16BE(0),this.#state=parserStates.READ_DATA}else if(this.#state===parserStates.PAYLOADLENGTH_64){if(this.#byteOffset<8)return callback$1();let buffer$2=this.consume(8),upper=buffer$2.readUInt32BE(0);if(upper>2**31-1){failWebsocketConnection$2(this.#handler,1009,`Received payload length > 2^31 bytes.`);return}let lower=buffer$2.readUInt32BE(4);this.#info.payloadLength=(upper<<8)+lower,this.#state=parserStates.READ_DATA}else if(this.#state===parserStates.READ_DATA){if(this.#byteOffset<this.#info.payloadLength)return callback$1();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.writeFragments(body),!this.#info.fragmented&&this.#info.fin&&websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#state=parserStates.INFO;else{this.#extensions.get(`permessage-deflate`).decompress(body,this.#info.fin,(error$65,data$2)=>{if(error$65){failWebsocketConnection$2(this.#handler,1007,error$65.message);return}if(this.writeFragments(data$2),!this.#info.fin){this.#state=parserStates.INFO,this.#loop=!0,this.run(callback$1);return}websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#loop=!0,this.#state=parserStates.INFO,this.run(callback$1)}),this.#loop=!1;break}}}consume(n$2){if(n$2>this.#byteOffset)throw Error(`Called consume() before buffers satiated.`);if(n$2===0)return emptyBuffer;this.#byteOffset-=n$2;let first$1=this.#buffers[0];if(first$1.length>n$2)return this.#buffers[0]=first$1.subarray(n$2,first$1.length),first$1.subarray(0,n$2);if(first$1.length===n$2)return this.#buffers.shift();{let offset=0,buffer$2=Buffer.allocUnsafeSlow(n$2);for(;offset!==n$2;){let next=this.#buffers[0],length=next.length;if(length+offset===n$2){buffer$2.set(this.#buffers.shift(),offset);break}else if(length+offset>n$2){buffer$2.set(next.subarray(0,n$2-offset),offset),this.#buffers[0]=next.subarray(n$2-offset);break}else buffer$2.set(this.#buffers.shift(),offset),offset+=length}return buffer$2}}writeFragments(fragment){this.#fragmentsBytes+=fragment.length,this.#fragments.push(fragment)}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$5=0;i$5<fragments.length;++i$5){let buffer$2=fragments[i$5];output.set(buffer$2,offset),offset+=buffer$2.length}return this.#fragments=[],this.#fragmentsBytes=0,output}parseCloseBody(data$2){assert$1(data$2.length!==1);let code$1;if(data$2.length>=2&&(code$1=data$2.readUInt16BE(0)),code$1!==void 0&&!isValidStatusCode(code$1))return{code:1002,reason:`Invalid status code`,error:!0};let reason=data$2.subarray(2);reason[0]===239&&reason[1]===187&&reason[2]===191&&(reason=reason.subarray(3));try{reason=utf8Decode$2(reason)}catch{return{code:1007,reason:`Invalid UTF-8`,error:!0}}return{code:code$1,reason,error:!1}}parseControlFrame(body){let{opcode,payloadLength}=this.#info;if(opcode===opcodes$3.CLOSE){if(payloadLength===1)return failWebsocketConnection$2(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:code$1,reason}=this.#info.closeInfo;return failWebsocketConnection$2(this.#handler,code$1,reason),!1}if(!this.#handler.closeState.has(sentCloseFrameState$2.SENT)&&!this.#handler.closeState.has(sentCloseFrameState$2.RECEIVED)){let body$1=emptyBuffer;this.#info.closeInfo.code&&(body$1=Buffer.allocUnsafe(2),body$1.writeUInt16BE(this.#info.closeInfo.code,0));let closeFrame=new WebsocketFrameSend$3(body$1);this.#handler.socket.write(closeFrame.createFrame(opcodes$3.CLOSE)),this.#handler.closeState.add(sentCloseFrameState$2.SENT)}return this.#handler.readyState=states$2.CLOSING,this.#handler.closeState.add(sentCloseFrameState$2.RECEIVED),!1}else if(opcode===opcodes$3.PING){if(!this.#handler.closeState.has(sentCloseFrameState$2.RECEIVED)){let frame=new WebsocketFrameSend$3(body);this.#handler.socket.write(frame.createFrame(opcodes$3.PONG)),this.#handler.onPing(body)}}else opcode===opcodes$3.PONG&&this.#handler.onPong(body);return!0}get closingInfo(){return this.#info.closeInfo}};module.exports={ByteParser:ByteParser$2}})),require_sender=__commonJSMin(((exports,module)=>{let{WebsocketFrameSend:WebsocketFrameSend$2}=require_frame(),{opcodes:opcodes$2,sendHints:sendHints$1}=require_constants$1(),FixedQueue=require_fixed_queue();var SendQueue$1=class{#queue=new FixedQueue;#running=!1;#socket;constructor(socket){this.#socket=socket}add(item,cb,hint){if(hint!==sendHints$1.blob){if(this.#running){let node$1={promise:null,callback:cb,frame:createFrame(item,hint)};this.#queue.push(node$1)}else if(hint===sendHints$1.text){let{0:head,1:body}=WebsocketFrameSend$2.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$1=>{node.promise=null,node.frame=createFrame(ab$1,hint)}),callback:cb,frame:null};this.#queue.push(node),this.#running||this.#run()}async#run(){this.#running=!0;let queue$2=this.#queue;for(;!queue$2.isEmpty();){let node=queue$2.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$2,hint){return new WebsocketFrameSend$2(toBuffer(data$2,hint)).createFrame(hint===sendHints$1.text?opcodes$2.TEXT:opcodes$2.BINARY)}function toBuffer(data$2,hint){switch(hint){case sendHints$1.text:case sendHints$1.typedArray:return new Uint8Array(data$2.buffer,data$2.byteOffset,data$2.byteLength);case sendHints$1.arrayBuffer:case sendHints$1.blob:return new Uint8Array(data$2)}}module.exports={SendQueue:SendQueue$1}})),require_websocket=__commonJSMin(((exports,module)=>{let{isArrayBuffer:isArrayBuffer$1}=__require$1(`node:util/types`),{webidl:webidl$3}=require_webidl(),{URLSerializer}=require_data_url(),{environmentSettingsObject:environmentSettingsObject$2}=require_util$4(),{staticPropertyDescriptors,states:states$1,sentCloseFrameState:sentCloseFrameState$1,sendHints,opcodes:opcodes$1}=require_constants$1(),{isConnecting,isEstablished:isEstablished$1,isClosing,isClosed,isValidSubprotocol:isValidSubprotocol$1,fireEvent,utf8Decode:utf8Decode$1,toArrayBuffer,getURLRecord:getURLRecord$1}=require_util$1(),{establishWebSocketConnection:establishWebSocketConnection$1,closeWebSocketConnection:closeWebSocketConnection$1,failWebsocketConnection:failWebsocketConnection$1}=require_connection(),{ByteParser:ByteParser$1}=require_receiver(),{kEnumerableProperty:kEnumerableProperty$3}=require_util$5(),{getGlobalDispatcher:getGlobalDispatcher$1}=require_global(),{ErrorEvent:ErrorEvent$1,CloseEvent:CloseEvent$1,createFastMessageEvent:createFastMessageEvent$1}=require_events(),{SendQueue}=require_sender(),{WebsocketFrameSend:WebsocketFrameSend$1}=require_frame(),{channels:channels$1}=require_diagnostics();var WebSocket$2=class WebSocket$2 extends EventTarget{#events={open:null,error:null,close:null,message:null};#bufferedAmount=0;#protocol=``;#extensions=``;#sendQueue;#handler={onConnectionEstablished:(response,extensions$1)=>this.#onConnectionEstablished(response,extensions$1),onMessage:(opcode,data$2)=>this.#onMessage(opcode,data$2),onParserError:err$1=>failWebsocketConnection$1(this.#handler,null,err$1.message),onParserDrain:()=>this.#onParserDrain(),onSocketData:chunk$1=>{this.#parser.write(chunk$1)||this.#handler.socket.pause()},onSocketError:err$1=>{this.#handler.readyState=states$1.CLOSING,channels$1.socketError.hasSubscribers&&channels$1.socketError.publish(err$1),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:body=>{channels$1.ping.hasSubscribers&&channels$1.ping.publish({payload:body,websocket:this})},onPong:body=>{channels$1.pong.hasSubscribers&&channels$1.pong.publish({payload:body,websocket:this})},readyState:states$1.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#url;#binaryType;#parser;constructor(url$4,protocols=[]){super(),webidl$3.util.markAsUncloneable(this);let prefix=`WebSocket constructor`;webidl$3.argumentLengthCheck(arguments,1,prefix);let options$1=webidl$3.converters[`DOMString or sequence<DOMString> or WebSocketInit`](protocols,prefix,`options`);url$4=webidl$3.converters.USVString(url$4),protocols=options$1.protocols;let baseURL=environmentSettingsObject$2.settingsObject.baseUrl,urlRecord=getURLRecord$1(url$4,baseURL);if(typeof protocols==`string`&&(protocols=[protocols]),protocols.length!==new Set(protocols.map(p$2=>p$2.toLowerCase())).size||protocols.length>0&&!protocols.every(p$2=>isValidSubprotocol$1(p$2)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);this.#url=new URL(urlRecord.href);let client=environmentSettingsObject$2.settingsObject;this.#handler.controller=establishWebSocketConnection$1(urlRecord,protocols,client,this.#handler,options$1),this.#handler.readyState=WebSocket$2.CONNECTING,this.#binaryType=`blob`}close(code$1=void 0,reason=void 0){webidl$3.brandCheck(this,WebSocket$2);let prefix=`WebSocket.close`;code$1!==void 0&&(code$1=webidl$3.converters[`unsigned short`](code$1,`WebSocket.close`,`code`,webidl$3.attributes.Clamp)),reason!==void 0&&(reason=webidl$3.converters.USVString(reason)),code$1??=null,reason??=``,closeWebSocketConnection$1(this.#handler,code$1,reason,!0)}send(data$2){webidl$3.brandCheck(this,WebSocket$2);let prefix=`WebSocket.send`;if(webidl$3.argumentLengthCheck(arguments,1,prefix),data$2=webidl$3.converters.WebSocketSendData(data$2,prefix,`data`),isConnecting(this.#handler.readyState))throw new DOMException(`Sent before connected.`,`InvalidStateError`);if(!(!isEstablished$1(this.#handler.readyState)||isClosing(this.#handler.readyState)))if(typeof data$2==`string`){let buffer$2=Buffer.from(data$2);this.#bufferedAmount+=buffer$2.byteLength,this.#sendQueue.add(buffer$2,()=>{this.#bufferedAmount-=buffer$2.byteLength},sendHints.text)}else isArrayBuffer$1(data$2)?(this.#bufferedAmount+=data$2.byteLength,this.#sendQueue.add(data$2,()=>{this.#bufferedAmount-=data$2.byteLength},sendHints.arrayBuffer)):ArrayBuffer.isView(data$2)?(this.#bufferedAmount+=data$2.byteLength,this.#sendQueue.add(data$2,()=>{this.#bufferedAmount-=data$2.byteLength},sendHints.typedArray)):webidl$3.is.Blob(data$2)&&(this.#bufferedAmount+=data$2.size,this.#sendQueue.add(data$2,()=>{this.#bufferedAmount-=data$2.size},sendHints.blob))}get readyState(){return webidl$3.brandCheck(this,WebSocket$2),this.#handler.readyState}get bufferedAmount(){return webidl$3.brandCheck(this,WebSocket$2),this.#bufferedAmount}get url(){return webidl$3.brandCheck(this,WebSocket$2),URLSerializer(this.#url)}get extensions(){return webidl$3.brandCheck(this,WebSocket$2),this.#extensions}get protocol(){return webidl$3.brandCheck(this,WebSocket$2),this.#protocol}get onopen(){return webidl$3.brandCheck(this,WebSocket$2),this.#events.open}set onopen(fn){webidl$3.brandCheck(this,WebSocket$2),this.#events.open&&this.removeEventListener(`open`,this.#events.open);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.open=null:(this.addEventListener(`open`,listener),this.#events.open=fn)}get onerror(){return webidl$3.brandCheck(this,WebSocket$2),this.#events.error}set onerror(fn){webidl$3.brandCheck(this,WebSocket$2),this.#events.error&&this.removeEventListener(`error`,this.#events.error);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.error=null:(this.addEventListener(`error`,listener),this.#events.error=fn)}get onclose(){return webidl$3.brandCheck(this,WebSocket$2),this.#events.close}set onclose(fn){webidl$3.brandCheck(this,WebSocket$2),this.#events.close&&this.removeEventListener(`close`,this.#events.close);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.close=null:(this.addEventListener(`close`,listener),this.#events.close=fn)}get onmessage(){return webidl$3.brandCheck(this,WebSocket$2),this.#events.message}set onmessage(fn){webidl$3.brandCheck(this,WebSocket$2),this.#events.message&&this.removeEventListener(`message`,this.#events.message);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.message=null:(this.addEventListener(`message`,listener),this.#events.message=fn)}get binaryType(){return webidl$3.brandCheck(this,WebSocket$2),this.#binaryType}set binaryType(type){webidl$3.brandCheck(this,WebSocket$2),type!==`blob`&&type!==`arraybuffer`?this.#binaryType=`blob`:this.#binaryType=type}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket;let parser$2=new ByteParser$1(this.#handler,parsedExtensions);parser$2.on(`drain`,()=>this.#handler.onParserDrain()),parser$2.on(`error`,err$1=>this.#handler.onParserError(err$1)),this.#parser=parser$2,this.#sendQueue=new SendQueue(response.socket),this.#handler.readyState=states$1.OPEN;let extensions$1=response.headersList.get(`sec-websocket-extensions`);extensions$1!==null&&(this.#extensions=extensions$1);let protocol=response.headersList.get(`sec-websocket-protocol`);if(protocol!==null&&(this.#protocol=protocol),fireEvent(`open`,this),channels$1.open.hasSubscribers){let headers$2=response.headersList.entries;channels$1.open.publish({address:response.socket.address(),protocol:this.#protocol,extensions:this.#extensions,websocket:this,handshakeResponse:{status:response.status,statusText:response.statusText,headers:headers$2}})}}#onMessage(type,data$2){if(this.#handler.readyState!==states$1.OPEN)return;let dataForEvent;if(type===opcodes$1.TEXT)try{dataForEvent=utf8Decode$1(data$2)}catch{failWebsocketConnection$1(this.#handler,1007,`Received invalid UTF-8 in text frame.`);return}else type===opcodes$1.BINARY&&(dataForEvent=this.#binaryType===`blob`?new Blob([data$2]):toArrayBuffer(data$2));fireEvent(`message`,this,createFastMessageEvent$1,{origin:this.#url.origin,data:dataForEvent})}#onParserDrain(){this.#handler.socket.resume()}#onSocketClose(){let wasClean=this.#handler.closeState.has(sentCloseFrameState$1.SENT)&&this.#handler.closeState.has(sentCloseFrameState$1.RECEIVED),code$1=1005,reason=``,result=this.#parser?.closingInfo;result&&!result.error&&(code$1=result.code??1005,reason=result.reason),this.#handler.readyState=states$1.CLOSED,this.#handler.closeState.has(sentCloseFrameState$1.RECEIVED)||(code$1=1006,fireEvent(`error`,this,(type,init$4)=>new ErrorEvent$1(type,init$4),{error:TypeError(reason)})),fireEvent(`close`,this,(type,init$4)=>new CloseEvent$1(type,init$4),{wasClean,code:code$1,reason}),channels$1.close.hasSubscribers&&channels$1.close.publish({websocket:this,code:code$1,reason})}static ping(ws$2,buffer$2){if(Buffer.isBuffer(buffer$2)){if(buffer$2.length>125)throw TypeError(`A PING frame cannot have a body larger than 125 bytes.`)}else if(buffer$2!==void 0)throw TypeError(`Expected buffer payload`);let readyState=ws$2.#handler.readyState;if(isEstablished$1(readyState)&&!isClosing(readyState)&&!isClosed(readyState)){let frame=new WebsocketFrameSend$1(buffer$2);ws$2.#handler.socket.write(frame.createFrame(opcodes$1.PING))}}};let{ping:ping$1}=WebSocket$2;Reflect.deleteProperty(WebSocket$2,`ping`),WebSocket$2.CONNECTING=WebSocket$2.prototype.CONNECTING=states$1.CONNECTING,WebSocket$2.OPEN=WebSocket$2.prototype.OPEN=states$1.OPEN,WebSocket$2.CLOSING=WebSocket$2.prototype.CLOSING=states$1.CLOSING,WebSocket$2.CLOSED=WebSocket$2.prototype.CLOSED=states$1.CLOSED,Object.defineProperties(WebSocket$2.prototype,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors,url:kEnumerableProperty$3,readyState:kEnumerableProperty$3,bufferedAmount:kEnumerableProperty$3,onopen:kEnumerableProperty$3,onerror:kEnumerableProperty$3,onclose:kEnumerableProperty$3,close:kEnumerableProperty$3,onmessage:kEnumerableProperty$3,binaryType:kEnumerableProperty$3,send:kEnumerableProperty$3,extensions:kEnumerableProperty$3,protocol:kEnumerableProperty$3,[Symbol.toStringTag]:{value:`WebSocket`,writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(WebSocket$2,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors}),webidl$3.converters[`sequence<DOMString>`]=webidl$3.sequenceConverter(webidl$3.converters.DOMString),webidl$3.converters[`DOMString or sequence<DOMString>`]=function(V$5,prefix,argument){return webidl$3.util.Type(V$5)===webidl$3.util.Types.OBJECT&&Symbol.iterator in V$5?webidl$3.converters[`sequence<DOMString>`](V$5):webidl$3.converters.DOMString(V$5,prefix,argument)},webidl$3.converters.WebSocketInit=webidl$3.dictionaryConverter([{key:`protocols`,converter:webidl$3.converters[`DOMString or sequence<DOMString>`],defaultValue:()=>[]},{key:`dispatcher`,converter:webidl$3.converters.any,defaultValue:()=>getGlobalDispatcher$1()},{key:`headers`,converter:webidl$3.nullableConverter(webidl$3.converters.HeadersInit)}]),webidl$3.converters[`DOMString or sequence<DOMString> or WebSocketInit`]=function(V$5){return webidl$3.util.Type(V$5)===webidl$3.util.Types.OBJECT&&!(Symbol.iterator in V$5)?webidl$3.converters.WebSocketInit(V$5):{protocols:webidl$3.converters[`DOMString or sequence<DOMString>`](V$5)}},webidl$3.converters.WebSocketSendData=function(V$5){return webidl$3.util.Type(V$5)===webidl$3.util.Types.OBJECT&&(webidl$3.is.Blob(V$5)||webidl$3.is.BufferSource(V$5))?V$5:webidl$3.converters.USVString(V$5)},module.exports={WebSocket:WebSocket$2,ping:ping$1}})),require_websocketerror=__commonJSMin(((exports,module)=>{let{webidl:webidl$2}=require_webidl(),{validateCloseCodeAndReason}=require_util$1(),{kConstruct:kConstruct$1}=require_symbols$1(),{kEnumerableProperty:kEnumerableProperty$2}=require_util$5();function createInheritableDOMException(){class Test extends DOMException{get reason(){return``}}return new Test().reason===void 0?new Proxy(DOMException,{construct(target,args,newTarget){let instance$1=Reflect.construct(target,args,target);return Object.setPrototypeOf(instance$1,newTarget.prototype),instance$1}}):DOMException}var WebSocketError$1=class WebSocketError$1 extends createInheritableDOMException(){#closeCode;#reason;constructor(message=``,init$4=void 0){if(message=webidl$2.converters.DOMString(message,`WebSocketError`,`message`),super(message,`WebSocketError`),init$4===kConstruct$1)return;init$4!==null&&(init$4=webidl$2.converters.WebSocketCloseInfo(init$4));let code$1=init$4.closeCode??null,reason=init$4.reason??``;validateCloseCodeAndReason(code$1,reason),reason.length!==0&&code$1===null&&(code$1=1e3),this.#closeCode=code$1,this.#reason=reason}get closeCode(){return this.#closeCode}get reason(){return this.#reason}static createUnvalidatedWebSocketError(message,code$1,reason){let error$65=new WebSocketError$1(message,kConstruct$1);return error$65.#closeCode=code$1,error$65.#reason=reason,error$65}};let{createUnvalidatedWebSocketError:createUnvalidatedWebSocketError$1}=WebSocketError$1;delete WebSocketError$1.createUnvalidatedWebSocketError,Object.defineProperties(WebSocketError$1.prototype,{closeCode:kEnumerableProperty$2,reason:kEnumerableProperty$2,[Symbol.toStringTag]:{value:`WebSocketError`,writable:!1,enumerable:!1,configurable:!0}}),webidl$2.is.WebSocketError=webidl$2.util.MakeTypeAssertion(WebSocketError$1),module.exports={WebSocketError:WebSocketError$1,createUnvalidatedWebSocketError:createUnvalidatedWebSocketError$1}})),require_websocketstream=__commonJSMin(((exports,module)=>{let{createDeferredPromise:createDeferredPromise$2}=require_promise(),{environmentSettingsObject:environmentSettingsObject$1}=require_util$4(),{states,opcodes,sentCloseFrameState}=require_constants$1(),{webidl:webidl$1}=require_webidl(),{getURLRecord,isValidSubprotocol,isEstablished,utf8Decode}=require_util$1(),{establishWebSocketConnection,failWebsocketConnection,closeWebSocketConnection}=require_connection(),{channels}=require_diagnostics(),{WebsocketFrameSend}=require_frame(),{ByteParser}=require_receiver(),{WebSocketError,createUnvalidatedWebSocketError}=require_websocketerror(),{utf8DecodeBytes}=require_util$4(),{kEnumerableProperty:kEnumerableProperty$1}=require_util$5(),emittedExperimentalWarning=!1;var WebSocketStream=class{#url;#openedPromise;#closedPromise;#readableStream;#readableStreamController;#writableStream;#handshakeAborted=!1;#handler={onConnectionEstablished:(response,extensions$1)=>this.#onConnectionEstablished(response,extensions$1),onMessage:(opcode,data$2)=>this.#onMessage(opcode,data$2),onParserError:err$1=>failWebsocketConnection(this.#handler,null,err$1.message),onParserDrain:()=>this.#handler.socket.resume(),onSocketData:chunk$1=>{this.#parser.write(chunk$1)||this.#handler.socket.pause()},onSocketError:err$1=>{this.#handler.readyState=states.CLOSING,channels.socketError.hasSubscribers&&channels.socketError.publish(err$1),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:()=>{},onPong:()=>{},readyState:states.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#parser;constructor(url$4,options$1=void 0){process.emitWarning(`WebSocketStream is experimental! Expect it to change at any time.`,{code:`UNDICI-WSS`}),webidl$1.argumentLengthCheck(arguments,1,`WebSocket`),url$4=webidl$1.converters.USVString(url$4),options$1!==null&&(options$1=webidl$1.converters.WebSocketStreamOptions(options$1));let baseURL=environmentSettingsObject$1.settingsObject.baseUrl,urlRecord=getURLRecord(url$4,baseURL),protocols=options$1.protocols;if(protocols.length!==new Set(protocols.map(p$2=>p$2.toLowerCase())).size||protocols.length>0&&!protocols.every(p$2=>isValidSubprotocol(p$2)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);if(this.#url=urlRecord.toString(),this.#openedPromise=createDeferredPromise$2(),this.#closedPromise=createDeferredPromise$2(),options$1.signal!=null){let signal=options$1.signal;if(signal.aborted){this.#openedPromise.reject(signal.reason),this.#closedPromise.reject(signal.reason);return}signal.addEventListener(`abort`,()=>{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)},{once:!0})}let client=environmentSettingsObject$1.settingsObject;this.#handler.controller=establishWebSocketConnection(urlRecord,protocols,client,this.#handler,options$1)}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$1.converters.WebSocketCloseInfo(closeInfo));let code$1=closeInfo.closeCode??null,reason=closeInfo.reason;closeWebSocketConnection(this.#handler,code$1,reason,!0)}#write(chunk$1){chunk$1=webidl$1.converters.WebSocketStreamWrite(chunk$1);let promise$2=createDeferredPromise$2(),data$2=null,opcode=null;if(webidl$1.is.BufferSource(chunk$1))data$2=new Uint8Array(ArrayBuffer.isView(chunk$1)?new Uint8Array(chunk$1.buffer,chunk$1.byteOffset,chunk$1.byteLength):chunk$1.slice()),opcode=opcodes.BINARY;else{let string$5;try{string$5=webidl$1.converters.DOMString(chunk$1)}catch(e$2){return promise$2.reject(e$2),promise$2.promise}data$2=new TextEncoder().encode(string$5),opcode=opcodes.TEXT}if(!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend(data$2);this.#handler.socket.write(frame.createFrame(opcode),()=>{promise$2.resolve(void 0)})}return promise$2.promise}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket;let parser$2=new ByteParser(this.#handler,parsedExtensions);parser$2.on(`drain`,()=>this.#handler.onParserDrain()),parser$2.on(`error`,err$1=>this.#handler.onParserError(err$1)),this.#parser=parser$2,this.#handler.readyState=states.OPEN;let extensions$1=parsedExtensions??``,protocol=response.headersList.get(`sec-websocket-protocol`)??``,readable$1=new ReadableStream({start:controller=>{this.#readableStreamController=controller},pull(controller){let chunk$1;for(;controller.desiredSize>0&&(chunk$1=response.socket.read())!==null;)controller.enqueue(chunk$1)},cancel:reason=>this.#cancel(reason)}),writable$1=new WritableStream({write:chunk$1=>this.#write(chunk$1),close:()=>closeWebSocketConnection(this.#handler,null,null),abort:reason=>this.#closeUsingReason(reason)});this.#readableStream=readable$1,this.#writableStream=writable$1,this.#openedPromise.resolve({extensions:extensions$1,protocol,readable:readable$1,writable:writable$1})}#onMessage(type,data$2){if(this.#handler.readyState!==states.OPEN)return;let chunk$1;if(type===opcodes.TEXT)try{chunk$1=utf8Decode(data$2)}catch{failWebsocketConnection(this.#handler,`Received invalid UTF-8 in text frame.`);return}else type===opcodes.BINARY&&(chunk$1=new Uint8Array(data$2.buffer,data$2.byteOffset,data$2.byteLength));this.#readableStreamController.enqueue(chunk$1)}#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$1=result?.code??1005;!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)&&(code$1=1006);let reason=result?.reason==null?``:utf8DecodeBytes(Buffer.from(result.reason));if(wasClean)this.#readableStreamController.close(),this.#writableStream.locked||this.#writableStream.abort(new DOMException(`A closed WebSocketStream cannot be written to`,`InvalidStateError`)),this.#closedPromise.resolve({closeCode:code$1,reason});else{let error$65=createUnvalidatedWebSocketError(`unclean close`,code$1,reason);this.#readableStreamController.error(error$65),this.#writableStream.abort(error$65),this.#closedPromise.reject(error$65)}}#closeUsingReason(reason){let code$1=null,reasonString=``;webidl$1.is.WebSocketError(reason)&&(code$1=reason.closeCode,reasonString=reason.reason),closeWebSocketConnection(this.#handler,code$1,reasonString)}#cancel(reason){this.#closeUsingReason(reason)}};Object.defineProperties(WebSocketStream.prototype,{url:kEnumerableProperty$1,opened:kEnumerableProperty$1,closed:kEnumerableProperty$1,close:kEnumerableProperty$1,[Symbol.toStringTag]:{value:`WebSocketStream`,writable:!1,enumerable:!1,configurable:!0}}),webidl$1.converters.WebSocketStreamOptions=webidl$1.dictionaryConverter([{key:`protocols`,converter:webidl$1.sequenceConverter(webidl$1.converters.USVString),defaultValue:()=>[]},{key:`signal`,converter:webidl$1.nullableConverter(webidl$1.converters.AbortSignal),defaultValue:()=>null}]),webidl$1.converters.WebSocketCloseInfo=webidl$1.dictionaryConverter([{key:`closeCode`,converter:V$5=>webidl$1.converters[`unsigned short`](V$5,webidl$1.attributes.EnforceRange)},{key:`reason`,converter:webidl$1.converters.USVString,defaultValue:()=>``}]),webidl$1.converters.WebSocketStreamWrite=function(V$5){return typeof V$5==`string`?webidl$1.converters.USVString(V$5):webidl$1.converters.BufferSource(V$5)},module.exports={WebSocketStream}})),require_util=__commonJSMin(((exports,module)=>{function isValidLastEventId$1(value){return value.indexOf(`\0`)===-1}function isASCIINumber$1(value){if(value.length===0)return!1;for(let i$5=0;i$5<value.length;i$5++)if(value.charCodeAt(i$5)<48||value.charCodeAt(i$5)>57)return!1;return!0}module.exports={isValidLastEventId:isValidLastEventId$1,isASCIINumber:isASCIINumber$1}})),require_eventsource_stream=__commonJSMin(((exports,module)=>{let{Transform:Transform$1}=__require$1(`node:stream`),{isASCIINumber,isValidLastEventId}=require_util(),BOM=[239,187,191],LF=10,CR=13,COLON=58,SPACE$1=32;var EventSourceStream$1=class extends Transform$1{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(options$1={}){options$1.readableObjectMode=!0,super(options$1),this.state=options$1.eventSourceSettings||{},options$1.push&&(this.push=options$1.push)}_transform(chunk$1,_encoding,callback$1){if(chunk$1.length===0){callback$1();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,chunk$1]):this.buffer=chunk$1,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===BOM[0]){callback$1();return}this.checkBOM=!1,callback$1();return;case 2:if(this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]){callback$1();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]&&this.buffer[2]===BOM[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,callback$1();return}this.checkBOM=!1;break;default:this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]&&this.buffer[2]===BOM[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos<this.buffer.length;){if(this.eventEndCheck){if(this.crlfCheck){if(this.buffer[this.pos]===10){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===10||this.buffer[this.pos]===13){this.buffer[this.pos]===13&&(this.crlfCheck=!0),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,(this.event.data!==void 0||this.event.event||this.event.id!==void 0||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===10||this.buffer[this.pos]===13){this.buffer[this.pos]===13&&(this.crlfCheck=!0),this.parseLine(this.buffer.subarray(0,this.pos),this.event),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.eventEndCheck=!0;continue}this.pos++}callback$1()}parseLine(line$1,event){if(line$1.length===0)return;let colonPosition=line$1.indexOf(58);if(colonPosition===0)return;let field=``,value=``;if(colonPosition!==-1){field=line$1.subarray(0,colonPosition).toString(`utf8`);let valueStart=colonPosition+1;line$1[valueStart]===32&&++valueStart,value=line$1.subarray(valueStart).toString(`utf8`)}else field=line$1.toString(`utf8`),value=``;switch(field){case`data`:event[field]===void 0?event[field]=value:event[field]+=`\n${value}`;break;case`retry`:isASCIINumber(value)&&(event[field]=value);break;case`id`:isValidLastEventId(value)&&(event[field]=value);break;case`event`:value.length>0&&(event[field]=value);break}}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,event:void 0,id:void 0,retry:void 0}}};module.exports={EventSourceStream:EventSourceStream$1}})),require_eventsource=__commonJSMin(((exports,module)=>{let{pipeline:pipeline$1}=__require$1(`node:stream`),{fetching}=require_fetch$1(),{makeRequest}=require_request(),{webidl}=require_webidl(),{EventSourceStream}=require_eventsource_stream(),{parseMIMEType:parseMIMEType$1}=require_data_url(),{createFastMessageEvent}=require_events(),{isNetworkError}=require_response(),{kEnumerableProperty}=require_util$5(),{environmentSettingsObject}=require_util$4(),experimentalWarned=!1,defaultReconnectionTime=3e3,CONNECTING=0,OPEN=1,CLOSED=2,ANONYMOUS=`anonymous`,USE_CREDENTIALS=`use-credentials`;var EventSource$1=class EventSource$1 extends EventTarget{#events={open:null,error:null,message:null};#url;#withCredentials=!1;#readyState=0;#request=null;#controller=null;#dispatcher;#state;constructor(url$4,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$4=webidl.converters.USVString(url$4),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$4,settings.settingsObject.baseUrl),this.#state.origin=urlRecord.origin}catch(e$2){throw new DOMException(e$2,`SyntaxError`)}this.#url=urlRecord.href;let corsAttributeState=`anonymous`;eventSourceInitDict.withCredentials===!0&&(corsAttributeState=`use-credentials`,this.#withCredentials=!0);let initRequest={redirect:`follow`,keepalive:!0,mode:`cors`,credentials:corsAttributeState===`anonymous`?`same-origin`:`omit`,referrer:`no-referrer`};initRequest.client=environmentSettingsObject.settingsObject,initRequest.headersList=[[`accept`,{name:`accept`,value:`text/event-stream`}]],initRequest.cache=`no-store`,initRequest.initiator=`other`,initRequest.urlList=[new URL(this.#url)],this.#request=makeRequest(initRequest),this.#connect()}get readyState(){return this.#readyState}get url(){return this.#url}get withCredentials(){return this.#withCredentials}#connect(){if(this.#readyState===2)return;this.#readyState=0;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?`failure`:parseMIMEType$1(contentType),contentTypeValid=mimeType!==`failure`&&mimeType.essence===`text/event-stream`;if(response.status!==200||contentTypeValid===!1){this.close(),this.dispatchEvent(new Event(`error`));return}this.#readyState=1,this.dispatchEvent(new Event(`open`)),this.#state.origin=response.urlList[response.urlList.length-1].origin;let eventSourceStream=new EventSourceStream({eventSourceSettings:this.#state,push:event=>{this.dispatchEvent(createFastMessageEvent(event.type,event.options))}});pipeline$1(response.body.stream,eventSourceStream,error$65=>{error$65?.aborted===!1&&(this.close(),this.dispatchEvent(new Event(`error`)))})},this.#controller=fetching(fetchParams)}#reconnect(){this.#readyState!==2&&(this.#readyState=0,this.dispatchEvent(new Event(`error`)),setTimeout(()=>{this.#readyState===0&&(this.#state.lastEventId.length&&this.#request.headersList.set(`last-event-id`,this.#state.lastEventId,!0),this.#connect())},this.#state.reconnectionTime)?.unref())}close(){webidl.brandCheck(this,EventSource$1),this.#readyState!==2&&(this.#readyState=2,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.#events.open=null:(this.addEventListener(`open`,listener),this.#events.open=fn)}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.#events.message=null:(this.addEventListener(`message`,listener),this.#events.message=fn)}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.#events.error=null:(this.addEventListener(`error`,listener),this.#events.error=fn)}};let constantsPropertyDescriptors={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:0,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:1,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:2,writable:!1}};Object.defineProperties(EventSource$1,constantsPropertyDescriptors),Object.defineProperties(EventSource$1.prototype,constantsPropertyDescriptors),Object.defineProperties(EventSource$1.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},{key:`node`,converter:webidl.dictionaryConverter([{key:`reconnectionTime`,converter:webidl.converters[`unsigned long`],defaultValue:()=>defaultReconnectionTime},{key:`dispatcher`,converter:webidl.converters.any}]),defaultValue:()=>({})}]),module.exports={EventSource:EventSource$1,defaultReconnectionTime}})),require_undici=__commonJSMin(((exports,module)=>{let Client$2=require_client(),Dispatcher=require_dispatcher(),Pool=require_pool(),BalancedPool=require_balanced_pool(),Agent=require_agent(),ProxyAgent$2=require_proxy_agent(),EnvHttpProxyAgent$1=require_env_http_proxy_agent(),RetryAgent=require_retry_agent(),H2CClient=require_h2c_client(),errors=require_errors(),util$1=require_util$5(),{InvalidArgumentError:InvalidArgumentError$1}=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:setGlobalDispatcher$2}=require_global(),DecoratorHandler=require_decorator_handler(),RedirectHandler=require_redirect_handler();Object.assign(Dispatcher.prototype,api),module.exports.Dispatcher=Dispatcher,module.exports.Client=Client$2,module.exports.Pool=Pool,module.exports.BalancedPool=BalancedPool,module.exports.Agent=Agent,module.exports.ProxyAgent=ProxyAgent$2,module.exports.EnvHttpProxyAgent=EnvHttpProxyAgent$1,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_cache$1(),decompress:require_decompress()},module.exports.cacheStores={MemoryCacheStore:require_memory_cache_store()};let SqliteCacheStore=require_sqlite_cache_store();module.exports.cacheStores.SqliteCacheStore=SqliteCacheStore,module.exports.buildConnector=buildConnector,module.exports.errors=errors,module.exports.util={parseHeaders:util$1.parseHeaders,headerNameToString:util$1.headerNameToString};function makeDispatcher(fn){return(url$4,opts,handler)=>{if(typeof opts==`function`&&(handler=opts,opts=null),!url$4||typeof url$4!=`string`&&typeof url$4!=`object`&&!(url$4 instanceof URL))throw new InvalidArgumentError$1(`invalid url`);if(opts!=null&&typeof opts!=`object`)throw new InvalidArgumentError$1(`invalid opts`);if(opts&&opts.path!=null){if(typeof opts.path!=`string`)throw new InvalidArgumentError$1(`invalid opts.path`);let path$38=opts.path;opts.path.startsWith(`/`)||(path$38=`/${path$38}`),url$4=new URL(util$1.parseOrigin(url$4).origin+path$38)}else opts||=typeof url$4==`object`?url$4:{},url$4=util$1.parseURL(url$4);let{agent,dispatcher=getGlobalDispatcher()}=opts;if(agent)throw new InvalidArgumentError$1(`unsupported opts.agent. Did you mean opts.client?`);return fn.call(dispatcher,{...opts,origin:url$4.origin,path:url$4.search?`${url$4.pathname}${url$4.search}`:url$4.pathname,method:opts.method||(opts.body?`PUT`:`GET`)},handler)}}module.exports.setGlobalDispatcher=setGlobalDispatcher$2,module.exports.getGlobalDispatcher=getGlobalDispatcher;let fetchImpl=require_fetch$1().fetch;module.exports.fetch=function(init$4,options$1=void 0){return fetchImpl(init$4,options$1).catch(err$1=>{throw err$1&&typeof err$1==`object`&&Error.captureStackTrace(err$1),err$1})},module.exports.Headers=require_headers().Headers,module.exports.Response=require_response().Response,module.exports.Request=require_request().Request,module.exports.FormData=require_formdata().FormData;let{setGlobalOrigin,getGlobalOrigin}=require_global$1();module.exports.setGlobalOrigin=setGlobalOrigin,module.exports.getGlobalOrigin=getGlobalOrigin;let{CacheStorage}=require_cachestorage(),{kConstruct}=require_symbols$1();module.exports.caches=new CacheStorage(kConstruct);let{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;let{parseMIMEType,serializeAMimeType}=require_data_url();module.exports.parseMIMEType=parseMIMEType,module.exports.serializeAMimeType=serializeAMimeType;let{CloseEvent,ErrorEvent,MessageEvent:MessageEvent$1}=require_events(),{WebSocket:WebSocket$1,ping}=require_websocket();module.exports.WebSocket=WebSocket$1,module.exports.CloseEvent=CloseEvent,module.exports.ErrorEvent=ErrorEvent,module.exports.MessageEvent=MessageEvent$1,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;let{EventSource}=require_eventsource();module.exports.EventSource=EventSource;function install(){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=install})),import_undici$2=__toESM(require_undici(),1);const logger={debug:(...args)=>console.debug(`[DEBUG] [IDEClient]`,...args),error:(...args)=>console.error(`[ERROR] [IDEClient]`,...args)};var IDEConnectionStatus;(function(IDEConnectionStatus$1){IDEConnectionStatus$1.Connected=`connected`,IDEConnectionStatus$1.Disconnected=`disconnected`,IDEConnectionStatus$1.Connecting=`connecting`})(IDEConnectionStatus||={});function getRealPath(path$38){try{return fs$5.realpathSync(path$38)}catch{return path$38}}var IdeClient=class IdeClient{static instancePromise=null;client=void 0;state={status:IDEConnectionStatus.Disconnected,details:`IDE integration is currently disabled. To enable it, run /ide enable.`};currentIde;currentIdeDisplayName;ideProcessInfo;diffResponses=new Map;statusListeners=new Set;trustChangeListeners=new Set;diffMutex=Promise.resolve();constructor(){}static getInstance(){return IdeClient.instancePromise||=(async()=>{let client=new IdeClient;return client.ideProcessInfo=await getIdeProcessInfo(),client.currentIde=detectIde(client.ideProcessInfo),client.currentIde&&(client.currentIdeDisplayName=getIdeInfo(client.currentIde).displayName),client})(),IdeClient.instancePromise}addStatusChangeListener(listener){this.statusListeners.add(listener)}removeStatusChangeListener(listener){this.statusListeners.delete(listener)}addTrustChangeListener(listener){this.trustChangeListeners.add(listener)}removeTrustChangeListener(listener){this.trustChangeListeners.delete(listener)}async connect(){if(!this.currentIde||!this.currentIdeDisplayName){this.setState(IDEConnectionStatus.Disconnected,`IDE integration is not supported in your current environment. To use this feature, run Gemini CLI in one of these supported IDEs: VS Code or VS Code forks`,!1);return}this.setState(IDEConnectionStatus.Connecting);let configFromFile=await this.getConnectionConfigFromFile(),workspacePath=configFromFile?.workspacePath??process.env.GEMINI_CLI_IDE_WORKSPACE_PATH,{isValid:isValid$1,error:error$65}=IdeClient.validateWorkspacePath(workspacePath,this.currentIdeDisplayName,process.cwd());if(!isValid$1){this.setState(IDEConnectionStatus.Disconnected,error$65,!0);return}if(configFromFile){if(configFromFile.port){let connected=await this.establishHttpConnection(configFromFile.port);if(connected)return}if(configFromFile.stdio){let connected=await this.establishStdioConnection(configFromFile.stdio);if(connected)return}}let portFromEnv=this.getPortFromEnv();if(portFromEnv){let connected=await this.establishHttpConnection(portFromEnv);if(connected)return}let stdioConfigFromEnv=this.getStdioConfigFromEnv();if(stdioConfigFromEnv){let connected=await this.establishStdioConnection(stdioConfigFromEnv);if(connected)return}this.setState(IDEConnectionStatus.Disconnected,`Failed to connect to IDE companion extension in ${this.currentIdeDisplayName}. Please ensure the extension is running. To install the extension, run /ide install.`,!0)}async openDiff(filePath,newContent){let release=await this.acquireMutex(),promise$2=new Promise((resolve$10,reject)=>{if(!this.client)return reject(Error(`IDE client is not connected.`));this.diffResponses.set(filePath,resolve$10),this.client.callTool({name:`openDiff`,arguments:{filePath,newContent}}).catch(err$1=>{logger.debug(`callTool for ${filePath} failed:`,err$1),this.diffResponses.delete(filePath),reject(err$1)})});return promise$2.finally(release),promise$2}acquireMutex(){let release,newMutex=new Promise(resolve$10=>{release=resolve$10}),oldMutex=this.diffMutex;return this.diffMutex=newMutex,oldMutex.then(()=>release)}async closeDiff(filePath,options$1){try{let result=await this.client?.callTool({name:`closeDiff`,arguments:{filePath,suppressNotification:options$1?.suppressNotification}});if(result){let parsed=CloseDiffResponseSchema.parse(result);return parsed.content}}catch(err$1){logger.debug(`callTool for ${filePath} failed:`,err$1)}}async resolveDiffFromCli(filePath,outcome){let resolver=this.diffResponses.get(filePath),content=await this.closeDiff(filePath,{suppressNotification:!0});resolver&&(resolver(outcome===`accepted`?{status:`accepted`,content}:{status:`rejected`,content:void 0}),this.diffResponses.delete(filePath))}async disconnect(){if(this.state.status!==IDEConnectionStatus.Disconnected){for(let filePath of this.diffResponses.keys())await this.closeDiff(filePath);this.diffResponses.clear(),this.setState(IDEConnectionStatus.Disconnected,`IDE integration disabled. To enable it again, run /ide enable.`),this.client?.close()}}getCurrentIde(){return this.currentIde}getConnectionStatus(){return this.state}getDetectedIdeDisplayName(){return this.currentIdeDisplayName}setState(status,details,logToConsole=!1){let isAlreadyDisconnected=this.state.status===IDEConnectionStatus.Disconnected&&status===IDEConnectionStatus.Disconnected;if(!isAlreadyDisconnected){this.state={status,details};for(let listener of this.statusListeners)listener(this.state);details&&(logToConsole?logger.error(details):logger.debug(details))}status===IDEConnectionStatus.Disconnected&&ideContext.clearIdeContext()}static validateWorkspacePath(ideWorkspacePath,currentIdeDisplayName,cwd$3){if(ideWorkspacePath===void 0)return{isValid:!1,error:`Failed to connect to IDE companion extension in ${currentIdeDisplayName}. Please ensure the extension is running. To install the extension, run /ide install.`};if(ideWorkspacePath===``)return{isValid:!1,error:`To use this feature, please open a workspace folder in ${currentIdeDisplayName} and try again.`};let ideWorkspacePaths=ideWorkspacePath.split(path$6.delimiter),realCwd=getRealPath(cwd$3),isWithinWorkspace=ideWorkspacePaths.some(workspacePath=>{let idePath=getRealPath(workspacePath);return isSubpath(idePath,realCwd)});return isWithinWorkspace?{isValid:!0}:{isValid:!1,error:`Directory mismatch. Gemini CLI is running in a different location than the open workspace in ${currentIdeDisplayName}. Please run the CLI from one of the following directories: ${ideWorkspacePaths.join(`, `)}`}}getPortFromEnv(){let port$1=process.env.GEMINI_CLI_IDE_SERVER_PORT;if(port$1)return port$1}getStdioConfigFromEnv(){let command=process.env.GEMINI_CLI_IDE_SERVER_STDIO_COMMAND;if(!command)return;let argsStr=process.env.GEMINI_CLI_IDE_SERVER_STDIO_ARGS,args=[];if(argsStr)try{let parsedArgs=JSON.parse(argsStr);Array.isArray(parsedArgs)?args=parsedArgs:logger.error(`GEMINI_CLI_IDE_SERVER_STDIO_ARGS must be a JSON array string.`)}catch(e$2){logger.error(`Failed to parse GEMINI_CLI_IDE_SERVER_STDIO_ARGS:`,e$2)}return{command,args}}async getConnectionConfigFromFile(){if(!this.ideProcessInfo)return;try{let portFile=path$6.join(os$4.tmpdir(),`gemini-ide-server-${this.ideProcessInfo.pid}.json`),portFileContents=await fs$5.promises.readFile(portFile,`utf8`);return JSON.parse(portFileContents)}catch{}let portFileDir=path$6.join(os$4.tmpdir(),`.gemini`,`ide`),portFiles;try{portFiles=await fs$5.promises.readdir(portFileDir)}catch(e$2){logger.debug(`Failed to read IDE connection directory:`,e$2);return}let fileRegex=RegExp(`^gemini-ide-server-${this.ideProcessInfo.pid}-\\d+\\.json$`),matchingFiles=portFiles.filter(file$1=>fileRegex.test(file$1)).sort();if(matchingFiles.length===0)return;let fileContents;try{fileContents=await Promise.all(matchingFiles.map(file$1=>fs$5.promises.readFile(path$6.join(portFileDir,file$1),`utf8`)))}catch(e$2){logger.debug(`Failed to read IDE connection config file(s):`,e$2);return}let parsedContents=fileContents.map(content=>{try{return JSON.parse(content)}catch(e$2){logger.debug(`Failed to parse JSON from config file: `,e$2);return}}),validWorkspaces=parsedContents.filter(content=>{if(!content)return!1;let{isValid:isValid$1}=IdeClient.validateWorkspacePath(content.workspacePath,this.currentIdeDisplayName,process.cwd());return isValid$1});if(validWorkspaces.length===0)return;if(validWorkspaces.length===1)return validWorkspaces[0];let portFromEnv=this.getPortFromEnv();if(portFromEnv){let matchingPort=validWorkspaces.find(content=>content.port===portFromEnv);if(matchingPort)return matchingPort}return validWorkspaces[0]}createProxyAwareFetch(){let existingNoProxy=process.env.NO_PROXY||``,agent=new import_undici$2.EnvHttpProxyAgent({noProxy:[existingNoProxy,`localhost`].filter(Boolean).join(`,`)}),undiciPromise=Promise.resolve().then(()=>__toESM(require_undici(),1));return async(url$4,init$4)=>{let{fetch:fetchFn}=await undiciPromise,fetchOptions={...init$4,dispatcher:agent},options$1=fetchOptions,response=await fetchFn(url$4,options$1);return new Response(response.body,{status:response.status,statusText:response.statusText,headers:response.headers})}}registerClientHandlers(){this.client&&(this.client.setNotificationHandler(IdeContextNotificationSchema,notification=>{ideContext.setIdeContext(notification.params);let isTrusted=notification.params.workspaceState?.isTrusted;if(isTrusted!==void 0)for(let listener of this.trustChangeListeners)listener(isTrusted)}),this.client.onerror=_error$1=>{this.setState(IDEConnectionStatus.Disconnected,`IDE connection error. The connection was lost unexpectedly. Please try reconnecting by running /ide enable`,!0)},this.client.onclose=()=>{this.setState(IDEConnectionStatus.Disconnected,`IDE connection error. The connection was lost unexpectedly. Please try reconnecting by running /ide enable`,!0)},this.client.setNotificationHandler(IdeDiffAcceptedNotificationSchema,notification=>{let{filePath,content}=notification.params,resolver=this.diffResponses.get(filePath);resolver?(resolver({status:`accepted`,content}),this.diffResponses.delete(filePath)):logger.debug(`No resolver found for ${filePath}`)}),this.client.setNotificationHandler(IdeDiffClosedNotificationSchema,notification=>{let{filePath}=notification.params,resolver=this.diffResponses.get(filePath);resolver?(resolver({status:`rejected`,content:void 0}),this.diffResponses.delete(filePath)):logger.debug(`No resolver found for ${filePath}`)}))}async establishHttpConnection(port$1){let transport;try{return logger.debug(`Attempting to connect to IDE via HTTP SSE`),this.client=new Client$1({name:`streamable-http-client`,version:`1.0.0`}),transport=new StreamableHTTPClientTransport(new URL(`http://${getIdeServerHost()}:${port$1}/mcp`),{fetch:this.createProxyAwareFetch()}),await this.client.connect(transport),this.registerClientHandlers(),this.setState(IDEConnectionStatus.Connected),!0}catch{if(transport)try{await transport.close()}catch(closeError){logger.debug(`Failed to close transport:`,closeError)}return!1}}async establishStdioConnection({command,args}){let transport;try{return logger.debug(`Attempting to connect to IDE via stdio`),this.client=new Client$1({name:`stdio-client`,version:`1.0.0`}),transport=new StdioClientTransport({command,args}),await this.client.connect(transport),this.registerClientHandlers(),this.setState(IDEConnectionStatus.Connected),!0}catch{if(transport)try{await transport.close()}catch(closeError){logger.debug(`Failed to close transport:`,closeError)}return!1}}};function getIdeServerHost(){let isInContainer=fs$5.existsSync(`/.dockerenv`)||fs$5.existsSync(`/run/.containerenv`);return isInContainer?`host.docker.internal`:`localhost`}async function getCorrectedFileContent(config$3,filePath,proposedContent,abortSignal){let originalContent=``,fileExists$1=!1,correctedContent=proposedContent;try{originalContent=await config$3.getFileSystemService().readTextFile(filePath),fileExists$1=!0}catch(err$1){if(isNodeError(err$1)&&err$1.code===`ENOENT`)fileExists$1=!1,originalContent=``;else{fileExists$1=!0,originalContent=``;let error$65={message:getErrorMessage$2(err$1),code:isNodeError(err$1)?err$1.code:void 0};return{originalContent,correctedContent,fileExists:fileExists$1,error:error$65}}}if(fileExists$1){let{params:correctedParams}=await ensureCorrectEdit(filePath,originalContent,{old_string:originalContent,new_string:proposedContent,file_path:filePath},config$3.getGeminiClient(),abortSignal);correctedContent=correctedParams.new_string}else correctedContent=await ensureCorrectFileContent(proposedContent,config$3.getGeminiClient(),abortSignal);return{originalContent,correctedContent,fileExists:fileExists$1}}var WriteFileToolInvocation=class extends BaseToolInvocation{config;constructor(config$3,params){super(params),this.config=config$3}toolLocations(){return[{path:this.params.file_path}]}getDescription(){let relativePath=makeRelative(this.params.file_path,this.config.getTargetDir());return`Writing to ${shortenPath(relativePath)}`}async shouldConfirmExecute(abortSignal){if(this.config.getApprovalMode()===ApprovalMode.AUTO_EDIT)return!1;let correctedContentResult=await getCorrectedFileContent(this.config,this.params.file_path,this.params.content,abortSignal);if(correctedContentResult.error)return!1;let{originalContent,correctedContent}=correctedContentResult,relativePath=makeRelative(this.params.file_path,this.config.getTargetDir()),fileName=path.basename(this.params.file_path),fileDiff=createPatch(fileName,originalContent,correctedContent,`Current`,`Proposed`,DEFAULT_DIFF_OPTIONS),ideClient=await IdeClient.getInstance(),ideConfirmation=this.config.getIdeMode()&&ideClient.getConnectionStatus().status===IDEConnectionStatus.Connected?ideClient.openDiff(this.params.file_path,correctedContent):void 0,confirmationDetails={type:`edit`,title:`Confirm Write: ${shortenPath(relativePath)}`,fileName,filePath:this.params.file_path,fileDiff,originalContent,newContent:correctedContent,onConfirm:async outcome=>{if(outcome===ToolConfirmationOutcome.ProceedAlways&&this.config.setApprovalMode(ApprovalMode.AUTO_EDIT),ideConfirmation){let result=await ideConfirmation;result.status===`accepted`&&result.content&&(this.params.content=result.content)}},ideConfirmation};return confirmationDetails}async execute(abortSignal){let{file_path,content,ai_proposed_content,modified_by_user}=this.params,correctedContentResult=await getCorrectedFileContent(this.config,file_path,content,abortSignal);if(correctedContentResult.error){let errDetails=correctedContentResult.error,errorMsg=errDetails.code?`Error checking existing file '${file_path}': ${errDetails.message} (${errDetails.code})`:`Error checking existing file: ${errDetails.message}`;return{llmContent:errorMsg,returnDisplay:errorMsg,error:{message:errorMsg,type:ToolErrorType.FILE_WRITE_FAILURE}}}let{originalContent,correctedContent:fileContent,fileExists:fileExists$1}=correctedContentResult,isNewFile=!fileExists$1||correctedContentResult.error!==void 0&&!correctedContentResult.fileExists;try{let dirName=path.dirname(file_path);fs.existsSync(dirName)||fs.mkdirSync(dirName,{recursive:!0}),await this.config.getFileSystemService().writeTextFile(file_path,fileContent);let fileName=path.basename(file_path),currentContentForDiff=correctedContentResult.error?``:originalContent,fileDiff=createPatch(fileName,currentContentForDiff,fileContent,`Original`,`Written`,DEFAULT_DIFF_OPTIONS),originallyProposedContent=ai_proposed_content||content,diffStat=getDiffStat(fileName,currentContentForDiff,originallyProposedContent,content),llmSuccessMessageParts=[isNewFile?`Successfully created and wrote to new file: ${file_path}.`:`Successfully overwrote file: ${file_path}.`];modified_by_user&&llmSuccessMessageParts.push(`User modified the \`content\` to be: ${content}`);let mimetype=getSpecificMimeType(file_path),programmingLanguage=getLanguageFromFilePath(file_path),extension$1=path.extname(file_path),operation=isNewFile?FileOperation.CREATE:FileOperation.UPDATE;logFileOperation(this.config,new FileOperationEvent(WriteFileTool.Name,operation,fileContent.split(`
|
|
1135
|
+
`)}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$4=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.cachedAt,value.staleAt,existingValue.id):(this.#prune(),this.#insertValueQuery.run(url$4,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))}createWriteStream(key,value){assertCacheKey(key),assertCacheValue(value);let size=0,body=[],store=this;return new Writable$2({decodeStrings:!0,write(chunk$1,encoding,callback$1){size+=chunk$1.byteLength,size<store.#maxEntrySize?body.push(chunk$1):this.destroy(),callback$1()},final(callback$1){store.set(key,{...value,body}),callback$1()}})}delete(key){if(typeof key!=`object`)throw 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$4=this.#makeValueUrl(key),{headers:headers$2,method}=key,values=this.#getValuesQuery.all(url$4,method);if(values.length===0)return;let now$1=Date.now();for(let value of values){if(now$1>=value.deleteAt&&!canBeExpired)return;let matches=!0;if(value.vary){let vary=JSON.parse(value.vary);for(let header in vary)if(!headerValueEquals(headers$2[header],vary[header])){matches=!1;break}}if(matches)return value}}};function headerValueEquals(lhs,rhs){return lhs==null&&rhs==null?!0:lhs==null&&rhs!=null||lhs!=null&&rhs==null?!1:Array.isArray(lhs)&&Array.isArray(rhs)?lhs.length===rhs.length?lhs.every((x$4,i$5)=>x$4===rhs[i$5]):!1:lhs===rhs}})),require_headers=__commonJSMin(((exports,module)=>{let{kConstruct:kConstruct$7}=require_symbols$1(),{kEnumerableProperty:kEnumerableProperty$9}=require_util$5(),{iteratorMixin,isValidHeaderName:isValidHeaderName$1,isValidHeaderValue}=require_util$4(),{webidl:webidl$11}=require_webidl(),assert$10=__require$1(`node:assert`),util$4=__require$1(`node:util`);function isHTTPWhiteSpaceCharCode(code$1){return code$1===10||code$1===13||code$1===9||code$1===32}function headerValueNormalize(potentialValue){let i$5=0,j$2=potentialValue.length;for(;j$2>i$5&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j$2-1));)--j$2;for(;j$2>i$5&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i$5));)++i$5;return i$5===0&&j$2===potentialValue.length?potentialValue:potentialValue.substring(i$5,j$2)}function fill$1(headers$2,object$5){if(Array.isArray(object$5))for(let i$5=0;i$5<object$5.length;++i$5){let header=object$5[i$5];if(header.length!==2)throw webidl$11.errors.exception({header:`Headers constructor`,message:`expected name/value pair to be length 2, found ${header.length}.`});appendHeader(headers$2,header[0],header[1])}else if(typeof object$5==`object`&&object$5){let keys=Object.keys(object$5);for(let i$5=0;i$5<keys.length;++i$5)appendHeader(headers$2,keys[i$5],object$5[keys[i$5]])}else throw webidl$11.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})}function appendHeader(headers$2,name$7,value){if(value=headerValueNormalize(value),isValidHeaderName$1(name$7)){if(!isValidHeaderValue(value))throw webidl$11.errors.invalidArgument({prefix:`Headers.append`,value,type:`header value`})}else throw webidl$11.errors.invalidArgument({prefix:`Headers.append`,value:name$7,type:`header name`});if(getHeadersGuard$2(headers$2)===`immutable`)throw TypeError(`immutable`);return getHeadersList$2(headers$2).append(name$7,value,!1)}function headersListSortAndCombine(target){let headersList=getHeadersList$2(target);if(!headersList)return[];if(headersList.sortedMap)return headersList.sortedMap;let headers$2=[],names$1=headersList.toSortedArray(),cookies=headersList.cookies;if(cookies===null||cookies.length===1)return headersList.sortedMap=names$1;for(let i$5=0;i$5<names$1.length;++i$5){let{0:name$7,1:value}=names$1[i$5];if(name$7===`set-cookie`)for(let j$2=0;j$2<cookies.length;++j$2)headers$2.push([name$7,cookies[j$2]]);else headers$2.push([name$7,value])}return headersList.sortedMap=headers$2}function compareHeaderName(a$3,b$4){return a$3[0]<b$4[0]?-1:1}var HeadersList$3=class HeadersList$3{cookies=null;sortedMap;headersMap;constructor(init$4){init$4 instanceof HeadersList$3?(this.headersMap=new Map(init$4.headersMap),this.sortedMap=init$4.sortedMap,this.cookies=init$4.cookies===null?null:[...init$4.cookies]):(this.headersMap=new Map(init$4),this.sortedMap=null)}contains(name$7,isLowerCase){return this.headersMap.has(isLowerCase?name$7:name$7.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(name$7,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name$7:name$7.toLowerCase(),exists$3=this.headersMap.get(lowercaseName);if(exists$3){let delimiter=lowercaseName===`cookie`?`; `:`, `;this.headersMap.set(lowercaseName,{name:exists$3.name,value:`${exists$3.value}${delimiter}${value}`})}else this.headersMap.set(lowercaseName,{name:name$7,value});lowercaseName===`set-cookie`&&(this.cookies??=[]).push(value)}set(name$7,value,isLowerCase){this.sortedMap=null;let lowercaseName=isLowerCase?name$7:name$7.toLowerCase();lowercaseName===`set-cookie`&&(this.cookies=[value]),this.headersMap.set(lowercaseName,{name:name$7,value})}delete(name$7,isLowerCase){this.sortedMap=null,isLowerCase||(name$7=name$7.toLowerCase()),name$7===`set-cookie`&&(this.cookies=null),this.headersMap.delete(name$7)}get(name$7,isLowerCase){return this.headersMap.get(isLowerCase?name$7:name$7.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:name$7,1:{value}}of this.headersMap)yield[name$7,value]}get entries(){let headers$2={};if(this.headersMap.size!==0)for(let{name:name$7,value}of this.headersMap.values())headers$2[name$7]=value;return headers$2}rawValues(){return this.headersMap.values()}get entriesList(){let headers$2=[];if(this.headersMap.size!==0)for(let{0:lowerName,1:{name:name$7,value}}of this.headersMap)if(lowerName===`set-cookie`)for(let cookie of this.cookies)headers$2.push([name$7,cookie]);else headers$2.push([name$7,value]);return headers$2}toSortedArray(){let size=this.headersMap.size,array$2=Array(size);if(size<=32){if(size===0)return array$2;let iterator=this.headersMap[Symbol.iterator](),firstValue=iterator.next().value;array$2[0]=[firstValue[0],firstValue[1].value],assert$10(firstValue[1].value!==null);for(let i$5=1,j$2=0,right$1=0,left$1=0,pivot=0,x$4,value;i$5<size;++i$5){for(value=iterator.next().value,x$4=array$2[i$5]=[value[0],value[1].value],assert$10(x$4[1]!==null),left$1=0,right$1=i$5;left$1<right$1;)pivot=left$1+(right$1-left$1>>1),array$2[pivot][0]<=x$4[0]?left$1=pivot+1:right$1=pivot;if(i$5!==pivot){for(j$2=i$5;j$2>left$1;)array$2[j$2]=array$2[--j$2];array$2[left$1]=x$4}}if(!iterator.next().done)throw TypeError(`Unreachable`);return array$2}else{let i$5=0;for(let{0:name$7,1:{value}}of this.headersMap)array$2[i$5++]=[name$7,value],assert$10(value!==null);return array$2.sort(compareHeaderName)}}},Headers$5=class Headers$5{#guard;#headersList;constructor(init$4=void 0){webidl$11.util.markAsUncloneable(this),init$4!==kConstruct$7&&(this.#headersList=new HeadersList$3,this.#guard=`none`,init$4!==void 0&&(init$4=webidl$11.converters.HeadersInit(init$4,`Headers constructor`,`init`),fill$1(this,init$4)))}append(name$7,value){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,2,`Headers.append`);let prefix=`Headers.append`;return name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),value=webidl$11.converters.ByteString(value,prefix,`value`),appendHeader(this,name$7,value)}delete(name$7){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,1,`Headers.delete`);let prefix=`Headers.delete`;if(name$7=webidl$11.converters.ByteString(name$7,`Headers.delete`,`name`),!isValidHeaderName$1(name$7))throw webidl$11.errors.invalidArgument({prefix:`Headers.delete`,value:name$7,type:`header name`});if(this.#guard===`immutable`)throw TypeError(`immutable`);this.#headersList.contains(name$7,!1)&&this.#headersList.delete(name$7,!1)}get(name$7){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,1,`Headers.get`);let prefix=`Headers.get`;if(name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),!isValidHeaderName$1(name$7))throw webidl$11.errors.invalidArgument({prefix,value:name$7,type:`header name`});return this.#headersList.get(name$7,!1)}has(name$7){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,1,`Headers.has`);let prefix=`Headers.has`;if(name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),!isValidHeaderName$1(name$7))throw webidl$11.errors.invalidArgument({prefix,value:name$7,type:`header name`});return this.#headersList.contains(name$7,!1)}set(name$7,value){webidl$11.brandCheck(this,Headers$5),webidl$11.argumentLengthCheck(arguments,2,`Headers.set`);let prefix=`Headers.set`;if(name$7=webidl$11.converters.ByteString(name$7,prefix,`name`),value=webidl$11.converters.ByteString(value,prefix,`value`),value=headerValueNormalize(value),isValidHeaderName$1(name$7)){if(!isValidHeaderValue(value))throw webidl$11.errors.invalidArgument({prefix,value,type:`header value`})}else throw webidl$11.errors.invalidArgument({prefix,value:name$7,type:`header name`});if(this.#guard===`immutable`)throw TypeError(`immutable`);this.#headersList.set(name$7,value,!1)}getSetCookie(){webidl$11.brandCheck(this,Headers$5);let list$2=this.#headersList.cookies;return list$2?[...list$2]:[]}[util$4.inspect.custom](depth$1,options$1){return options$1.depth??=depth$1,`Headers ${util$4.formatWithOptions(options$1,this.#headersList.entries)}`}static getHeadersGuard(o$3){return o$3.#guard}static setHeadersGuard(o$3,guard){o$3.#guard=guard}static getHeadersList(o$3){return o$3.#headersList}static setHeadersList(target,list$2){target.#headersList=list$2}};let{getHeadersGuard:getHeadersGuard$2,setHeadersGuard:setHeadersGuard$2,getHeadersList:getHeadersList$2,setHeadersList:setHeadersList$2}=Headers$5;Reflect.deleteProperty(Headers$5,`getHeadersGuard`),Reflect.deleteProperty(Headers$5,`setHeadersGuard`),Reflect.deleteProperty(Headers$5,`getHeadersList`),Reflect.deleteProperty(Headers$5,`setHeadersList`),iteratorMixin(`Headers`,Headers$5,headersListSortAndCombine,0,1),Object.defineProperties(Headers$5.prototype,{append:kEnumerableProperty$9,delete:kEnumerableProperty$9,get:kEnumerableProperty$9,has:kEnumerableProperty$9,set:kEnumerableProperty$9,getSetCookie:kEnumerableProperty$9,[Symbol.toStringTag]:{value:`Headers`,configurable:!0},[util$4.inspect.custom]:{enumerable:!1}}),webidl$11.converters.HeadersInit=function(V$5,prefix,argument){if(webidl$11.util.Type(V$5)===webidl$11.util.Types.OBJECT){let iterator=Reflect.get(V$5,Symbol.iterator);if(!util$4.types.isProxy(V$5)&&iterator===Headers$5.prototype.entries)try{return getHeadersList$2(V$5).entriesList}catch{}return typeof iterator==`function`?webidl$11.converters[`sequence<sequence<ByteString>>`](V$5,prefix,argument,iterator.bind(V$5)):webidl$11.converters[`record<ByteString, ByteString>`](V$5,prefix,argument)}throw webidl$11.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})},module.exports={fill:fill$1,compareHeaderName,Headers:Headers$5,HeadersList:HeadersList$3,getHeadersGuard:getHeadersGuard$2,setHeadersGuard:setHeadersGuard$2,setHeadersList:setHeadersList$2,getHeadersList:getHeadersList$2}})),require_response=__commonJSMin(((exports,module)=>{let{Headers:Headers$4,HeadersList:HeadersList$2,fill,getHeadersGuard:getHeadersGuard$1,setHeadersGuard:setHeadersGuard$1,setHeadersList:setHeadersList$1}=require_headers(),{extractBody:extractBody$2,cloneBody:cloneBody$1,mixinBody:mixinBody$1,streamRegistry,bodyUnusable:bodyUnusable$1}=require_body(),util$3=require_util$5(),nodeUtil$1=__require$1(`node:util`),{kEnumerableProperty:kEnumerableProperty$8}=util$3,{isValidReasonPhrase,isCancelled:isCancelled$1,isAborted:isAborted$2,serializeJavascriptValueToJSONString,isErrorLike:isErrorLike$1,isomorphicEncode:isomorphicEncode$1,environmentSettingsObject:relevantRealm}=require_util$4(),{redirectStatusSet:redirectStatusSet$1,nullBodyStatus:nullBodyStatus$1}=require_constants$3(),{webidl:webidl$10}=require_webidl(),{URLSerializer:URLSerializer$3}=require_data_url(),{kConstruct:kConstruct$6}=require_symbols$1(),assert$9=__require$1(`node:assert`),textEncoder=new TextEncoder(`utf-8`);var Response$1=class Response$1{#headers;#state;static error(){let responseObject=fromInnerResponse$2(makeNetworkError$1(),`immutable`);return responseObject}static json(data$2,init$4=void 0){webidl$10.argumentLengthCheck(arguments,1,`Response.json`),init$4!==null&&(init$4=webidl$10.converters.ResponseInit(init$4));let bytes=textEncoder.encode(serializeJavascriptValueToJSONString(data$2)),body=extractBody$2(bytes),responseObject=fromInnerResponse$2(makeResponse$1({}),`response`);return initializeResponse(responseObject,init$4,{body:body[0],type:`application/json`}),responseObject}static redirect(url$4,status=302){webidl$10.argumentLengthCheck(arguments,1,`Response.redirect`),url$4=webidl$10.converters.USVString(url$4),status=webidl$10.converters[`unsigned short`](status);let parsedURL;try{parsedURL=new URL(url$4,relevantRealm.settingsObject.baseUrl)}catch(err$1){throw TypeError(`Failed to parse URL from ${url$4}`,{cause:err$1})}if(!redirectStatusSet$1.has(status))throw RangeError(`Invalid status code ${status}`);let responseObject=fromInnerResponse$2(makeResponse$1({}),`immutable`);responseObject.#state.status=status;let value=isomorphicEncode$1(URLSerializer$3(parsedURL));return responseObject.#state.headersList.append(`location`,value,!0),responseObject}constructor(body=null,init$4=void 0){if(webidl$10.util.markAsUncloneable(this),body===kConstruct$6)return;body!==null&&(body=webidl$10.converters.BodyInit(body,`Response`,`body`)),init$4=webidl$10.converters.ResponseInit(init$4),this.#state=makeResponse$1({}),this.#headers=new Headers$4(kConstruct$6),setHeadersGuard$1(this.#headers,`response`),setHeadersList$1(this.#headers,this.#state.headersList);let bodyWithType=null;if(body!=null){let[extractedBody,type]=extractBody$2(body);bodyWithType={body:extractedBody,type}}initializeResponse(this,init$4,bodyWithType)}get type(){return webidl$10.brandCheck(this,Response$1),this.#state.type}get url(){webidl$10.brandCheck(this,Response$1);let urlList=this.#state.urlList,url$4=urlList[urlList.length-1]??null;return url$4===null?``:URLSerializer$3(url$4,!0)}get redirected(){return webidl$10.brandCheck(this,Response$1),this.#state.urlList.length>1}get status(){return webidl$10.brandCheck(this,Response$1),this.#state.status}get ok(){return webidl$10.brandCheck(this,Response$1),this.#state.status>=200&&this.#state.status<=299}get statusText(){return webidl$10.brandCheck(this,Response$1),this.#state.statusText}get headers(){return webidl$10.brandCheck(this,Response$1),this.#headers}get body(){return webidl$10.brandCheck(this,Response$1),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl$10.brandCheck(this,Response$1),!!this.#state.body&&util$3.isDisturbed(this.#state.body.stream)}clone(){if(webidl$10.brandCheck(this,Response$1),bodyUnusable$1(this.#state))throw webidl$10.errors.exception({header:`Response.clone`,message:`Body has already been consumed.`});let clonedResponse=cloneResponse$1(this.#state);return this.#state.body?.stream&&streamRegistry.register(this,new WeakRef(this.#state.body.stream)),fromInnerResponse$2(clonedResponse,getHeadersGuard$1(this.#headers))}[nodeUtil$1.inspect.custom](depth$1,options$1){options$1.depth===null&&(options$1.depth=2),options$1.colors??=!0;let properties$1={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$1.formatWithOptions(options$1,properties$1)}`}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}};let{getResponseHeaders,setResponseHeaders,getResponseState:getResponseState$2,setResponseState}=Response$1;Reflect.deleteProperty(Response$1,`getResponseHeaders`),Reflect.deleteProperty(Response$1,`setResponseHeaders`),Reflect.deleteProperty(Response$1,`getResponseState`),Reflect.deleteProperty(Response$1,`setResponseState`),mixinBody$1(Response$1,getResponseState$2),Object.defineProperties(Response$1.prototype,{type:kEnumerableProperty$8,url:kEnumerableProperty$8,status:kEnumerableProperty$8,ok:kEnumerableProperty$8,redirected:kEnumerableProperty$8,statusText:kEnumerableProperty$8,headers:kEnumerableProperty$8,clone:kEnumerableProperty$8,body:kEnumerableProperty$8,bodyUsed:kEnumerableProperty$8,[Symbol.toStringTag]:{value:`Response`,configurable:!0}}),Object.defineProperties(Response$1,{json:kEnumerableProperty$8,redirect:kEnumerableProperty$8,error:kEnumerableProperty$8});function cloneResponse$1(response){if(response.internalResponse)return filterResponse$1(cloneResponse$1(response.internalResponse),response.type);let newResponse=makeResponse$1({...response,body:null});return response.body!=null&&(newResponse.body=cloneBody$1(response.body)),newResponse}function makeResponse$1(init$4){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:`default`,status:200,timingInfo:null,cacheState:``,statusText:``,...init$4,headersList:init$4?.headersList?new HeadersList$2(init$4?.headersList):new HeadersList$2,urlList:init$4?.urlList?[...init$4.urlList]:[]}}function makeNetworkError$1(reason){let isError$1=isErrorLike$1(reason);return makeResponse$1({type:`error`,status:0,error:isError$1?reason:Error(reason&&String(reason)),aborted:reason&&reason.name===`AbortError`})}function isNetworkError$1(response){return response.type===`error`&&response.status===0}function makeFilteredResponse(response,state){return state={internalResponse:response,...state},new Proxy(response,{get(target,p$2){return p$2 in state?state[p$2]:target[p$2]},set(target,p$2,value){return assert$9(!(p$2 in state)),target[p$2]=value,!0}})}function filterResponse$1(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:Object.freeze([]),status:0,statusText:``,body:null});if(type===`opaqueredirect`)return makeFilteredResponse(response,{type:`opaqueredirect`,status:0,statusText:``,headersList:[],body:null});assert$9(!1)}function makeAppropriateNetworkError$1(fetchParams,err$1=null){return assert$9(isCancelled$1(fetchParams)),isAborted$2(fetchParams)?makeNetworkError$1(Object.assign(new DOMException(`The operation was aborted.`,`AbortError`),{cause:err$1})):makeNetworkError$1(Object.assign(new DOMException(`Request was cancelled.`),{cause:err$1}))}function initializeResponse(response,init$4,body){if(init$4.status!==null&&(init$4.status<200||init$4.status>599))throw RangeError(`init["status"] must be in the range of 200 to 599, inclusive.`);if(`statusText`in init$4&&init$4.statusText!=null&&!isValidReasonPhrase(String(init$4.statusText)))throw TypeError(`Invalid statusText`);if(`status`in init$4&&init$4.status!=null&&(getResponseState$2(response).status=init$4.status),`statusText`in init$4&&init$4.statusText!=null&&(getResponseState$2(response).statusText=init$4.statusText),`headers`in init$4&&init$4.headers!=null&&fill(getResponseHeaders(response),init$4.headers),body){if(nullBodyStatus$1.includes(response.status))throw webidl$10.errors.exception({header:`Response constructor`,message:`Invalid response status code ${response.status}`});getResponseState$2(response).body=body.body,body.type!=null&&!getResponseState$2(response).headersList.contains(`content-type`,!0)&&getResponseState$2(response).headersList.append(`content-type`,body.type,!0)}}function fromInnerResponse$2(innerResponse,guard){let response=new Response$1(kConstruct$6);setResponseState(response,innerResponse);let headers$2=new Headers$4(kConstruct$6);return setResponseHeaders(response,headers$2),setHeadersList$1(headers$2,innerResponse.headersList),setHeadersGuard$1(headers$2,guard),innerResponse.body?.stream&&streamRegistry.register(response,new WeakRef(innerResponse.body.stream)),response}webidl$10.converters.XMLHttpRequestBodyInit=function(V$5,prefix,name$7){return typeof V$5==`string`?webidl$10.converters.USVString(V$5,prefix,name$7):webidl$10.is.Blob(V$5)||webidl$10.is.BufferSource(V$5)||webidl$10.is.FormData(V$5)||webidl$10.is.URLSearchParams(V$5)?V$5:webidl$10.converters.DOMString(V$5,prefix,name$7)},webidl$10.converters.BodyInit=function(V$5,prefix,argument){return webidl$10.is.ReadableStream(V$5)||V$5?.[Symbol.asyncIterator]?V$5:webidl$10.converters.XMLHttpRequestBodyInit(V$5,prefix,argument)},webidl$10.converters.ResponseInit=webidl$10.dictionaryConverter([{key:`status`,converter:webidl$10.converters[`unsigned short`],defaultValue:()=>200},{key:`statusText`,converter:webidl$10.converters.ByteString,defaultValue:()=>``},{key:`headers`,converter:webidl$10.converters.HeadersInit}]),webidl$10.is.Response=webidl$10.util.MakeTypeAssertion(Response$1),module.exports={isNetworkError:isNetworkError$1,makeNetworkError:makeNetworkError$1,makeResponse:makeResponse$1,makeAppropriateNetworkError:makeAppropriateNetworkError$1,filterResponse:filterResponse$1,Response:Response$1,cloneResponse:cloneResponse$1,fromInnerResponse:fromInnerResponse$2,getResponseState:getResponseState$2}})),require_request=__commonJSMin(((exports,module)=>{let{extractBody:extractBody$1,mixinBody,cloneBody,bodyUnusable}=require_body(),{Headers:Headers$3,fill:fillHeaders,HeadersList:HeadersList$1,setHeadersGuard,getHeadersGuard,setHeadersList,getHeadersList:getHeadersList$1}=require_headers(),util$2=require_util$5(),nodeUtil=__require$1(`node:util`),{isValidHTTPToken,sameOrigin:sameOrigin$1,environmentSettingsObject:environmentSettingsObject$3}=require_util$4(),{forbiddenMethodsSet,corsSafeListedMethodsSet,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,requestDuplex}=require_constants$3(),{kEnumerableProperty:kEnumerableProperty$7,normalizedMethodRecordsBase,normalizedMethodRecords}=util$2,{webidl:webidl$9}=require_webidl(),{URLSerializer:URLSerializer$2}=require_data_url(),{kConstruct:kConstruct$5}=require_symbols$1(),assert$8=__require$1(`node:assert`),{getMaxListeners,setMaxListeners:setMaxListeners$1,defaultMaxListeners}=__require$1(`node:events`),kAbortController=Symbol(`abortController`),requestFinalizer=new FinalizationRegistry(({signal,abort:abort$2})=>{signal.removeEventListener(`abort`,abort$2)}),dependentControllerMap=new WeakMap,abortSignalHasEventHandlerLeakWarning;try{abortSignalHasEventHandlerLeakWarning=getMaxListeners(new AbortController().signal)>0}catch{abortSignalHasEventHandlerLeakWarning=!1}function buildAbort(acRef){return abort$2;function abort$2(){let ac=acRef.deref();if(ac!==void 0){requestFinalizer.unregister(abort$2),this.removeEventListener(`abort`,abort$2),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)}}}}let patchMethodWarning=!1;var Request$3=class Request$3{#signal;#dispatcher;#headers;#state;constructor(input,init$4=void 0){if(webidl$9.util.markAsUncloneable(this),input===kConstruct$5)return;let prefix=`Request constructor`;webidl$9.argumentLengthCheck(arguments,1,`Request constructor`),input=webidl$9.converters.RequestInfo(input),init$4=webidl$9.converters.RequestInit(init$4);let request$3=null,fallbackMode=null,baseUrl=environmentSettingsObject$3.settingsObject.baseUrl,signal=null;if(typeof input==`string`){this.#dispatcher=init$4.dispatcher;let parsedURL;try{parsedURL=new URL(input,baseUrl)}catch(err$1){throw TypeError(`Failed to parse URL from `+input,{cause:err$1})}if(parsedURL.username||parsedURL.password)throw TypeError(`Request cannot be constructed from a URL that includes credentials: `+input);request$3=makeRequest$2({urlList:[parsedURL]}),fallbackMode=`cors`}else assert$8(webidl$9.is.Request(input)),request$3=input.#state,signal=input.#signal,this.#dispatcher=init$4.dispatcher||input.#dispatcher;let origin=environmentSettingsObject$3.settingsObject.origin,window$1=`client`;if(request$3.window?.constructor?.name===`EnvironmentSettingsObject`&&sameOrigin$1(request$3.window,origin)&&(window$1=request$3.window),init$4.window!=null)throw TypeError(`'window' option '${window$1}' must be null`);`window`in init$4&&(window$1=`no-window`),request$3=makeRequest$2({method:request$3.method,headersList:request$3.headersList,unsafeRequest:request$3.unsafeRequest,client:environmentSettingsObject$3.settingsObject,window:window$1,priority:request$3.priority,origin:request$3.origin,referrer:request$3.referrer,referrerPolicy:request$3.referrerPolicy,mode:request$3.mode,credentials:request$3.credentials,cache:request$3.cache,redirect:request$3.redirect,integrity:request$3.integrity,keepalive:request$3.keepalive,reloadNavigation:request$3.reloadNavigation,historyNavigation:request$3.historyNavigation,urlList:[...request$3.urlList]});let initHasKey=Object.keys(init$4).length!==0;if(initHasKey&&(request$3.mode===`navigate`&&(request$3.mode=`same-origin`),request$3.reloadNavigation=!1,request$3.historyNavigation=!1,request$3.origin=`client`,request$3.referrer=`client`,request$3.referrerPolicy=``,request$3.url=request$3.urlList[request$3.urlList.length-1],request$3.urlList=[request$3.url]),init$4.referrer!==void 0){let referrer=init$4.referrer;if(referrer===``)request$3.referrer=`no-referrer`;else{let parsedReferrer;try{parsedReferrer=new URL(referrer,baseUrl)}catch(err$1){throw TypeError(`Referrer "${referrer}" is not a valid URL.`,{cause:err$1})}parsedReferrer.protocol===`about:`&&parsedReferrer.hostname===`client`||origin&&!sameOrigin$1(parsedReferrer,environmentSettingsObject$3.settingsObject.baseUrl)?request$3.referrer=`client`:request$3.referrer=parsedReferrer}}init$4.referrerPolicy!==void 0&&(request$3.referrerPolicy=init$4.referrerPolicy);let mode;if(mode=init$4.mode===void 0?fallbackMode:init$4.mode,mode===`navigate`)throw webidl$9.errors.exception({header:`Request constructor`,message:`invalid request mode navigate.`});if(mode!=null&&(request$3.mode=mode),init$4.credentials!==void 0&&(request$3.credentials=init$4.credentials),init$4.cache!==void 0&&(request$3.cache=init$4.cache),request$3.cache===`only-if-cached`&&request$3.mode!==`same-origin`)throw TypeError(`'only-if-cached' can be set only with 'same-origin' mode`);if(init$4.redirect!==void 0&&(request$3.redirect=init$4.redirect),init$4.integrity!=null&&(request$3.integrity=String(init$4.integrity)),init$4.keepalive!==void 0&&(request$3.keepalive=!!init$4.keepalive),init$4.method!==void 0){let method=init$4.method,mayBeNormalized=normalizedMethodRecords[method];if(mayBeNormalized!==void 0)request$3.method=mayBeNormalized;else{if(!isValidHTTPToken(method))throw TypeError(`'${method}' is not a valid HTTP method.`);let upperCase=method.toUpperCase();if(forbiddenMethodsSet.has(upperCase))throw TypeError(`'${method}' HTTP method is unsupported.`);method=normalizedMethodRecordsBase[upperCase]??method,request$3.method=method}!patchMethodWarning&&request$3.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$4.signal!==void 0&&(signal=init$4.signal),this.#state=request$3;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$2=buildAbort(acRef);abortSignalHasEventHandlerLeakWarning&&getMaxListeners(signal)===defaultMaxListeners&&setMaxListeners$1(1500,signal),util$2.addAbortListener(signal,abort$2),requestFinalizer.register(ac,{signal,abort:abort$2},abort$2)}if(this.#headers=new Headers$3(kConstruct$5),setHeadersList(this.#headers,request$3.headersList),setHeadersGuard(this.#headers,`request`),mode===`no-cors`){if(!corsSafeListedMethodsSet.has(request$3.method))throw TypeError(`'${request$3.method} is unsupported in no-cors mode.`);setHeadersGuard(this.#headers,`request-no-cors`)}if(initHasKey){let headersList=getHeadersList$1(this.#headers),headers$2=init$4.headers===void 0?new HeadersList$1(headersList):init$4.headers;if(headersList.clear(),headers$2 instanceof HeadersList$1){for(let{name:name$7,value}of headers$2.rawValues())headersList.append(name$7,value,!1);headersList.cookies=headers$2.cookies}else fillHeaders(this.#headers,headers$2)}let inputBody=webidl$9.is.Request(input)?input.#state.body:null;if((init$4.body!=null||inputBody!=null)&&(request$3.method===`GET`||request$3.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);let initBody=null;if(init$4.body!=null){let[extractedBody,contentType]=extractBody$1(init$4.body,request$3.keepalive);initBody=extractedBody,contentType&&!getHeadersList$1(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$4.duplex==null)throw TypeError(`RequestInit: duplex option is required when sending a body.`);if(request$3.mode!==`same-origin`&&request$3.mode!==`cors`)throw TypeError(`If request is made from ReadableStream, mode should be "same-origin" or "cors"`);request$3.useCORSPreflightFlag=!0}let finalBody=inputOrInitBody;if(initBody==null&&inputBody!=null){if(bodyUnusable(input.#state))throw 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$9.brandCheck(this,Request$3),this.#state.method}get url(){return webidl$9.brandCheck(this,Request$3),URLSerializer$2(this.#state.url)}get headers(){return webidl$9.brandCheck(this,Request$3),this.#headers}get destination(){return webidl$9.brandCheck(this,Request$3),this.#state.destination}get referrer(){return webidl$9.brandCheck(this,Request$3),this.#state.referrer===`no-referrer`?``:this.#state.referrer===`client`?`about:client`:this.#state.referrer.toString()}get referrerPolicy(){return webidl$9.brandCheck(this,Request$3),this.#state.referrerPolicy}get mode(){return webidl$9.brandCheck(this,Request$3),this.#state.mode}get credentials(){return webidl$9.brandCheck(this,Request$3),this.#state.credentials}get cache(){return webidl$9.brandCheck(this,Request$3),this.#state.cache}get redirect(){return webidl$9.brandCheck(this,Request$3),this.#state.redirect}get integrity(){return webidl$9.brandCheck(this,Request$3),this.#state.integrity}get keepalive(){return webidl$9.brandCheck(this,Request$3),this.#state.keepalive}get isReloadNavigation(){return webidl$9.brandCheck(this,Request$3),this.#state.reloadNavigation}get isHistoryNavigation(){return webidl$9.brandCheck(this,Request$3),this.#state.historyNavigation}get signal(){return webidl$9.brandCheck(this,Request$3),this.#signal}get body(){return webidl$9.brandCheck(this,Request$3),this.#state.body?this.#state.body.stream:null}get bodyUsed(){return webidl$9.brandCheck(this,Request$3),!!this.#state.body&&util$2.isDisturbed(this.#state.body.stream)}get duplex(){return webidl$9.brandCheck(this,Request$3),`half`}clone(){if(webidl$9.brandCheck(this,Request$3),bodyUnusable(this.#state))throw TypeError(`unusable`);let clonedRequest=cloneRequest$1(this.#state),ac=new AbortController;if(this.signal.aborted)ac.abort(this.signal.reason);else{let list$2=dependentControllerMap.get(this.signal);list$2===void 0&&(list$2=new Set,dependentControllerMap.set(this.signal,list$2));let acRef=new WeakRef(ac);list$2.add(acRef),util$2.addAbortListener(ac.signal,buildAbort(acRef))}return fromInnerRequest$1(clonedRequest,this.#dispatcher,ac.signal,getHeadersGuard(this.#headers))}[nodeUtil.inspect.custom](depth$1,options$1){options$1.depth===null&&(options$1.depth=2),options$1.colors??=!0;let properties$1={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$1,properties$1)}`}static setRequestSignal(request$3,newSignal){return request$3.#signal=newSignal,request$3}static getRequestDispatcher(request$3){return request$3.#dispatcher}static setRequestDispatcher(request$3,newDispatcher){request$3.#dispatcher=newDispatcher}static setRequestHeaders(request$3,newHeaders){request$3.#headers=newHeaders}static getRequestState(request$3){return request$3.#state}static setRequestState(request$3,newState){request$3.#state=newState}};let{setRequestSignal,getRequestDispatcher:getRequestDispatcher$1,setRequestDispatcher,setRequestHeaders,getRequestState:getRequestState$2,setRequestState}=Request$3;Reflect.deleteProperty(Request$3,`setRequestSignal`),Reflect.deleteProperty(Request$3,`getRequestDispatcher`),Reflect.deleteProperty(Request$3,`setRequestDispatcher`),Reflect.deleteProperty(Request$3,`setRequestHeaders`),Reflect.deleteProperty(Request$3,`getRequestState`),Reflect.deleteProperty(Request$3,`setRequestState`),mixinBody(Request$3,getRequestState$2);function makeRequest$2(init$4){return{method:init$4.method??`GET`,localURLsOnly:init$4.localURLsOnly??!1,unsafeRequest:init$4.unsafeRequest??!1,body:init$4.body??null,client:init$4.client??null,reservedClient:init$4.reservedClient??null,replacesClientId:init$4.replacesClientId??``,window:init$4.window??`client`,keepalive:init$4.keepalive??!1,serviceWorkers:init$4.serviceWorkers??`all`,initiator:init$4.initiator??``,destination:init$4.destination??``,priority:init$4.priority??null,origin:init$4.origin??`client`,policyContainer:init$4.policyContainer??`client`,referrer:init$4.referrer??`client`,referrerPolicy:init$4.referrerPolicy??``,mode:init$4.mode??`no-cors`,useCORSPreflightFlag:init$4.useCORSPreflightFlag??!1,credentials:init$4.credentials??`same-origin`,useCredentials:init$4.useCredentials??!1,cache:init$4.cache??`default`,redirect:init$4.redirect??`follow`,integrity:init$4.integrity??``,cryptoGraphicsNonceMetadata:init$4.cryptoGraphicsNonceMetadata??``,parserMetadata:init$4.parserMetadata??``,reloadNavigation:init$4.reloadNavigation??!1,historyNavigation:init$4.historyNavigation??!1,userActivation:init$4.userActivation??!1,taintedOrigin:init$4.taintedOrigin??!1,redirectCount:init$4.redirectCount??0,responseTainting:init$4.responseTainting??`basic`,preventNoCacheCacheControlHeaderModification:init$4.preventNoCacheCacheControlHeaderModification??!1,done:init$4.done??!1,timingAllowFailed:init$4.timingAllowFailed??!1,urlList:init$4.urlList,url:init$4.urlList[0],headersList:init$4.headersList?new HeadersList$1(init$4.headersList):new HeadersList$1}}function cloneRequest$1(request$3){let newRequest=makeRequest$2({...request$3,body:null});return request$3.body!=null&&(newRequest.body=cloneBody(request$3.body)),newRequest}function fromInnerRequest$1(innerRequest,dispatcher,signal,guard){let request$3=new Request$3(kConstruct$5);setRequestState(request$3,innerRequest),setRequestDispatcher(request$3,dispatcher),setRequestSignal(request$3,signal);let headers$2=new Headers$3(kConstruct$5);return setRequestHeaders(request$3,headers$2),setHeadersList(headers$2,innerRequest.headersList),setHeadersGuard(headers$2,guard),request$3}Object.defineProperties(Request$3.prototype,{method:kEnumerableProperty$7,url:kEnumerableProperty$7,headers:kEnumerableProperty$7,redirect:kEnumerableProperty$7,clone:kEnumerableProperty$7,signal:kEnumerableProperty$7,duplex:kEnumerableProperty$7,destination:kEnumerableProperty$7,body:kEnumerableProperty$7,bodyUsed:kEnumerableProperty$7,isHistoryNavigation:kEnumerableProperty$7,isReloadNavigation:kEnumerableProperty$7,keepalive:kEnumerableProperty$7,integrity:kEnumerableProperty$7,cache:kEnumerableProperty$7,credentials:kEnumerableProperty$7,attribute:kEnumerableProperty$7,referrerPolicy:kEnumerableProperty$7,referrer:kEnumerableProperty$7,mode:kEnumerableProperty$7,[Symbol.toStringTag]:{value:`Request`,configurable:!0}}),webidl$9.is.Request=webidl$9.util.MakeTypeAssertion(Request$3),webidl$9.converters.RequestInfo=function(V$5){return typeof V$5==`string`?webidl$9.converters.USVString(V$5):webidl$9.is.Request(V$5)?V$5:webidl$9.converters.USVString(V$5)},webidl$9.converters.RequestInit=webidl$9.dictionaryConverter([{key:`method`,converter:webidl$9.converters.ByteString},{key:`headers`,converter:webidl$9.converters.HeadersInit},{key:`body`,converter:webidl$9.nullableConverter(webidl$9.converters.BodyInit)},{key:`referrer`,converter:webidl$9.converters.USVString},{key:`referrerPolicy`,converter:webidl$9.converters.DOMString,allowedValues:referrerPolicy},{key:`mode`,converter:webidl$9.converters.DOMString,allowedValues:requestMode},{key:`credentials`,converter:webidl$9.converters.DOMString,allowedValues:requestCredentials},{key:`cache`,converter:webidl$9.converters.DOMString,allowedValues:requestCache},{key:`redirect`,converter:webidl$9.converters.DOMString,allowedValues:requestRedirect},{key:`integrity`,converter:webidl$9.converters.DOMString},{key:`keepalive`,converter:webidl$9.converters.boolean},{key:`signal`,converter:webidl$9.nullableConverter(signal=>webidl$9.converters.AbortSignal(signal,`RequestInit`,`signal`))},{key:`window`,converter:webidl$9.converters.any},{key:`duplex`,converter:webidl$9.converters.DOMString,allowedValues:requestDuplex},{key:`dispatcher`,converter:webidl$9.converters.any}]),module.exports={Request:Request$3,makeRequest:makeRequest$2,fromInnerRequest:fromInnerRequest$1,cloneRequest:cloneRequest$1,getRequestDispatcher:getRequestDispatcher$1,getRequestState:getRequestState$2}})),require_subresource_integrity=__commonJSMin(((exports,module)=>{let assert$7=__require$1(`node:assert`),validSRIHashAlgorithmTokenSet=new Map([[`sha256`,0],[`sha384`,1],[`sha512`,2]]),crypto$6;try{crypto$6=__require$1(`node:crypto`);let cryptoHashes=crypto$6.getHashes();cryptoHashes.length===0&&validSRIHashAlgorithmTokenSet.clear();for(let algorithm of validSRIHashAlgorithmTokenSet.keys())cryptoHashes.includes(algorithm)===!1&&validSRIHashAlgorithmTokenSet.delete(algorithm)}catch{validSRIHashAlgorithmTokenSet.clear()}let getSRIHashAlgorithmIndex=Map.prototype.get.bind(validSRIHashAlgorithmTokenSet),isValidSRIHashAlgorithm=Map.prototype.has.bind(validSRIHashAlgorithmTokenSet),bytesMatch$1=crypto$6===void 0||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$7(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);if(newAlgorithmIndex<currentAlgorithmIndex)continue;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 expressionAndOptions=item.split(`?`,1),algorithmExpression=expressionAndOptions[0],base64Value=``,algorithmAndValue=[algorithmExpression.slice(0,6),algorithmExpression.slice(7)],algorithm=algorithmAndValue[0];if(!isValidSRIHashAlgorithm(algorithm))continue;algorithmAndValue[1]&&(base64Value=algorithmAndValue[1]);let metadata$1={alg:algorithm,val:base64Value};result.push(metadata$1)}return result}let applyAlgorithmToBytes=(algorithm,bytes)=>crypto$6.hash(algorithm,bytes,`base64`);function caseSensitiveMatch(actualValue,expectedValue){let actualValueLength=actualValue.length;actualValueLength!==0&&actualValue[actualValueLength-1]===`=`&&--actualValueLength,actualValueLength!==0&&actualValue[actualValueLength-1]===`=`&&--actualValueLength;let expectedValueLength=expectedValue.length;if(expectedValueLength!==0&&expectedValue[expectedValueLength-1]===`=`&&--expectedValueLength,expectedValueLength!==0&&expectedValue[expectedValueLength-1]===`=`&&--expectedValueLength,actualValueLength!==expectedValueLength)return!1;for(let i$5=0;i$5<actualValueLength;++i$5)if(!(actualValue[i$5]===expectedValue[i$5]||actualValue[i$5]===`+`&&expectedValue[i$5]===`-`||actualValue[i$5]===`/`&&expectedValue[i$5]===`_`))return!1;return!0}module.exports={applyAlgorithmToBytes,bytesMatch:bytesMatch$1,caseSensitiveMatch,isValidSRIHashAlgorithm,getStrongestMetadata,parseMetadata}})),require_fetch$1=__commonJSMin(((exports,module)=>{let{makeNetworkError,makeAppropriateNetworkError,filterResponse,makeResponse,fromInnerResponse:fromInnerResponse$1,getResponseState:getResponseState$1}=require_response(),{HeadersList}=require_headers(),{Request:Request$2,cloneRequest,getRequestDispatcher,getRequestState:getRequestState$1}=require_request(),zlib=__require$1(`node:zlib`),{makePolicyContainer,clonePolicyContainer,requestBadPort,TAOCheck,appendRequestOriginHeader,responseLocationURL,requestCurrentURL,setRequestReferrerPolicyOnRedirect,tryUpgradeRequestToAPotentiallyTrustworthyURL,createOpaqueTimingInfo,appendFetchMetadata,corsCheck,crossOriginResourcePolicyCheck,determineRequestsReferrer,coarsenedSharedCurrentTime,sameOrigin,isCancelled,isAborted:isAborted$1,isErrorLike,fullyReadBody,readableStreamClose,isomorphicEncode,urlIsLocal,urlIsHttpHttpsScheme:urlIsHttpHttpsScheme$1,urlHasHttpsScheme,clampAndCoarsenConnectionTimingInfo,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType}=require_util$4(),assert$6=__require$1(`node:assert`),{safelyExtractBody,extractBody}=require_body(),{redirectStatusSet,nullBodyStatus,safeMethodsSet,requestBodyHeader,subresourceSet}=require_constants$3(),EE=__require$1(`node:events`),{Readable:Readable$3,pipeline:pipeline$2,finished:finished$1,isErrored,isReadable:isReadable$1}=__require$1(`node:stream`),{addAbortListener:addAbortListener$1,bufferToLowerCasedHeaderName}=require_util$5(),{dataURLProcessor,serializeAMimeType:serializeAMimeType$1,minimizeSupportedMimeType}=require_data_url(),{getGlobalDispatcher:getGlobalDispatcher$2}=require_global(),{webidl:webidl$8}=require_webidl(),{STATUS_CODES}=__require$1(`node:http`),{bytesMatch}=require_subresource_integrity(),{createDeferredPromise:createDeferredPromise$4}=require_promise(),hasZstd=typeof zlib.createZstdDecompress==`function`,GET_OR_HEAD=[`GET`,`HEAD`],defaultUserAgent=typeof __UNDICI_IS_NODE__<`u`||typeof esbuildDetection<`u`?`node`:`undici`,resolveObjectURL;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$65){this.state===`ongoing`&&(this.state=`aborted`,error$65||=new DOMException(`The operation was aborted.`,`AbortError`),this.serializedAbortReason=error$65,this.connection?.destroy(error$65),this.emit(`terminated`,error$65))}};function handleFetchDone(response){finalizeAndReportTiming(response,`fetch`)}function fetch$1(input,init$4=void 0){webidl$8.argumentLengthCheck(arguments,1,`globalThis.fetch`);let p$2=createDeferredPromise$4(),requestObject;try{requestObject=new Request$2(input,init$4)}catch(e$2){return p$2.reject(e$2),p$2.promise}let request$3=getRequestState$1(requestObject);if(requestObject.signal.aborted)return abortFetch(p$2,request$3,null,requestObject.signal.reason),p$2.promise;let globalObject=request$3.client.globalObject;globalObject?.constructor?.name===`ServiceWorkerGlobalScope`&&(request$3.serviceWorkers=`none`);let responseObject=null,locallyAborted=!1,controller=null;addAbortListener$1(requestObject.signal,()=>{locallyAborted=!0,assert$6(controller!=null),controller.abort(requestObject.signal.reason);let realResponse=responseObject?.deref();abortFetch(p$2,request$3,realResponse,requestObject.signal.reason)});let processResponse=response=>{if(!locallyAborted){if(response.aborted){abortFetch(p$2,request$3,responseObject,controller.serializedAbortReason);return}if(response.type===`error`){p$2.reject(TypeError(`fetch failed`,{cause:response.error}));return}responseObject=new WeakRef(fromInnerResponse$1(response,`immutable`)),p$2.resolve(responseObject.deref()),p$2=null}};return controller=fetching$3({request:request$3,processResponseEndOfBody:handleFetchDone,processResponse,dispatcher:getRequestDispatcher(requestObject)}),p$2.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$1(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))}let markResourceTiming=performance.markResourceTiming;function abortFetch(p$2,request$3,responseObject,error$65){if(p$2&&p$2.reject(error$65),request$3.body?.stream!=null&&isReadable$1(request$3.body.stream)&&request$3.body.stream.cancel(error$65).catch(err$1=>{if(err$1.code!==`ERR_INVALID_STATE`)throw err$1}),responseObject==null)return;let response=getResponseState$1(responseObject);response.body?.stream!=null&&isReadable$1(response.body.stream)&&response.body.stream.cancel(error$65).catch(err$1=>{if(err$1.code!==`ERR_INVALID_STATE`)throw err$1})}function fetching$3({request:request$3,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseEndOfBody,processResponseConsumeBody,useParallelQueue=!1,dispatcher=getGlobalDispatcher$2()}){assert$6(dispatcher);let taskDestination=null,crossOriginIsolatedCapability=!1;request$3.client!=null&&(taskDestination=request$3.client.globalObject,crossOriginIsolatedCapability=request$3.client.crossOriginIsolatedCapability);let currentTime=coarsenedSharedCurrentTime(crossOriginIsolatedCapability),timingInfo=createOpaqueTimingInfo({startTime:currentTime}),fetchParams={controller:new Fetch(dispatcher),request:request$3,timingInfo,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseConsumeBody,processResponseEndOfBody,taskDestination,crossOriginIsolatedCapability};if(assert$6(!request$3.body||request$3.body.stream),request$3.window===`client`&&(request$3.window=request$3.client?.globalObject?.constructor?.name===`Window`?request$3.client:`no-window`),request$3.origin===`client`&&(request$3.origin=request$3.client.origin),request$3.policyContainer===`client`&&(request$3.client==null?request$3.policyContainer=makePolicyContainer():request$3.policyContainer=clonePolicyContainer(request$3.client.policyContainer)),!request$3.headersList.contains(`accept`,!0)){let value=`*/*`;request$3.headersList.append(`accept`,`*/*`,!0)}return request$3.headersList.contains(`accept-language`,!0)||request$3.headersList.append(`accept-language`,`*`,!0),request$3.priority,subresourceSet.has(request$3.destination),mainFetch(fetchParams,!1),fetchParams.controller}async function mainFetch(fetchParams,recursive){try{let request$3=fetchParams.request,response=null;if(request$3.localURLsOnly&&!urlIsLocal(requestCurrentURL(request$3))&&(response=makeNetworkError(`local URLs only`)),tryUpgradeRequestToAPotentiallyTrustworthyURL(request$3),requestBadPort(request$3)===`blocked`&&(response=makeNetworkError(`bad port`)),request$3.referrerPolicy===``&&(request$3.referrerPolicy=request$3.policyContainer.referrerPolicy),request$3.referrer!==`no-referrer`&&(request$3.referrer=determineRequestsReferrer(request$3)),response===null){let currentURL=requestCurrentURL(request$3);sameOrigin(currentURL,request$3.url)&&request$3.responseTainting===`basic`||currentURL.protocol===`data:`||request$3.mode===`navigate`||request$3.mode===`websocket`?(request$3.responseTainting=`basic`,response=await schemeFetch(fetchParams)):request$3.mode===`same-origin`?response=makeNetworkError(`request mode cannot be "same-origin"`):request$3.mode===`no-cors`?request$3.redirect===`follow`?(request$3.responseTainting=`opaque`,response=await schemeFetch(fetchParams)):response=makeNetworkError(`redirect mode cannot be "follow" for "no-cors" request`):urlIsHttpHttpsScheme$1(requestCurrentURL(request$3))?(request$3.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$3.responseTainting,request$3.responseTainting===`basic`?response=filterResponse(response,`basic`):request$3.responseTainting===`cors`?response=filterResponse(response,`cors`):request$3.responseTainting===`opaque`?response=filterResponse(response,`opaque`):assert$6(!1));let internalResponse=response.status===0?response:response.internalResponse;if(internalResponse.urlList.length===0&&internalResponse.urlList.push(...request$3.urlList),request$3.timingAllowFailed||(response.timingAllowPassed=!0),response.type===`opaque`&&internalResponse.status===206&&internalResponse.rangeRequested&&!request$3.headers.contains(`range`,!0)&&(response=internalResponse=makeNetworkError()),response.status!==0&&(request$3.method===`HEAD`||request$3.method===`CONNECT`||nullBodyStatus.includes(internalResponse.status))&&(internalResponse.body=null,fetchParams.controller.dump=!0),request$3.integrity){let processBodyError=reason=>fetchFinale(fetchParams,makeNetworkError(reason));if(request$3.responseTainting===`opaque`||response.body==null){processBodyError(response.error);return}let processBody=bytes=>{if(!bytesMatch(bytes,request$3.integrity)){processBodyError(`integrity mismatch`);return}response.body=safelyExtractBody(bytes)[0],fetchFinale(fetchParams,response)};fullyReadBody(response.body,processBody,processBodyError)}else fetchFinale(fetchParams,response)}catch(err$1){fetchParams.controller.terminate(err$1)}}function schemeFetch(fetchParams){if(isCancelled(fetchParams)&&fetchParams.request.redirectCount===0)return Promise.resolve(makeAppropriateNetworkError(fetchParams));let{request:request$3}=fetchParams,{protocol:scheme$1}=requestCurrentURL(request$3);switch(scheme$1){case`about:`:return Promise.resolve(makeNetworkError(`about scheme is not supported`));case`blob:`:{resolveObjectURL||=__require$1(`node:buffer`).resolveObjectURL;let blobURLEntry=requestCurrentURL(request$3);if(blobURLEntry.search.length!==0)return Promise.resolve(makeNetworkError(`NetworkError when attempting to fetch resource.`));let blob=resolveObjectURL(blobURLEntry.toString());if(request$3.method!==`GET`||!webidl$8.is.Blob(blob))return Promise.resolve(makeNetworkError(`invalid method`));let response=makeResponse(),fullLength=blob.size,serializedFullLength=isomorphicEncode(`${fullLength}`),type=blob.type;if(request$3.headersList.contains(`range`,!0)){response.rangeRequested=!0;let rangeHeader=request$3.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,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$3),dataURLStruct=dataURLProcessor(currentURL);if(dataURLStruct===`failure`)return Promise.resolve(makeNetworkError(`failed to fetch the data URL`));let mimeType=serializeAMimeType$1(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$1=>makeNetworkError(err$1));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$1(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!==`navigator`||!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():finished$1(internalResponse.body.stream,()=>{processResponseEndOfBody()})}async function httpFetch(fetchParams){let request$3=fetchParams.request,response=null,actualResponse=null,timingInfo=fetchParams.timingInfo;if(request$3.serviceWorkers,response===null){if(request$3.redirect===`follow`&&(request$3.serviceWorkers=`none`),actualResponse=response=await httpNetworkOrCacheFetch(fetchParams),request$3.responseTainting===`cors`&&corsCheck(request$3,response)===`failure`)return makeNetworkError(`cors failure`);TAOCheck(request$3,response)===`failure`&&(request$3.timingAllowFailed=!0)}return(request$3.responseTainting===`opaque`||response.type===`opaque`)&&crossOriginResourcePolicyCheck(request$3.origin,request$3.client,request$3.destination,actualResponse)===`blocked`?makeNetworkError(`blocked`):(redirectStatusSet.has(actualResponse.status)&&(request$3.redirect!==`manual`&&fetchParams.controller.connection.destroy(void 0,!1),request$3.redirect===`error`?response=makeNetworkError(`unexpected redirect`):request$3.redirect===`manual`?response=actualResponse:request$3.redirect===`follow`?response=await httpRedirectFetch(fetchParams,response):assert$6(!1)),response.timingInfo=timingInfo,response)}function httpRedirectFetch(fetchParams,response){let request$3=fetchParams.request,actualResponse=response.internalResponse?response.internalResponse:response,locationURL;try{if(locationURL=responseLocationURL(actualResponse,requestCurrentURL(request$3).hash),locationURL==null)return response}catch(err$1){return Promise.resolve(makeNetworkError(err$1))}if(!urlIsHttpHttpsScheme$1(locationURL))return Promise.resolve(makeNetworkError(`URL scheme must be a HTTP(S) scheme`));if(request$3.redirectCount===20)return Promise.resolve(makeNetworkError(`redirect count exceeded`));if(request$3.redirectCount+=1,request$3.mode===`cors`&&(locationURL.username||locationURL.password)&&!sameOrigin(request$3,locationURL))return Promise.resolve(makeNetworkError(`cross origin not allowed for request mode "cors"`));if(request$3.responseTainting===`cors`&&(locationURL.username||locationURL.password))return Promise.resolve(makeNetworkError(`URL cannot contain credentials for request mode "cors"`));if(actualResponse.status!==303&&request$3.body!=null&&request$3.body.source==null)return Promise.resolve(makeNetworkError());if([301,302].includes(actualResponse.status)&&request$3.method===`POST`||actualResponse.status===303&&!GET_OR_HEAD.includes(request$3.method)){request$3.method=`GET`,request$3.body=null;for(let headerName of requestBodyHeader)request$3.headersList.delete(headerName)}sameOrigin(requestCurrentURL(request$3),locationURL)||(request$3.headersList.delete(`authorization`,!0),request$3.headersList.delete(`proxy-authorization`,!0),request$3.headersList.delete(`cookie`,!0),request$3.headersList.delete(`host`,!0)),request$3.body!=null&&(assert$6(request$3.body.source!=null),request$3.body=safelyExtractBody(request$3.body.source)[0]);let timingInfo=fetchParams.timingInfo;return timingInfo.redirectEndTime=timingInfo.postRedirectStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability),timingInfo.redirectStartTime===0&&(timingInfo.redirectStartTime=timingInfo.startTime),request$3.urlList.push(locationURL),setRequestReferrerPolicyOnRedirect(request$3,actualResponse),mainFetch(fetchParams,!0)}async function httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch=!1,isNewConnectionFetch=!1){let request$3=fetchParams.request,httpFetchParams=null,httpRequest=null,response=null,httpCache=null;request$3.window===`no-window`&&request$3.redirect===`error`?(httpFetchParams=fetchParams,httpRequest=request$3):(httpRequest=cloneRequest(request$3),httpFetchParams={...fetchParams},httpFetchParams.request=httpRequest);let includeCredentials=request$3.credentials===`include`||request$3.credentials===`same-origin`&&request$3.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.append(`content-length`,contentLengthHeaderValue,!0),contentLength!=null&&httpRequest.keepalive,webidl$8.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`,!0):httpRequest.headersList.append(`accept-encoding`,`gzip, deflate`,!0)),httpRequest.headersList.delete(`host`,!0),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,response??=forwardResponse}if(response.urlList=[...httpRequest.urlList],httpRequest.headersList.contains(`range`,!0)&&(response.rangeRequested=!0),response.requestIncludesCredentials=includeCredentials,response.status===407)return request$3.window===`no-window`?makeNetworkError():isCancelled(fetchParams)?makeAppropriateNetworkError(fetchParams):makeNetworkError(`proxy authentication required`);if(response.status===421&&!isNewConnectionFetch&&(request$3.body==null||request$3.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$6(!fetchParams.controller.connection||fetchParams.controller.connection.destroyed),fetchParams.controller.connection={abort:null,destroyed:!1,destroy(err$1,abort$2=!0){this.destroyed||(this.destroyed=!0,abort$2&&this.abort?.(err$1??new DOMException(`The operation was aborted.`,`AbortError`)))}};let request$3=fetchParams.request,response=null,timingInfo=fetchParams.timingInfo,httpCache=null;request$3.cache=`no-store`,request$3.mode;let requestBody=null;if(request$3.body==null&&fetchParams.processRequestEndOfBody)queueMicrotask(()=>fetchParams.processRequestEndOfBody());else if(request$3.body!=null){let processBodyChunk=async function*(bytes){isCancelled(fetchParams)||(yield bytes,fetchParams.processRequestBodyChunkLength?.(bytes.byteLength))},processEndOfBody=()=>{isCancelled(fetchParams)||fetchParams.processRequestEndOfBody&&fetchParams.processRequestEndOfBody()},processBodyError=e$2=>{isCancelled(fetchParams)||(e$2.name===`AbortError`?fetchParams.controller.abort():fetchParams.controller.terminate(e$2))};requestBody=(async function*(){try{for await(let bytes of request$3.body.stream)yield*processBodyChunk(bytes);processEndOfBody()}catch(err$1){processBodyError(err$1)}})()}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$1){return err$1.name===`AbortError`?(fetchParams.controller.connection.destroy(),makeAppropriateNetworkError(fetchParams,err$1)):makeNetworkError(err$1)}let pullAlgorithm=()=>fetchParams.controller.resume(),cancelAlgorithm=reason=>{isCancelled(fetchParams)||fetchParams.controller.abort(reason)},stream$10=new ReadableStream({start(controller){fetchParams.controller.controller=controller},pull:pullAlgorithm,cancel:cancelAlgorithm,type:`bytes`});response.body={stream:stream$10,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$1(fetchParams))break;bytes=done?void 0:value}catch(err$1){fetchParams.controller.ended&&!timingInfo.encodedBodySize?bytes=void 0:(bytes=err$1,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$2=new Uint8Array(bytes);if(buffer$2.byteLength&&fetchParams.controller.controller.enqueue(buffer$2),isErrored(stream$10)){fetchParams.controller.terminate();return}if(fetchParams.controller.controller.desiredSize<=0)return}};function onAborted(reason){isAborted$1(fetchParams)?(response.aborted=!0,isReadable$1(stream$10)&&fetchParams.controller.controller.error(fetchParams.controller.serializedAbortReason)):isReadable$1(stream$10)&&fetchParams.controller.controller.error(TypeError(`terminated`,{cause:isErrorLike(reason)?reason:void 0})),fetchParams.controller.connection.destroy()}return response;function dispatch({body}){let url$4=requestCurrentURL(request$3),agent=fetchParams.controller.dispatcher;return new Promise((resolve$10,reject)=>agent.dispatch({path:url$4.pathname+url$4.search,origin:url$4.origin,method:request$3.method,body:agent.isMockActive?request$3.body&&(request$3.body.source||request$3.body.stream):body,headers:request$3.headersList.entries,maxRedirections:0,upgrade:request$3.mode===`websocket`?`websocket`:void 0},{body:null,abort:null,onConnect(abort$2){let{connection}=fetchParams.controller;timingInfo.finalConnectionTimingInfo=clampAndCoarsenConnectionTimingInfo(void 0,timingInfo.postRedirectStartTime,fetchParams.crossOriginIsolatedCapability),connection.destroyed?abort$2(new DOMException(`The operation was aborted.`,`AbortError`)):(fetchParams.controller.on(`terminated`,abort$2),this.abort=connection.abort=abort$2),timingInfo.finalNetworkRequestStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onResponseStarted(){timingInfo.finalNetworkResponseStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onHeaders(status,rawHeaders,resume$3,statusText){if(status<200)return!1;let headersList=new HeadersList;for(let i$5=0;i$5<rawHeaders.length;i$5+=2)headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i$5]),rawHeaders[i$5+1].toString(`latin1`),!0);let location=headersList.get(`location`,!0);this.body=new Readable$3({read:resume$3});let willFollow=location&&request$3.redirect===`follow`&&redirectStatusSet.has(status),decoders$1=[];if(request$3.method!==`HEAD`&&request$3.method!==`CONNECT`&&!nullBodyStatus.includes(status)&&!willFollow){let contentEncoding=headersList.get(`content-encoding`,!0),codings=contentEncoding?contentEncoding.toLowerCase().split(`,`):[];for(let i$5=codings.length-1;i$5>=0;--i$5){let coding=codings[i$5].trim();if(coding===`x-gzip`||coding===`gzip`)decoders$1.push(zlib.createGunzip({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding===`deflate`)decoders$1.push(createInflate({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}));else if(coding===`br`)decoders$1.push(zlib.createBrotliDecompress({flush:zlib.constants.BROTLI_OPERATION_FLUSH,finishFlush:zlib.constants.BROTLI_OPERATION_FLUSH}));else if(coding===`zstd`&&hasZstd)decoders$1.push(zlib.createZstdDecompress({flush:zlib.constants.ZSTD_e_continue,finishFlush:zlib.constants.ZSTD_e_end}));else{decoders$1.length=0;break}}}let onError$3=this.onError.bind(this);return resolve$10({status,statusText,headersList,body:decoders$1.length?pipeline$2(this.body,...decoders$1,err$1=>{err$1&&this.onError(err$1)}).on(`error`,onError$3):this.body.on(`error`,onError$3)}),!0},onData(chunk$1){if(fetchParams.controller.dump)return;let bytes=chunk$1;return timingInfo.encodedBodySize+=bytes.byteLength,this.body.push(bytes)},onComplete(){this.abort&&fetchParams.controller.off(`terminated`,this.abort),fetchParams.controller.ended=!0,this.body.push(null)},onError(error$65){this.abort&&fetchParams.controller.off(`terminated`,this.abort),this.body?.destroy(error$65),fetchParams.controller.terminate(error$65),reject(error$65)},onUpgrade(status,rawHeaders,socket){if(status!==101)return;let headersList=new HeadersList;for(let i$5=0;i$5<rawHeaders.length;i$5+=2)headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i$5]),rawHeaders[i$5+1].toString(`latin1`),!0);return resolve$10({status,statusText:STATUS_CODES[status],headersList,socket}),!0}}))}}module.exports={fetch:fetch$1,Fetch,fetching:fetching$3,finalizeAndReportTiming}})),require_util$3=__commonJSMin(((exports,module)=>{let assert$5=__require$1(`node:assert`),{URLSerializer:URLSerializer$1}=require_data_url(),{isValidHeaderName}=require_util$4();function urlEquals$1(A$2,B$2,excludeFragment=!1){let serializedA=URLSerializer$1(A$2,excludeFragment),serializedB=URLSerializer$1(B$2,excludeFragment);return serializedA===serializedB}function getFieldValues$1(header){assert$5(header!==null);let values=[];for(let value of header.split(`,`))value=value.trim(),isValidHeaderName(value)&&values.push(value);return values}module.exports={urlEquals:urlEquals$1,getFieldValues:getFieldValues$1}})),require_cache=__commonJSMin(((exports,module)=>{let assert$4=__require$1(`node:assert`),{kConstruct:kConstruct$4}=require_symbols$1(),{urlEquals,getFieldValues}=require_util$3(),{kEnumerableProperty:kEnumerableProperty$6,isDisturbed}=require_util$5(),{webidl:webidl$7}=require_webidl(),{cloneResponse,fromInnerResponse,getResponseState}=require_response(),{Request:Request$1,fromInnerRequest,getRequestState}=require_request(),{fetching:fetching$2}=require_fetch$1(),{urlIsHttpHttpsScheme,readAllBytes}=require_util$4(),{createDeferredPromise:createDeferredPromise$3}=require_promise();var Cache$1=class Cache$1{#relevantRequestResponseList;constructor(){arguments[0]!==kConstruct$4&&webidl$7.illegalConstructor(),webidl$7.util.markAsUncloneable(this),this.#relevantRequestResponseList=arguments[1]}async match(request$3,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.match`;webidl$7.argumentLengthCheck(arguments,1,prefix),request$3=webidl$7.converters.RequestInfo(request$3),options$1=webidl$7.converters.CacheQueryOptions(options$1,prefix,`options`);let p$2=this.#internalMatchAll(request$3,options$1,1);if(p$2.length!==0)return p$2[0]}async matchAll(request$3=void 0,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.matchAll`;return request$3!==void 0&&(request$3=webidl$7.converters.RequestInfo(request$3)),options$1=webidl$7.converters.CacheQueryOptions(options$1,`Cache.matchAll`,`options`),this.#internalMatchAll(request$3,options$1)}async add(request$3){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.add`;webidl$7.argumentLengthCheck(arguments,1,`Cache.add`),request$3=webidl$7.converters.RequestInfo(request$3);let requests=[request$3],responseArrayPromise=this.addAll(requests);return await responseArrayPromise}async addAll(requests){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.addAll`;webidl$7.argumentLengthCheck(arguments,1,prefix);let responsePromises=[],requestList=[];for(let request$3 of requests){if(request$3===void 0)throw webidl$7.errors.conversionFailed({prefix,argument:`Argument 1`,types:[`undefined is not allowed`]});if(request$3=webidl$7.converters.RequestInfo(request$3),typeof request$3==`string`)continue;let r$3=getRequestState(request$3);if(!urlIsHttpHttpsScheme(r$3.url)||r$3.method!==`GET`)throw webidl$7.errors.exception({header:prefix,message:`Expected http/s scheme when method is not GET.`})}let fetchControllers=[];for(let request$3 of requests){let r$3=getRequestState(new Request$1(request$3));if(!urlIsHttpHttpsScheme(r$3.url))throw webidl$7.errors.exception({header:prefix,message:`Expected http/s scheme.`});r$3.initiator=`fetch`,r$3.destination=`subresource`,requestList.push(r$3);let responsePromise=createDeferredPromise$3();fetchControllers.push(fetching$2({request:r$3,processResponse(response){if(response.type===`error`||response.status===206||response.status<200||response.status>299)responsePromise.reject(webidl$7.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$7.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 p$2=Promise.all(responsePromises),responses=await p$2,operations=[],index=0;for(let response of responses){let operation={type:`put`,request:requestList[index],response};operations.push(operation),index++}let cacheJobPromise=createDeferredPromise$3(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e$2){errorData=e$2}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(void 0):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async put(request$3,response){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.put`;webidl$7.argumentLengthCheck(arguments,2,prefix),request$3=webidl$7.converters.RequestInfo(request$3),response=webidl$7.converters.Response(response,prefix,`response`);let innerRequest=null;if(innerRequest=webidl$7.is.Request(request$3)?getRequestState(request$3):getRequestState(new Request$1(request$3)),!urlIsHttpHttpsScheme(innerRequest.url)||innerRequest.method!==`GET`)throw webidl$7.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$7.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$7.errors.exception({header:prefix,message:`Got * vary field value`})}if(innerResponse.body&&(isDisturbed(innerResponse.body.stream)||innerResponse.body.stream.locked))throw webidl$7.errors.exception({header:prefix,message:`Response body is locked or disturbed`});let clonedResponse=cloneResponse(innerResponse),bodyReadPromise=createDeferredPromise$3();if(innerResponse.body!=null){let stream$10=innerResponse.body.stream,reader=stream$10.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=createDeferredPromise$3(),errorData=null;try{this.#batchCacheOperations(operations)}catch(e$2){errorData=e$2}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve():cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async delete(request$3,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.delete`;webidl$7.argumentLengthCheck(arguments,1,prefix),request$3=webidl$7.converters.RequestInfo(request$3),options$1=webidl$7.converters.CacheQueryOptions(options$1,prefix,`options`);let r$3=null;if(webidl$7.is.Request(request$3)){if(r$3=getRequestState(request$3),r$3.method!==`GET`&&!options$1.ignoreMethod)return!1}else assert$4(typeof request$3==`string`),r$3=getRequestState(new Request$1(request$3));let operations=[],operation={type:`delete`,request:r$3,options:options$1};operations.push(operation);let cacheJobPromise=createDeferredPromise$3(),errorData=null,requestResponses;try{requestResponses=this.#batchCacheOperations(operations)}catch(e$2){errorData=e$2}return queueMicrotask(()=>{errorData===null?cacheJobPromise.resolve(!!requestResponses?.length):cacheJobPromise.reject(errorData)}),cacheJobPromise.promise}async keys(request$3=void 0,options$1={}){webidl$7.brandCheck(this,Cache$1);let prefix=`Cache.keys`;request$3!==void 0&&(request$3=webidl$7.converters.RequestInfo(request$3)),options$1=webidl$7.converters.CacheQueryOptions(options$1,`Cache.keys`,`options`);let r$3=null;if(request$3!==void 0)if(webidl$7.is.Request(request$3)){if(r$3=getRequestState(request$3),r$3.method!==`GET`&&!options$1.ignoreMethod)return[]}else typeof request$3==`string`&&(r$3=getRequestState(new Request$1(request$3)));let promise$2=createDeferredPromise$3(),requests=[];if(request$3===void 0)for(let requestResponse of this.#relevantRequestResponseList)requests.push(requestResponse[0]);else{let requestResponses=this.#queryCache(r$3,options$1);for(let requestResponse of requestResponses)requests.push(requestResponse[0])}return queueMicrotask(()=>{let requestList=[];for(let request$4 of requests){let requestObject=fromInnerRequest(request$4,void 0,new AbortController().signal,`immutable`);requestList.push(requestObject)}promise$2.resolve(Object.freeze(requestList))}),promise$2.promise}#batchCacheOperations(operations){let cache$4=this.#relevantRequestResponseList,backupCache=[...cache$4],addedItems=[],resultList=[];try{for(let operation of operations){if(operation.type!==`delete`&&operation.type!==`put`)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`operation type does not match "delete" or "put"`});if(operation.type===`delete`&&operation.response!=null)throw webidl$7.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$4.indexOf(requestResponse);assert$4(idx!==-1),cache$4.splice(idx,1)}}else if(operation.type===`put`){if(operation.response==null)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`put operation should have an associated response`});let r$3=operation.request;if(!urlIsHttpHttpsScheme(r$3.url))throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`expected http or https scheme`});if(r$3.method!==`GET`)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`not get method`});if(operation.options!=null)throw webidl$7.errors.exception({header:`Cache.#batchCacheOperations`,message:`options must not be defined`});requestResponses=this.#queryCache(operation.request);for(let requestResponse of requestResponses){let idx=cache$4.indexOf(requestResponse);assert$4(idx!==-1),cache$4.splice(idx,1)}cache$4.push([operation.request,operation.response]),addedItems.push([operation.request,operation.response])}resultList.push([operation.request,operation.response])}return resultList}catch(e$2){throw this.#relevantRequestResponseList.length=0,this.#relevantRequestResponseList=backupCache,e$2}}#queryCache(requestQuery,options$1,targetStorage){let resultList=[],storage=targetStorage??this.#relevantRequestResponseList;for(let requestResponse of storage){let[cachedRequest,cachedResponse]=requestResponse;this.#requestMatchesCachedItem(requestQuery,cachedRequest,cachedResponse,options$1)&&resultList.push(requestResponse)}return resultList}#requestMatchesCachedItem(requestQuery,request$3,response=null,options$1){let queryURL=new URL(requestQuery.url),cachedURL=new URL(request$3.url);if(options$1?.ignoreSearch&&(cachedURL.search=``,queryURL.search=``),!urlEquals(queryURL,cachedURL,!0))return!1;if(response==null||options$1?.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$3.headersList.get(fieldValue),queryValue=requestQuery.headersList.get(fieldValue);if(requestValue!==queryValue)return!1}return!0}#internalMatchAll(request$3,options$1,maxResponses=1/0){let r$3=null;if(request$3!==void 0)if(webidl$7.is.Request(request$3)){if(r$3=getRequestState(request$3),r$3.method!==`GET`&&!options$1.ignoreMethod)return[]}else typeof request$3==`string`&&(r$3=getRequestState(new Request$1(request$3)));let responses=[];if(request$3===void 0)for(let requestResponse of this.#relevantRequestResponseList)responses.push(requestResponse[1]);else{let requestResponses=this.#queryCache(r$3,options$1);for(let requestResponse of requestResponses)responses.push(requestResponse[1])}let responseList=[];for(let response of responses){let responseObject=fromInnerResponse(response,`immutable`);if(responseList.push(responseObject.clone()),responseList.length>=maxResponses)break}return Object.freeze(responseList)}};Object.defineProperties(Cache$1.prototype,{[Symbol.toStringTag]:{value:`Cache`,configurable:!0},match:kEnumerableProperty$6,matchAll:kEnumerableProperty$6,add:kEnumerableProperty$6,addAll:kEnumerableProperty$6,put:kEnumerableProperty$6,delete:kEnumerableProperty$6,keys:kEnumerableProperty$6});let cacheQueryOptionConverters=[{key:`ignoreSearch`,converter:webidl$7.converters.boolean,defaultValue:()=>!1},{key:`ignoreMethod`,converter:webidl$7.converters.boolean,defaultValue:()=>!1},{key:`ignoreVary`,converter:webidl$7.converters.boolean,defaultValue:()=>!1}];webidl$7.converters.CacheQueryOptions=webidl$7.dictionaryConverter(cacheQueryOptionConverters),webidl$7.converters.MultiCacheQueryOptions=webidl$7.dictionaryConverter([...cacheQueryOptionConverters,{key:`cacheName`,converter:webidl$7.converters.DOMString}]),webidl$7.converters.Response=webidl$7.interfaceConverter(webidl$7.is.Response,`Response`),webidl$7.converters[`sequence<RequestInfo>`]=webidl$7.sequenceConverter(webidl$7.converters.RequestInfo),module.exports={Cache:Cache$1}})),require_cachestorage=__commonJSMin(((exports,module)=>{let{Cache}=require_cache(),{webidl:webidl$6}=require_webidl(),{kEnumerableProperty:kEnumerableProperty$5}=require_util$5(),{kConstruct:kConstruct$3}=require_symbols$1();var CacheStorage$1=class CacheStorage$1{#caches=new Map;constructor(){arguments[0]!==kConstruct$3&&webidl$6.illegalConstructor(),webidl$6.util.markAsUncloneable(this)}async match(request$3,options$1={}){if(webidl$6.brandCheck(this,CacheStorage$1),webidl$6.argumentLengthCheck(arguments,1,`CacheStorage.match`),request$3=webidl$6.converters.RequestInfo(request$3),options$1=webidl$6.converters.MultiCacheQueryOptions(options$1),options$1.cacheName!=null){if(this.#caches.has(options$1.cacheName)){let cacheList=this.#caches.get(options$1.cacheName),cache$4=new Cache(kConstruct$3,cacheList);return await cache$4.match(request$3,options$1)}}else for(let cacheList of this.#caches.values()){let cache$4=new Cache(kConstruct$3,cacheList),response=await cache$4.match(request$3,options$1);if(response!==void 0)return response}}async has(cacheName){webidl$6.brandCheck(this,CacheStorage$1);let prefix=`CacheStorage.has`;return webidl$6.argumentLengthCheck(arguments,1,prefix),cacheName=webidl$6.converters.DOMString(cacheName,prefix,`cacheName`),this.#caches.has(cacheName)}async open(cacheName){webidl$6.brandCheck(this,CacheStorage$1);let prefix=`CacheStorage.open`;if(webidl$6.argumentLengthCheck(arguments,1,prefix),cacheName=webidl$6.converters.DOMString(cacheName,prefix,`cacheName`),this.#caches.has(cacheName)){let cache$5=this.#caches.get(cacheName);return new Cache(kConstruct$3,cache$5)}let cache$4=[];return this.#caches.set(cacheName,cache$4),new Cache(kConstruct$3,cache$4)}async delete(cacheName){webidl$6.brandCheck(this,CacheStorage$1);let prefix=`CacheStorage.delete`;return webidl$6.argumentLengthCheck(arguments,1,prefix),cacheName=webidl$6.converters.DOMString(cacheName,prefix,`cacheName`),this.#caches.delete(cacheName)}async keys(){webidl$6.brandCheck(this,CacheStorage$1);let keys=this.#caches.keys();return[...keys]}};Object.defineProperties(CacheStorage$1.prototype,{[Symbol.toStringTag]:{value:`CacheStorage`,configurable:!0},match:kEnumerableProperty$5,has:kEnumerableProperty$5,open:kEnumerableProperty$5,delete:kEnumerableProperty$5,keys:kEnumerableProperty$5}),module.exports={CacheStorage:CacheStorage$1}})),require_constants$2=__commonJSMin(((exports,module)=>{let maxAttributeValueSize$1=1024,maxNameValuePairSize$1=4096;module.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}})),require_util$2=__commonJSMin(((exports,module)=>{function isCTLExcludingHtab$1(value){for(let i$5=0;i$5<value.length;++i$5){let code$1=value.charCodeAt(i$5);if(code$1>=0&&code$1<=8||code$1>=10&&code$1<=31||code$1===127)return!0}return!1}function validateCookieName(name$7){for(let i$5=0;i$5<name$7.length;++i$5){let code$1=name$7.charCodeAt(i$5);if(code$1<33||code$1>126||code$1===34||code$1===40||code$1===41||code$1===60||code$1===62||code$1===64||code$1===44||code$1===59||code$1===58||code$1===92||code$1===47||code$1===91||code$1===93||code$1===63||code$1===61||code$1===123||code$1===125)throw Error(`Invalid cookie name`)}}function validateCookieValue(value){let len$1=value.length,i$5=0;if(value[0]===`"`){if(len$1===1||value[len$1-1]!==`"`)throw Error(`Invalid cookie value`);--len$1,++i$5}for(;i$5<len$1;){let code$1=value.charCodeAt(i$5++);if(code$1<33||code$1>126||code$1===34||code$1===44||code$1===59||code$1===92)throw Error(`Invalid cookie value`)}}function validateCookiePath(path$38){for(let i$5=0;i$5<path$38.length;++i$5){let code$1=path$38.charCodeAt(i$5);if(code$1<32||code$1===127||code$1===59)throw Error(`Invalid cookie path`)}}function validateCookieDomain(domain$1){if(domain$1.startsWith(`-`)||domain$1.endsWith(`.`)||domain$1.endsWith(`-`))throw Error(`Invalid cookie domain`)}let 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((_$6,i$5)=>i$5.toString().padStart(2,`0`));function toIMFDate(date$8){return typeof date$8==`number`&&(date$8=new Date(date$8)),`${IMFDays[date$8.getUTCDay()]}, ${IMFPaddedNumbers[date$8.getUTCDate()]} ${IMFMonths[date$8.getUTCMonth()]} ${date$8.getUTCFullYear()} ${IMFPaddedNumbers[date$8.getUTCHours()]}:${IMFPaddedNumbers[date$8.getUTCMinutes()]}:${IMFPaddedNumbers[date$8.getUTCSeconds()]} GMT`}function validateCookieMaxAge(maxAge){if(maxAge<0)throw Error(`Invalid cookie max-age`)}function stringify$1(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 Error(`Invalid unparsed`);let[key,...value]=part.split(`=`);out.push(`${key.trim()}=${value.join(`=`)}`)}return out.join(`; `)}module.exports={isCTLExcludingHtab:isCTLExcludingHtab$1,validateCookieName,validateCookiePath,validateCookieValue,toIMFDate,stringify:stringify$1}})),require_parse$1=__commonJSMin(((exports,module)=>{let{maxNameValuePairSize,maxAttributeValueSize}=require_constants$2(),{isCTLExcludingHtab}=require_util$2(),{collectASequenceOfCodePointsFast:collectASequenceOfCodePointsFast$1}=require_data_url(),assert$3=__require$1(`node:assert`),{unescape:qsUnescape}=__require$1(`node:querystring`);function parseSetCookie$1(header){if(isCTLExcludingHtab(header))return null;let nameValuePair=``,unparsedAttributes=``,name$7=``,value=``;if(header.includes(`;`)){let position={position:0};nameValuePair=collectASequenceOfCodePointsFast$1(`;`,header,position),unparsedAttributes=header.slice(position.position)}else nameValuePair=header;if(!nameValuePair.includes(`=`))value=nameValuePair;else{let position={position:0};name$7=collectASequenceOfCodePointsFast$1(`=`,nameValuePair,position),value=nameValuePair.slice(position.position+1)}return name$7=name$7.trim(),value=value.trim(),name$7.length+value.length>maxNameValuePairSize?null:{name:name$7,value:qsUnescape(value),...parseUnparsedAttributes(unparsedAttributes)}}function parseUnparsedAttributes(unparsedAttributes,cookieAttributeList={}){if(unparsedAttributes.length===0)return cookieAttributeList;assert$3(unparsedAttributes[0]===`;`),unparsedAttributes=unparsedAttributes.slice(1);let cookieAv=``;unparsedAttributes.includes(`;`)?(cookieAv=collectASequenceOfCodePointsFast$1(`;`,unparsedAttributes,{position:0}),unparsedAttributes=unparsedAttributes.slice(cookieAv.length)):(cookieAv=unparsedAttributes,unparsedAttributes=``);let attributeName=``,attributeValue=``;if(cookieAv.includes(`=`)){let position={position:0};attributeName=collectASequenceOfCodePointsFast$1(`=`,cookieAv,position),attributeValue=cookieAv.slice(position.position+1)}else attributeName=cookieAv;if(attributeName=attributeName.trim(),attributeValue=attributeValue.trim(),attributeValue.length>maxAttributeValueSize)return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList);let attributeNameLowercase=attributeName.toLowerCase();if(attributeNameLowercase===`expires`){let expiryTime=new Date(attributeValue);cookieAttributeList.expires=expiryTime}else if(attributeNameLowercase===`max-age`){let charCode=attributeValue.charCodeAt(0);if((charCode<48||charCode>57)&&attributeValue[0]!==`-`||!/^\d+$/.test(attributeValue))return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList);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=``;cookiePath=attributeValue.length===0||attributeValue[0]!==`/`?`/`:attributeValue,cookieAttributeList.path=cookiePath}else if(attributeNameLowercase===`secure`)cookieAttributeList.secure=!0;else if(attributeNameLowercase===`httponly`)cookieAttributeList.httpOnly=!0;else if(attributeNameLowercase===`samesite`){let enforcement=`Default`,attributeValueLowercase=attributeValue.toLowerCase();attributeValueLowercase.includes(`none`)&&(enforcement=`None`),attributeValueLowercase.includes(`strict`)&&(enforcement=`Strict`),attributeValueLowercase.includes(`lax`)&&(enforcement=`Lax`),cookieAttributeList.sameSite=enforcement}else cookieAttributeList.unparsed??=[],cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`);return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList)}module.exports={parseSetCookie:parseSetCookie$1,parseUnparsedAttributes}})),require_cookies=__commonJSMin(((exports,module)=>{let{parseSetCookie}=require_parse$1(),{stringify}=require_util$2(),{webidl:webidl$5}=require_webidl(),{Headers:Headers$2}=require_headers(),brandChecks=webidl$5.brandCheckMultiple([Headers$2,globalThis.Headers].filter(Boolean));function getCookies$1(headers$2){webidl$5.argumentLengthCheck(arguments,1,`getCookies`),brandChecks(headers$2);let cookie=headers$2.get(`cookie`),out={};if(!cookie)return out;for(let piece of cookie.split(`;`)){let[name$7,...value]=piece.split(`=`);out[name$7.trim()]=value.join(`=`)}return out}function deleteCookie$1(headers$2,name$7,attributes){brandChecks(headers$2);let prefix=`deleteCookie`;webidl$5.argumentLengthCheck(arguments,2,prefix),name$7=webidl$5.converters.DOMString(name$7,prefix,`name`),attributes=webidl$5.converters.DeleteCookieAttributes(attributes),setCookie$1(headers$2,{name:name$7,value:``,expires:new Date(0),...attributes})}function getSetCookies$1(headers$2){webidl$5.argumentLengthCheck(arguments,1,`getSetCookies`),brandChecks(headers$2);let cookies=headers$2.getSetCookie();return cookies?cookies.map(pair=>parseSetCookie(pair)):[]}function parseCookie$1(cookie){return cookie=webidl$5.converters.DOMString(cookie),parseSetCookie(cookie)}function setCookie$1(headers$2,cookie){webidl$5.argumentLengthCheck(arguments,2,`setCookie`),brandChecks(headers$2),cookie=webidl$5.converters.Cookie(cookie);let str$1=stringify(cookie);str$1&&headers$2.append(`set-cookie`,str$1,!0)}webidl$5.converters.DeleteCookieAttributes=webidl$5.dictionaryConverter([{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`domain`,defaultValue:()=>null}]),webidl$5.converters.Cookie=webidl$5.dictionaryConverter([{converter:webidl$5.converters.DOMString,key:`name`},{converter:webidl$5.converters.DOMString,key:`value`},{converter:webidl$5.nullableConverter(value=>typeof value==`number`?webidl$5.converters[`unsigned long long`](value):new Date(value)),key:`expires`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters[`long long`]),key:`maxAge`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`domain`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.boolean),key:`secure`,defaultValue:()=>null},{converter:webidl$5.nullableConverter(webidl$5.converters.boolean),key:`httpOnly`,defaultValue:()=>null},{converter:webidl$5.converters.USVString,key:`sameSite`,allowedValues:[`Strict`,`Lax`,`None`]},{converter:webidl$5.sequenceConverter(webidl$5.converters.DOMString),key:`unparsed`,defaultValue:()=>[]}]),module.exports={getCookies:getCookies$1,deleteCookie:deleteCookie$1,getSetCookies:getSetCookies$1,setCookie:setCookie$1,parseCookie:parseCookie$1}})),require_events=__commonJSMin(((exports,module)=>{let{webidl:webidl$4}=require_webidl(),{kEnumerableProperty:kEnumerableProperty$4}=require_util$5(),{kConstruct:kConstruct$2}=require_symbols$1();var MessageEvent$2=class MessageEvent$2 extends Event{#eventInit;constructor(type,eventInitDict={}){if(type===kConstruct$2){super(arguments[1],arguments[2]),webidl$4.util.markAsUncloneable(this);return}let prefix=`MessageEvent constructor`;webidl$4.argumentLengthCheck(arguments,1,prefix),type=webidl$4.converters.DOMString(type,prefix,`type`),eventInitDict=webidl$4.converters.MessageEventInit(eventInitDict,prefix,`eventInitDict`),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl$4.util.markAsUncloneable(this)}get data(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.data}get origin(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.origin}get lastEventId(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.lastEventId}get source(){return webidl$4.brandCheck(this,MessageEvent$2),this.#eventInit.source}get ports(){return webidl$4.brandCheck(this,MessageEvent$2),Object.isFrozen(this.#eventInit.ports)||Object.freeze(this.#eventInit.ports),this.#eventInit.ports}initMessageEvent(type,bubbles=!1,cancelable=!1,data$2=null,origin=``,lastEventId=``,source$39=null,ports=[]){return webidl$4.brandCheck(this,MessageEvent$2),webidl$4.argumentLengthCheck(arguments,1,`MessageEvent.initMessageEvent`),new MessageEvent$2(type,{bubbles,cancelable,data:data$2,origin,lastEventId,source:source$39,ports})}static createFastMessageEvent(type,init$4){let messageEvent=new MessageEvent$2(kConstruct$2,type,init$4);return messageEvent.#eventInit=init$4,messageEvent.#eventInit.data??=null,messageEvent.#eventInit.origin??=``,messageEvent.#eventInit.lastEventId??=``,messageEvent.#eventInit.source??=null,messageEvent.#eventInit.ports??=[],messageEvent}};let{createFastMessageEvent:createFastMessageEvent$2}=MessageEvent$2;delete MessageEvent$2.createFastMessageEvent;var CloseEvent$2=class CloseEvent$2 extends Event{#eventInit;constructor(type,eventInitDict={}){let prefix=`CloseEvent constructor`;webidl$4.argumentLengthCheck(arguments,1,prefix),type=webidl$4.converters.DOMString(type,prefix,`type`),eventInitDict=webidl$4.converters.CloseEventInit(eventInitDict),super(type,eventInitDict),this.#eventInit=eventInitDict,webidl$4.util.markAsUncloneable(this)}get wasClean(){return webidl$4.brandCheck(this,CloseEvent$2),this.#eventInit.wasClean}get code(){return webidl$4.brandCheck(this,CloseEvent$2),this.#eventInit.code}get reason(){return webidl$4.brandCheck(this,CloseEvent$2),this.#eventInit.reason}},ErrorEvent$2=class ErrorEvent$2 extends Event{#eventInit;constructor(type,eventInitDict){let prefix=`ErrorEvent constructor`;webidl$4.argumentLengthCheck(arguments,1,prefix),super(type,eventInitDict),webidl$4.util.markAsUncloneable(this),type=webidl$4.converters.DOMString(type,prefix,`type`),eventInitDict=webidl$4.converters.ErrorEventInit(eventInitDict??{}),this.#eventInit=eventInitDict}get message(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.message}get filename(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.filename}get lineno(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.lineno}get colno(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.colno}get error(){return webidl$4.brandCheck(this,ErrorEvent$2),this.#eventInit.error}};Object.defineProperties(MessageEvent$2.prototype,{[Symbol.toStringTag]:{value:`MessageEvent`,configurable:!0},data:kEnumerableProperty$4,origin:kEnumerableProperty$4,lastEventId:kEnumerableProperty$4,source:kEnumerableProperty$4,ports:kEnumerableProperty$4,initMessageEvent:kEnumerableProperty$4}),Object.defineProperties(CloseEvent$2.prototype,{[Symbol.toStringTag]:{value:`CloseEvent`,configurable:!0},reason:kEnumerableProperty$4,code:kEnumerableProperty$4,wasClean:kEnumerableProperty$4}),Object.defineProperties(ErrorEvent$2.prototype,{[Symbol.toStringTag]:{value:`ErrorEvent`,configurable:!0},message:kEnumerableProperty$4,filename:kEnumerableProperty$4,lineno:kEnumerableProperty$4,colno:kEnumerableProperty$4,error:kEnumerableProperty$4}),webidl$4.converters.MessagePort=webidl$4.interfaceConverter(webidl$4.is.MessagePort,`MessagePort`),webidl$4.converters[`sequence<MessagePort>`]=webidl$4.sequenceConverter(webidl$4.converters.MessagePort);let eventInit=[{key:`bubbles`,converter:webidl$4.converters.boolean,defaultValue:()=>!1},{key:`cancelable`,converter:webidl$4.converters.boolean,defaultValue:()=>!1},{key:`composed`,converter:webidl$4.converters.boolean,defaultValue:()=>!1}];webidl$4.converters.MessageEventInit=webidl$4.dictionaryConverter([...eventInit,{key:`data`,converter:webidl$4.converters.any,defaultValue:()=>null},{key:`origin`,converter:webidl$4.converters.USVString,defaultValue:()=>``},{key:`lastEventId`,converter:webidl$4.converters.DOMString,defaultValue:()=>``},{key:`source`,converter:webidl$4.nullableConverter(webidl$4.converters.MessagePort),defaultValue:()=>null},{key:`ports`,converter:webidl$4.converters[`sequence<MessagePort>`],defaultValue:()=>[]}]),webidl$4.converters.CloseEventInit=webidl$4.dictionaryConverter([...eventInit,{key:`wasClean`,converter:webidl$4.converters.boolean,defaultValue:()=>!1},{key:`code`,converter:webidl$4.converters[`unsigned short`],defaultValue:()=>0},{key:`reason`,converter:webidl$4.converters.USVString,defaultValue:()=>``}]),webidl$4.converters.ErrorEventInit=webidl$4.dictionaryConverter([...eventInit,{key:`message`,converter:webidl$4.converters.DOMString,defaultValue:()=>``},{key:`filename`,converter:webidl$4.converters.USVString,defaultValue:()=>``},{key:`lineno`,converter:webidl$4.converters[`unsigned long`],defaultValue:()=>0},{key:`colno`,converter:webidl$4.converters[`unsigned long`],defaultValue:()=>0},{key:`error`,converter:webidl$4.converters.any}]),module.exports={MessageEvent:MessageEvent$2,CloseEvent:CloseEvent$2,ErrorEvent:ErrorEvent$2,createFastMessageEvent:createFastMessageEvent$2}})),require_constants$1=__commonJSMin(((exports,module)=>{let uid$1=`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,staticPropertyDescriptors$1={enumerable:!0,writable:!1,configurable:!1},states$5={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},sentCloseFrameState$4={SENT:1,RECEIVED:2},opcodes$7={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit$1=65535,parserStates$1={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer$2=Buffer.allocUnsafe(0),sendHints$2={text:1,typedArray:2,arrayBuffer:3,blob:4};module.exports={uid:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,sentCloseFrameState:sentCloseFrameState$4,staticPropertyDescriptors:staticPropertyDescriptors$1,states:states$5,opcodes:opcodes$7,maxUnsigned16Bit:65535,parserStates:parserStates$1,emptyBuffer:emptyBuffer$2,sendHints:sendHints$2}})),require_util$1=__commonJSMin(((exports,module)=>{let{states:states$4,opcodes:opcodes$6}=require_constants$1(),{isUtf8}=__require$1(`node:buffer`),{collectASequenceOfCodePointsFast,removeHTTPWhitespace}=require_data_url();function isConnecting$1(readyState){return readyState===states$4.CONNECTING}function isEstablished$3(readyState){return readyState===states$4.OPEN}function isClosing$2(readyState){return readyState===states$4.CLOSING}function isClosed$2(readyState){return readyState===states$4.CLOSED}function fireEvent$1(e$2,target,eventFactory=(type,init$4)=>new Event(type,init$4),eventInitDict={}){let event=eventFactory(e$2,eventInitDict);target.dispatchEvent(event)}function websocketMessageReceived$1(handler,type,data$2){handler.onMessage(type,data$2)}function toArrayBuffer$1(buffer$2){return buffer$2.byteLength===buffer$2.buffer.byteLength?buffer$2.buffer:new Uint8Array(buffer$2).buffer}function isValidSubprotocol$2(protocol){if(protocol.length===0)return!1;for(let i$5=0;i$5<protocol.length;++i$5){let code$1=protocol.charCodeAt(i$5);if(code$1<33||code$1>126||code$1===34||code$1===40||code$1===41||code$1===44||code$1===47||code$1===58||code$1===59||code$1===60||code$1===61||code$1===62||code$1===63||code$1===64||code$1===91||code$1===92||code$1===93||code$1===123||code$1===125)return!1}return!0}function isValidStatusCode$1(code$1){return code$1>=1e3&&code$1<1015?code$1!==1004&&code$1!==1005&&code$1!==1006:code$1>=3e3&&code$1<=4999}function isControlFrame$1(opcode){return opcode===opcodes$6.CLOSE||opcode===opcodes$6.PING||opcode===opcodes$6.PONG}function isContinuationFrame$1(opcode){return opcode===opcodes$6.CONTINUATION}function isTextBinaryFrame$1(opcode){return opcode===opcodes$6.TEXT||opcode===opcodes$6.BINARY}function isValidOpcode$1(opcode){return isTextBinaryFrame$1(opcode)||isContinuationFrame$1(opcode)||isControlFrame$1(opcode)}function parseExtensions$1(extensions$1){let position={position:0},extensionList=new Map;for(;position.position<extensions$1.length;){let pair=collectASequenceOfCodePointsFast(`;`,extensions$1,position),[name$7,value=``]=pair.split(`=`,2);extensionList.set(removeHTTPWhitespace(name$7,!0,!1),removeHTTPWhitespace(value,!1,!0)),position.position++}return extensionList}function isValidClientWindowBits$1(value){for(let i$5=0;i$5<value.length;i$5++){let byte$1=value.charCodeAt(i$5);if(byte$1<48||byte$1>57)return!1}return!0}function getURLRecord$2(url$4,baseURL){let urlRecord;try{urlRecord=new URL(url$4,baseURL)}catch(e$2){throw new DOMException(e$2,`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$2(code$1,reason){if(code$1!==null&&code$1!==1e3&&(code$1<3e3||code$1>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`)}}let utf8Decode$3=(()=>{if(typeof process.versions.icu==`string`){let fatalDecoder=new TextDecoder(`utf-8`,{fatal:!0});return fatalDecoder.decode.bind(fatalDecoder)}return function(buffer$2){if(isUtf8(buffer$2))return buffer$2.toString(`utf-8`);throw TypeError(`Invalid utf-8 received.`)}})();module.exports={isConnecting:isConnecting$1,isEstablished:isEstablished$3,isClosing:isClosing$2,isClosed:isClosed$2,fireEvent:fireEvent$1,isValidSubprotocol:isValidSubprotocol$2,isValidStatusCode:isValidStatusCode$1,websocketMessageReceived:websocketMessageReceived$1,utf8Decode:utf8Decode$3,isControlFrame:isControlFrame$1,isContinuationFrame:isContinuationFrame$1,isTextBinaryFrame:isTextBinaryFrame$1,isValidOpcode:isValidOpcode$1,parseExtensions:parseExtensions$1,isValidClientWindowBits:isValidClientWindowBits$1,toArrayBuffer:toArrayBuffer$1,getURLRecord:getURLRecord$2,validateCloseCodeAndReason:validateCloseCodeAndReason$2}})),require_frame=__commonJSMin(((exports,module)=>{let{maxUnsigned16Bit,opcodes:opcodes$5}=require_constants$1(),BUFFER_SIZE=8*1024,crypto$5,buffer=null,bufIdx=BUFFER_SIZE;try{crypto$5=__require$1(`node:crypto`)}catch{crypto$5={randomFillSync:function(buffer$2,_offset,_size$1){for(let i$5=0;i$5<buffer$2.length;++i$5)buffer$2[i$5]=Math.random()*255|0;return buffer$2}}}function generateMask(){return bufIdx===BUFFER_SIZE&&(bufIdx=0,crypto$5.randomFillSync(buffer??=Buffer.allocUnsafeSlow(BUFFER_SIZE),0,BUFFER_SIZE)),[buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++],buffer[bufIdx++]]}var WebsocketFrameSend$5=class{constructor(data$2){this.frameData=data$2}createFrame(opcode){let frameData=this.frameData,maskKey=generateMask(),bodyLength$1=frameData?.byteLength??0,payloadLength=bodyLength$1,offset=6;bodyLength$1>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength$1>125&&(offset+=2,payloadLength=126);let buffer$2=Buffer.allocUnsafe(bodyLength$1+offset);buffer$2[0]=buffer$2[1]=0,buffer$2[0]|=128,buffer$2[0]=(buffer$2[0]&240)+opcode,buffer$2[offset-4]=maskKey[0],buffer$2[offset-3]=maskKey[1],buffer$2[offset-2]=maskKey[2],buffer$2[offset-1]=maskKey[3],buffer$2[1]=payloadLength,payloadLength===126?buffer$2.writeUInt16BE(bodyLength$1,2):payloadLength===127&&(buffer$2[2]=buffer$2[3]=0,buffer$2.writeUIntBE(bodyLength$1,4,6)),buffer$2[1]|=128;for(let i$5=0;i$5<bodyLength$1;++i$5)buffer$2[offset+i$5]=frameData[i$5]^maskKey[i$5&3];return buffer$2}static createFastTextFrame(buffer$2){let maskKey=generateMask(),bodyLength$1=buffer$2.length;for(let i$5=0;i$5<bodyLength$1;++i$5)buffer$2[i$5]^=maskKey[i$5&3];let payloadLength=bodyLength$1,offset=6;bodyLength$1>maxUnsigned16Bit?(offset+=8,payloadLength=127):bodyLength$1>125&&(offset+=2,payloadLength=126);let head=Buffer.allocUnsafeSlow(offset);return head[0]=128|opcodes$5.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$1,2):payloadLength===127&&(head[2]=head[3]=0,head.writeUIntBE(bodyLength$1,4,6)),[head,buffer$2]}};module.exports={WebsocketFrameSend:WebsocketFrameSend$5,generateMask}})),require_connection=__commonJSMin(((exports,module)=>{let{uid,states:states$3,sentCloseFrameState:sentCloseFrameState$3,emptyBuffer:emptyBuffer$1,opcodes:opcodes$4}=require_constants$1(),{parseExtensions,isClosed:isClosed$1,isClosing:isClosing$1,isEstablished:isEstablished$2,validateCloseCodeAndReason:validateCloseCodeAndReason$1}=require_util$1(),{makeRequest:makeRequest$1}=require_request(),{fetching:fetching$1}=require_fetch$1(),{Headers:Headers$1,getHeadersList}=require_headers(),{getDecodeSplit}=require_util$4(),{WebsocketFrameSend:WebsocketFrameSend$4}=require_frame(),assert$2=__require$1(`node:assert`),crypto$4;try{crypto$4=__require$1(`node:crypto`)}catch{}function establishWebSocketConnection$2(url$4,protocols,client,handler,options$1){let requestURL=url$4;requestURL.protocol=url$4.protocol===`ws:`?`http:`:`https:`;let request$3=makeRequest$1({urlList:[requestURL],client,serviceWorkers:`none`,referrer:`no-referrer`,mode:`websocket`,credentials:`include`,cache:`no-store`,redirect:`error`});if(options$1.headers){let headersList=getHeadersList(new Headers$1(options$1.headers));request$3.headersList=headersList}let keyValue=crypto$4.randomBytes(16).toString(`base64`);request$3.headersList.append(`sec-websocket-key`,keyValue,!0),request$3.headersList.append(`sec-websocket-version`,`13`,!0);for(let protocol of protocols)request$3.headersList.append(`sec-websocket-protocol`,protocol,!0);let permessageDeflate=`permessage-deflate; client_max_window_bits`;request$3.headersList.append(`sec-websocket-extensions`,`permessage-deflate; client_max_window_bits`,!0);let controller=fetching$1({request:request$3,useParallelQueue:!0,dispatcher:options$1.dispatcher,processResponse(response){if(response.type===`error`&&(handler.readyState=states$3.CLOSED),response.type===`error`||response.status!==101){failWebsocketConnection$3(handler,1002,`Received network error or non-101 status code.`,response.error);return}if(protocols.length!==0&&!response.headersList.get(`Sec-WebSocket-Protocol`)){failWebsocketConnection$3(handler,1002,`Server did not respond with sent protocols.`);return}if(response.headersList.get(`Upgrade`)?.toLowerCase()!==`websocket`){failWebsocketConnection$3(handler,1002,`Server did not set Upgrade header to "websocket".`);return}if(response.headersList.get(`Connection`)?.toLowerCase()!==`upgrade`){failWebsocketConnection$3(handler,1002,`Server did not set Connection header to "upgrade".`);return}let secWSAccept=response.headersList.get(`Sec-WebSocket-Accept`),digest=crypto$4.createHash(`sha1`).update(keyValue+uid).digest(`base64`);if(secWSAccept!==digest){failWebsocketConnection$3(handler,1002,`Incorrect hash received in Sec-WebSocket-Accept header.`);return}let secExtension=response.headersList.get(`Sec-WebSocket-Extensions`),extensions$1;if(secExtension!==null&&(extensions$1=parseExtensions(secExtension),!extensions$1.has(`permessage-deflate`))){failWebsocketConnection$3(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$3.headersList);if(!requestProtocols.includes(secProtocol)){failWebsocketConnection$3(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$1)}});return controller}function closeWebSocketConnection$2(object$5,code$1,reason,validate$6=!1){if(code$1??=null,reason??=``,validate$6&&validateCloseCodeAndReason$1(code$1,reason),!(isClosed$1(object$5.readyState)||isClosing$1(object$5.readyState)))if(!isEstablished$2(object$5.readyState))failWebsocketConnection$3(object$5),object$5.readyState=states$3.CLOSING;else if(!object$5.closeState.has(sentCloseFrameState$3.SENT)&&!object$5.closeState.has(sentCloseFrameState$3.RECEIVED)){let frame=new WebsocketFrameSend$4;reason.length!==0&&code$1===null&&(code$1=1e3),assert$2(code$1===null||Number.isInteger(code$1)),code$1===null&&reason.length===0?frame.frameData=emptyBuffer$1:code$1!==null&&reason===null?(frame.frameData=Buffer.allocUnsafe(2),frame.frameData.writeUInt16BE(code$1,0)):code$1!==null&&reason!==null?(frame.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(reason)),frame.frameData.writeUInt16BE(code$1,0),frame.frameData.write(reason,2,`utf-8`)):frame.frameData=emptyBuffer$1,object$5.socket.write(frame.createFrame(opcodes$4.CLOSE)),object$5.closeState.add(sentCloseFrameState$3.SENT),object$5.readyState=states$3.CLOSING}else object$5.readyState=states$3.CLOSING}function failWebsocketConnection$3(handler,code$1,reason,cause){isEstablished$2(handler.readyState)&&closeWebSocketConnection$2(handler,code$1,reason,!1),handler.controller.abort(),handler.socket?handler.socket.destroyed===!1&&handler.socket.destroy():handler.onSocketClose()}module.exports={establishWebSocketConnection:establishWebSocketConnection$2,failWebsocketConnection:failWebsocketConnection$3,closeWebSocketConnection:closeWebSocketConnection$2}})),require_permessage_deflate=__commonJSMin(((exports,module)=>{let{createInflateRaw,Z_DEFAULT_WINDOWBITS}=__require$1(`node:zlib`),{isValidClientWindowBits}=require_util$1(),tail=Buffer.from([0,0,255,255]),kBuffer=Symbol(`kBuffer`),kLength=Symbol(`kLength`);var PerMessageDeflate$1=class{#inflate;#options={};constructor(extensions$1){this.#options.serverNoContextTakeover=extensions$1.has(`server_no_context_takeover`),this.#options.serverMaxWindowBits=extensions$1.get(`server_max_window_bits`)}decompress(chunk$1,fin,callback$1){if(!this.#inflate){let windowBits=Z_DEFAULT_WINDOWBITS;if(this.#options.serverMaxWindowBits){if(!isValidClientWindowBits(this.#options.serverMaxWindowBits)){callback$1(Error(`Invalid server_max_window_bits`));return}windowBits=Number.parseInt(this.#options.serverMaxWindowBits)}this.#inflate=createInflateRaw({windowBits}),this.#inflate[kBuffer]=[],this.#inflate[kLength]=0,this.#inflate.on(`data`,data$2=>{this.#inflate[kBuffer].push(data$2),this.#inflate[kLength]+=data$2.length}),this.#inflate.on(`error`,err$1=>{this.#inflate=null,callback$1(err$1)})}this.#inflate.write(chunk$1),fin&&this.#inflate.write(tail),this.#inflate.flush(()=>{let full=Buffer.concat(this.#inflate[kBuffer],this.#inflate[kLength]);this.#inflate[kBuffer].length=0,this.#inflate[kLength]=0,callback$1(null,full)})}};module.exports={PerMessageDeflate:PerMessageDeflate$1}})),require_receiver=__commonJSMin(((exports,module)=>{let{Writable:Writable$1}=__require$1(`node:stream`),assert$1=__require$1(`node:assert`),{parserStates,opcodes:opcodes$3,states:states$2,emptyBuffer,sentCloseFrameState:sentCloseFrameState$2}=require_constants$1(),{isValidStatusCode,isValidOpcode,websocketMessageReceived,utf8Decode:utf8Decode$2,isControlFrame,isTextBinaryFrame,isContinuationFrame}=require_util$1(),{failWebsocketConnection:failWebsocketConnection$2}=require_connection(),{WebsocketFrameSend:WebsocketFrameSend$3}=require_frame(),{PerMessageDeflate}=require_permessage_deflate();var ByteParser$2=class extends Writable$1{#buffers=[];#fragmentsBytes=0;#byteOffset=0;#loop=!1;#state=parserStates.INFO;#info={};#fragments=[];#extensions;#handler;constructor(handler,extensions$1){super(),this.#handler=handler,this.#extensions=extensions$1??new Map,this.#extensions.has(`permessage-deflate`)&&this.#extensions.set(`permessage-deflate`,new PerMessageDeflate(extensions$1))}_write(chunk$1,_$6,callback$1){this.#buffers.push(chunk$1),this.#byteOffset+=chunk$1.length,this.#loop=!0,this.run(callback$1)}run(callback$1){for(;this.#loop;)if(this.#state===parserStates.INFO){if(this.#byteOffset<2)return callback$1();let buffer$2=this.consume(2),fin=(buffer$2[0]&128)!=0,opcode=buffer$2[0]&15,masked=(buffer$2[1]&128)==128,fragmented=!fin&&opcode!==opcodes$3.CONTINUATION,payloadLength=buffer$2[1]&127,rsv1=buffer$2[0]&64,rsv2=buffer$2[0]&32,rsv3=buffer$2[0]&16;if(!isValidOpcode(opcode))return failWebsocketConnection$2(this.#handler,1002,`Invalid opcode received`),callback$1();if(masked)return failWebsocketConnection$2(this.#handler,1002,`Frame cannot be masked`),callback$1();if(rsv1!==0&&!this.#extensions.has(`permessage-deflate`)){failWebsocketConnection$2(this.#handler,1002,`Expected RSV1 to be clear.`);return}if(rsv2!==0||rsv3!==0){failWebsocketConnection$2(this.#handler,1002,`RSV1, RSV2, RSV3 must be clear`);return}if(fragmented&&!isTextBinaryFrame(opcode)){failWebsocketConnection$2(this.#handler,1002,`Invalid frame type was fragmented.`);return}if(isTextBinaryFrame(opcode)&&this.#fragments.length>0){failWebsocketConnection$2(this.#handler,1002,`Expected continuation frame`);return}if(this.#info.fragmented&&fragmented){failWebsocketConnection$2(this.#handler,1002,`Fragmented frame exceeded 125 bytes.`);return}if((payloadLength>125||fragmented)&&isControlFrame(opcode)){failWebsocketConnection$2(this.#handler,1002,`Control frame either too large or fragmented`);return}if(isContinuationFrame(opcode)&&this.#fragments.length===0&&!this.#info.compressed){failWebsocketConnection$2(this.#handler,1002,`Unexpected continuation frame`);return}payloadLength<=125?(this.#info.payloadLength=payloadLength,this.#state=parserStates.READ_DATA):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$1();let buffer$2=this.consume(2);this.#info.payloadLength=buffer$2.readUInt16BE(0),this.#state=parserStates.READ_DATA}else if(this.#state===parserStates.PAYLOADLENGTH_64){if(this.#byteOffset<8)return callback$1();let buffer$2=this.consume(8),upper=buffer$2.readUInt32BE(0);if(upper>2**31-1){failWebsocketConnection$2(this.#handler,1009,`Received payload length > 2^31 bytes.`);return}let lower=buffer$2.readUInt32BE(4);this.#info.payloadLength=(upper<<8)+lower,this.#state=parserStates.READ_DATA}else if(this.#state===parserStates.READ_DATA){if(this.#byteOffset<this.#info.payloadLength)return callback$1();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.writeFragments(body),!this.#info.fragmented&&this.#info.fin&&websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#state=parserStates.INFO;else{this.#extensions.get(`permessage-deflate`).decompress(body,this.#info.fin,(error$65,data$2)=>{if(error$65){failWebsocketConnection$2(this.#handler,1007,error$65.message);return}if(this.writeFragments(data$2),!this.#info.fin){this.#state=parserStates.INFO,this.#loop=!0,this.run(callback$1);return}websocketMessageReceived(this.#handler,this.#info.binaryType,this.consumeFragments()),this.#loop=!0,this.#state=parserStates.INFO,this.run(callback$1)}),this.#loop=!1;break}}}consume(n$2){if(n$2>this.#byteOffset)throw Error(`Called consume() before buffers satiated.`);if(n$2===0)return emptyBuffer;this.#byteOffset-=n$2;let first$1=this.#buffers[0];if(first$1.length>n$2)return this.#buffers[0]=first$1.subarray(n$2,first$1.length),first$1.subarray(0,n$2);if(first$1.length===n$2)return this.#buffers.shift();{let offset=0,buffer$2=Buffer.allocUnsafeSlow(n$2);for(;offset!==n$2;){let next=this.#buffers[0],length=next.length;if(length+offset===n$2){buffer$2.set(this.#buffers.shift(),offset);break}else if(length+offset>n$2){buffer$2.set(next.subarray(0,n$2-offset),offset),this.#buffers[0]=next.subarray(n$2-offset);break}else buffer$2.set(this.#buffers.shift(),offset),offset+=length}return buffer$2}}writeFragments(fragment){this.#fragmentsBytes+=fragment.length,this.#fragments.push(fragment)}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$5=0;i$5<fragments.length;++i$5){let buffer$2=fragments[i$5];output.set(buffer$2,offset),offset+=buffer$2.length}return this.#fragments=[],this.#fragmentsBytes=0,output}parseCloseBody(data$2){assert$1(data$2.length!==1);let code$1;if(data$2.length>=2&&(code$1=data$2.readUInt16BE(0)),code$1!==void 0&&!isValidStatusCode(code$1))return{code:1002,reason:`Invalid status code`,error:!0};let reason=data$2.subarray(2);reason[0]===239&&reason[1]===187&&reason[2]===191&&(reason=reason.subarray(3));try{reason=utf8Decode$2(reason)}catch{return{code:1007,reason:`Invalid UTF-8`,error:!0}}return{code:code$1,reason,error:!1}}parseControlFrame(body){let{opcode,payloadLength}=this.#info;if(opcode===opcodes$3.CLOSE){if(payloadLength===1)return failWebsocketConnection$2(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:code$1,reason}=this.#info.closeInfo;return failWebsocketConnection$2(this.#handler,code$1,reason),!1}if(!this.#handler.closeState.has(sentCloseFrameState$2.SENT)&&!this.#handler.closeState.has(sentCloseFrameState$2.RECEIVED)){let body$1=emptyBuffer;this.#info.closeInfo.code&&(body$1=Buffer.allocUnsafe(2),body$1.writeUInt16BE(this.#info.closeInfo.code,0));let closeFrame=new WebsocketFrameSend$3(body$1);this.#handler.socket.write(closeFrame.createFrame(opcodes$3.CLOSE)),this.#handler.closeState.add(sentCloseFrameState$2.SENT)}return this.#handler.readyState=states$2.CLOSING,this.#handler.closeState.add(sentCloseFrameState$2.RECEIVED),!1}else if(opcode===opcodes$3.PING){if(!this.#handler.closeState.has(sentCloseFrameState$2.RECEIVED)){let frame=new WebsocketFrameSend$3(body);this.#handler.socket.write(frame.createFrame(opcodes$3.PONG)),this.#handler.onPing(body)}}else opcode===opcodes$3.PONG&&this.#handler.onPong(body);return!0}get closingInfo(){return this.#info.closeInfo}};module.exports={ByteParser:ByteParser$2}})),require_sender=__commonJSMin(((exports,module)=>{let{WebsocketFrameSend:WebsocketFrameSend$2}=require_frame(),{opcodes:opcodes$2,sendHints:sendHints$1}=require_constants$1(),FixedQueue=require_fixed_queue();var SendQueue$1=class{#queue=new FixedQueue;#running=!1;#socket;constructor(socket){this.#socket=socket}add(item,cb,hint){if(hint!==sendHints$1.blob){if(this.#running){let node$1={promise:null,callback:cb,frame:createFrame(item,hint)};this.#queue.push(node$1)}else if(hint===sendHints$1.text){let{0:head,1:body}=WebsocketFrameSend$2.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$1=>{node.promise=null,node.frame=createFrame(ab$1,hint)}),callback:cb,frame:null};this.#queue.push(node),this.#running||this.#run()}async#run(){this.#running=!0;let queue$2=this.#queue;for(;!queue$2.isEmpty();){let node=queue$2.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$2,hint){return new WebsocketFrameSend$2(toBuffer(data$2,hint)).createFrame(hint===sendHints$1.text?opcodes$2.TEXT:opcodes$2.BINARY)}function toBuffer(data$2,hint){switch(hint){case sendHints$1.text:case sendHints$1.typedArray:return new Uint8Array(data$2.buffer,data$2.byteOffset,data$2.byteLength);case sendHints$1.arrayBuffer:case sendHints$1.blob:return new Uint8Array(data$2)}}module.exports={SendQueue:SendQueue$1}})),require_websocket=__commonJSMin(((exports,module)=>{let{isArrayBuffer:isArrayBuffer$1}=__require$1(`node:util/types`),{webidl:webidl$3}=require_webidl(),{URLSerializer}=require_data_url(),{environmentSettingsObject:environmentSettingsObject$2}=require_util$4(),{staticPropertyDescriptors,states:states$1,sentCloseFrameState:sentCloseFrameState$1,sendHints,opcodes:opcodes$1}=require_constants$1(),{isConnecting,isEstablished:isEstablished$1,isClosing,isClosed,isValidSubprotocol:isValidSubprotocol$1,fireEvent,utf8Decode:utf8Decode$1,toArrayBuffer,getURLRecord:getURLRecord$1}=require_util$1(),{establishWebSocketConnection:establishWebSocketConnection$1,closeWebSocketConnection:closeWebSocketConnection$1,failWebsocketConnection:failWebsocketConnection$1}=require_connection(),{ByteParser:ByteParser$1}=require_receiver(),{kEnumerableProperty:kEnumerableProperty$3}=require_util$5(),{getGlobalDispatcher:getGlobalDispatcher$1}=require_global(),{ErrorEvent:ErrorEvent$1,CloseEvent:CloseEvent$1,createFastMessageEvent:createFastMessageEvent$1}=require_events(),{SendQueue}=require_sender(),{WebsocketFrameSend:WebsocketFrameSend$1}=require_frame(),{channels:channels$1}=require_diagnostics();var WebSocket$3=class WebSocket$3 extends EventTarget{#events={open:null,error:null,close:null,message:null};#bufferedAmount=0;#protocol=``;#extensions=``;#sendQueue;#handler={onConnectionEstablished:(response,extensions$1)=>this.#onConnectionEstablished(response,extensions$1),onMessage:(opcode,data$2)=>this.#onMessage(opcode,data$2),onParserError:err$1=>failWebsocketConnection$1(this.#handler,null,err$1.message),onParserDrain:()=>this.#onParserDrain(),onSocketData:chunk$1=>{this.#parser.write(chunk$1)||this.#handler.socket.pause()},onSocketError:err$1=>{this.#handler.readyState=states$1.CLOSING,channels$1.socketError.hasSubscribers&&channels$1.socketError.publish(err$1),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:body=>{channels$1.ping.hasSubscribers&&channels$1.ping.publish({payload:body,websocket:this})},onPong:body=>{channels$1.pong.hasSubscribers&&channels$1.pong.publish({payload:body,websocket:this})},readyState:states$1.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#url;#binaryType;#parser;constructor(url$4,protocols=[]){super(),webidl$3.util.markAsUncloneable(this);let prefix=`WebSocket constructor`;webidl$3.argumentLengthCheck(arguments,1,prefix);let options$1=webidl$3.converters[`DOMString or sequence<DOMString> or WebSocketInit`](protocols,prefix,`options`);url$4=webidl$3.converters.USVString(url$4),protocols=options$1.protocols;let baseURL=environmentSettingsObject$2.settingsObject.baseUrl,urlRecord=getURLRecord$1(url$4,baseURL);if(typeof protocols==`string`&&(protocols=[protocols]),protocols.length!==new Set(protocols.map(p$2=>p$2.toLowerCase())).size||protocols.length>0&&!protocols.every(p$2=>isValidSubprotocol$1(p$2)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);this.#url=new URL(urlRecord.href);let client=environmentSettingsObject$2.settingsObject;this.#handler.controller=establishWebSocketConnection$1(urlRecord,protocols,client,this.#handler,options$1),this.#handler.readyState=WebSocket$3.CONNECTING,this.#binaryType=`blob`}close(code$1=void 0,reason=void 0){webidl$3.brandCheck(this,WebSocket$3);let prefix=`WebSocket.close`;code$1!==void 0&&(code$1=webidl$3.converters[`unsigned short`](code$1,`WebSocket.close`,`code`,webidl$3.attributes.Clamp)),reason!==void 0&&(reason=webidl$3.converters.USVString(reason)),code$1??=null,reason??=``,closeWebSocketConnection$1(this.#handler,code$1,reason,!0)}send(data$2){webidl$3.brandCheck(this,WebSocket$3);let prefix=`WebSocket.send`;if(webidl$3.argumentLengthCheck(arguments,1,prefix),data$2=webidl$3.converters.WebSocketSendData(data$2,prefix,`data`),isConnecting(this.#handler.readyState))throw new DOMException(`Sent before connected.`,`InvalidStateError`);if(!(!isEstablished$1(this.#handler.readyState)||isClosing(this.#handler.readyState)))if(typeof data$2==`string`){let buffer$2=Buffer.from(data$2);this.#bufferedAmount+=buffer$2.byteLength,this.#sendQueue.add(buffer$2,()=>{this.#bufferedAmount-=buffer$2.byteLength},sendHints.text)}else isArrayBuffer$1(data$2)?(this.#bufferedAmount+=data$2.byteLength,this.#sendQueue.add(data$2,()=>{this.#bufferedAmount-=data$2.byteLength},sendHints.arrayBuffer)):ArrayBuffer.isView(data$2)?(this.#bufferedAmount+=data$2.byteLength,this.#sendQueue.add(data$2,()=>{this.#bufferedAmount-=data$2.byteLength},sendHints.typedArray)):webidl$3.is.Blob(data$2)&&(this.#bufferedAmount+=data$2.size,this.#sendQueue.add(data$2,()=>{this.#bufferedAmount-=data$2.size},sendHints.blob))}get readyState(){return webidl$3.brandCheck(this,WebSocket$3),this.#handler.readyState}get bufferedAmount(){return webidl$3.brandCheck(this,WebSocket$3),this.#bufferedAmount}get url(){return webidl$3.brandCheck(this,WebSocket$3),URLSerializer(this.#url)}get extensions(){return webidl$3.brandCheck(this,WebSocket$3),this.#extensions}get protocol(){return webidl$3.brandCheck(this,WebSocket$3),this.#protocol}get onopen(){return webidl$3.brandCheck(this,WebSocket$3),this.#events.open}set onopen(fn){webidl$3.brandCheck(this,WebSocket$3),this.#events.open&&this.removeEventListener(`open`,this.#events.open);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.open=null:(this.addEventListener(`open`,listener),this.#events.open=fn)}get onerror(){return webidl$3.brandCheck(this,WebSocket$3),this.#events.error}set onerror(fn){webidl$3.brandCheck(this,WebSocket$3),this.#events.error&&this.removeEventListener(`error`,this.#events.error);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.error=null:(this.addEventListener(`error`,listener),this.#events.error=fn)}get onclose(){return webidl$3.brandCheck(this,WebSocket$3),this.#events.close}set onclose(fn){webidl$3.brandCheck(this,WebSocket$3),this.#events.close&&this.removeEventListener(`close`,this.#events.close);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.close=null:(this.addEventListener(`close`,listener),this.#events.close=fn)}get onmessage(){return webidl$3.brandCheck(this,WebSocket$3),this.#events.message}set onmessage(fn){webidl$3.brandCheck(this,WebSocket$3),this.#events.message&&this.removeEventListener(`message`,this.#events.message);let listener=webidl$3.converters.EventHandlerNonNull(fn);listener===null?this.#events.message=null:(this.addEventListener(`message`,listener),this.#events.message=fn)}get binaryType(){return webidl$3.brandCheck(this,WebSocket$3),this.#binaryType}set binaryType(type){webidl$3.brandCheck(this,WebSocket$3),type!==`blob`&&type!==`arraybuffer`?this.#binaryType=`blob`:this.#binaryType=type}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket;let parser$2=new ByteParser$1(this.#handler,parsedExtensions);parser$2.on(`drain`,()=>this.#handler.onParserDrain()),parser$2.on(`error`,err$1=>this.#handler.onParserError(err$1)),this.#parser=parser$2,this.#sendQueue=new SendQueue(response.socket),this.#handler.readyState=states$1.OPEN;let extensions$1=response.headersList.get(`sec-websocket-extensions`);extensions$1!==null&&(this.#extensions=extensions$1);let protocol=response.headersList.get(`sec-websocket-protocol`);if(protocol!==null&&(this.#protocol=protocol),fireEvent(`open`,this),channels$1.open.hasSubscribers){let headers$2=response.headersList.entries;channels$1.open.publish({address:response.socket.address(),protocol:this.#protocol,extensions:this.#extensions,websocket:this,handshakeResponse:{status:response.status,statusText:response.statusText,headers:headers$2}})}}#onMessage(type,data$2){if(this.#handler.readyState!==states$1.OPEN)return;let dataForEvent;if(type===opcodes$1.TEXT)try{dataForEvent=utf8Decode$1(data$2)}catch{failWebsocketConnection$1(this.#handler,1007,`Received invalid UTF-8 in text frame.`);return}else type===opcodes$1.BINARY&&(dataForEvent=this.#binaryType===`blob`?new Blob([data$2]):toArrayBuffer(data$2));fireEvent(`message`,this,createFastMessageEvent$1,{origin:this.#url.origin,data:dataForEvent})}#onParserDrain(){this.#handler.socket.resume()}#onSocketClose(){let wasClean=this.#handler.closeState.has(sentCloseFrameState$1.SENT)&&this.#handler.closeState.has(sentCloseFrameState$1.RECEIVED),code$1=1005,reason=``,result=this.#parser?.closingInfo;result&&!result.error&&(code$1=result.code??1005,reason=result.reason),this.#handler.readyState=states$1.CLOSED,this.#handler.closeState.has(sentCloseFrameState$1.RECEIVED)||(code$1=1006,fireEvent(`error`,this,(type,init$4)=>new ErrorEvent$1(type,init$4),{error:TypeError(reason)})),fireEvent(`close`,this,(type,init$4)=>new CloseEvent$1(type,init$4),{wasClean,code:code$1,reason}),channels$1.close.hasSubscribers&&channels$1.close.publish({websocket:this,code:code$1,reason})}static ping(ws$2,buffer$2){if(Buffer.isBuffer(buffer$2)){if(buffer$2.length>125)throw TypeError(`A PING frame cannot have a body larger than 125 bytes.`)}else if(buffer$2!==void 0)throw TypeError(`Expected buffer payload`);let readyState=ws$2.#handler.readyState;if(isEstablished$1(readyState)&&!isClosing(readyState)&&!isClosed(readyState)){let frame=new WebsocketFrameSend$1(buffer$2);ws$2.#handler.socket.write(frame.createFrame(opcodes$1.PING))}}};let{ping:ping$1}=WebSocket$3;Reflect.deleteProperty(WebSocket$3,`ping`),WebSocket$3.CONNECTING=WebSocket$3.prototype.CONNECTING=states$1.CONNECTING,WebSocket$3.OPEN=WebSocket$3.prototype.OPEN=states$1.OPEN,WebSocket$3.CLOSING=WebSocket$3.prototype.CLOSING=states$1.CLOSING,WebSocket$3.CLOSED=WebSocket$3.prototype.CLOSED=states$1.CLOSED,Object.defineProperties(WebSocket$3.prototype,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors,url:kEnumerableProperty$3,readyState:kEnumerableProperty$3,bufferedAmount:kEnumerableProperty$3,onopen:kEnumerableProperty$3,onerror:kEnumerableProperty$3,onclose:kEnumerableProperty$3,close:kEnumerableProperty$3,onmessage:kEnumerableProperty$3,binaryType:kEnumerableProperty$3,send:kEnumerableProperty$3,extensions:kEnumerableProperty$3,protocol:kEnumerableProperty$3,[Symbol.toStringTag]:{value:`WebSocket`,writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(WebSocket$3,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors}),webidl$3.converters[`sequence<DOMString>`]=webidl$3.sequenceConverter(webidl$3.converters.DOMString),webidl$3.converters[`DOMString or sequence<DOMString>`]=function(V$5,prefix,argument){return webidl$3.util.Type(V$5)===webidl$3.util.Types.OBJECT&&Symbol.iterator in V$5?webidl$3.converters[`sequence<DOMString>`](V$5):webidl$3.converters.DOMString(V$5,prefix,argument)},webidl$3.converters.WebSocketInit=webidl$3.dictionaryConverter([{key:`protocols`,converter:webidl$3.converters[`DOMString or sequence<DOMString>`],defaultValue:()=>[]},{key:`dispatcher`,converter:webidl$3.converters.any,defaultValue:()=>getGlobalDispatcher$1()},{key:`headers`,converter:webidl$3.nullableConverter(webidl$3.converters.HeadersInit)}]),webidl$3.converters[`DOMString or sequence<DOMString> or WebSocketInit`]=function(V$5){return webidl$3.util.Type(V$5)===webidl$3.util.Types.OBJECT&&!(Symbol.iterator in V$5)?webidl$3.converters.WebSocketInit(V$5):{protocols:webidl$3.converters[`DOMString or sequence<DOMString>`](V$5)}},webidl$3.converters.WebSocketSendData=function(V$5){return webidl$3.util.Type(V$5)===webidl$3.util.Types.OBJECT&&(webidl$3.is.Blob(V$5)||webidl$3.is.BufferSource(V$5))?V$5:webidl$3.converters.USVString(V$5)},module.exports={WebSocket:WebSocket$3,ping:ping$1}})),require_websocketerror=__commonJSMin(((exports,module)=>{let{webidl:webidl$2}=require_webidl(),{validateCloseCodeAndReason}=require_util$1(),{kConstruct:kConstruct$1}=require_symbols$1(),{kEnumerableProperty:kEnumerableProperty$2}=require_util$5();function createInheritableDOMException(){class Test extends DOMException{get reason(){return``}}return new Test().reason===void 0?new Proxy(DOMException,{construct(target,args,newTarget){let instance$1=Reflect.construct(target,args,target);return Object.setPrototypeOf(instance$1,newTarget.prototype),instance$1}}):DOMException}var WebSocketError$1=class WebSocketError$1 extends createInheritableDOMException(){#closeCode;#reason;constructor(message=``,init$4=void 0){if(message=webidl$2.converters.DOMString(message,`WebSocketError`,`message`),super(message,`WebSocketError`),init$4===kConstruct$1)return;init$4!==null&&(init$4=webidl$2.converters.WebSocketCloseInfo(init$4));let code$1=init$4.closeCode??null,reason=init$4.reason??``;validateCloseCodeAndReason(code$1,reason),reason.length!==0&&code$1===null&&(code$1=1e3),this.#closeCode=code$1,this.#reason=reason}get closeCode(){return this.#closeCode}get reason(){return this.#reason}static createUnvalidatedWebSocketError(message,code$1,reason){let error$65=new WebSocketError$1(message,kConstruct$1);return error$65.#closeCode=code$1,error$65.#reason=reason,error$65}};let{createUnvalidatedWebSocketError:createUnvalidatedWebSocketError$1}=WebSocketError$1;delete WebSocketError$1.createUnvalidatedWebSocketError,Object.defineProperties(WebSocketError$1.prototype,{closeCode:kEnumerableProperty$2,reason:kEnumerableProperty$2,[Symbol.toStringTag]:{value:`WebSocketError`,writable:!1,enumerable:!1,configurable:!0}}),webidl$2.is.WebSocketError=webidl$2.util.MakeTypeAssertion(WebSocketError$1),module.exports={WebSocketError:WebSocketError$1,createUnvalidatedWebSocketError:createUnvalidatedWebSocketError$1}})),require_websocketstream=__commonJSMin(((exports,module)=>{let{createDeferredPromise:createDeferredPromise$2}=require_promise(),{environmentSettingsObject:environmentSettingsObject$1}=require_util$4(),{states,opcodes,sentCloseFrameState}=require_constants$1(),{webidl:webidl$1}=require_webidl(),{getURLRecord,isValidSubprotocol,isEstablished,utf8Decode}=require_util$1(),{establishWebSocketConnection,failWebsocketConnection,closeWebSocketConnection}=require_connection(),{channels}=require_diagnostics(),{WebsocketFrameSend}=require_frame(),{ByteParser}=require_receiver(),{WebSocketError,createUnvalidatedWebSocketError}=require_websocketerror(),{utf8DecodeBytes}=require_util$4(),{kEnumerableProperty:kEnumerableProperty$1}=require_util$5(),emittedExperimentalWarning=!1;var WebSocketStream=class{#url;#openedPromise;#closedPromise;#readableStream;#readableStreamController;#writableStream;#handshakeAborted=!1;#handler={onConnectionEstablished:(response,extensions$1)=>this.#onConnectionEstablished(response,extensions$1),onMessage:(opcode,data$2)=>this.#onMessage(opcode,data$2),onParserError:err$1=>failWebsocketConnection(this.#handler,null,err$1.message),onParserDrain:()=>this.#handler.socket.resume(),onSocketData:chunk$1=>{this.#parser.write(chunk$1)||this.#handler.socket.pause()},onSocketError:err$1=>{this.#handler.readyState=states.CLOSING,channels.socketError.hasSubscribers&&channels.socketError.publish(err$1),this.#handler.socket.destroy()},onSocketClose:()=>this.#onSocketClose(),onPing:()=>{},onPong:()=>{},readyState:states.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#parser;constructor(url$4,options$1=void 0){process.emitWarning(`WebSocketStream is experimental! Expect it to change at any time.`,{code:`UNDICI-WSS`}),webidl$1.argumentLengthCheck(arguments,1,`WebSocket`),url$4=webidl$1.converters.USVString(url$4),options$1!==null&&(options$1=webidl$1.converters.WebSocketStreamOptions(options$1));let baseURL=environmentSettingsObject$1.settingsObject.baseUrl,urlRecord=getURLRecord(url$4,baseURL),protocols=options$1.protocols;if(protocols.length!==new Set(protocols.map(p$2=>p$2.toLowerCase())).size||protocols.length>0&&!protocols.every(p$2=>isValidSubprotocol(p$2)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);if(this.#url=urlRecord.toString(),this.#openedPromise=createDeferredPromise$2(),this.#closedPromise=createDeferredPromise$2(),options$1.signal!=null){let signal=options$1.signal;if(signal.aborted){this.#openedPromise.reject(signal.reason),this.#closedPromise.reject(signal.reason);return}signal.addEventListener(`abort`,()=>{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)},{once:!0})}let client=environmentSettingsObject$1.settingsObject;this.#handler.controller=establishWebSocketConnection(urlRecord,protocols,client,this.#handler,options$1)}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$1.converters.WebSocketCloseInfo(closeInfo));let code$1=closeInfo.closeCode??null,reason=closeInfo.reason;closeWebSocketConnection(this.#handler,code$1,reason,!0)}#write(chunk$1){chunk$1=webidl$1.converters.WebSocketStreamWrite(chunk$1);let promise$2=createDeferredPromise$2(),data$2=null,opcode=null;if(webidl$1.is.BufferSource(chunk$1))data$2=new Uint8Array(ArrayBuffer.isView(chunk$1)?new Uint8Array(chunk$1.buffer,chunk$1.byteOffset,chunk$1.byteLength):chunk$1.slice()),opcode=opcodes.BINARY;else{let string$5;try{string$5=webidl$1.converters.DOMString(chunk$1)}catch(e$2){return promise$2.reject(e$2),promise$2.promise}data$2=new TextEncoder().encode(string$5),opcode=opcodes.TEXT}if(!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)){let frame=new WebsocketFrameSend(data$2);this.#handler.socket.write(frame.createFrame(opcode),()=>{promise$2.resolve(void 0)})}return promise$2.promise}#onConnectionEstablished(response,parsedExtensions){this.#handler.socket=response.socket;let parser$2=new ByteParser(this.#handler,parsedExtensions);parser$2.on(`drain`,()=>this.#handler.onParserDrain()),parser$2.on(`error`,err$1=>this.#handler.onParserError(err$1)),this.#parser=parser$2,this.#handler.readyState=states.OPEN;let extensions$1=parsedExtensions??``,protocol=response.headersList.get(`sec-websocket-protocol`)??``,readable$1=new ReadableStream({start:controller=>{this.#readableStreamController=controller},pull(controller){let chunk$1;for(;controller.desiredSize>0&&(chunk$1=response.socket.read())!==null;)controller.enqueue(chunk$1)},cancel:reason=>this.#cancel(reason)}),writable$1=new WritableStream({write:chunk$1=>this.#write(chunk$1),close:()=>closeWebSocketConnection(this.#handler,null,null),abort:reason=>this.#closeUsingReason(reason)});this.#readableStream=readable$1,this.#writableStream=writable$1,this.#openedPromise.resolve({extensions:extensions$1,protocol,readable:readable$1,writable:writable$1})}#onMessage(type,data$2){if(this.#handler.readyState!==states.OPEN)return;let chunk$1;if(type===opcodes.TEXT)try{chunk$1=utf8Decode(data$2)}catch{failWebsocketConnection(this.#handler,`Received invalid UTF-8 in text frame.`);return}else type===opcodes.BINARY&&(chunk$1=new Uint8Array(data$2.buffer,data$2.byteOffset,data$2.byteLength));this.#readableStreamController.enqueue(chunk$1)}#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$1=result?.code??1005;!this.#handler.closeState.has(sentCloseFrameState.SENT)&&!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)&&(code$1=1006);let reason=result?.reason==null?``:utf8DecodeBytes(Buffer.from(result.reason));if(wasClean)this.#readableStreamController.close(),this.#writableStream.locked||this.#writableStream.abort(new DOMException(`A closed WebSocketStream cannot be written to`,`InvalidStateError`)),this.#closedPromise.resolve({closeCode:code$1,reason});else{let error$65=createUnvalidatedWebSocketError(`unclean close`,code$1,reason);this.#readableStreamController.error(error$65),this.#writableStream.abort(error$65),this.#closedPromise.reject(error$65)}}#closeUsingReason(reason){let code$1=null,reasonString=``;webidl$1.is.WebSocketError(reason)&&(code$1=reason.closeCode,reasonString=reason.reason),closeWebSocketConnection(this.#handler,code$1,reasonString)}#cancel(reason){this.#closeUsingReason(reason)}};Object.defineProperties(WebSocketStream.prototype,{url:kEnumerableProperty$1,opened:kEnumerableProperty$1,closed:kEnumerableProperty$1,close:kEnumerableProperty$1,[Symbol.toStringTag]:{value:`WebSocketStream`,writable:!1,enumerable:!1,configurable:!0}}),webidl$1.converters.WebSocketStreamOptions=webidl$1.dictionaryConverter([{key:`protocols`,converter:webidl$1.sequenceConverter(webidl$1.converters.USVString),defaultValue:()=>[]},{key:`signal`,converter:webidl$1.nullableConverter(webidl$1.converters.AbortSignal),defaultValue:()=>null}]),webidl$1.converters.WebSocketCloseInfo=webidl$1.dictionaryConverter([{key:`closeCode`,converter:V$5=>webidl$1.converters[`unsigned short`](V$5,webidl$1.attributes.EnforceRange)},{key:`reason`,converter:webidl$1.converters.USVString,defaultValue:()=>``}]),webidl$1.converters.WebSocketStreamWrite=function(V$5){return typeof V$5==`string`?webidl$1.converters.USVString(V$5):webidl$1.converters.BufferSource(V$5)},module.exports={WebSocketStream}})),require_util=__commonJSMin(((exports,module)=>{function isValidLastEventId$1(value){return value.indexOf(`\0`)===-1}function isASCIINumber$1(value){if(value.length===0)return!1;for(let i$5=0;i$5<value.length;i$5++)if(value.charCodeAt(i$5)<48||value.charCodeAt(i$5)>57)return!1;return!0}module.exports={isValidLastEventId:isValidLastEventId$1,isASCIINumber:isASCIINumber$1}})),require_eventsource_stream=__commonJSMin(((exports,module)=>{let{Transform:Transform$1}=__require$1(`node:stream`),{isASCIINumber,isValidLastEventId}=require_util(),BOM=[239,187,191],LF=10,CR=13,COLON=58,SPACE$1=32;var EventSourceStream$1=class extends Transform$1{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(options$1={}){options$1.readableObjectMode=!0,super(options$1),this.state=options$1.eventSourceSettings||{},options$1.push&&(this.push=options$1.push)}_transform(chunk$1,_encoding,callback$1){if(chunk$1.length===0){callback$1();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,chunk$1]):this.buffer=chunk$1,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===BOM[0]){callback$1();return}this.checkBOM=!1,callback$1();return;case 2:if(this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]){callback$1();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]&&this.buffer[2]===BOM[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,callback$1();return}this.checkBOM=!1;break;default:this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]&&this.buffer[2]===BOM[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos<this.buffer.length;){if(this.eventEndCheck){if(this.crlfCheck){if(this.buffer[this.pos]===10){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===10||this.buffer[this.pos]===13){this.buffer[this.pos]===13&&(this.crlfCheck=!0),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,(this.event.data!==void 0||this.event.event||this.event.id!==void 0||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===10||this.buffer[this.pos]===13){this.buffer[this.pos]===13&&(this.crlfCheck=!0),this.parseLine(this.buffer.subarray(0,this.pos),this.event),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.eventEndCheck=!0;continue}this.pos++}callback$1()}parseLine(line$1,event){if(line$1.length===0)return;let colonPosition=line$1.indexOf(58);if(colonPosition===0)return;let field=``,value=``;if(colonPosition!==-1){field=line$1.subarray(0,colonPosition).toString(`utf8`);let valueStart=colonPosition+1;line$1[valueStart]===32&&++valueStart,value=line$1.subarray(valueStart).toString(`utf8`)}else field=line$1.toString(`utf8`),value=``;switch(field){case`data`:event[field]===void 0?event[field]=value:event[field]+=`\n${value}`;break;case`retry`:isASCIINumber(value)&&(event[field]=value);break;case`id`:isValidLastEventId(value)&&(event[field]=value);break;case`event`:value.length>0&&(event[field]=value);break}}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,event:void 0,id:void 0,retry:void 0}}};module.exports={EventSourceStream:EventSourceStream$1}})),require_eventsource=__commonJSMin(((exports,module)=>{let{pipeline:pipeline$1}=__require$1(`node:stream`),{fetching}=require_fetch$1(),{makeRequest}=require_request(),{webidl}=require_webidl(),{EventSourceStream}=require_eventsource_stream(),{parseMIMEType:parseMIMEType$1}=require_data_url(),{createFastMessageEvent}=require_events(),{isNetworkError}=require_response(),{kEnumerableProperty}=require_util$5(),{environmentSettingsObject}=require_util$4(),experimentalWarned=!1,defaultReconnectionTime=3e3,CONNECTING=0,OPEN=1,CLOSED=2,ANONYMOUS=`anonymous`,USE_CREDENTIALS=`use-credentials`;var EventSource$1=class EventSource$1 extends EventTarget{#events={open:null,error:null,message:null};#url;#withCredentials=!1;#readyState=0;#request=null;#controller=null;#dispatcher;#state;constructor(url$4,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$4=webidl.converters.USVString(url$4),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$4,settings.settingsObject.baseUrl),this.#state.origin=urlRecord.origin}catch(e$2){throw new DOMException(e$2,`SyntaxError`)}this.#url=urlRecord.href;let corsAttributeState=`anonymous`;eventSourceInitDict.withCredentials===!0&&(corsAttributeState=`use-credentials`,this.#withCredentials=!0);let initRequest={redirect:`follow`,keepalive:!0,mode:`cors`,credentials:corsAttributeState===`anonymous`?`same-origin`:`omit`,referrer:`no-referrer`};initRequest.client=environmentSettingsObject.settingsObject,initRequest.headersList=[[`accept`,{name:`accept`,value:`text/event-stream`}]],initRequest.cache=`no-store`,initRequest.initiator=`other`,initRequest.urlList=[new URL(this.#url)],this.#request=makeRequest(initRequest),this.#connect()}get readyState(){return this.#readyState}get url(){return this.#url}get withCredentials(){return this.#withCredentials}#connect(){if(this.#readyState===2)return;this.#readyState=0;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?`failure`:parseMIMEType$1(contentType),contentTypeValid=mimeType!==`failure`&&mimeType.essence===`text/event-stream`;if(response.status!==200||contentTypeValid===!1){this.close(),this.dispatchEvent(new Event(`error`));return}this.#readyState=1,this.dispatchEvent(new Event(`open`)),this.#state.origin=response.urlList[response.urlList.length-1].origin;let eventSourceStream=new EventSourceStream({eventSourceSettings:this.#state,push:event=>{this.dispatchEvent(createFastMessageEvent(event.type,event.options))}});pipeline$1(response.body.stream,eventSourceStream,error$65=>{error$65?.aborted===!1&&(this.close(),this.dispatchEvent(new Event(`error`)))})},this.#controller=fetching(fetchParams)}#reconnect(){this.#readyState!==2&&(this.#readyState=0,this.dispatchEvent(new Event(`error`)),setTimeout(()=>{this.#readyState===0&&(this.#state.lastEventId.length&&this.#request.headersList.set(`last-event-id`,this.#state.lastEventId,!0),this.#connect())},this.#state.reconnectionTime)?.unref())}close(){webidl.brandCheck(this,EventSource$1),this.#readyState!==2&&(this.#readyState=2,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.#events.open=null:(this.addEventListener(`open`,listener),this.#events.open=fn)}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.#events.message=null:(this.addEventListener(`message`,listener),this.#events.message=fn)}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.#events.error=null:(this.addEventListener(`error`,listener),this.#events.error=fn)}};let constantsPropertyDescriptors={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:0,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:1,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:2,writable:!1}};Object.defineProperties(EventSource$1,constantsPropertyDescriptors),Object.defineProperties(EventSource$1.prototype,constantsPropertyDescriptors),Object.defineProperties(EventSource$1.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},{key:`node`,converter:webidl.dictionaryConverter([{key:`reconnectionTime`,converter:webidl.converters[`unsigned long`],defaultValue:()=>defaultReconnectionTime},{key:`dispatcher`,converter:webidl.converters.any}]),defaultValue:()=>({})}]),module.exports={EventSource:EventSource$1,defaultReconnectionTime}})),require_undici=__commonJSMin(((exports,module)=>{let Client$2=require_client(),Dispatcher=require_dispatcher(),Pool=require_pool(),BalancedPool=require_balanced_pool(),Agent=require_agent(),ProxyAgent$2=require_proxy_agent(),EnvHttpProxyAgent$1=require_env_http_proxy_agent(),RetryAgent=require_retry_agent(),H2CClient=require_h2c_client(),errors=require_errors(),util$1=require_util$5(),{InvalidArgumentError:InvalidArgumentError$1}=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:setGlobalDispatcher$2}=require_global(),DecoratorHandler=require_decorator_handler(),RedirectHandler=require_redirect_handler();Object.assign(Dispatcher.prototype,api),module.exports.Dispatcher=Dispatcher,module.exports.Client=Client$2,module.exports.Pool=Pool,module.exports.BalancedPool=BalancedPool,module.exports.Agent=Agent,module.exports.ProxyAgent=ProxyAgent$2,module.exports.EnvHttpProxyAgent=EnvHttpProxyAgent$1,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_cache$1(),decompress:require_decompress()},module.exports.cacheStores={MemoryCacheStore:require_memory_cache_store()};let SqliteCacheStore=require_sqlite_cache_store();module.exports.cacheStores.SqliteCacheStore=SqliteCacheStore,module.exports.buildConnector=buildConnector,module.exports.errors=errors,module.exports.util={parseHeaders:util$1.parseHeaders,headerNameToString:util$1.headerNameToString};function makeDispatcher(fn){return(url$4,opts,handler)=>{if(typeof opts==`function`&&(handler=opts,opts=null),!url$4||typeof url$4!=`string`&&typeof url$4!=`object`&&!(url$4 instanceof URL))throw new InvalidArgumentError$1(`invalid url`);if(opts!=null&&typeof opts!=`object`)throw new InvalidArgumentError$1(`invalid opts`);if(opts&&opts.path!=null){if(typeof opts.path!=`string`)throw new InvalidArgumentError$1(`invalid opts.path`);let path$38=opts.path;opts.path.startsWith(`/`)||(path$38=`/${path$38}`),url$4=new URL(util$1.parseOrigin(url$4).origin+path$38)}else opts||=typeof url$4==`object`?url$4:{},url$4=util$1.parseURL(url$4);let{agent,dispatcher=getGlobalDispatcher()}=opts;if(agent)throw new InvalidArgumentError$1(`unsupported opts.agent. Did you mean opts.client?`);return fn.call(dispatcher,{...opts,origin:url$4.origin,path:url$4.search?`${url$4.pathname}${url$4.search}`:url$4.pathname,method:opts.method||(opts.body?`PUT`:`GET`)},handler)}}module.exports.setGlobalDispatcher=setGlobalDispatcher$2,module.exports.getGlobalDispatcher=getGlobalDispatcher;let fetchImpl=require_fetch$1().fetch;module.exports.fetch=function(init$4,options$1=void 0){return fetchImpl(init$4,options$1).catch(err$1=>{throw err$1&&typeof err$1==`object`&&Error.captureStackTrace(err$1),err$1})},module.exports.Headers=require_headers().Headers,module.exports.Response=require_response().Response,module.exports.Request=require_request().Request,module.exports.FormData=require_formdata().FormData;let{setGlobalOrigin,getGlobalOrigin}=require_global$1();module.exports.setGlobalOrigin=setGlobalOrigin,module.exports.getGlobalOrigin=getGlobalOrigin;let{CacheStorage}=require_cachestorage(),{kConstruct}=require_symbols$1();module.exports.caches=new CacheStorage(kConstruct);let{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;let{parseMIMEType,serializeAMimeType}=require_data_url();module.exports.parseMIMEType=parseMIMEType,module.exports.serializeAMimeType=serializeAMimeType;let{CloseEvent,ErrorEvent,MessageEvent:MessageEvent$1}=require_events(),{WebSocket:WebSocket$2,ping}=require_websocket();module.exports.WebSocket=WebSocket$2,module.exports.CloseEvent=CloseEvent,module.exports.ErrorEvent=ErrorEvent,module.exports.MessageEvent=MessageEvent$1,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;let{EventSource}=require_eventsource();module.exports.EventSource=EventSource;function install(){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=install})),import_undici$2=__toESM(require_undici(),1);const logger={debug:(...args)=>console.debug(`[DEBUG] [IDEClient]`,...args),error:(...args)=>console.error(`[ERROR] [IDEClient]`,...args)};var IDEConnectionStatus;(function(IDEConnectionStatus$1){IDEConnectionStatus$1.Connected=`connected`,IDEConnectionStatus$1.Disconnected=`disconnected`,IDEConnectionStatus$1.Connecting=`connecting`})(IDEConnectionStatus||={});function getRealPath(path$38){try{return fs$5.realpathSync(path$38)}catch{return path$38}}var IdeClient=class IdeClient{static instancePromise=null;client=void 0;state={status:IDEConnectionStatus.Disconnected,details:`IDE integration is currently disabled. To enable it, run /ide enable.`};currentIde;currentIdeDisplayName;ideProcessInfo;diffResponses=new Map;statusListeners=new Set;trustChangeListeners=new Set;diffMutex=Promise.resolve();constructor(){}static getInstance(){return IdeClient.instancePromise||=(async()=>{let client=new IdeClient;return client.ideProcessInfo=await getIdeProcessInfo(),client.currentIde=detectIde(client.ideProcessInfo),client.currentIde&&(client.currentIdeDisplayName=getIdeInfo(client.currentIde).displayName),client})(),IdeClient.instancePromise}addStatusChangeListener(listener){this.statusListeners.add(listener)}removeStatusChangeListener(listener){this.statusListeners.delete(listener)}addTrustChangeListener(listener){this.trustChangeListeners.add(listener)}removeTrustChangeListener(listener){this.trustChangeListeners.delete(listener)}async connect(){if(!this.currentIde||!this.currentIdeDisplayName){this.setState(IDEConnectionStatus.Disconnected,`IDE integration is not supported in your current environment. To use this feature, run Gemini CLI in one of these supported IDEs: VS Code or VS Code forks`,!1);return}this.setState(IDEConnectionStatus.Connecting);let configFromFile=await this.getConnectionConfigFromFile(),workspacePath=configFromFile?.workspacePath??process.env.GEMINI_CLI_IDE_WORKSPACE_PATH,{isValid:isValid$1,error:error$65}=IdeClient.validateWorkspacePath(workspacePath,this.currentIdeDisplayName,process.cwd());if(!isValid$1){this.setState(IDEConnectionStatus.Disconnected,error$65,!0);return}if(configFromFile){if(configFromFile.port){let connected=await this.establishHttpConnection(configFromFile.port);if(connected)return}if(configFromFile.stdio){let connected=await this.establishStdioConnection(configFromFile.stdio);if(connected)return}}let portFromEnv=this.getPortFromEnv();if(portFromEnv){let connected=await this.establishHttpConnection(portFromEnv);if(connected)return}let stdioConfigFromEnv=this.getStdioConfigFromEnv();if(stdioConfigFromEnv){let connected=await this.establishStdioConnection(stdioConfigFromEnv);if(connected)return}this.setState(IDEConnectionStatus.Disconnected,`Failed to connect to IDE companion extension in ${this.currentIdeDisplayName}. Please ensure the extension is running. To install the extension, run /ide install.`,!0)}async openDiff(filePath,newContent){let release=await this.acquireMutex(),promise$2=new Promise((resolve$10,reject)=>{if(!this.client)return reject(Error(`IDE client is not connected.`));this.diffResponses.set(filePath,resolve$10),this.client.callTool({name:`openDiff`,arguments:{filePath,newContent}}).catch(err$1=>{logger.debug(`callTool for ${filePath} failed:`,err$1),this.diffResponses.delete(filePath),reject(err$1)})});return promise$2.finally(release),promise$2}acquireMutex(){let release,newMutex=new Promise(resolve$10=>{release=resolve$10}),oldMutex=this.diffMutex;return this.diffMutex=newMutex,oldMutex.then(()=>release)}async closeDiff(filePath,options$1){try{let result=await this.client?.callTool({name:`closeDiff`,arguments:{filePath,suppressNotification:options$1?.suppressNotification}});if(result){let parsed=CloseDiffResponseSchema.parse(result);return parsed.content}}catch(err$1){logger.debug(`callTool for ${filePath} failed:`,err$1)}}async resolveDiffFromCli(filePath,outcome){let resolver=this.diffResponses.get(filePath),content=await this.closeDiff(filePath,{suppressNotification:!0});resolver&&(resolver(outcome===`accepted`?{status:`accepted`,content}:{status:`rejected`,content:void 0}),this.diffResponses.delete(filePath))}async disconnect(){if(this.state.status!==IDEConnectionStatus.Disconnected){for(let filePath of this.diffResponses.keys())await this.closeDiff(filePath);this.diffResponses.clear(),this.setState(IDEConnectionStatus.Disconnected,`IDE integration disabled. To enable it again, run /ide enable.`),this.client?.close()}}getCurrentIde(){return this.currentIde}getConnectionStatus(){return this.state}getDetectedIdeDisplayName(){return this.currentIdeDisplayName}setState(status,details,logToConsole=!1){let isAlreadyDisconnected=this.state.status===IDEConnectionStatus.Disconnected&&status===IDEConnectionStatus.Disconnected;if(!isAlreadyDisconnected){this.state={status,details};for(let listener of this.statusListeners)listener(this.state);details&&(logToConsole?logger.error(details):logger.debug(details))}status===IDEConnectionStatus.Disconnected&&ideContext.clearIdeContext()}static validateWorkspacePath(ideWorkspacePath,currentIdeDisplayName,cwd$3){if(ideWorkspacePath===void 0)return{isValid:!1,error:`Failed to connect to IDE companion extension in ${currentIdeDisplayName}. Please ensure the extension is running. To install the extension, run /ide install.`};if(ideWorkspacePath===``)return{isValid:!1,error:`To use this feature, please open a workspace folder in ${currentIdeDisplayName} and try again.`};let ideWorkspacePaths=ideWorkspacePath.split(path$6.delimiter),realCwd=getRealPath(cwd$3),isWithinWorkspace=ideWorkspacePaths.some(workspacePath=>{let idePath=getRealPath(workspacePath);return isSubpath(idePath,realCwd)});return isWithinWorkspace?{isValid:!0}:{isValid:!1,error:`Directory mismatch. Gemini CLI is running in a different location than the open workspace in ${currentIdeDisplayName}. Please run the CLI from one of the following directories: ${ideWorkspacePaths.join(`, `)}`}}getPortFromEnv(){let port$1=process.env.GEMINI_CLI_IDE_SERVER_PORT;if(port$1)return port$1}getStdioConfigFromEnv(){let command=process.env.GEMINI_CLI_IDE_SERVER_STDIO_COMMAND;if(!command)return;let argsStr=process.env.GEMINI_CLI_IDE_SERVER_STDIO_ARGS,args=[];if(argsStr)try{let parsedArgs=JSON.parse(argsStr);Array.isArray(parsedArgs)?args=parsedArgs:logger.error(`GEMINI_CLI_IDE_SERVER_STDIO_ARGS must be a JSON array string.`)}catch(e$2){logger.error(`Failed to parse GEMINI_CLI_IDE_SERVER_STDIO_ARGS:`,e$2)}return{command,args}}async getConnectionConfigFromFile(){if(!this.ideProcessInfo)return;try{let portFile=path$6.join(os$4.tmpdir(),`gemini-ide-server-${this.ideProcessInfo.pid}.json`),portFileContents=await fs$5.promises.readFile(portFile,`utf8`);return JSON.parse(portFileContents)}catch{}let portFileDir=path$6.join(os$4.tmpdir(),`.gemini`,`ide`),portFiles;try{portFiles=await fs$5.promises.readdir(portFileDir)}catch(e$2){logger.debug(`Failed to read IDE connection directory:`,e$2);return}let fileRegex=RegExp(`^gemini-ide-server-${this.ideProcessInfo.pid}-\\d+\\.json$`),matchingFiles=portFiles.filter(file$1=>fileRegex.test(file$1)).sort();if(matchingFiles.length===0)return;let fileContents;try{fileContents=await Promise.all(matchingFiles.map(file$1=>fs$5.promises.readFile(path$6.join(portFileDir,file$1),`utf8`)))}catch(e$2){logger.debug(`Failed to read IDE connection config file(s):`,e$2);return}let parsedContents=fileContents.map(content=>{try{return JSON.parse(content)}catch(e$2){logger.debug(`Failed to parse JSON from config file: `,e$2);return}}),validWorkspaces=parsedContents.filter(content=>{if(!content)return!1;let{isValid:isValid$1}=IdeClient.validateWorkspacePath(content.workspacePath,this.currentIdeDisplayName,process.cwd());return isValid$1});if(validWorkspaces.length===0)return;if(validWorkspaces.length===1)return validWorkspaces[0];let portFromEnv=this.getPortFromEnv();if(portFromEnv){let matchingPort=validWorkspaces.find(content=>content.port===portFromEnv);if(matchingPort)return matchingPort}return validWorkspaces[0]}createProxyAwareFetch(){let existingNoProxy=process.env.NO_PROXY||``,agent=new import_undici$2.EnvHttpProxyAgent({noProxy:[existingNoProxy,`localhost`].filter(Boolean).join(`,`)}),undiciPromise=Promise.resolve().then(()=>__toESM(require_undici(),1));return async(url$4,init$4)=>{let{fetch:fetchFn}=await undiciPromise,fetchOptions={...init$4,dispatcher:agent},options$1=fetchOptions,response=await fetchFn(url$4,options$1);return new Response(response.body,{status:response.status,statusText:response.statusText,headers:response.headers})}}registerClientHandlers(){this.client&&(this.client.setNotificationHandler(IdeContextNotificationSchema,notification=>{ideContext.setIdeContext(notification.params);let isTrusted=notification.params.workspaceState?.isTrusted;if(isTrusted!==void 0)for(let listener of this.trustChangeListeners)listener(isTrusted)}),this.client.onerror=_error$1=>{this.setState(IDEConnectionStatus.Disconnected,`IDE connection error. The connection was lost unexpectedly. Please try reconnecting by running /ide enable`,!0)},this.client.onclose=()=>{this.setState(IDEConnectionStatus.Disconnected,`IDE connection error. The connection was lost unexpectedly. Please try reconnecting by running /ide enable`,!0)},this.client.setNotificationHandler(IdeDiffAcceptedNotificationSchema,notification=>{let{filePath,content}=notification.params,resolver=this.diffResponses.get(filePath);resolver?(resolver({status:`accepted`,content}),this.diffResponses.delete(filePath)):logger.debug(`No resolver found for ${filePath}`)}),this.client.setNotificationHandler(IdeDiffClosedNotificationSchema,notification=>{let{filePath}=notification.params,resolver=this.diffResponses.get(filePath);resolver?(resolver({status:`rejected`,content:void 0}),this.diffResponses.delete(filePath)):logger.debug(`No resolver found for ${filePath}`)}))}async establishHttpConnection(port$1){let transport;try{return logger.debug(`Attempting to connect to IDE via HTTP SSE`),this.client=new Client$1({name:`streamable-http-client`,version:`1.0.0`}),transport=new StreamableHTTPClientTransport(new URL(`http://${getIdeServerHost()}:${port$1}/mcp`),{fetch:this.createProxyAwareFetch()}),await this.client.connect(transport),this.registerClientHandlers(),this.setState(IDEConnectionStatus.Connected),!0}catch{if(transport)try{await transport.close()}catch(closeError){logger.debug(`Failed to close transport:`,closeError)}return!1}}async establishStdioConnection({command,args}){let transport;try{return logger.debug(`Attempting to connect to IDE via stdio`),this.client=new Client$1({name:`stdio-client`,version:`1.0.0`}),transport=new StdioClientTransport({command,args}),await this.client.connect(transport),this.registerClientHandlers(),this.setState(IDEConnectionStatus.Connected),!0}catch{if(transport)try{await transport.close()}catch(closeError){logger.debug(`Failed to close transport:`,closeError)}return!1}}};function getIdeServerHost(){let isInContainer=fs$5.existsSync(`/.dockerenv`)||fs$5.existsSync(`/run/.containerenv`);return isInContainer?`host.docker.internal`:`localhost`}async function getCorrectedFileContent(config$3,filePath,proposedContent,abortSignal){let originalContent=``,fileExists$1=!1,correctedContent=proposedContent;try{originalContent=await config$3.getFileSystemService().readTextFile(filePath),fileExists$1=!0}catch(err$1){if(isNodeError(err$1)&&err$1.code===`ENOENT`)fileExists$1=!1,originalContent=``;else{fileExists$1=!0,originalContent=``;let error$65={message:getErrorMessage$2(err$1),code:isNodeError(err$1)?err$1.code:void 0};return{originalContent,correctedContent,fileExists:fileExists$1,error:error$65}}}if(fileExists$1){let{params:correctedParams}=await ensureCorrectEdit(filePath,originalContent,{old_string:originalContent,new_string:proposedContent,file_path:filePath},config$3.getGeminiClient(),abortSignal);correctedContent=correctedParams.new_string}else correctedContent=await ensureCorrectFileContent(proposedContent,config$3.getGeminiClient(),abortSignal);return{originalContent,correctedContent,fileExists:fileExists$1}}var WriteFileToolInvocation=class extends BaseToolInvocation{config;constructor(config$3,params){super(params),this.config=config$3}toolLocations(){return[{path:this.params.file_path}]}getDescription(){let relativePath=makeRelative(this.params.file_path,this.config.getTargetDir());return`Writing to ${shortenPath(relativePath)}`}async shouldConfirmExecute(abortSignal){if(this.config.getApprovalMode()===ApprovalMode.AUTO_EDIT)return!1;let correctedContentResult=await getCorrectedFileContent(this.config,this.params.file_path,this.params.content,abortSignal);if(correctedContentResult.error)return!1;let{originalContent,correctedContent}=correctedContentResult,relativePath=makeRelative(this.params.file_path,this.config.getTargetDir()),fileName=path.basename(this.params.file_path),fileDiff=createPatch(fileName,originalContent,correctedContent,`Current`,`Proposed`,DEFAULT_DIFF_OPTIONS),ideClient=await IdeClient.getInstance(),ideConfirmation=this.config.getIdeMode()&&ideClient.getConnectionStatus().status===IDEConnectionStatus.Connected?ideClient.openDiff(this.params.file_path,correctedContent):void 0,confirmationDetails={type:`edit`,title:`Confirm Write: ${shortenPath(relativePath)}`,fileName,filePath:this.params.file_path,fileDiff,originalContent,newContent:correctedContent,onConfirm:async outcome=>{if(outcome===ToolConfirmationOutcome.ProceedAlways&&this.config.setApprovalMode(ApprovalMode.AUTO_EDIT),ideConfirmation){let result=await ideConfirmation;result.status===`accepted`&&result.content&&(this.params.content=result.content)}},ideConfirmation};return confirmationDetails}async execute(abortSignal){let{file_path,content,ai_proposed_content,modified_by_user}=this.params,correctedContentResult=await getCorrectedFileContent(this.config,file_path,content,abortSignal);if(correctedContentResult.error){let errDetails=correctedContentResult.error,errorMsg=errDetails.code?`Error checking existing file '${file_path}': ${errDetails.message} (${errDetails.code})`:`Error checking existing file: ${errDetails.message}`;return{llmContent:errorMsg,returnDisplay:errorMsg,error:{message:errorMsg,type:ToolErrorType.FILE_WRITE_FAILURE}}}let{originalContent,correctedContent:fileContent,fileExists:fileExists$1}=correctedContentResult,isNewFile=!fileExists$1||correctedContentResult.error!==void 0&&!correctedContentResult.fileExists;try{let dirName=path.dirname(file_path);fs.existsSync(dirName)||fs.mkdirSync(dirName,{recursive:!0}),await this.config.getFileSystemService().writeTextFile(file_path,fileContent);let fileName=path.basename(file_path),currentContentForDiff=correctedContentResult.error?``:originalContent,fileDiff=createPatch(fileName,currentContentForDiff,fileContent,`Original`,`Written`,DEFAULT_DIFF_OPTIONS),originallyProposedContent=ai_proposed_content||content,diffStat=getDiffStat(fileName,currentContentForDiff,originallyProposedContent,content),llmSuccessMessageParts=[isNewFile?`Successfully created and wrote to new file: ${file_path}.`:`Successfully overwrote file: ${file_path}.`];modified_by_user&&llmSuccessMessageParts.push(`User modified the \`content\` to be: ${content}`);let mimetype=getSpecificMimeType(file_path),programmingLanguage=getLanguageFromFilePath(file_path),extension$1=path.extname(file_path),operation=isNewFile?FileOperation.CREATE:FileOperation.UPDATE;logFileOperation(this.config,new FileOperationEvent(WriteFileTool.Name,operation,fileContent.split(`
|
|
1136
1136
|
`).length,mimetype,extension$1,programmingLanguage));let displayResult={fileDiff,fileName,originalContent:correctedContentResult.originalContent,newContent:correctedContentResult.correctedContent,diffStat};return{llmContent:llmSuccessMessageParts.join(` `),returnDisplay:displayResult}}catch(error$65){let errorMsg,errorType=ToolErrorType.FILE_WRITE_FAILURE;return isNodeError(error$65)?(errorMsg=`Error writing to file '${file_path}': ${error$65.message} (${error$65.code})`,error$65.code===`EACCES`?(errorMsg=`Permission denied writing to file: ${file_path} (${error$65.code})`,errorType=ToolErrorType.PERMISSION_DENIED):error$65.code===`ENOSPC`?(errorMsg=`No space left on device: ${file_path} (${error$65.code})`,errorType=ToolErrorType.NO_SPACE_LEFT):error$65.code===`EISDIR`&&(errorMsg=`Target is a directory, not a file: ${file_path} (${error$65.code})`,errorType=ToolErrorType.TARGET_IS_DIRECTORY),this.config.getDebugMode()&&error$65.stack&&console.error(`Write file error stack:`,error$65.stack)):errorMsg=error$65 instanceof Error?`Error writing to file: ${error$65.message}`:`Error writing to file: ${String(error$65)}`,{llmContent:errorMsg,returnDisplay:errorMsg,error:{message:errorMsg,type:errorType}}}}},WriteFileTool=class WriteFileTool extends BaseDeclarativeTool{config;static Name=`write_file`;constructor(config$3){super(WriteFileTool.Name,`WriteFile`,`Writes content to a specified file in the local filesystem.
|
|
1137
1137
|
|
|
1138
1138
|
The user has the ability to modify \`content\`. If modified, this will be stated in the response.`,Kind.Edit,{properties:{file_path:{description:`The absolute path to the file to write to (e.g., '/home/user/project/file.txt'). Relative paths are not supported.`,type:`string`},content:{description:`The content to write to the file.`,type:`string`}},required:[`file_path`,`content`],type:`object`}),this.config=config$3}validateToolParamValues(params){let filePath=params.file_path;if(!filePath)return`Missing or empty "file_path"`;if(!path.isAbsolute(filePath))return`File path must be absolute: ${filePath}`;let workspaceContext=this.config.getWorkspaceContext();if(!workspaceContext.isPathWithinWorkspace(filePath)){let directories=workspaceContext.getDirectories();return`File path must be within one of the workspace directories: ${directories.join(`, `)}`}try{if(fs.existsSync(filePath)){let stats=fs.lstatSync(filePath);if(stats.isDirectory())return`Path is a directory, not a file: ${filePath}`}}catch(statError){return`Error accessing path properties for validation: ${filePath}. Reason: ${statError instanceof Error?statError.message:String(statError)}`}return null}createInvocation(params){return new WriteFileToolInvocation(this.config,params)}getModifyContext(abortSignal){return{getFilePath:params=>params.file_path,getCurrentContent:async params=>{let correctedContentResult=await getCorrectedFileContent(this.config,params.file_path,params.content,abortSignal);return correctedContentResult.originalContent},getProposedContent:async params=>{let correctedContentResult=await getCorrectedFileContent(this.config,params.file_path,params.content,abortSignal);return correctedContentResult.correctedContent},createUpdatedParams:(_oldContent,modifiedProposedContent,originalParams)=>{let content=originalParams.content;return{...originalParams,ai_proposed_content:content,content:modifiedProposedContent,modified_by_user:!0}}}}};function getDefaultExcludes(config$3){return config$3?.getFileExclusions().getReadManyFilesExcludes()??[]}const DEFAULT_OUTPUT_SEPARATOR_FORMAT=`--- {filePath} ---`,DEFAULT_OUTPUT_TERMINATOR=`
|
|
@@ -1715,13 +1715,7 @@ The structure MUST be as follows:
|
|
|
1715
1715
|
**Decision Rules (apply in order):**
|
|
1716
1716
|
1. **Model Continues:** If your last response explicitly states an immediate next action *you* intend to take (e.g., "Next, I will...", "Now I'll process...", "Moving on to analyze...", indicates an intended tool call that didn't execute), OR if the response seems clearly incomplete (cut off mid-thought without a natural conclusion), then the **'model'** should speak next.
|
|
1717
1717
|
2. **Question to User:** If your last response ends with a direct question specifically addressed *to the user*, then the **'user'** should speak next.
|
|
1718
|
-
3. **Waiting for User:** If your last response completed a thought, statement, or task *and* does not meet the criteria for Rule 1 (Model Continues) or Rule 2 (Question to User), it implies a pause expecting user input or reaction. In this case, the **'user'** should speak next.`}]}];try{let parsedResponse=await geminiClient.generateJson(contents,RESPONSE_SCHEMA,abortSignal,DEFAULT_GEMINI_FLASH_MODEL);return parsedResponse&&parsedResponse.next_speaker&&[`user`,`model`].includes(parsedResponse.next_speaker)?parsedResponse:null}catch(error$65){return console.warn(`Failed to talk to Gemini endpoint when seeing if conversation should continue.`,error$65),null}}var require_levenshtein=__commonJSMin(((exports,module)=>{(function(){var collator;try{collator=typeof Intl<`u`&&Intl.Collator!==void 0?Intl.Collator(`generic`,{sensitivity:`base`}):null}catch{console.log(`Collator could not be initialized and wouldn't be used`)}var prevRow=[],str2Char=[],Levenshtein={get:function(str1,str2,options$1){var useCollator=options$1&&collator&&options$1.useCollator,str1Len=str1.length,str2Len=str2.length;if(str1Len===0)return str2Len;if(str2Len===0)return str1Len;var curCol,nextCol,i$5,j$2,tmp;for(i$5=0;i$5<str2Len;++i$5)prevRow[i$5]=i$5,str2Char[i$5]=str2.charCodeAt(i$5);prevRow[str2Len]=str2Len;var strCmp;if(useCollator)for(i$5=0;i$5<str1Len;++i$5){for(nextCol=i$5+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=collator.compare(str1.charAt(i$5),String.fromCharCode(str2Char[j$2]))===0,nextCol=prevRow[j$2]+(strCmp?0:1),tmp=curCol+1,nextCol>tmp&&(nextCol=tmp),tmp=prevRow[j$2+1]+1,nextCol>tmp&&(nextCol=tmp),prevRow[j$2]=curCol;prevRow[j$2]=nextCol}else for(i$5=0;i$5<str1Len;++i$5){for(nextCol=i$5+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=str1.charCodeAt(i$5)===str2Char[j$2],nextCol=prevRow[j$2]+(strCmp?0:1),tmp=curCol+1,nextCol>tmp&&(nextCol=tmp),tmp=prevRow[j$2+1]+1,nextCol>tmp&&(nextCol=tmp),prevRow[j$2]=curCol;prevRow[j$2]=nextCol}return nextCol}};typeof define<`u`&&define!==null&&define.amd?define(function(){return Levenshtein}):module!=null&&exports!==void 0&&module.exports===exports?module.exports=Levenshtein:typeof self<`u`&&typeof self.postMessage==`function`&&typeof self.importScripts==`function`?self.Levenshtein=Levenshtein:typeof window<`u`&&window!==null&&(window.Levenshtein=Levenshtein)})()})),import_levenshtein=__toESM(require_levenshtein(),1),ChatRecordingService=class{conversationFile=null;cachedLastConvData=null;sessionId;projectHash;queuedThoughts=[];queuedTokens=null;config;constructor(config$3){this.config=config$3,this.sessionId=config$3.getSessionId(),this.projectHash=getProjectHash(config$3.getProjectRoot())}initialize(resumedSessionData){try{if(resumedSessionData)this.conversationFile=resumedSessionData.filePath,this.sessionId=resumedSessionData.conversation.sessionId,this.updateConversation(conversation=>{conversation.sessionId=this.sessionId}),this.cachedLastConvData=null;else{let chatsDir=path.join(this.config.storage.getProjectTempDir(),`chats`);fs.mkdirSync(chatsDir,{recursive:!0});let timestamp=new Date().toISOString().slice(0,16).replace(/:/g,`-`),filename=`session-${timestamp}-${this.sessionId.slice(0,8)}.json`;this.conversationFile=path.join(chatsDir,filename),this.writeConversation({sessionId:this.sessionId,projectHash:this.projectHash,startTime:new Date().toISOString(),lastUpdated:new Date().toISOString(),messages:[]})}this.queuedThoughts=[],this.queuedTokens=null}catch(error$65){throw console.error(`Error initializing chat recording service:`,error$65),error$65}}getLastMessage(conversation){return conversation.messages.at(-1)}newMessage(type,content){return{id:randomUUID$1(),timestamp:new Date().toISOString(),type,content}}recordMessage(message){if(this.conversationFile)try{this.updateConversation(conversation=>{let msg=this.newMessage(message.type,message.content);msg.type===`gemini`?(conversation.messages.push({...msg,thoughts:this.queuedThoughts,tokens:this.queuedTokens,model:this.config.getModel()}),this.queuedThoughts=[],this.queuedTokens=null):conversation.messages.push(msg)})}catch(error$65){throw console.error(`Error saving message:`,error$65),error$65}}recordThought(thought){if(this.conversationFile)try{this.queuedThoughts.push({...thought,timestamp:new Date().toISOString()})}catch(error$65){throw console.error(`Error saving thought:`,error$65),error$65}}recordMessageTokens(respUsageMetadata){if(this.conversationFile)try{let tokens={input:respUsageMetadata.promptTokenCount??0,output:respUsageMetadata.candidatesTokenCount??0,cached:respUsageMetadata.cachedContentTokenCount??0,thoughts:respUsageMetadata.thoughtsTokenCount??0,tool:respUsageMetadata.toolUsePromptTokenCount??0,total:respUsageMetadata.totalTokenCount??0};this.updateConversation(conversation=>{let lastMsg=this.getLastMessage(conversation);lastMsg&&lastMsg.type===`gemini`&&!lastMsg.tokens?(lastMsg.tokens=tokens,this.queuedTokens=null):this.queuedTokens=tokens})}catch(error$65){throw console.error(`Error updating message tokens:`,error$65),error$65}}recordToolCalls(toolCalls){if(!this.conversationFile)return;let toolRegistry=this.config.getToolRegistry(),enrichedToolCalls=toolCalls.map(toolCall=>{let toolInstance=toolRegistry.getTool(toolCall.name);return{...toolCall,displayName:toolInstance?.displayName||toolCall.name,description:toolInstance?.description||``,renderOutputAsMarkdown:toolInstance?.isOutputMarkdown||!1}});try{this.updateConversation(conversation=>{let lastMsg=this.getLastMessage(conversation);if(!lastMsg||lastMsg.type!==`gemini`||this.queuedThoughts.length>0){let newMsg={...this.newMessage(`gemini`,``),type:`gemini`,toolCalls:enrichedToolCalls,thoughts:this.queuedThoughts,model:this.config.getModel()};this.queuedThoughts.length>0&&(newMsg.thoughts=this.queuedThoughts,this.queuedThoughts=[]),this.queuedTokens&&=(newMsg.tokens=this.queuedTokens,null),conversation.messages.push(newMsg)}else{lastMsg.toolCalls||=[],lastMsg.toolCalls=lastMsg.toolCalls.map(toolCall=>{let incomingToolCall=toolCalls.find(tc=>tc.id===toolCall.id);return incomingToolCall?{...toolCall,...incomingToolCall}:toolCall});for(let toolCall of enrichedToolCalls){let existingToolCall=lastMsg.toolCalls.find(tc=>tc.id===toolCall.id);existingToolCall||lastMsg.toolCalls.push(toolCall)}}})}catch(error$65){throw console.error(`Error adding tool call to message:`,error$65),error$65}}readConversation(){try{return this.cachedLastConvData=fs.readFileSync(this.conversationFile,`utf8`),JSON.parse(this.cachedLastConvData)}catch(error$65){if(error$65.code!==`ENOENT`)throw console.error(`Error reading conversation file:`,error$65),error$65;return{sessionId:this.sessionId,projectHash:this.projectHash,startTime:new Date().toISOString(),lastUpdated:new Date().toISOString(),messages:[]}}}writeConversation(conversation){try{if(!this.conversationFile||conversation.messages.length===0)return;if(this.cachedLastConvData!==JSON.stringify(conversation,null,2)){conversation.lastUpdated=new Date().toISOString();let newContent=JSON.stringify(conversation,null,2);this.cachedLastConvData=newContent,fs.writeFileSync(this.conversationFile,newContent)}}catch(error$65){throw console.error(`Error writing conversation file:`,error$65),error$65}}updateConversation(updateFn){let conversation=this.readConversation();updateFn(conversation),this.writeConversation(conversation)}deleteSession(sessionId$1){try{let chatsDir=path.join(this.config.storage.getProjectTempDir(),`chats`),sessionPath=path.join(chatsDir,`${sessionId$1}.json`);fs.unlinkSync(sessionPath)}catch(error$65){throw console.error(`Error deleting session:`,error$65),error$65}}};init_esm$1();
|
|
1719
|
-
/**
|
|
1720
|
-
* @license
|
|
1721
|
-
* Copyright 2025 Google LLC
|
|
1722
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
1723
|
-
*/
|
|
1724
|
-
var TelemetryTarget;(function(TelemetryTarget$1){TelemetryTarget$1.GCP=`gcp`,TelemetryTarget$1.LOCAL=`local`})(TelemetryTarget||={});const DEFAULT_TELEMETRY_TARGET=TelemetryTarget.LOCAL,DEFAULT_OTLP_ENDPOINT=`http://localhost:4317`;async function handleFallback(config$3,failedModel,authType,error$65){if(authType!==AuthType.LOGIN_WITH_GOOGLE)return null;let fallbackModel=DEFAULT_GEMINI_FLASH_MODEL;if(failedModel===fallbackModel)return null;let fallbackModelHandler=config$3.fallbackModelHandler;if(typeof fallbackModelHandler!=`function`)return null;try{let intent=await fallbackModelHandler(failedModel,fallbackModel,error$65);switch(intent){case`retry`:return activateFallbackMode(config$3,authType),!0;case`stop`:return activateFallbackMode(config$3,authType),!1;case`auth`:return!1;default:throw Error(`Unexpected fallback intent received from fallbackModelHandler: "${intent}"`)}}catch(handlerError){return console.error(`Fallback UI handler failed:`,handlerError),null}}function activateFallbackMode(config$3,authType){config$3.isInFallbackMode()||(config$3.setFallbackMode(!0),authType&&logFlashFallback(config$3,new FlashFallbackEvent(authType)))}function partListUnionToString(value){return partToString(value,{verbose:!0})}var StreamEventType;(function(StreamEventType$1){StreamEventType$1.CHUNK=`chunk`,StreamEventType$1.RETRY=`retry`})(StreamEventType||={});const INVALID_CONTENT_RETRY_OPTIONS={maxAttempts:3,initialDelayMs:500};function isValidResponse(response){if(response.candidates===void 0||response.candidates.length===0)return!1;let content=response.candidates[0]?.content;return content===void 0?!1:isValidContent(content)}function isValidContent(content){if(content.parts===void 0||content.parts.length===0)return!1;for(let part of content.parts)if(part===void 0||Object.keys(part).length===0||!part.thought&&part.text!==void 0&&part.text===``)return!1;return!0}function validateHistory(history){for(let content of history)if(content.role!==`user`&&content.role!==`model`)throw Error(`Role must be user or model, but got ${content.role}.`)}function extractCuratedHistory(comprehensiveHistory){if(comprehensiveHistory===void 0||comprehensiveHistory.length===0)return[];let curatedHistory=[],length=comprehensiveHistory.length,i$5=0;for(;i$5<length;)if(comprehensiveHistory[i$5].role===`user`)curatedHistory.push(comprehensiveHistory[i$5]),i$5++;else{let modelOutput=[],isValid$1=!0;for(;i$5<length&&comprehensiveHistory[i$5].role===`model`;)modelOutput.push(comprehensiveHistory[i$5]),isValid$1&&!isValidContent(comprehensiveHistory[i$5])&&(isValid$1=!1),i$5++;isValid$1&&curatedHistory.push(...modelOutput)}return curatedHistory}var EmptyStreamError=class extends Error{constructor(message){super(message),this.name=`EmptyStreamError`}},GeminiChat=class{config;generationConfig;history;sendPromise=Promise.resolve();chatRecordingService;constructor(config$3,generationConfig={},history=[]){this.config=config$3,this.generationConfig=generationConfig,this.history=history,validateHistory(history),this.chatRecordingService=new ChatRecordingService(config$3),this.chatRecordingService.initialize()}setSystemInstruction(sysInstr){this.generationConfig.systemInstruction=sysInstr}async sendMessageStream(params,prompt_id){await this.sendPromise;let streamDoneResolver,streamDonePromise=new Promise(resolve$10=>{streamDoneResolver=resolve$10});this.sendPromise=streamDonePromise;let userContent=createUserContent(params.message);if(!isFunctionResponse(userContent)){let userMessage=Array.isArray(params.message)?params.message:[params.message],userMessageContent=partListUnionToString(toParts(userMessage));this.chatRecordingService.recordMessage({type:`user`,content:userMessageContent})}this.history.push(userContent);let requestContents=this.getHistory(!0),self$1=this;return(async function*(){try{let lastError=Error(`Request failed after all retries.`);for(let attempt=0;attempt<INVALID_CONTENT_RETRY_OPTIONS.maxAttempts;attempt++)try{attempt>0&&(yield{type:StreamEventType.RETRY});let stream$10=await self$1.makeApiCallAndProcessStream(requestContents,params,prompt_id,userContent);for await(let chunk$1 of stream$10)yield{type:StreamEventType.CHUNK,value:chunk$1};lastError=null;break}catch(error$65){lastError=error$65;let isContentError=error$65 instanceof EmptyStreamError;if(isContentError&&attempt<INVALID_CONTENT_RETRY_OPTIONS.maxAttempts-1){logContentRetry(self$1.config,new ContentRetryEvent(attempt,`EmptyStreamError`,INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs)),await new Promise(res=>setTimeout(res,INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs*(attempt+1)));continue}break}if(lastError)throw lastError instanceof EmptyStreamError&&logContentRetryFailure(self$1.config,new ContentRetryFailureEvent(INVALID_CONTENT_RETRY_OPTIONS.maxAttempts,`EmptyStreamError`)),self$1.history[self$1.history.length-1]===userContent&&self$1.history.pop(),lastError}finally{streamDoneResolver()}})()}async makeApiCallAndProcessStream(requestContents,params,prompt_id,userContent){let currentAttemptModel,apiCall=()=>{let modelToUse=this.config.isInFallbackMode()?DEFAULT_GEMINI_FLASH_MODEL:this.config.getModel();if(currentAttemptModel=modelToUse,this.config.getQuotaErrorOccurred()&&modelToUse===DEFAULT_GEMINI_FLASH_MODEL)throw Error(`Please submit a new query to continue with the Flash model.`);return this.config.getContentGenerator().generateContentStream({model:modelToUse,contents:requestContents,config:{...this.generationConfig,...params.config}},prompt_id)},onPersistent429Callback=async(authType,error$65)=>currentAttemptModel?await handleFallback(this.config,currentAttemptModel,authType,error$65):null,streamResponse=await retryWithBackoff(apiCall,{shouldRetry:error$65=>{if(error$65 instanceof Error&&error$65.message){if(isSchemaDepthError(error$65.message))return!1;if(error$65.message.includes(`429`)||error$65.message.match(/5\d{2}/))return!0}return!1},onPersistent429:onPersistent429Callback,authType:this.config.getContentGeneratorConfig()?.authType});return this.processStreamResponse(streamResponse,userContent)}getHistory(curated=!1){let history=curated?extractCuratedHistory(this.history):this.history;return structuredClone(history)}clearHistory(){this.history=[]}addHistory(content){this.history.push(content)}setHistory(history){this.history=history}stripThoughtsFromHistory(){this.history=this.history.map(content=>{let newContent={...content};return newContent.parts&&=newContent.parts.map(part=>{if(part&&typeof part==`object`&&`thoughtSignature`in part){let newPart={...part};return delete newPart.thoughtSignature,newPart}return part}),newContent})}setTools(tools){this.generationConfig.tools=tools}async maybeIncludeSchemaDepthContext(error$65){if(isSchemaDepthError(error$65.message)||isInvalidArgumentError(error$65.message)){let tools=this.config.getToolRegistry().getAllTools(),cyclicSchemaTools=[];for(let tool$1 of tools)(tool$1.schema.parametersJsonSchema&&hasCycleInSchema(tool$1.schema.parametersJsonSchema)||tool$1.schema.parameters&&hasCycleInSchema(tool$1.schema.parameters))&&cyclicSchemaTools.push(tool$1.displayName);if(cyclicSchemaTools.length>0){let extraDetails=`
|
|
1718
|
+
3. **Waiting for User:** If your last response completed a thought, statement, or task *and* does not meet the criteria for Rule 1 (Model Continues) or Rule 2 (Question to User), it implies a pause expecting user input or reaction. In this case, the **'user'** should speak next.`}]}];try{let parsedResponse=await geminiClient.generateJson(contents,RESPONSE_SCHEMA,abortSignal,DEFAULT_GEMINI_FLASH_MODEL);return parsedResponse&&parsedResponse.next_speaker&&[`user`,`model`].includes(parsedResponse.next_speaker)?parsedResponse:null}catch(error$65){return console.warn(`Failed to talk to Gemini endpoint when seeing if conversation should continue.`,error$65),null}}var require_levenshtein=__commonJSMin(((exports,module)=>{(function(){var collator;try{collator=typeof Intl<`u`&&Intl.Collator!==void 0?Intl.Collator(`generic`,{sensitivity:`base`}):null}catch{console.log(`Collator could not be initialized and wouldn't be used`)}var prevRow=[],str2Char=[],Levenshtein={get:function(str1,str2,options$1){var useCollator=options$1&&collator&&options$1.useCollator,str1Len=str1.length,str2Len=str2.length;if(str1Len===0)return str2Len;if(str2Len===0)return str1Len;var curCol,nextCol,i$5,j$2,tmp;for(i$5=0;i$5<str2Len;++i$5)prevRow[i$5]=i$5,str2Char[i$5]=str2.charCodeAt(i$5);prevRow[str2Len]=str2Len;var strCmp;if(useCollator)for(i$5=0;i$5<str1Len;++i$5){for(nextCol=i$5+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=collator.compare(str1.charAt(i$5),String.fromCharCode(str2Char[j$2]))===0,nextCol=prevRow[j$2]+(strCmp?0:1),tmp=curCol+1,nextCol>tmp&&(nextCol=tmp),tmp=prevRow[j$2+1]+1,nextCol>tmp&&(nextCol=tmp),prevRow[j$2]=curCol;prevRow[j$2]=nextCol}else for(i$5=0;i$5<str1Len;++i$5){for(nextCol=i$5+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=str1.charCodeAt(i$5)===str2Char[j$2],nextCol=prevRow[j$2]+(strCmp?0:1),tmp=curCol+1,nextCol>tmp&&(nextCol=tmp),tmp=prevRow[j$2+1]+1,nextCol>tmp&&(nextCol=tmp),prevRow[j$2]=curCol;prevRow[j$2]=nextCol}return nextCol}};typeof define<`u`&&define!==null&&define.amd?define(function(){return Levenshtein}):module!=null&&exports!==void 0&&module.exports===exports?module.exports=Levenshtein:typeof self<`u`&&typeof self.postMessage==`function`&&typeof self.importScripts==`function`?self.Levenshtein=Levenshtein:typeof window<`u`&&window!==null&&(window.Levenshtein=Levenshtein)})()})),import_levenshtein=__toESM(require_levenshtein(),1),ChatRecordingService=class{conversationFile=null;cachedLastConvData=null;sessionId;projectHash;queuedThoughts=[];queuedTokens=null;config;constructor(config$3){this.config=config$3,this.sessionId=config$3.getSessionId(),this.projectHash=getProjectHash(config$3.getProjectRoot())}initialize(resumedSessionData){try{if(resumedSessionData)this.conversationFile=resumedSessionData.filePath,this.sessionId=resumedSessionData.conversation.sessionId,this.updateConversation(conversation=>{conversation.sessionId=this.sessionId}),this.cachedLastConvData=null;else{let chatsDir=path.join(this.config.storage.getProjectTempDir(),`chats`);fs.mkdirSync(chatsDir,{recursive:!0});let timestamp=new Date().toISOString().slice(0,16).replace(/:/g,`-`),filename=`session-${timestamp}-${this.sessionId.slice(0,8)}.json`;this.conversationFile=path.join(chatsDir,filename),this.writeConversation({sessionId:this.sessionId,projectHash:this.projectHash,startTime:new Date().toISOString(),lastUpdated:new Date().toISOString(),messages:[]})}this.queuedThoughts=[],this.queuedTokens=null}catch(error$65){throw console.error(`Error initializing chat recording service:`,error$65),error$65}}getLastMessage(conversation){return conversation.messages.at(-1)}newMessage(type,content){return{id:randomUUID$1(),timestamp:new Date().toISOString(),type,content}}recordMessage(message){if(this.conversationFile)try{this.updateConversation(conversation=>{let msg=this.newMessage(message.type,message.content);msg.type===`gemini`?(conversation.messages.push({...msg,thoughts:this.queuedThoughts,tokens:this.queuedTokens,model:this.config.getModel()}),this.queuedThoughts=[],this.queuedTokens=null):conversation.messages.push(msg)})}catch(error$65){throw console.error(`Error saving message:`,error$65),error$65}}recordThought(thought){if(this.conversationFile)try{this.queuedThoughts.push({...thought,timestamp:new Date().toISOString()})}catch(error$65){throw console.error(`Error saving thought:`,error$65),error$65}}recordMessageTokens(respUsageMetadata){if(this.conversationFile)try{let tokens={input:respUsageMetadata.promptTokenCount??0,output:respUsageMetadata.candidatesTokenCount??0,cached:respUsageMetadata.cachedContentTokenCount??0,thoughts:respUsageMetadata.thoughtsTokenCount??0,tool:respUsageMetadata.toolUsePromptTokenCount??0,total:respUsageMetadata.totalTokenCount??0};this.updateConversation(conversation=>{let lastMsg=this.getLastMessage(conversation);lastMsg&&lastMsg.type===`gemini`&&!lastMsg.tokens?(lastMsg.tokens=tokens,this.queuedTokens=null):this.queuedTokens=tokens})}catch(error$65){throw console.error(`Error updating message tokens:`,error$65),error$65}}recordToolCalls(toolCalls){if(!this.conversationFile)return;let toolRegistry=this.config.getToolRegistry(),enrichedToolCalls=toolCalls.map(toolCall=>{let toolInstance=toolRegistry.getTool(toolCall.name);return{...toolCall,displayName:toolInstance?.displayName||toolCall.name,description:toolInstance?.description||``,renderOutputAsMarkdown:toolInstance?.isOutputMarkdown||!1}});try{this.updateConversation(conversation=>{let lastMsg=this.getLastMessage(conversation);if(!lastMsg||lastMsg.type!==`gemini`||this.queuedThoughts.length>0){let newMsg={...this.newMessage(`gemini`,``),type:`gemini`,toolCalls:enrichedToolCalls,thoughts:this.queuedThoughts,model:this.config.getModel()};this.queuedThoughts.length>0&&(newMsg.thoughts=this.queuedThoughts,this.queuedThoughts=[]),this.queuedTokens&&=(newMsg.tokens=this.queuedTokens,null),conversation.messages.push(newMsg)}else{lastMsg.toolCalls||=[],lastMsg.toolCalls=lastMsg.toolCalls.map(toolCall=>{let incomingToolCall=toolCalls.find(tc=>tc.id===toolCall.id);return incomingToolCall?{...toolCall,...incomingToolCall}:toolCall});for(let toolCall of enrichedToolCalls){let existingToolCall=lastMsg.toolCalls.find(tc=>tc.id===toolCall.id);existingToolCall||lastMsg.toolCalls.push(toolCall)}}})}catch(error$65){throw console.error(`Error adding tool call to message:`,error$65),error$65}}readConversation(){try{return this.cachedLastConvData=fs.readFileSync(this.conversationFile,`utf8`),JSON.parse(this.cachedLastConvData)}catch(error$65){if(error$65.code!==`ENOENT`)throw console.error(`Error reading conversation file:`,error$65),error$65;return{sessionId:this.sessionId,projectHash:this.projectHash,startTime:new Date().toISOString(),lastUpdated:new Date().toISOString(),messages:[]}}}writeConversation(conversation){try{if(!this.conversationFile||conversation.messages.length===0)return;if(this.cachedLastConvData!==JSON.stringify(conversation,null,2)){conversation.lastUpdated=new Date().toISOString();let newContent=JSON.stringify(conversation,null,2);this.cachedLastConvData=newContent,fs.writeFileSync(this.conversationFile,newContent)}}catch(error$65){throw console.error(`Error writing conversation file:`,error$65),error$65}}updateConversation(updateFn){let conversation=this.readConversation();updateFn(conversation),this.writeConversation(conversation)}deleteSession(sessionId$1){try{let chatsDir=path.join(this.config.storage.getProjectTempDir(),`chats`),sessionPath=path.join(chatsDir,`${sessionId$1}.json`);fs.unlinkSync(sessionPath)}catch(error$65){throw console.error(`Error deleting session:`,error$65),error$65}}},TelemetryTarget;(function(TelemetryTarget$1){TelemetryTarget$1.GCP=`gcp`,TelemetryTarget$1.LOCAL=`local`})(TelemetryTarget||={});const DEFAULT_TELEMETRY_TARGET=TelemetryTarget.LOCAL,DEFAULT_OTLP_ENDPOINT=`http://localhost:4317`;async function handleFallback(config$3,failedModel,authType,error$65){if(authType!==AuthType.LOGIN_WITH_GOOGLE)return null;let fallbackModel=DEFAULT_GEMINI_FLASH_MODEL;if(failedModel===fallbackModel)return null;let fallbackModelHandler=config$3.fallbackModelHandler;if(typeof fallbackModelHandler!=`function`)return null;try{let intent=await fallbackModelHandler(failedModel,fallbackModel,error$65);switch(intent){case`retry`:return activateFallbackMode(config$3,authType),!0;case`stop`:return activateFallbackMode(config$3,authType),!1;case`auth`:return!1;default:throw Error(`Unexpected fallback intent received from fallbackModelHandler: "${intent}"`)}}catch(handlerError){return console.error(`Fallback UI handler failed:`,handlerError),null}}function activateFallbackMode(config$3,authType){config$3.isInFallbackMode()||(config$3.setFallbackMode(!0),authType&&logFlashFallback(config$3,new FlashFallbackEvent(authType)))}function partListUnionToString(value){return partToString(value,{verbose:!0})}var StreamEventType;(function(StreamEventType$1){StreamEventType$1.CHUNK=`chunk`,StreamEventType$1.RETRY=`retry`})(StreamEventType||={});const INVALID_CONTENT_RETRY_OPTIONS={maxAttempts:3,initialDelayMs:500};function isValidResponse(response){if(response.candidates===void 0||response.candidates.length===0)return!1;let content=response.candidates[0]?.content;return content===void 0?!1:isValidContent(content)}function isValidContent(content){if(content.parts===void 0||content.parts.length===0)return!1;for(let part of content.parts)if(part===void 0||Object.keys(part).length===0||!part.thought&&part.text!==void 0&&part.text===``)return!1;return!0}function validateHistory(history){for(let content of history)if(content.role!==`user`&&content.role!==`model`)throw Error(`Role must be user or model, but got ${content.role}.`)}function extractCuratedHistory(comprehensiveHistory){if(comprehensiveHistory===void 0||comprehensiveHistory.length===0)return[];let curatedHistory=[],length=comprehensiveHistory.length,i$5=0;for(;i$5<length;)if(comprehensiveHistory[i$5].role===`user`)curatedHistory.push(comprehensiveHistory[i$5]),i$5++;else{let modelOutput=[],isValid$1=!0;for(;i$5<length&&comprehensiveHistory[i$5].role===`model`;)modelOutput.push(comprehensiveHistory[i$5]),isValid$1&&!isValidContent(comprehensiveHistory[i$5])&&(isValid$1=!1),i$5++;isValid$1&&curatedHistory.push(...modelOutput)}return curatedHistory}var EmptyStreamError=class extends Error{constructor(message){super(message),this.name=`EmptyStreamError`}},GeminiChat=class{config;generationConfig;history;sendPromise=Promise.resolve();chatRecordingService;constructor(config$3,generationConfig={},history=[]){this.config=config$3,this.generationConfig=generationConfig,this.history=history,validateHistory(history),this.chatRecordingService=new ChatRecordingService(config$3),this.chatRecordingService.initialize()}setSystemInstruction(sysInstr){this.generationConfig.systemInstruction=sysInstr}async sendMessageStream(params,prompt_id){await this.sendPromise;let streamDoneResolver,streamDonePromise=new Promise(resolve$10=>{streamDoneResolver=resolve$10});this.sendPromise=streamDonePromise;let userContent=createUserContent(params.message);if(!isFunctionResponse(userContent)){let userMessage=Array.isArray(params.message)?params.message:[params.message],userMessageContent=partListUnionToString(toParts(userMessage));this.chatRecordingService.recordMessage({type:`user`,content:userMessageContent})}this.history.push(userContent);let requestContents=this.getHistory(!0),self$1=this;return(async function*(){try{let lastError=Error(`Request failed after all retries.`);for(let attempt=0;attempt<INVALID_CONTENT_RETRY_OPTIONS.maxAttempts;attempt++)try{attempt>0&&(yield{type:StreamEventType.RETRY});let stream$10=await self$1.makeApiCallAndProcessStream(requestContents,params,prompt_id,userContent);for await(let chunk$1 of stream$10)yield{type:StreamEventType.CHUNK,value:chunk$1};lastError=null;break}catch(error$65){lastError=error$65;let isContentError=error$65 instanceof EmptyStreamError;if(isContentError&&attempt<INVALID_CONTENT_RETRY_OPTIONS.maxAttempts-1){logContentRetry(self$1.config,new ContentRetryEvent(attempt,`EmptyStreamError`,INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs)),await new Promise(res=>setTimeout(res,INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs*(attempt+1)));continue}break}if(lastError)throw lastError instanceof EmptyStreamError&&logContentRetryFailure(self$1.config,new ContentRetryFailureEvent(INVALID_CONTENT_RETRY_OPTIONS.maxAttempts,`EmptyStreamError`)),self$1.history[self$1.history.length-1]===userContent&&self$1.history.pop(),lastError}finally{streamDoneResolver()}})()}async makeApiCallAndProcessStream(requestContents,params,prompt_id,userContent){let currentAttemptModel,apiCall=()=>{let modelToUse=this.config.isInFallbackMode()?DEFAULT_GEMINI_FLASH_MODEL:this.config.getModel();if(currentAttemptModel=modelToUse,this.config.getQuotaErrorOccurred()&&modelToUse===DEFAULT_GEMINI_FLASH_MODEL)throw Error(`Please submit a new query to continue with the Flash model.`);return this.config.getContentGenerator().generateContentStream({model:modelToUse,contents:requestContents,config:{...this.generationConfig,...params.config}},prompt_id)},onPersistent429Callback=async(authType,error$65)=>currentAttemptModel?await handleFallback(this.config,currentAttemptModel,authType,error$65):null,streamResponse=await retryWithBackoff(apiCall,{shouldRetry:error$65=>{if(error$65 instanceof Error&&error$65.message){if(isSchemaDepthError(error$65.message))return!1;if(error$65.message.includes(`429`)||error$65.message.match(/5\d{2}/))return!0}return!1},onPersistent429:onPersistent429Callback,authType:this.config.getContentGeneratorConfig()?.authType});return this.processStreamResponse(streamResponse,userContent)}getHistory(curated=!1){let history=curated?extractCuratedHistory(this.history):this.history;return structuredClone(history)}clearHistory(){this.history=[]}addHistory(content){this.history.push(content)}setHistory(history){this.history=history}stripThoughtsFromHistory(){this.history=this.history.map(content=>{let newContent={...content};return newContent.parts&&=newContent.parts.map(part=>{if(part&&typeof part==`object`&&`thoughtSignature`in part){let newPart={...part};return delete newPart.thoughtSignature,newPart}return part}),newContent})}setTools(tools){this.generationConfig.tools=tools}async maybeIncludeSchemaDepthContext(error$65){if(isSchemaDepthError(error$65.message)||isInvalidArgumentError(error$65.message)){let tools=this.config.getToolRegistry().getAllTools(),cyclicSchemaTools=[];for(let tool$1 of tools)(tool$1.schema.parametersJsonSchema&&hasCycleInSchema(tool$1.schema.parametersJsonSchema)||tool$1.schema.parameters&&hasCycleInSchema(tool$1.schema.parameters))&&cyclicSchemaTools.push(tool$1.displayName);if(cyclicSchemaTools.length>0){let extraDetails=`
|
|
1725
1719
|
|
|
1726
1720
|
This error was probably caused by cyclic schema references in one of the following tools, try disabling them with excludeTools:
|
|
1727
1721
|
|
|
@@ -2075,7 +2069,7 @@ ${packageManager} blink dev`),Se(`Edit agent.ts to hot-reload your agent.`)}var
|
|
|
2075
2069
|
Error message: ${getErrorMessage$1(cause)}`,cause}),this[_a7$1]=!0,this.text=text$1$1}static isInstance(error$44$1){return AISDKError.hasMarker(error$44$1,marker7$1)}};_a7$1=symbol7$1;var name7$1=`AI_LoadAPIKeyError`,marker8$1=`vercel.ai.error.${name7$1}`,symbol8$1=Symbol.for(marker8$1),_a8$1;_a8$1=symbol8$1;var name8$1=`AI_LoadSettingError`,marker9$1=`vercel.ai.error.${name8$1}`,symbol9$1=Symbol.for(marker9$1),_a9$1;_a9$1=symbol9$1;var name9$1=`AI_NoContentGeneratedError`,marker10$1=`vercel.ai.error.${name9$1}`,symbol10$1=Symbol.for(marker10$1),_a10$1;_a10$1=symbol10$1;var name10$1=`AI_NoSuchModelError`,marker11$1=`vercel.ai.error.${name10$1}`,symbol11$1=Symbol.for(marker11$1),_a11$1;_a11$1=symbol11$1;var name11$1=`AI_TooManyEmbeddingValuesForCallError`,marker12$1=`vercel.ai.error.${name11$1}`,symbol12$1=Symbol.for(marker12$1),_a12$1;_a12$1=symbol12$1;var name12$1=`AI_TypeValidationError`,marker13$1=`vercel.ai.error.${name12$1}`,symbol13$1=Symbol.for(marker13$1),_a13$1,_TypeValidationError=class _TypeValidationError$1$1 extends AISDKError{constructor({value,cause}){super({name:name12$1,message:`Type validation failed: Value: ${JSON.stringify(value)}.
|
|
2076
2070
|
Error message: ${getErrorMessage$1(cause)}`,cause}),this[_a13$1]=!0,this.value=value}static isInstance(error$44$1){return AISDKError.hasMarker(error$44$1,marker13$1)}static wrap({value,cause}){return _TypeValidationError$1$1.isInstance(cause)&&cause.value===value?cause:new _TypeValidationError$1$1({value,cause})}};_a13$1=symbol13$1;var TypeValidationError=_TypeValidationError,name13$1=`AI_UnsupportedFunctionalityError`,marker14$1=`vercel.ai.error.${name13$1}`,symbol14$1=Symbol.for(marker14$1),_a14$1;_a14$1=symbol14$1;function $constructor$1(name$2$1,initializer$4,params){function init$4(inst,def$31){var _a$2$1;for(let k$2 in Object.defineProperty(inst,`_zod`,{value:inst._zod??{},enumerable:!1}),(_a$2$1=inst._zod).traits??(_a$2$1.traits=new Set),inst._zod.traits.add(name$2$1),initializer$4(inst,def$31),_$6.prototype)k$2 in inst||Object.defineProperty(inst,k$2,{value:_$6.prototype[k$2].bind(inst)});inst._zod.constr=_$6,inst._zod.def=def$31}let Parent=params?.Parent??Object;class Definition extends Parent{}Object.defineProperty(Definition,`name`,{value:name$2$1});function _$6(def$31){var _a$2$1;let inst=params?.Parent?new Definition:this;init$4(inst,def$31),(_a$2$1=inst._zod).deferred??(_a$2$1.deferred=[]);for(let fn of inst._zod.deferred)fn();return inst}return Object.defineProperty(_$6,`init`,{value:init$4}),Object.defineProperty(_$6,Symbol.hasInstance,{value:inst=>params?.Parent&&inst instanceof params.Parent?!0:inst?._zod?.traits?.has(name$2$1)}),Object.defineProperty(_$6,`name`,{value:name$2$1}),_$6}var $ZodAsyncError$1=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}};const globalConfig$1={};function config$1(newConfig){return newConfig&&Object.assign(globalConfig$1,newConfig),globalConfig$1}function getEnumValues$1(entries$1){let numericValues=Object.values(entries$1).filter(v$2=>typeof v$2==`number`);return Object.entries(entries$1).filter(([k$2,_$6])=>numericValues.indexOf(+k$2)===-1).map(([_$6,v$2])=>v$2)}function jsonStringifyReplacer$1(_$6,value){return typeof value==`bigint`?value.toString():value}function cached$1(getter){return{get value(){{let value=getter();return Object.defineProperty(this,`value`,{value}),value}throw Error(`cached value already set`)}}}function nullish$2(input){return input==null}function cleanRegex$1(source$39){let start$1=source$39.startsWith(`^`)?1:0,end=source$39.endsWith(`$`)?source$39.length-1:source$39.length;return source$39.slice(start$1,end)}function floatSafeRemainder$2(val,step){let valDecCount=(val.toString().split(`.`)[1]||``).length,stepDecCount=(step.toString().split(`.`)[1]||``).length,decCount=valDecCount>stepDecCount?valDecCount:stepDecCount,valInt=Number.parseInt(val.toFixed(decCount).replace(`.`,``)),stepInt=Number.parseInt(step.toFixed(decCount).replace(`.`,``));return valInt%stepInt/10**decCount}function defineLazy$1(object$3$1,key,getter){Object.defineProperty(object$3$1,key,{get(){{let value=getter();return object$3$1[key]=value,value}throw Error(`cached value already set`)},set(v$2){Object.defineProperty(object$3$1,key,{value:v$2})},configurable:!0})}function assignProp$1(target,prop,value){Object.defineProperty(target,prop,{value,writable:!0,enumerable:!0,configurable:!0})}function randomString$1(length=10){let chars=`abcdefghijklmnopqrstuvwxyz`,str$1=``;for(let i$5=0;i$5<length;i$5++)str$1+=`abcdefghijklmnopqrstuvwxyz`[Math.floor(Math.random()*26)];return str$1}function esc$1(str$1){return JSON.stringify(str$1)}function isObject$1(data$2){return typeof data$2==`object`&&!!data$2&&!Array.isArray(data$2)}const allowsEval$1=cached$1(()=>{try{return Function(``),!0}catch{return!1}});function isPlainObject$1(data$2){return typeof data$2==`object`&&!!data$2&&(Object.getPrototypeOf(data$2)===Object.prototype||Object.getPrototypeOf(data$2)===null)}const propertyKeyTypes$1=new Set([`string`,`number`,`symbol`]);function escapeRegex$1(str$1){return str$1.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function clone$1(inst,def$31,params){let cl=new inst._zod.constr(def$31??inst._zod.def);return(!def$31||params?.parent)&&(cl._zod.parent=inst),cl}function normalizeParams$1(_params){let params=_params;if(!params)return{};if(typeof params==`string`)return{error:()=>params};if(params?.message!==void 0){if(params?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");params.error=params.message}return delete params.message,typeof params.error==`string`?{...params,error:()=>params.error}:params}function optionalKeys$1(shape){return Object.keys(shape).filter(k$2=>shape[k$2]._zod.optin===`optional`&&shape[k$2]._zod.optout===`optional`)}const NUMBER_FORMAT_RANGES$1={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function pick$1(schema,mask){let newShape={},currDef=schema._zod.def;for(let key in mask){if(!(key in currDef.shape))throw Error(`Unrecognized key: "${key}"`);if(!mask[key])continue;newShape[key]=currDef.shape[key]}return clone$1(schema,{...schema._zod.def,shape:newShape,checks:[]})}function omit$1(schema,mask){let newShape={...schema._zod.def.shape},currDef=schema._zod.def;for(let key in mask){if(!(key in currDef.shape))throw Error(`Unrecognized key: "${key}"`);if(!mask[key])continue;delete newShape[key]}return clone$1(schema,{...schema._zod.def,shape:newShape,checks:[]})}function extend$1(schema,shape){let def$31={...schema._zod.def,get shape(){let _shape={...schema._zod.def.shape,...shape};return assignProp$1(this,`shape`,_shape),_shape},checks:[]};return clone$1(schema,def$31)}function merge$1(a$3,b$4){return clone$1(a$3,{...a$3._zod.def,get shape(){let _shape={...a$3._zod.def.shape,...b$4._zod.def.shape};return assignProp$1(this,`shape`,_shape),_shape},catchall:b$4._zod.def.catchall,checks:[]})}function partial$1(Class$1,schema,mask){let oldShape=schema._zod.def.shape,shape={...oldShape};if(mask)for(let key in mask){if(!(key in oldShape))throw Error(`Unrecognized key: "${key}"`);if(!mask[key])continue;shape[key]=Class$1?new Class$1({type:`optional`,innerType:oldShape[key]}):oldShape[key]}else for(let key in oldShape)shape[key]=Class$1?new Class$1({type:`optional`,innerType:oldShape[key]}):oldShape[key];return clone$1(schema,{...schema._zod.def,shape,checks:[]})}function required$1(Class$1,schema,mask){let oldShape=schema._zod.def.shape,shape={...oldShape};if(mask)for(let key in mask){if(!(key in shape))throw Error(`Unrecognized key: "${key}"`);if(!mask[key])continue;shape[key]=new Class$1({type:`nonoptional`,innerType:oldShape[key]})}else for(let key in oldShape)shape[key]=new Class$1({type:`nonoptional`,innerType:oldShape[key]});return clone$1(schema,{...schema._zod.def,shape,checks:[]})}function aborted$1(x$4,startIndex=0){for(let i$5=startIndex;i$5<x$4.issues.length;i$5++)if(x$4.issues[i$5].continue!==!0)return!0;return!1}function prefixIssues$1(path$38,issues){return issues.map(iss=>{var _a$2$1;return(_a$2$1=iss).path??(_a$2$1.path=[]),iss.path.unshift(path$38),iss})}function unwrapMessage$1(message){return typeof message==`string`?message:message?.message}function finalizeIssue$1(iss,ctx,config$2$1){let full={...iss,path:iss.path??[]};return iss.message||(full.message=unwrapMessage$1(iss.inst?._zod.def?.error?.(iss))??unwrapMessage$1(ctx?.error?.(iss))??unwrapMessage$1(config$2$1.customError?.(iss))??unwrapMessage$1(config$2$1.localeError?.(iss))??`Invalid input`),delete full.inst,delete full.continue,ctx?.reportInput||delete full.input,full}function getLengthableOrigin$1(input){return Array.isArray(input)?`array`:typeof input==`string`?`string`:`unknown`}function issue$1(...args){let[iss,input,inst]=args;return typeof iss==`string`?{message:iss,code:`custom`,input,inst}:{...iss}}const initializer$3=(inst,def$31)=>{inst.name=`$ZodError`,Object.defineProperty(inst,`_zod`,{value:inst._zod,enumerable:!1}),Object.defineProperty(inst,`issues`,{value:def$31,enumerable:!1}),Object.defineProperty(inst,`message`,{get(){return JSON.stringify(def$31,jsonStringifyReplacer$1,2)},enumerable:!0})},$ZodError$1=$constructor$1(`$ZodError`,initializer$3),$ZodRealError$1=$constructor$1(`$ZodError`,initializer$3,{Parent:Error});function flattenError$1(error$44$1,mapper=issue$2=>issue$2.message){let fieldErrors={},formErrors=[];for(let sub of error$44$1.issues)sub.path.length>0?(fieldErrors[sub.path[0]]=fieldErrors[sub.path[0]]||[],fieldErrors[sub.path[0]].push(mapper(sub))):formErrors.push(mapper(sub));return{formErrors,fieldErrors}}function formatError$1(error$44$1,_mapper){let mapper=_mapper||function(issue$2){return issue$2.message},fieldErrors={_errors:[]},processError=error$45$1=>{for(let issue$2 of error$45$1.issues)if(issue$2.code===`invalid_union`&&issue$2.errors.length)issue$2.errors.map(issues=>processError({issues}));else if(issue$2.code===`invalid_key`)processError({issues:issue$2.issues});else if(issue$2.code===`invalid_element`)processError({issues:issue$2.issues});else if(issue$2.path.length===0)fieldErrors._errors.push(mapper(issue$2));else{let curr=fieldErrors,i$5=0;for(;i$5<issue$2.path.length;){let el=issue$2.path[i$5];i$5===issue$2.path.length-1?(curr[el]=curr[el]||{_errors:[]},curr[el]._errors.push(mapper(issue$2))):curr[el]=curr[el]||{_errors:[]},curr=curr[el],i$5++}}};return processError(error$44$1),fieldErrors}const _parse$2=_Err=>(schema,value,_ctx,_params)=>{let ctx=_ctx?Object.assign(_ctx,{async:!1}):{async:!1},result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise)throw new $ZodAsyncError$1;if(result.issues.length){let e$2=new(_params?.Err??_Err)(result.issues.map(iss=>finalizeIssue$1(iss,ctx,config$1())));throw Error.captureStackTrace(e$2,_params?.callee),e$2}return result.value},_parseAsync$1=_Err=>async(schema,value,_ctx,params)=>{let ctx=_ctx?Object.assign(_ctx,{async:!0}):{async:!0},result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise&&(result=await result),result.issues.length){let e$2=new(params?.Err??_Err)(result.issues.map(iss=>finalizeIssue$1(iss,ctx,config$1())));throw Error.captureStackTrace(e$2,params?.callee),e$2}return result.value},_safeParse$1=_Err=>(schema,value,_ctx)=>{let ctx=_ctx?{..._ctx,async:!1}:{async:!1},result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise)throw new $ZodAsyncError$1;return result.issues.length?{success:!1,error:new(_Err??$ZodError$1)(result.issues.map(iss=>finalizeIssue$1(iss,ctx,config$1())))}:{success:!0,data:result.value}},safeParse$3=_safeParse$1($ZodRealError$1),_safeParseAsync$1=_Err=>async(schema,value,_ctx)=>{let ctx=_ctx?Object.assign(_ctx,{async:!0}):{async:!0},result=schema._zod.run({value,issues:[]},ctx);return result instanceof Promise&&(result=await result),result.issues.length?{success:!1,error:new _Err(result.issues.map(iss=>finalizeIssue$1(iss,ctx,config$1())))}:{success:!0,data:result.value}},safeParseAsync$3=_safeParseAsync$1($ZodRealError$1),cuid$2=/^[cC][^\s-]{8,}$/,cuid2$2=/^[0-9a-z]+$/,ulid$2=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,xid$2=/^[0-9a-vA-V]{20}$/,ksuid$2=/^[A-Za-z0-9]{27}$/,nanoid$2=/^[a-zA-Z0-9_-]{21}$/,duration$3=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,guid$2=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,uuid$2=version$2$1=>version$2$1?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version$2$1}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,email$2=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,_emoji$3=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function emoji$2(){return RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)}const ipv4$2=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv6$2=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,cidrv4$2=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,cidrv6$2=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64$3=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,base64url$2=/^[A-Za-z0-9_-]*$/,hostname$2=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,e164$2=/^\+(?:[0-9]){6,14}[0-9]$/,dateSource$1=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,date$5=RegExp(`^${dateSource$1}$`);function timeSource$1(args){let regex$3=`([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d`;return args.precision?regex$3=`${regex$3}\\.\\d{${args.precision}}`:args.precision??(regex$3=`${regex$3}(\\.\\d+)?`),regex$3}function time$3(args){return RegExp(`^${timeSource$1(args)}$`)}function datetime$3(args){let regex$3=`${dateSource$1}T${timeSource$1(args)}`,opts=[];return opts.push(args.local?`Z?`:`Z`),args.offset&&opts.push(`([+-]\\d{2}:?\\d{2})`),regex$3=`${regex$3}(${opts.join(`|`)})`,RegExp(`^${regex$3}$`)}const string$4=params=>{let regex$3=params?`[\\s\\S]{${params?.minimum??0},${params?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${regex$3}$`)},integer$1=/^\d+$/,number$4=/^-?\d+(?:\.\d+)?/i,boolean$4=/true|false/i,_null$5=/null/i,lowercase$1=/^[^A-Z]*$/,uppercase$1=/^[^a-z]*$/,$ZodCheck$1=$constructor$1(`$ZodCheck`,(inst,def$31)=>{var _a$2$1;inst._zod??={},inst._zod.def=def$31,(_a$2$1=inst._zod).onattach??(_a$2$1.onattach=[])}),numericOriginMap$1={number:`number`,bigint:`bigint`,object:`date`},$ZodCheckLessThan$1=$constructor$1(`$ZodCheckLessThan`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31);let origin=numericOriginMap$1[typeof def$31.value];inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag,curr=(def$31.inclusive?bag.maximum:bag.exclusiveMaximum)??1/0;def$31.value<curr&&(def$31.inclusive?bag.maximum=def$31.value:bag.exclusiveMaximum=def$31.value)}),inst._zod.check=payload=>{(def$31.inclusive?payload.value<=def$31.value:payload.value<def$31.value)||payload.issues.push({origin,code:`too_big`,maximum:def$31.value,input:payload.value,inclusive:def$31.inclusive,inst,continue:!def$31.abort})}}),$ZodCheckGreaterThan$1=$constructor$1(`$ZodCheckGreaterThan`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31);let origin=numericOriginMap$1[typeof def$31.value];inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag,curr=(def$31.inclusive?bag.minimum:bag.exclusiveMinimum)??-1/0;def$31.value>curr&&(def$31.inclusive?bag.minimum=def$31.value:bag.exclusiveMinimum=def$31.value)}),inst._zod.check=payload=>{(def$31.inclusive?payload.value>=def$31.value:payload.value>def$31.value)||payload.issues.push({origin,code:`too_small`,minimum:def$31.value,input:payload.value,inclusive:def$31.inclusive,inst,continue:!def$31.abort})}}),$ZodCheckMultipleOf$1=$constructor$1(`$ZodCheckMultipleOf`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{var _a$2$1;(_a$2$1=inst$1._zod.bag).multipleOf??(_a$2$1.multipleOf=def$31.value)}),inst._zod.check=payload=>{if(typeof payload.value!=typeof def$31.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof payload.value==`bigint`?payload.value%def$31.value===BigInt(0):floatSafeRemainder$2(payload.value,def$31.value)===0)||payload.issues.push({origin:typeof payload.value,code:`not_multiple_of`,divisor:def$31.value,input:payload.value,inst,continue:!def$31.abort})}}),$ZodCheckNumberFormat$1=$constructor$1(`$ZodCheckNumberFormat`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31),def$31.format=def$31.format||`float64`;let isInt=def$31.format?.includes(`int`),origin=isInt?`int`:`number`,[minimum,maximum]=NUMBER_FORMAT_RANGES$1[def$31.format];inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.format=def$31.format,bag.minimum=minimum,bag.maximum=maximum,isInt&&(bag.pattern=integer$1)}),inst._zod.check=payload=>{let input=payload.value;if(isInt){if(!Number.isInteger(input)){payload.issues.push({expected:origin,format:def$31.format,code:`invalid_type`,input,inst});return}if(!Number.isSafeInteger(input)){input>0?payload.issues.push({input,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst,origin,continue:!def$31.abort}):payload.issues.push({input,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst,origin,continue:!def$31.abort});return}}input<minimum&&payload.issues.push({origin:`number`,input,code:`too_small`,minimum,inclusive:!0,inst,continue:!def$31.abort}),input>maximum&&payload.issues.push({origin:`number`,input,code:`too_big`,maximum,inst})}}),$ZodCheckMaxLength$1=$constructor$1(`$ZodCheckMaxLength`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31),inst._zod.when=payload=>{let val=payload.value;return!nullish$2(val)&&val.length!==void 0},inst._zod.onattach.push(inst$1=>{let curr=inst$1._zod.bag.maximum??1/0;def$31.maximum<curr&&(inst$1._zod.bag.maximum=def$31.maximum)}),inst._zod.check=payload=>{let input=payload.value;if(input.length<=def$31.maximum)return;let origin=getLengthableOrigin$1(input);payload.issues.push({origin,code:`too_big`,maximum:def$31.maximum,inclusive:!0,input,inst,continue:!def$31.abort})}}),$ZodCheckMinLength$1=$constructor$1(`$ZodCheckMinLength`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31),inst._zod.when=payload=>{let val=payload.value;return!nullish$2(val)&&val.length!==void 0},inst._zod.onattach.push(inst$1=>{let curr=inst$1._zod.bag.minimum??-1/0;def$31.minimum>curr&&(inst$1._zod.bag.minimum=def$31.minimum)}),inst._zod.check=payload=>{let input=payload.value;if(input.length>=def$31.minimum)return;let origin=getLengthableOrigin$1(input);payload.issues.push({origin,code:`too_small`,minimum:def$31.minimum,inclusive:!0,input,inst,continue:!def$31.abort})}}),$ZodCheckLengthEquals$1=$constructor$1(`$ZodCheckLengthEquals`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31),inst._zod.when=payload=>{let val=payload.value;return!nullish$2(val)&&val.length!==void 0},inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.minimum=def$31.length,bag.maximum=def$31.length,bag.length=def$31.length}),inst._zod.check=payload=>{let input=payload.value,length=input.length;if(length===def$31.length)return;let origin=getLengthableOrigin$1(input),tooBig=length>def$31.length;payload.issues.push({origin,...tooBig?{code:`too_big`,maximum:def$31.length}:{code:`too_small`,minimum:def$31.length},input:payload.value,inst,continue:!def$31.abort})}}),$ZodCheckStringFormat$1=$constructor$1(`$ZodCheckStringFormat`,(inst,def$31)=>{var _a$2$1;$ZodCheck$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.format=def$31.format,def$31.pattern&&(bag.patterns??=new Set,bag.patterns.add(def$31.pattern))}),(_a$2$1=inst._zod).check??(_a$2$1.check=payload=>{if(!def$31.pattern)throw Error(`Not implemented.`);def$31.pattern.lastIndex=0,!def$31.pattern.test(payload.value)&&payload.issues.push({origin:`string`,code:`invalid_format`,format:def$31.format,input:payload.value,...def$31.pattern?{pattern:def$31.pattern.toString()}:{},inst,continue:!def$31.abort})})}),$ZodCheckRegex$1=$constructor$1(`$ZodCheckRegex`,(inst,def$31)=>{$ZodCheckStringFormat$1.init(inst,def$31),inst._zod.check=payload=>{def$31.pattern.lastIndex=0,!def$31.pattern.test(payload.value)&&payload.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:payload.value,pattern:def$31.pattern.toString(),inst,continue:!def$31.abort})}}),$ZodCheckLowerCase$1=$constructor$1(`$ZodCheckLowerCase`,(inst,def$31)=>{def$31.pattern??=lowercase$1,$ZodCheckStringFormat$1.init(inst,def$31)}),$ZodCheckUpperCase$1=$constructor$1(`$ZodCheckUpperCase`,(inst,def$31)=>{def$31.pattern??=uppercase$1,$ZodCheckStringFormat$1.init(inst,def$31)}),$ZodCheckIncludes$1=$constructor$1(`$ZodCheckIncludes`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31);let escapedRegex=escapeRegex$1(def$31.includes),pattern=new RegExp(typeof def$31.position==`number`?`^.{${def$31.position}}${escapedRegex}`:escapedRegex);def$31.pattern=pattern,inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.patterns??=new Set,bag.patterns.add(pattern)}),inst._zod.check=payload=>{payload.value.includes(def$31.includes,def$31.position)||payload.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:def$31.includes,input:payload.value,inst,continue:!def$31.abort})}}),$ZodCheckStartsWith$1=$constructor$1(`$ZodCheckStartsWith`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31);let pattern=RegExp(`^${escapeRegex$1(def$31.prefix)}.*`);def$31.pattern??=pattern,inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.patterns??=new Set,bag.patterns.add(pattern)}),inst._zod.check=payload=>{payload.value.startsWith(def$31.prefix)||payload.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:def$31.prefix,input:payload.value,inst,continue:!def$31.abort})}}),$ZodCheckEndsWith$1=$constructor$1(`$ZodCheckEndsWith`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31);let pattern=RegExp(`.*${escapeRegex$1(def$31.suffix)}$`);def$31.pattern??=pattern,inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.patterns??=new Set,bag.patterns.add(pattern)}),inst._zod.check=payload=>{payload.value.endsWith(def$31.suffix)||payload.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:def$31.suffix,input:payload.value,inst,continue:!def$31.abort})}}),$ZodCheckOverwrite$1=$constructor$1(`$ZodCheckOverwrite`,(inst,def$31)=>{$ZodCheck$1.init(inst,def$31),inst._zod.check=payload=>{payload.value=def$31.tx(payload.value)}});var Doc$1=class{constructor(args=[]){this.content=[],this.indent=0,this&&(this.args=args)}indented(fn){this.indent+=1,fn(this),--this.indent}write(arg){if(typeof arg==`function`){arg(this,{execution:`sync`}),arg(this,{execution:`async`});return}let lines=arg.split(`
|
|
2077
2071
|
`).filter(x$4=>x$4),minIndent=Math.min(...lines.map(x$4=>x$4.length-x$4.trimStart().length)),dedented=lines.map(x$4=>x$4.slice(minIndent)).map(x$4=>` `.repeat(this.indent*2)+x$4);for(let line$1 of dedented)this.content.push(line$1)}compile(){let F$3=Function,args=this?.args,lines=[...(this?.content??[``]).map(x$4=>` ${x$4}`)];return new F$3(...args,lines.join(`
|
|
2078
|
-
`))}};const version$1={major:4,minor:0,patch:0},$ZodType$1=$constructor$1(`$ZodType`,(inst,def$31)=>{var _a$2$1;inst??={},inst._zod.id=def$31.type+`_`+randomString$1(10),inst._zod.def=def$31,inst._zod.bag=inst._zod.bag||{},inst._zod.version=version$1;let checks=[...inst._zod.def.checks??[]];inst._zod.traits.has(`$ZodCheck`)&&checks.unshift(inst);for(let ch of checks)for(let fn of ch._zod.onattach)fn(inst);if(checks.length===0)(_a$2$1=inst._zod).deferred??(_a$2$1.deferred=[]),inst._zod.deferred?.push(()=>{inst._zod.run=inst._zod.parse});else{let runChecks=(payload,checks$1,ctx)=>{let isAborted$1$1=aborted$1(payload),asyncResult;for(let ch of checks$1){if(ch._zod.when){if(!ch._zod.when(payload))continue}else if(isAborted$1$1)continue;let currLen=payload.issues.length,_$6=ch._zod.check(payload);if(_$6 instanceof Promise&&ctx?.async===!1)throw new $ZodAsyncError$1;if(asyncResult||_$6 instanceof Promise)asyncResult=(asyncResult??Promise.resolve()).then(async()=>{await _$6,payload.issues.length!==currLen&&(isAborted$1$1||=aborted$1(payload,currLen))});else{if(payload.issues.length===currLen)continue;isAborted$1$1||=aborted$1(payload,currLen)}}return asyncResult?asyncResult.then(()=>payload):payload};inst._zod.run=(payload,ctx)=>{let result=inst._zod.parse(payload,ctx);if(result instanceof Promise){if(ctx.async===!1)throw new $ZodAsyncError$1;return result.then(result$1=>runChecks(result$1,checks,ctx))}return runChecks(result,checks,ctx)}}inst[`~standard`]={validate:value=>{try{let r$3=safeParse$3(inst,value);return r$3.success?{value:r$3.data}:{issues:r$3.error?.issues}}catch{return safeParseAsync$3(inst,value).then(r$3=>r$3.success?{value:r$3.data}:{issues:r$3.error?.issues})}},vendor:`zod`,version:1}}),$ZodString$1=$constructor$1(`$ZodString`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=[...inst?._zod.bag?.patterns??[]].pop()??string$4(inst._zod.bag),inst._zod.parse=(payload,_$6)=>{if(def$31.coerce)try{payload.value=String(payload.value)}catch{}return typeof payload.value==`string`||payload.issues.push({expected:`string`,code:`invalid_type`,input:payload.value,inst}),payload}}),$ZodStringFormat$1=$constructor$1(`$ZodStringFormat`,(inst,def$31)=>{$ZodCheckStringFormat$1.init(inst,def$31),$ZodString$1.init(inst,def$31)}),$ZodGUID$1=$constructor$1(`$ZodGUID`,(inst,def$31)=>{def$31.pattern??=guid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodUUID$1=$constructor$1(`$ZodUUID`,(inst,def$31)=>{if(def$31.version){let v$2={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[def$31.version];if(v$2===void 0)throw Error(`Invalid UUID version: "${def$31.version}"`);def$31.pattern??=uuid$2(v$2)}else def$31.pattern??=uuid$2();$ZodStringFormat$1.init(inst,def$31)}),$ZodEmail$1=$constructor$1(`$ZodEmail`,(inst,def$31)=>{def$31.pattern??=email$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodURL$1=$constructor$1(`$ZodURL`,(inst,def$31)=>{$ZodStringFormat$1.init(inst,def$31),inst._zod.check=payload=>{try{let url$1$1=new URL(payload.value);def$31.hostname&&(def$31.hostname.lastIndex=0,def$31.hostname.test(url$1$1.hostname)||payload.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:hostname$2.source,input:payload.value,inst})),def$31.protocol&&(def$31.protocol.lastIndex=0,def$31.protocol.test(url$1$1.protocol.endsWith(`:`)?url$1$1.protocol.slice(0,-1):url$1$1.protocol)||payload.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:def$31.protocol.source,input:payload.value,inst}));return}catch{payload.issues.push({code:`invalid_format`,format:`url`,input:payload.value,inst})}}}),$ZodEmoji$1=$constructor$1(`$ZodEmoji`,(inst,def$31)=>{def$31.pattern??=emoji$2(),$ZodStringFormat$1.init(inst,def$31)}),$ZodNanoID$1=$constructor$1(`$ZodNanoID`,(inst,def$31)=>{def$31.pattern??=nanoid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodCUID$1=$constructor$1(`$ZodCUID`,(inst,def$31)=>{def$31.pattern??=cuid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodCUID2$1=$constructor$1(`$ZodCUID2`,(inst,def$31)=>{def$31.pattern??=cuid2$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodULID$1=$constructor$1(`$ZodULID`,(inst,def$31)=>{def$31.pattern??=ulid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodXID$1=$constructor$1(`$ZodXID`,(inst,def$31)=>{def$31.pattern??=xid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodKSUID$1=$constructor$1(`$ZodKSUID`,(inst,def$31)=>{def$31.pattern??=ksuid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodISODateTime$1=$constructor$1(`$ZodISODateTime`,(inst,def$31)=>{def$31.pattern??=datetime$3(def$31),$ZodStringFormat$1.init(inst,def$31)}),$ZodISODate$1=$constructor$1(`$ZodISODate`,(inst,def$31)=>{def$31.pattern??=date$5,$ZodStringFormat$1.init(inst,def$31)}),$ZodISOTime$1=$constructor$1(`$ZodISOTime`,(inst,def$31)=>{def$31.pattern??=time$3(def$31),$ZodStringFormat$1.init(inst,def$31)}),$ZodISODuration$1=$constructor$1(`$ZodISODuration`,(inst,def$31)=>{def$31.pattern??=duration$3,$ZodStringFormat$1.init(inst,def$31)}),$ZodIPv4$1=$constructor$1(`$ZodIPv4`,(inst,def$31)=>{def$31.pattern??=ipv4$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.format=`ipv4`})}),$ZodIPv6$1=$constructor$1(`$ZodIPv6`,(inst,def$31)=>{def$31.pattern??=ipv6$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.format=`ipv6`}),inst._zod.check=payload=>{try{new URL(`http://[${payload.value}]`)}catch{payload.issues.push({code:`invalid_format`,format:`ipv6`,input:payload.value,inst})}}}),$ZodCIDRv4$1=$constructor$1(`$ZodCIDRv4`,(inst,def$31)=>{def$31.pattern??=cidrv4$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodCIDRv6$1=$constructor$1(`$ZodCIDRv6`,(inst,def$31)=>{def$31.pattern??=cidrv6$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.check=payload=>{let[address,prefix]=payload.value.split(`/`);try{if(!prefix)throw Error();let prefixNum=Number(prefix);if(`${prefixNum}`!==prefix||prefixNum<0||prefixNum>128)throw Error();new URL(`http://[${address}]`)}catch{payload.issues.push({code:`invalid_format`,format:`cidrv6`,input:payload.value,inst})}}});function isValidBase64$1(data$2){if(data$2===``)return!0;if(data$2.length%4!=0)return!1;try{return atob(data$2),!0}catch{return!1}}const $ZodBase64$1=$constructor$1(`$ZodBase64`,(inst,def$31)=>{def$31.pattern??=base64$3,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{inst$1._zod.bag.contentEncoding=`base64`}),inst._zod.check=payload=>{isValidBase64$1(payload.value)||payload.issues.push({code:`invalid_format`,format:`base64`,input:payload.value,inst})}});function isValidBase64URL$1(data$2){if(!base64url$2.test(data$2))return!1;let base64$4$1=data$2.replace(/[-_]/g,c$3=>c$3===`-`?`+`:`/`),padded=base64$4$1.padEnd(Math.ceil(base64$4$1.length/4)*4,`=`);return isValidBase64$1(padded)}const $ZodBase64URL$1=$constructor$1(`$ZodBase64URL`,(inst,def$31)=>{def$31.pattern??=base64url$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{inst$1._zod.bag.contentEncoding=`base64url`}),inst._zod.check=payload=>{isValidBase64URL$1(payload.value)||payload.issues.push({code:`invalid_format`,format:`base64url`,input:payload.value,inst})}}),$ZodE164$1=$constructor$1(`$ZodE164`,(inst,def$31)=>{def$31.pattern??=e164$2,$ZodStringFormat$1.init(inst,def$31)});function isValidJWT$2(token$1,algorithm=null){try{let tokensParts=token$1.split(`.`);if(tokensParts.length!==3)return!1;let[header]=tokensParts,parsedHeader=JSON.parse(atob(header));return!(`typ`in parsedHeader&&parsedHeader?.typ!==`JWT`||!parsedHeader.alg||algorithm&&(!(`alg`in parsedHeader)||parsedHeader.alg!==algorithm))}catch{return!1}}const $ZodJWT$1=$constructor$1(`$ZodJWT`,(inst,def$31)=>{$ZodStringFormat$1.init(inst,def$31),inst._zod.check=payload=>{isValidJWT$2(payload.value,def$31.alg)||payload.issues.push({code:`invalid_format`,format:`jwt`,input:payload.value,inst})}}),$ZodNumber$1=$constructor$1(`$ZodNumber`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=inst._zod.bag.pattern??number$4,inst._zod.parse=(payload,_ctx)=>{if(def$31.coerce)try{payload.value=Number(payload.value)}catch{}let input=payload.value;if(typeof input==`number`&&!Number.isNaN(input)&&Number.isFinite(input))return payload;let received=typeof input==`number`?Number.isNaN(input)?`NaN`:Number.isFinite(input)?void 0:`Infinity`:void 0;return payload.issues.push({expected:`number`,code:`invalid_type`,input,inst,...received?{received}:{}}),payload}}),$ZodNumberFormat$1=$constructor$1(`$ZodNumber`,(inst,def$31)=>{$ZodCheckNumberFormat$1.init(inst,def$31),$ZodNumber$1.init(inst,def$31)}),$ZodBoolean$1=$constructor$1(`$ZodBoolean`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=boolean$4,inst._zod.parse=(payload,_ctx)=>{if(def$31.coerce)try{payload.value=!!payload.value}catch{}let input=payload.value;return typeof input==`boolean`||payload.issues.push({expected:`boolean`,code:`invalid_type`,input,inst}),payload}}),$ZodNull$1=$constructor$1(`$ZodNull`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=_null$5,inst._zod.values=new Set([null]),inst._zod.parse=(payload,_ctx)=>{let{value:input}=payload;return input===null||payload.issues.push({expected:`null`,code:`invalid_type`,input,inst}),payload}}),$ZodUnknown$1=$constructor$1(`$ZodUnknown`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.parse=payload=>payload}),$ZodNever$1=$constructor$1(`$ZodNever`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.parse=(payload,_ctx)=>(payload.issues.push({expected:`never`,code:`invalid_type`,input:payload.value,inst}),payload)});function handleArrayResult$1(result,final,index){result.issues.length&&final.issues.push(...prefixIssues$1(index,result.issues)),final.value[index]=result.value}const $ZodArray$1=$constructor$1(`$ZodArray`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.parse=(payload,ctx)=>{let input=payload.value;if(!Array.isArray(input))return payload.issues.push({expected:`array`,code:`invalid_type`,input,inst}),payload;payload.value=Array(input.length);let proms=[];for(let i$5=0;i$5<input.length;i$5++){let item=input[i$5],result=def$31.element._zod.run({value:item,issues:[]},ctx);result instanceof Promise?proms.push(result.then(result$1=>handleArrayResult$1(result$1,payload,i$5))):handleArrayResult$1(result,payload,i$5)}return proms.length?Promise.all(proms).then(()=>payload):payload}});function handleObjectResult(result,final,key){result.issues.length&&final.issues.push(...prefixIssues$1(key,result.issues)),final.value[key]=result.value}function handleOptionalObjectResult(result,final,key,input){result.issues.length?input[key]===void 0?key in input?final.value[key]=void 0:final.value[key]=result.value:final.issues.push(...prefixIssues$1(key,result.issues)):result.value===void 0?key in input&&(final.value[key]=void 0):final.value[key]=result.value}const $ZodObject$1=$constructor$1(`$ZodObject`,(inst,def$31)=>{$ZodType$1.init(inst,def$31);let _normalized=cached$1(()=>{let keys=Object.keys(def$31.shape);for(let k$2 of keys)if(!(def$31.shape[k$2]instanceof $ZodType$1))throw Error(`Invalid element at key "${k$2}": expected a Zod schema`);let okeys=optionalKeys$1(def$31.shape);return{shape:def$31.shape,keys,keySet:new Set(keys),numKeys:keys.length,optionalKeys:new Set(okeys)}});defineLazy$1(inst._zod,`propValues`,()=>{let shape=def$31.shape,propValues={};for(let key in shape){let field=shape[key]._zod;if(field.values){propValues[key]??(propValues[key]=new Set);for(let v$2 of field.values)propValues[key].add(v$2)}}return propValues});let generateFastpass=shape=>{let doc=new Doc$1([`shape`,`payload`,`ctx`]),{keys,optionalKeys:optionalKeys$2}=_normalized.value,parseStr=key=>{let k$2=esc$1(key);return`shape[${k$2}]._zod.run({ value: input[${k$2}], issues: [] }, ctx)`};doc.write(`const input = payload.value;`);let ids=Object.create(null);for(let key of keys)ids[key]=randomString$1(15);doc.write(`const newResult = {}`);for(let key of keys)if(optionalKeys$2.has(key)){let id=ids[key];doc.write(`const ${id} = ${parseStr(key)};`);let k$2=esc$1(key);doc.write(`
|
|
2072
|
+
`))}};const version$1$1={major:4,minor:0,patch:0},$ZodType$1=$constructor$1(`$ZodType`,(inst,def$31)=>{var _a$2$1;inst??={},inst._zod.id=def$31.type+`_`+randomString$1(10),inst._zod.def=def$31,inst._zod.bag=inst._zod.bag||{},inst._zod.version=version$1$1;let checks=[...inst._zod.def.checks??[]];inst._zod.traits.has(`$ZodCheck`)&&checks.unshift(inst);for(let ch of checks)for(let fn of ch._zod.onattach)fn(inst);if(checks.length===0)(_a$2$1=inst._zod).deferred??(_a$2$1.deferred=[]),inst._zod.deferred?.push(()=>{inst._zod.run=inst._zod.parse});else{let runChecks=(payload,checks$1,ctx)=>{let isAborted$1$1=aborted$1(payload),asyncResult;for(let ch of checks$1){if(ch._zod.when){if(!ch._zod.when(payload))continue}else if(isAborted$1$1)continue;let currLen=payload.issues.length,_$6=ch._zod.check(payload);if(_$6 instanceof Promise&&ctx?.async===!1)throw new $ZodAsyncError$1;if(asyncResult||_$6 instanceof Promise)asyncResult=(asyncResult??Promise.resolve()).then(async()=>{await _$6,payload.issues.length!==currLen&&(isAborted$1$1||=aborted$1(payload,currLen))});else{if(payload.issues.length===currLen)continue;isAborted$1$1||=aborted$1(payload,currLen)}}return asyncResult?asyncResult.then(()=>payload):payload};inst._zod.run=(payload,ctx)=>{let result=inst._zod.parse(payload,ctx);if(result instanceof Promise){if(ctx.async===!1)throw new $ZodAsyncError$1;return result.then(result$1=>runChecks(result$1,checks,ctx))}return runChecks(result,checks,ctx)}}inst[`~standard`]={validate:value=>{try{let r$3=safeParse$3(inst,value);return r$3.success?{value:r$3.data}:{issues:r$3.error?.issues}}catch{return safeParseAsync$3(inst,value).then(r$3=>r$3.success?{value:r$3.data}:{issues:r$3.error?.issues})}},vendor:`zod`,version:1}}),$ZodString$1=$constructor$1(`$ZodString`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=[...inst?._zod.bag?.patterns??[]].pop()??string$4(inst._zod.bag),inst._zod.parse=(payload,_$6)=>{if(def$31.coerce)try{payload.value=String(payload.value)}catch{}return typeof payload.value==`string`||payload.issues.push({expected:`string`,code:`invalid_type`,input:payload.value,inst}),payload}}),$ZodStringFormat$1=$constructor$1(`$ZodStringFormat`,(inst,def$31)=>{$ZodCheckStringFormat$1.init(inst,def$31),$ZodString$1.init(inst,def$31)}),$ZodGUID$1=$constructor$1(`$ZodGUID`,(inst,def$31)=>{def$31.pattern??=guid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodUUID$1=$constructor$1(`$ZodUUID`,(inst,def$31)=>{if(def$31.version){let v$2={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[def$31.version];if(v$2===void 0)throw Error(`Invalid UUID version: "${def$31.version}"`);def$31.pattern??=uuid$2(v$2)}else def$31.pattern??=uuid$2();$ZodStringFormat$1.init(inst,def$31)}),$ZodEmail$1=$constructor$1(`$ZodEmail`,(inst,def$31)=>{def$31.pattern??=email$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodURL$1=$constructor$1(`$ZodURL`,(inst,def$31)=>{$ZodStringFormat$1.init(inst,def$31),inst._zod.check=payload=>{try{let url$1$1=new URL(payload.value);def$31.hostname&&(def$31.hostname.lastIndex=0,def$31.hostname.test(url$1$1.hostname)||payload.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:hostname$2.source,input:payload.value,inst})),def$31.protocol&&(def$31.protocol.lastIndex=0,def$31.protocol.test(url$1$1.protocol.endsWith(`:`)?url$1$1.protocol.slice(0,-1):url$1$1.protocol)||payload.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:def$31.protocol.source,input:payload.value,inst}));return}catch{payload.issues.push({code:`invalid_format`,format:`url`,input:payload.value,inst})}}}),$ZodEmoji$1=$constructor$1(`$ZodEmoji`,(inst,def$31)=>{def$31.pattern??=emoji$2(),$ZodStringFormat$1.init(inst,def$31)}),$ZodNanoID$1=$constructor$1(`$ZodNanoID`,(inst,def$31)=>{def$31.pattern??=nanoid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodCUID$1=$constructor$1(`$ZodCUID`,(inst,def$31)=>{def$31.pattern??=cuid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodCUID2$1=$constructor$1(`$ZodCUID2`,(inst,def$31)=>{def$31.pattern??=cuid2$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodULID$1=$constructor$1(`$ZodULID`,(inst,def$31)=>{def$31.pattern??=ulid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodXID$1=$constructor$1(`$ZodXID`,(inst,def$31)=>{def$31.pattern??=xid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodKSUID$1=$constructor$1(`$ZodKSUID`,(inst,def$31)=>{def$31.pattern??=ksuid$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodISODateTime$1=$constructor$1(`$ZodISODateTime`,(inst,def$31)=>{def$31.pattern??=datetime$3(def$31),$ZodStringFormat$1.init(inst,def$31)}),$ZodISODate$1=$constructor$1(`$ZodISODate`,(inst,def$31)=>{def$31.pattern??=date$5,$ZodStringFormat$1.init(inst,def$31)}),$ZodISOTime$1=$constructor$1(`$ZodISOTime`,(inst,def$31)=>{def$31.pattern??=time$3(def$31),$ZodStringFormat$1.init(inst,def$31)}),$ZodISODuration$1=$constructor$1(`$ZodISODuration`,(inst,def$31)=>{def$31.pattern??=duration$3,$ZodStringFormat$1.init(inst,def$31)}),$ZodIPv4$1=$constructor$1(`$ZodIPv4`,(inst,def$31)=>{def$31.pattern??=ipv4$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.format=`ipv4`})}),$ZodIPv6$1=$constructor$1(`$ZodIPv6`,(inst,def$31)=>{def$31.pattern??=ipv6$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{let bag=inst$1._zod.bag;bag.format=`ipv6`}),inst._zod.check=payload=>{try{new URL(`http://[${payload.value}]`)}catch{payload.issues.push({code:`invalid_format`,format:`ipv6`,input:payload.value,inst})}}}),$ZodCIDRv4$1=$constructor$1(`$ZodCIDRv4`,(inst,def$31)=>{def$31.pattern??=cidrv4$2,$ZodStringFormat$1.init(inst,def$31)}),$ZodCIDRv6$1=$constructor$1(`$ZodCIDRv6`,(inst,def$31)=>{def$31.pattern??=cidrv6$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.check=payload=>{let[address,prefix]=payload.value.split(`/`);try{if(!prefix)throw Error();let prefixNum=Number(prefix);if(`${prefixNum}`!==prefix||prefixNum<0||prefixNum>128)throw Error();new URL(`http://[${address}]`)}catch{payload.issues.push({code:`invalid_format`,format:`cidrv6`,input:payload.value,inst})}}});function isValidBase64$1(data$2){if(data$2===``)return!0;if(data$2.length%4!=0)return!1;try{return atob(data$2),!0}catch{return!1}}const $ZodBase64$1=$constructor$1(`$ZodBase64`,(inst,def$31)=>{def$31.pattern??=base64$3,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{inst$1._zod.bag.contentEncoding=`base64`}),inst._zod.check=payload=>{isValidBase64$1(payload.value)||payload.issues.push({code:`invalid_format`,format:`base64`,input:payload.value,inst})}});function isValidBase64URL$1(data$2){if(!base64url$2.test(data$2))return!1;let base64$4$1=data$2.replace(/[-_]/g,c$3=>c$3===`-`?`+`:`/`),padded=base64$4$1.padEnd(Math.ceil(base64$4$1.length/4)*4,`=`);return isValidBase64$1(padded)}const $ZodBase64URL$1=$constructor$1(`$ZodBase64URL`,(inst,def$31)=>{def$31.pattern??=base64url$2,$ZodStringFormat$1.init(inst,def$31),inst._zod.onattach.push(inst$1=>{inst$1._zod.bag.contentEncoding=`base64url`}),inst._zod.check=payload=>{isValidBase64URL$1(payload.value)||payload.issues.push({code:`invalid_format`,format:`base64url`,input:payload.value,inst})}}),$ZodE164$1=$constructor$1(`$ZodE164`,(inst,def$31)=>{def$31.pattern??=e164$2,$ZodStringFormat$1.init(inst,def$31)});function isValidJWT$2(token$1,algorithm=null){try{let tokensParts=token$1.split(`.`);if(tokensParts.length!==3)return!1;let[header]=tokensParts,parsedHeader=JSON.parse(atob(header));return!(`typ`in parsedHeader&&parsedHeader?.typ!==`JWT`||!parsedHeader.alg||algorithm&&(!(`alg`in parsedHeader)||parsedHeader.alg!==algorithm))}catch{return!1}}const $ZodJWT$1=$constructor$1(`$ZodJWT`,(inst,def$31)=>{$ZodStringFormat$1.init(inst,def$31),inst._zod.check=payload=>{isValidJWT$2(payload.value,def$31.alg)||payload.issues.push({code:`invalid_format`,format:`jwt`,input:payload.value,inst})}}),$ZodNumber$1=$constructor$1(`$ZodNumber`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=inst._zod.bag.pattern??number$4,inst._zod.parse=(payload,_ctx)=>{if(def$31.coerce)try{payload.value=Number(payload.value)}catch{}let input=payload.value;if(typeof input==`number`&&!Number.isNaN(input)&&Number.isFinite(input))return payload;let received=typeof input==`number`?Number.isNaN(input)?`NaN`:Number.isFinite(input)?void 0:`Infinity`:void 0;return payload.issues.push({expected:`number`,code:`invalid_type`,input,inst,...received?{received}:{}}),payload}}),$ZodNumberFormat$1=$constructor$1(`$ZodNumber`,(inst,def$31)=>{$ZodCheckNumberFormat$1.init(inst,def$31),$ZodNumber$1.init(inst,def$31)}),$ZodBoolean$1=$constructor$1(`$ZodBoolean`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=boolean$4,inst._zod.parse=(payload,_ctx)=>{if(def$31.coerce)try{payload.value=!!payload.value}catch{}let input=payload.value;return typeof input==`boolean`||payload.issues.push({expected:`boolean`,code:`invalid_type`,input,inst}),payload}}),$ZodNull$1=$constructor$1(`$ZodNull`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.pattern=_null$5,inst._zod.values=new Set([null]),inst._zod.parse=(payload,_ctx)=>{let{value:input}=payload;return input===null||payload.issues.push({expected:`null`,code:`invalid_type`,input,inst}),payload}}),$ZodUnknown$1=$constructor$1(`$ZodUnknown`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.parse=payload=>payload}),$ZodNever$1=$constructor$1(`$ZodNever`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.parse=(payload,_ctx)=>(payload.issues.push({expected:`never`,code:`invalid_type`,input:payload.value,inst}),payload)});function handleArrayResult$1(result,final,index){result.issues.length&&final.issues.push(...prefixIssues$1(index,result.issues)),final.value[index]=result.value}const $ZodArray$1=$constructor$1(`$ZodArray`,(inst,def$31)=>{$ZodType$1.init(inst,def$31),inst._zod.parse=(payload,ctx)=>{let input=payload.value;if(!Array.isArray(input))return payload.issues.push({expected:`array`,code:`invalid_type`,input,inst}),payload;payload.value=Array(input.length);let proms=[];for(let i$5=0;i$5<input.length;i$5++){let item=input[i$5],result=def$31.element._zod.run({value:item,issues:[]},ctx);result instanceof Promise?proms.push(result.then(result$1=>handleArrayResult$1(result$1,payload,i$5))):handleArrayResult$1(result,payload,i$5)}return proms.length?Promise.all(proms).then(()=>payload):payload}});function handleObjectResult(result,final,key){result.issues.length&&final.issues.push(...prefixIssues$1(key,result.issues)),final.value[key]=result.value}function handleOptionalObjectResult(result,final,key,input){result.issues.length?input[key]===void 0?key in input?final.value[key]=void 0:final.value[key]=result.value:final.issues.push(...prefixIssues$1(key,result.issues)):result.value===void 0?key in input&&(final.value[key]=void 0):final.value[key]=result.value}const $ZodObject$1=$constructor$1(`$ZodObject`,(inst,def$31)=>{$ZodType$1.init(inst,def$31);let _normalized=cached$1(()=>{let keys=Object.keys(def$31.shape);for(let k$2 of keys)if(!(def$31.shape[k$2]instanceof $ZodType$1))throw Error(`Invalid element at key "${k$2}": expected a Zod schema`);let okeys=optionalKeys$1(def$31.shape);return{shape:def$31.shape,keys,keySet:new Set(keys),numKeys:keys.length,optionalKeys:new Set(okeys)}});defineLazy$1(inst._zod,`propValues`,()=>{let shape=def$31.shape,propValues={};for(let key in shape){let field=shape[key]._zod;if(field.values){propValues[key]??(propValues[key]=new Set);for(let v$2 of field.values)propValues[key].add(v$2)}}return propValues});let generateFastpass=shape=>{let doc=new Doc$1([`shape`,`payload`,`ctx`]),{keys,optionalKeys:optionalKeys$2}=_normalized.value,parseStr=key=>{let k$2=esc$1(key);return`shape[${k$2}]._zod.run({ value: input[${k$2}], issues: [] }, ctx)`};doc.write(`const input = payload.value;`);let ids=Object.create(null);for(let key of keys)ids[key]=randomString$1(15);doc.write(`const newResult = {}`);for(let key of keys)if(optionalKeys$2.has(key)){let id=ids[key];doc.write(`const ${id} = ${parseStr(key)};`);let k$2=esc$1(key);doc.write(`
|
|
2079
2073
|
if (${id}.issues.length) {
|
|
2080
2074
|
if (input[${k$2}] === undefined) {
|
|
2081
2075
|
if (${k$2} in input) {
|
|
@@ -2131,6 +2125,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
2131
2125
|
`)?data$2.slice(0,-1):data$2}),id=void 0,data$2=``,eventType=``}function reset$1(options$1={}){incompleteLine&&options$1.consume&&parseLine(incompleteLine),isFirstChunk=!0,id=void 0,data$2=``,eventType=``,incompleteLine=``}return{feed,reset:reset$1}}function splitLines(chunk$1){let lines=[],incompleteLine=``,searchIndex=0;for(;searchIndex<chunk$1.length;){let crIndex=chunk$1.indexOf(`\r`,searchIndex),lfIndex=chunk$1.indexOf(`
|
|
2132
2126
|
`,searchIndex),lineEnd=-1;if(crIndex!==-1&&lfIndex!==-1?lineEnd=Math.min(crIndex,lfIndex):crIndex===-1?lfIndex!==-1&&(lineEnd=lfIndex):lineEnd=crIndex===chunk$1.length-1?-1:crIndex,lineEnd===-1){incompleteLine=chunk$1.slice(searchIndex);break}else{let line$1=chunk$1.slice(searchIndex,lineEnd);lines.push(line$1),searchIndex=lineEnd+1,chunk$1[searchIndex-1]===`\r`&&chunk$1[searchIndex]===`
|
|
2133
2127
|
`&&searchIndex++}}return[lines,incompleteLine]}var EventSourceParserStream=class extends TransformStream{constructor({onError:onError$3,onRetry,onComment}={}){let parser$2;super({start(controller){parser$2=createParser({onEvent:event=>{controller.enqueue(event)},onError(error$44$1){onError$3===`terminate`?controller.error(error$44$1):typeof onError$3==`function`&&onError$3(error$44$1)},onRetry,onComment})},transform(chunk$1){parser$2.feed(chunk$1)}})}};function createAsyncIterableStream(source$39){let stream$10=source$39.pipeThrough(new TransformStream);return stream$10[Symbol.asyncIterator]=function(){let reader=this.getReader(),finished$3=!1;async function cleanup(cancelStream){finished$3=!0;try{cancelStream&&await reader.cancel?.()}finally{try{reader.releaseLock()}catch{}}}return{async next(){if(finished$3)return{done:!0,value:void 0};let{done,value}=await reader.read();return done?(await cleanup(!0),{done:!0,value:void 0}):{done:!1,value}},async return(){return await cleanup(!0),{done:!0,value:void 0}},async throw(err$1){throw await cleanup(!0),err$1}}},stream$10}const schemaChatMessageFormat=_enum([`ai-sdk`]),schemaAISDKMessageParts=array(custom()),schemaChatMessageRole=_enum([`user`,`assistant`,`system`]),schemaChatMessageFormatAISDK=object({id:string$1().uuid(),created_at:string$1().datetime(),chat_id:string$1().uuid(),metadata:schemaMetadata}).extend({format:literal(`ai-sdk`),parts:schemaAISDKMessageParts,role:schemaChatMessageRole}),schemaChatMessage=discriminatedUnion(`format`,[schemaChatMessageFormatAISDK]),schemaListChatMessagesRequest=schemaCursorPaginatedRequest.extend({chat_id:string$1().uuid(),format:schemaChatMessageFormat.default(`ai-sdk`).optional()}),schemaListChatMessagesResponse=schemaCursorPaginatedResponse(schemaChatMessage),schemaDeleteChatMessageRequest=object({chat_id:string$1().uuid(),message_id:string$1().uuid()}),schemaCreateChatMessage=object({role:schemaChatMessageRole,parts:schemaAISDKMessageParts,metadata:schemaMetadata.optional(),format:literal(`ai-sdk`).optional()}),schemaUpdateMessageRequest=object({message_id:string$1().uuid(),metadata:schemaMetadata.optional(),role:schemaChatMessageRole.optional(),parts:schemaAISDKMessageParts.optional(),format:literal(`ai-sdk`).optional()}),schemaSendMessagesBehavior=_enum([`enqueue`,`interrupt`]),schemaSendMessagesRequest=object({chat_id:string$1().uuid(),behavior:schemaSendMessagesBehavior.default(`enqueue`).optional(),messages:array(schemaCreateChatMessage).min(1)}),schemaSendMessagesResponse=object({messages:array(schemaChatMessage)});var Messages=class{constructor(client){this.client=client}async list(request$3){let query=new URLSearchParams;query.set(`chat_id`,request$3.chat_id),request$3.limit&&query.set(`limit`,request$3.limit.toString()),request$3.cursor&&query.set(`cursor`,request$3.cursor),request$3.format&&query.set(`format`,request$3.format);let resp=await this.client.request(`GET`,`/api/messages?${query.toString()}`);return await assertResponseStatus(resp,200),resp.json()}async delete(id){let resp=await this.client.request(`DELETE`,`/api/messages/${id}`);await assertResponseStatus(resp,204)}async get(id){let resp=await this.client.request(`GET`,`/api/messages/${id}`);return await assertResponseStatus(resp,200),resp.json()}async update(request$3){let resp=await this.client.request(`PUT`,`/api/messages/${request$3.message_id}`,JSON.stringify(request$3));await assertResponseStatus(resp,204)}async send(request$3){let resp=await this.client.request(`POST`,`/api/messages`,JSON.stringify(request$3));return await assertResponseStatus(resp,201),resp.json()}};schemaCursorPaginatedRequest.extend({chat_id:string$1().uuid()});const schemaChatRun=object({id:string$1().uuid(),started_at:date$1(),agent_id:string$1().uuid(),agent_deployment_id:string$1().uuid().nullable(),chat_id:string$1().uuid(),step_count:number$1().int().positive(),status:schemaChatRunStepStatus.nullable(),error:string$1().nullable()});schemaCursorPaginatedResponse(schemaChatRun);var ChatRuns=class{constructor(client){this.client=client}async list(request$3){let params=new URLSearchParams;request$3.cursor&¶ms.set(`cursor`,request$3.cursor),request$3.limit&¶ms.set(`limit`,request$3.limit.toString());let resp=await this.client.request(`GET`,`/api/chats/${request$3.chat_id}/runs?${params.toString()}`);return await assertResponseStatus(resp,200),resp.json()}async get(request$3){let resp=await this.client.request(`GET`,`/api/chats/${request$3.chat_id}/runs/${request$3.run_id}`);return await assertResponseStatus(resp,200),resp.json()}};const schemaChatStatus=_enum([`streaming`,`idle`,`error`,`interrupted`]),schemaChatVisibility=_enum([`private`,`organization`,`public`]),schemaChat=object({id:string$1().uuid(),created_at:string$1().datetime(),created_by:string$1().uuid().nullable(),organization_id:string$1().uuid(),title:string$1(),visibility:schemaChatVisibility,metadata:schemaMetadata,archived:boolean$1(),status:schemaChatStatus,error:string$1().nullable(),agent_id:string$1().uuid(),agent_deployment_id:string$1().uuid().nullable()}),schemaCreateChatRequest=object({organization_id:string$1().uuid(),title:string$1().optional(),visibility:schemaChatVisibility.default(`private`).optional(),metadata:schemaMetadata.optional(),agent_id:string$1().uuid(),agent_deployment_id:string$1().uuid().optional()}),schemaListChatsRequest=schemaCursorPaginatedRequest.extend({organization_id:string$1().uuid(),agent_id:string$1().uuid().optional()}),schemaListChatsResponse=schemaCursorPaginatedResponse(schemaChat),schemaStreamChatEvent=discriminatedUnion(`event`,[strictObject({event:literal(`chat.updated`),data:schemaChat}),strictObject({event:literal(`message.created`),data:schemaChatMessage}),strictObject({event:literal(`message.updated`),data:schemaChatMessage}),strictObject({event:literal(`message.deleted`),data:object({id:string$1().uuid()})}),strictObject({event:literal(`message.chunk.added`),data:object({id:string$1().uuid(),chunk:custom()})})]);var Chats=class{constructor(client){this.client=client,this.runs=new ChatRuns(client),this.steps=new ChatSteps(client)}async create(request$3){let resp=await this.client.request(`POST`,`/api/chats`,JSON.stringify(request$3));return await assertResponseStatus(resp,201),resp.json()}async get(id){let resp=await this.client.request(`GET`,`/api/chats/${id}`);return await assertResponseStatus(resp,200),resp.json()}async list(request$3){let params=new URLSearchParams;params.set(`organization_id`,request$3.organization_id),request$3.agent_id&¶ms.set(`agent_id`,request$3.agent_id),request$3.cursor&¶ms.set(`cursor`,request$3.cursor),request$3.limit&¶ms.set(`limit`,request$3.limit.toString());let resp=await this.client.request(`GET`,`/api/chats?${params.toString()}`);return await assertResponseStatus(resp,200),resp.json()}async delete(id){let resp=await this.client.request(`DELETE`,`/api/chats/${id}`);await assertResponseStatus(resp,204)}stream(id){let ws$2=this.client.websocket(`/api/chats/${id}/stream`),parser$2=new EventSourceParserStream,writer=parser$2.writable.getWriter(),lastWritePromise,decoder$2=new TextDecoder,isClosed$3=!1,cleanup=()=>{isClosed$3||(isClosed$3=!0,lastWritePromise?lastWritePromise.finally(()=>{writer.close().catch(()=>{})}):writer.close().catch(()=>{}),ws$2.close())};ws$2.addEventListener(`error`,()=>{cleanup()}),ws$2.addEventListener(`close`,()=>{cleanup()}),ws$2.addEventListener(`message`,event=>{if(isClosed$3)return;let str$1;str$1=typeof event.data==`string`?event.data:decoder$2.decode(event.data),lastWritePromise=lastWritePromise?lastWritePromise.then(()=>{if(!isClosed$3)return writer.write(str$1).catch(()=>{})}):writer.write(str$1).catch(()=>{})});let transformedStream=parser$2.readable.pipeThrough(new TransformStream({async transform(chunk$1,controller){let result=await safeParseJSON({text:chunk$1.data});if(!result.success){controller.error(result.error);return}let parsed=schemaStreamChatEvent.safeParse({event:chunk$1.event,data:result.value});if(!parsed.success){controller.error(parsed.error);return}controller.enqueue(parsed.data)}}));return createAsyncIterableStream(transformedStream)}async start(id){let resp=await this.client.request(`POST`,`/api/chats/${id}/start`);return await assertResponseStatus(resp,200),resp.json()}async stop(id){let resp=await this.client.request(`POST`,`/api/chats/${id}/stop`);return await assertResponseStatus(resp,200),resp.json()}};const schemaComputeType=_enum([`managed`,`self_managed`]);object({organization_id:string$1().uuid(),type:schemaComputeType}),object({id:string$1().uuid(),token:string$1().nullable().describe(`The token is only returned for self-managed compute instances.`)});const schemaComputeInstanceBase=object({id:string$1().uuid(),created_at:string$1().date(),updated_at:string$1().date(),organization_id:string$1().uuid(),type:schemaComputeType}),schemaComputeInstance=discriminatedUnion(`type`,[schemaComputeInstanceBase.extend({type:literal(`managed`),status:_enum([`pending`,`running`,`stopped`,`error`]),resources:object({cpu:number$1(),memory:number$1(),storage:number$1()}),operating_system:_enum([`linux`,`windows`,`macos`])}),schemaComputeInstanceBase.extend({type:literal(`self_managed`)})]);schemaPaginatedRequest.extend({organization_id:string$1().uuid()}),schemaPaginatedResponse(schemaComputeInstance);var Compute=class{constructor(client){this.client=client}async create(request$3){let resp=await this.client.request(`POST`,`/api/tools/compute`,JSON.stringify(request$3));return await assertResponseStatus(resp,201),resp.json()}async get(id){let resp=await this.client.request(`GET`,`/api/tools/compute/${id}`);return await assertResponseStatus(resp,200),resp.json()}async list(request$3){let resp=await this.client.request(`GET`,`/api/tools/compute?organization_id=${request$3.organization_id}`);return await assertResponseStatus(resp,200),resp.json()}async connect(id){let resp=await this.client.request(`GET`,`/api/tools/compute/${id}/connect`);throw await assertResponseStatus(resp,200),Error(`Not implemented`)}},Tools=class{constructor(client){this.client=client,this.compute=new Compute(this.client)}};object({id:string$1().uuid(),organization_id:string$1().uuid(),role:schemaOrganizationRole,invited_by:string$1().uuid(),expires_at:date$1(),created_at:date$1(),updated_at:date$1(),reusable:boolean$1(),accepted_at:date$1().nullable(),email:string$1().email().nullable()}),object({organization_id:string$1().uuid(),role:schemaOrganizationRole,email:string$1().email().optional(),reusable:boolean$1().optional()}),object({organization_id:string$1().uuid()}),object({organization_id:string$1().uuid(),invite_id:string$1().uuid()});const schemaAcceptOrganizationInviteRequestBody=object({code:string$1()});schemaAcceptOrganizationInviteRequestBody.extend({invite_id:string$1().uuid()});var Invites=class{constructor(client){this.client=client}async create(request$3){let resp=await this.client.request(`POST`,`/api/invites`,JSON.stringify(request$3));return await assertResponseStatus(resp,201),resp.json()}async list(request$3){let resp=await this.client.request(`GET`,`/api/invites?organization_id=${request$3.organization_id}`);return await assertResponseStatus(resp,200),resp.json()}async delete(request$3){let resp=await this.client.request(`DELETE`,`/api/invites/${request$3.invite_id}`);await assertResponseStatus(resp,204)}async accept(request$3){let resp=await this.client.request(`POST`,`/api/invites/${request$3.invite_id}/accept`,JSON.stringify({code:request$3.code}));return await assertResponseStatus(resp,201),resp.json()}},Client=class{constructor(options$1){this.chats=new Chats(this),this.runs=new ChatRuns(this),this.agents=new Agents(this),this.files=new Files(this),this.organizations=new Organizations(this),this.invites=new Invites(this),this.users=new Users(this),this.tools=new Tools(this),this.messages=new Messages(this),this.baseURL=new URL(options$1?.baseURL??(globalThis.window===void 0?`https://blink.so`:window.location.origin)),this.fetch=options$1?.fetch,this.authToken=options$1?.authToken,this.auth=new Auth(this,this.baseURL)}request(method,path$38,body,options$1){let url$1$1=new URL(path$38,this.baseURL),headers$2=new Headers;if(this.authToken&&headers$2.set(`Authorization`,`Bearer ${this.authToken}`),typeof body==`string`&&headers$2.set(`Content-Type`,`application/json`),options$1?.headers)for(let[key,value]of Object.entries(options$1.headers))headers$2.set(key,value);let signal;return options$1?.timeout&&(signal=AbortSignal.timeout(options$1.timeout)),(this.fetch??fetch)(url$1$1.toString(),{method,headers:headers$2,body,signal})}websocket(path$38){let url$1$1=new URL(path$38,this.baseURL);return url$1$1.protocol=url$1$1.protocol===`https:`?`wss:`:`ws:`,new WebSocket(url$1$1.toString())}},require_XDGAppPaths=__commonJSMin((exports=>{exports.__esModule=!0,exports.Adapt=void 0;function isBoolean(t$1){return typeOf(t$1)===`boolean`}function isObject(t$1){return typeOf(t$1)===`object`}function isString(t$1){return typeOf(t$1)===`string`}function typeOf(t$1){return typeof t$1}function Adapt$2(adapter_){var meta=adapter_.meta,path$38=adapter_.path,xdg=adapter_.xdg,XDGAppPaths_=function(){function XDGAppPaths_$1(options_){options_===void 0&&(options_={});var _a$16,_b$4,_c$2;function XDGAppPaths(options$2){return options$2===void 0&&(options$2={}),new XDGAppPaths_$1(options$2)}var options$1=isObject(options_)?options_:{name:options_},suffix=(_a$16=options$1.suffix)??``,isolated_=(_b$4=options$1.isolated)??!0,namePriorityList=[options$1.name,meta.pkgMainFilename(),meta.mainFilename()],nameFallback=`$eval`,name$7=path$38.parse(((_c$2=namePriorityList.find(function(e$2){return isString(e$2)}))??nameFallback)+suffix).name;XDGAppPaths.$name=function(){return name$7},XDGAppPaths.$isolated=function(){return isolated_};function isIsolated(dirOptions){var _a$17;dirOptions??={isolated:isolated_};var isolated=isBoolean(dirOptions)?dirOptions:(_a$17=dirOptions.isolated)??isolated_;return isolated}function finalPathSegment(dirOptions){return isIsolated(dirOptions)?name$7:``}return XDGAppPaths.cache=function(dirOptions){return path$38.join(xdg.cache(),finalPathSegment(dirOptions))},XDGAppPaths.config=function(dirOptions){return path$38.join(xdg.config(),finalPathSegment(dirOptions))},XDGAppPaths.data=function(dirOptions){return path$38.join(xdg.data(),finalPathSegment(dirOptions))},XDGAppPaths.runtime=function(dirOptions){return xdg.runtime()?path$38.join(xdg.runtime(),finalPathSegment(dirOptions)):void 0},XDGAppPaths.state=function(dirOptions){return path$38.join(xdg.state(),finalPathSegment(dirOptions))},XDGAppPaths.configDirs=function(dirOptions){return xdg.configDirs().map(function(s$3){return path$38.join(s$3,finalPathSegment(dirOptions))})},XDGAppPaths.dataDirs=function(dirOptions){return xdg.dataDirs().map(function(s$3){return path$38.join(s$3,finalPathSegment(dirOptions))})},XDGAppPaths}return XDGAppPaths_$1}();return{XDGAppPaths:new XDGAppPaths_}}exports.Adapt=Adapt$2})),require_XDG=__commonJSMin((exports=>{var __spreadArray$1=exports&&exports.__spreadArray||function(to,from$1){for(var i$5=0,il=from$1.length,j$2=to.length;i$5<il;i$5++,j$2++)to[j$2]=from$1[i$5];return to};exports.__esModule=!0,exports.Adapt=void 0;function Adapt$1(adapter_){var env$8=adapter_.env,osPaths=adapter_.osPaths,path$38=adapter_.path,isMacOS=/^darwin$/i.test(adapter_.process.platform),isWinOS=/^win/i.test(adapter_.process.platform);function baseDir(){return osPaths.home()||osPaths.temp()}function valOrPath(val,pathSegments){return val||path$38.join.apply(path$38,pathSegments)}var linux=function(){var cache$4=function(){return valOrPath(env$8.get(`XDG_CACHE_HOME`),[baseDir(),`.cache`])},config$3=function(){return valOrPath(env$8.get(`XDG_CONFIG_HOME`),[baseDir(),`.config`])},data$2=function(){return valOrPath(env$8.get(`XDG_DATA_HOME`),[baseDir(),`.local`,`share`])},runtime=function(){return env$8.get(`XDG_RUNTIME_DIR`)||void 0},state=function(){return valOrPath(env$8.get(`XDG_STATE_HOME`),[baseDir(),`.local`,`state`])};return{cache:cache$4,config:config$3,data:data$2,runtime,state}},macos=function(){var cache$4=function(){return valOrPath(env$8.get(`XDG_CACHE_HOME`),[baseDir(),`Library`,`Caches`])},config$3=function(){return valOrPath(env$8.get(`XDG_CONFIG_HOME`),[baseDir(),`Library`,`Preferences`])},data$2=function(){return valOrPath(env$8.get(`XDG_DATA_HOME`),[baseDir(),`Library`,`Application Support`])},runtime=function(){return env$8.get(`XDG_RUNTIME_DIR`)||void 0},state=function(){return valOrPath(env$8.get(`XDG_STATE_HOME`),[baseDir(),`Library`,`State`])};return{cache:cache$4,config:config$3,data:data$2,runtime,state}},windows=function(){function appData(){return valOrPath(env$8.get(`APPDATA`),[baseDir(),`AppData`,`Roaming`])}function localAppData(){return valOrPath(env$8.get(`LOCALAPPDATA`),[baseDir(),`AppData`,`Local`])}var cache$4=function(){return valOrPath(env$8.get(`XDG_CACHE_HOME`),[localAppData(),`xdg.cache`])},config$3=function(){return valOrPath(env$8.get(`XDG_CONFIG_HOME`),[appData(),`xdg.config`])},data$2=function(){return valOrPath(env$8.get(`XDG_DATA_HOME`),[appData(),`xdg.data`])},runtime=function(){return env$8.get(`XDG_RUNTIME_DIR`)||void 0},state=function(){return valOrPath(env$8.get(`XDG_STATE_HOME`),[localAppData(),`xdg.state`])};return{cache:cache$4,config:config$3,data:data$2,runtime,state}},XDG_=function(){function XDG_$1(){function XDG(){return new XDG_$1}var extension$1=isMacOS?macos():isWinOS?windows():linux();return XDG.cache=extension$1.cache,XDG.config=extension$1.config,XDG.data=extension$1.data,XDG.runtime=extension$1.runtime,XDG.state=extension$1.state,XDG.configDirs=function(){var pathList=env$8.get(`XDG_CONFIG_DIRS`);return __spreadArray$1([extension$1.config()],pathList?pathList.split(path$38.delimiter):[])},XDG.dataDirs=function(){var pathList=env$8.get(`XDG_DATA_DIRS`);return __spreadArray$1([extension$1.data()],pathList?pathList.split(path$38.delimiter):[])},XDG}return XDG_$1}();return{XDG:new XDG_}}exports.Adapt=Adapt$1})),require_OSPaths=__commonJSMin((exports=>{var __spreadArray=exports&&exports.__spreadArray||function(to,from$1){for(var i$5=0,il=from$1.length,j$2=to.length;i$5<il;i$5++,j$2++)to[j$2]=from$1[i$5];return to};exports.__esModule=!0,exports.Adapt=void 0;function isEmpty(s$3){return!s$3}function Adapt(adapter_){var env$8=adapter_.env,os$14=adapter_.os,path$38=adapter_.path,isWinOS=/^win/i.test(adapter_.process.platform);function normalizePath$1(path_){return path_?adapter_.path.normalize(adapter_.path.join(path_,`.`)):void 0}function home(){var posix$2=function(){return normalizePath$1((typeof os$14.homedir==`function`?os$14.homedir():void 0)||env$8.get(`HOME`))},windows=function(){var priorityList=[typeof os$14.homedir==`function`?os$14.homedir():void 0,env$8.get(`USERPROFILE`),env$8.get(`HOME`),env$8.get(`HOMEDRIVE`)||env$8.get(`HOMEPATH`)?path$38.join(env$8.get(`HOMEDRIVE`)||``,env$8.get(`HOMEPATH`)||``):void 0];return normalizePath$1(priorityList.find(function(v$2){return!isEmpty(v$2)}))};return isWinOS?windows():posix$2()}function temp(){function joinPathToBase(base,segments){return base?path$38.join.apply(path$38,__spreadArray([base],segments)):void 0}function posix$2(){var fallback=`/tmp`,priorityList=[typeof os$14.tmpdir==`function`?os$14.tmpdir():void 0,env$8.get(`TMPDIR`),env$8.get(`TEMP`),env$8.get(`TMP`)];return normalizePath$1(priorityList.find(function(v$2){return!isEmpty(v$2)}))||fallback}function windows(){var fallback=`C:\\Temp`,priorityListLazy=[typeof os$14.tmpdir==`function`?os$14.tmpdir:function(){},function(){return env$8.get(`TEMP`)},function(){return env$8.get(`TMP`)},function(){return joinPathToBase(env$8.get(`LOCALAPPDATA`),[`Temp`])},function(){return joinPathToBase(home(),[`AppData`,`Local`,`Temp`])},function(){return joinPathToBase(env$8.get(`ALLUSERSPROFILE`),[`Temp`])},function(){return joinPathToBase(env$8.get(`SystemRoot`),[`Temp`])},function(){return joinPathToBase(env$8.get(`windir`),[`Temp`])},function(){return joinPathToBase(env$8.get(`SystemDrive`),[`\\`,`Temp`])}],v$2=priorityListLazy.find(function(v$3){return v$3&&!isEmpty(v$3())});return v$2&&normalizePath$1(v$2())||fallback}return isWinOS?windows():posix$2()}var OSPaths_=function(){function OSPaths_$1(){function OSPaths(){return new OSPaths_$1}return OSPaths.home=home,OSPaths.temp=temp,OSPaths}return OSPaths_$1}();return{OSPaths:new OSPaths_}}exports.Adapt=Adapt})),require_node$2=__commonJSMin((exports=>{var __createBinding$2=exports&&exports.__createBinding||(Object.create?(function(o$3,m$3,k$2,k2){k2===void 0&&(k2=k$2),Object.defineProperty(o$3,k2,{enumerable:!0,get:function(){return m$3[k$2]}})}):(function(o$3,m$3,k$2,k2){k2===void 0&&(k2=k$2),o$3[k2]=m$3[k$2]})),__setModuleDefault$2=exports&&exports.__setModuleDefault||(Object.create?(function(o$3,v$2){Object.defineProperty(o$3,`default`,{enumerable:!0,value:v$2})}):function(o$3,v$2){o$3.default=v$2}),__importStar$2=exports&&exports.__importStar||function(mod$1){if(mod$1&&mod$1.__esModule)return mod$1;var result={};if(mod$1!=null)for(var k$2 in mod$1)k$2!==`default`&&Object.prototype.hasOwnProperty.call(mod$1,k$2)&&__createBinding$2(result,mod$1,k$2);return __setModuleDefault$2(result,mod$1),result};exports.__esModule=!0,exports.adapter=void 0;var os$3=__importStar$2(__require$1(`os`)),path$5=__importStar$2(__require$1(`path`));exports.adapter={atImportPermissions:{env:!0},env:{get:function(s$3){return process.env[s$3]}},os:os$3,path:path$5,process}})),require_mod_cjs$2=__commonJSMin(((exports,module)=>{var OSPaths_js_1=require_OSPaths(),node_js_1$2=require_node$2();module.exports=OSPaths_js_1.Adapt(node_js_1$2.adapter).OSPaths})),require_node$1=__commonJSMin((exports=>{var __createBinding$1=exports&&exports.__createBinding||(Object.create?(function(o$3,m$3,k$2,k2){k2===void 0&&(k2=k$2),Object.defineProperty(o$3,k2,{enumerable:!0,get:function(){return m$3[k$2]}})}):(function(o$3,m$3,k$2,k2){k2===void 0&&(k2=k$2),o$3[k2]=m$3[k$2]})),__setModuleDefault$1=exports&&exports.__setModuleDefault||(Object.create?(function(o$3,v$2){Object.defineProperty(o$3,`default`,{enumerable:!0,value:v$2})}):function(o$3,v$2){o$3.default=v$2}),__importStar$1=exports&&exports.__importStar||function(mod$1){if(mod$1&&mod$1.__esModule)return mod$1;var result={};if(mod$1!=null)for(var k$2 in mod$1)k$2!==`default`&&Object.prototype.hasOwnProperty.call(mod$1,k$2)&&__createBinding$1(result,mod$1,k$2);return __setModuleDefault$1(result,mod$1),result},__importDefault$1=exports&&exports.__importDefault||function(mod$1){return mod$1&&mod$1.__esModule?mod$1:{default:mod$1}};exports.__esModule=!0,exports.adapter=void 0;var path$4=__importStar$1(__require$1(`path`)),os_paths_1=__importDefault$1(require_mod_cjs$2());exports.adapter={atImportPermissions:{env:!0},env:{get:function(s$3){return process.env[s$3]}},osPaths:os_paths_1.default,path:path$4,process}})),require_mod_cjs$1=__commonJSMin(((exports,module)=>{var XDG_js_1=require_XDG(),node_js_1$1=require_node$1();module.exports=XDG_js_1.Adapt(node_js_1$1.adapter).XDG})),require_node=__commonJSMin((exports=>{var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o$3,m$3,k$2,k2){k2===void 0&&(k2=k$2),Object.defineProperty(o$3,k2,{enumerable:!0,get:function(){return m$3[k$2]}})}):(function(o$3,m$3,k$2,k2){k2===void 0&&(k2=k$2),o$3[k2]=m$3[k$2]})),__setModuleDefault=exports&&exports.__setModuleDefault||(Object.create?(function(o$3,v$2){Object.defineProperty(o$3,`default`,{enumerable:!0,value:v$2})}):function(o$3,v$2){o$3.default=v$2}),__importStar=exports&&exports.__importStar||function(mod$1){if(mod$1&&mod$1.__esModule)return mod$1;var result={};if(mod$1!=null)for(var k$2 in mod$1)k$2!==`default`&&Object.prototype.hasOwnProperty.call(mod$1,k$2)&&__createBinding(result,mod$1,k$2);return __setModuleDefault(result,mod$1),result},__importDefault=exports&&exports.__importDefault||function(mod$1){return mod$1&&mod$1.__esModule?mod$1:{default:mod$1}};exports.__esModule=!0,exports.adapter=void 0;var path$3=__importStar(__require$1(`path`)),xdg_portable_1=__importDefault(require_mod_cjs$1());exports.adapter={atImportPermissions:{env:!0,read:!0},meta:{mainFilename:function(){var requireMain=__require$1!=null&&__require$1.main?__require$1.main:{filename:void 0},requireMainFilename=requireMain.filename,filename=(requireMainFilename===process.execArgv[0]?void 0:requireMainFilename)||(process._eval===void 0?process.argv[1]:void 0);return filename},pkgMainFilename:function(){return process.pkg?process.execPath:void 0}},path:path$3,process,xdg:xdg_portable_1.default}})),require_mod_cjs=__commonJSMin(((exports,module)=>{var XDGAppPaths_js_1=require_XDGAppPaths(),node_js_1=require_node();module.exports=XDGAppPaths_js_1.Adapt(node_js_1.adapter).XDGAppPaths})),mod_esm_exports={};__export$6(mod_esm_exports,{default:()=>mod_esm_default});var import_mod_cjs=__toESM(require_mod_cjs(),1);__reExport(mod_esm_exports,__toESM(require_mod_cjs(),1));var mod_esm_default=import_mod_cjs.default;function getAuthToken(){let path$38=getAuthTokenConfigPath();if(existsSync$1(path$38)){let data$2=readFileSync$1(path$38,`utf8`);return JSON.parse(data$2).token}}function setAuthToken(token$1){let path$38=getAuthTokenConfigPath();existsSync$1(dirname$1(path$38))||mkdirSync(dirname$1(path$38),{recursive:!0}),writeFileSync$1(path$38,JSON.stringify({_:`This is your Blink credentials file. DO NOT SHARE THIS FILE WITH ANYONE!`,token:token$1}))}function getAuthTokenConfigPath(){let dirs=mod_esm_default(`blink`).dataDirs();if(dirs.length===0)throw Error(`No suitable data directory for Blink storage found!`);return join$1(dirs[0],`auth.json`)}async function loginIfNeeded(){let client=new Client,token$1=getAuthToken();if(token$1){client.authToken=token$1;try{await client.users.me()}catch{token$1=await login$1()}}else token$1=await login$1();return token$1}async function login$1(){let client=new Client,authUrl,tokenPromise,handleAuthCallback=(url$4,id)=>{authUrl=url$4,console.log(`Visit`,source_default.bold(url$4),`to authenticate with Blink.`),console.log(source_default.dim(`Press [ENTER] to open the browser`))};tokenPromise=client.auth.token(handleAuthCallback),await new Promise(resolve$10=>{process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on(`data`,key=>{(key.toString()===`\r`||key.toString()===`
|
|
2134
|
-
`)&&(process.stdin.setRawMode(!1),process.stdin.pause(),resolve$10())})}),await open_default(authUrl);let s$3=Y();s$3.start(`Waiting for authentication...`);try{let receivedToken=await tokenPromise;client.authToken=receivedToken;let user=await client.users.me();return s$3.stop(`Congratulations, you are now signed in as ${user.email}!`),setAuthToken(receivedToken),receivedToken}catch(error$65){s$3.stop(`Authentication failed: `+error$65),process.exit(1)}}var require_package=__commonJSMin(((exports,module)=>{module.exports={name:`dotenv`,version:`17.2.2`,description:`Loads environment variables from .env file`,main:`lib/main.js`,types:`lib/main.d.ts`,exports:{".":{types:`./lib/main.d.ts`,require:`./lib/main.js`,default:`./lib/main.js`},"./config":`./config.js`,"./config.js":`./config.js`,"./lib/env-options":`./lib/env-options.js`,"./lib/env-options.js":`./lib/env-options.js`,"./lib/cli-options":`./lib/cli-options.js`,"./lib/cli-options.js":`./lib/cli-options.js`,"./package.json":`./package.json`},scripts:{"dts-check":`tsc --project tests/types/tsconfig.json`,lint:`standard`,pretest:`npm run lint && npm run dts-check`,test:`tap run --allow-empty-coverage --disable-coverage --timeout=60000`,"test:coverage":`tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov`,prerelease:`npm test`,release:`standard-version`},repository:{type:`git`,url:`git://github.com/motdotla/dotenv.git`},homepage:`https://github.com/motdotla/dotenv#readme`,funding:`https://dotenvx.com`,keywords:[`dotenv`,`env`,`.env`,`environment`,`variables`,`config`,`settings`],readmeFilename:`README.md`,license:`BSD-2-Clause`,devDependencies:{"@types/node":`^18.11.3`,decache:`^4.6.2`,sinon:`^14.0.1`,standard:`^17.0.0`,"standard-version":`^9.5.0`,tap:`^19.2.0`,typescript:`^4.8.4`},engines:{node:`>=12`},browser:{fs:!1}}})),require_main=__commonJSMin(((exports,module)=>{let fs$3=__require$1(`fs`),path$2=__require$1(`path`),os$2=__require$1(`os`),crypto$3=__require$1(`crypto`),packageJson=require_package(),version=packageJson.version,TIPS=[`🔐 encrypt with Dotenvx: https://dotenvx.com`,`🔐 prevent committing .env to code: https://dotenvx.com/precommit`,`🔐 prevent building .env in docker: https://dotenvx.com/prebuild`,`📡 observe env with Radar: https://dotenvx.com/radar`,`📡 auto-backup env with Radar: https://dotenvx.com/radar`,`📡 version env with Radar: https://dotenvx.com/radar`,"🛠️ run anywhere with `dotenvx run -- yourcommand`",`⚙️ specify custom .env file path with { path: '/custom/path/.env' }`,`⚙️ enable debug logging with { debug: true }`,`⚙️ override existing env vars with { override: true }`,`⚙️ suppress all logs with { quiet: true }`,`⚙️ write to custom object with { processEnv: myObject }`,`⚙️ load multiple .env files with { path: ['.env.local', '.env'] }`];function _getRandomTip(){return TIPS[Math.floor(Math.random()*TIPS.length)]}function parseBoolean(value){return typeof value==`string`?![`false`,`0`,`no`,`off`,``].includes(value.toLowerCase()):!!value}function supportsAnsi(){return process.stdout.isTTY}function dim(text$3){return supportsAnsi()?`\x1b[2m${text$3}\x1b[0m`:text$3}let LINE=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function parse$1(src){let obj={},lines=src.toString();lines=lines.replace(/\r\n?/gm,`
|
|
2128
|
+
`)&&(process.stdin.setRawMode(!1),process.stdin.pause(),resolve$10())})}),await open_default(authUrl);let s$3=Y();s$3.start(`Waiting for authentication...`);try{let receivedToken=await tokenPromise;client.authToken=receivedToken;let user=await client.users.me();return s$3.stop(`Congratulations, you are now signed in as ${user.email}!`),setAuthToken(receivedToken),receivedToken}catch(error$65){s$3.stop(`Authentication failed: `+error$65),process.exit(1)}}var require_package=__commonJSMin(((exports,module)=>{module.exports={name:`dotenv`,version:`17.2.2`,description:`Loads environment variables from .env file`,main:`lib/main.js`,types:`lib/main.d.ts`,exports:{".":{types:`./lib/main.d.ts`,require:`./lib/main.js`,default:`./lib/main.js`},"./config":`./config.js`,"./config.js":`./config.js`,"./lib/env-options":`./lib/env-options.js`,"./lib/env-options.js":`./lib/env-options.js`,"./lib/cli-options":`./lib/cli-options.js`,"./lib/cli-options.js":`./lib/cli-options.js`,"./package.json":`./package.json`},scripts:{"dts-check":`tsc --project tests/types/tsconfig.json`,lint:`standard`,pretest:`npm run lint && npm run dts-check`,test:`tap run --allow-empty-coverage --disable-coverage --timeout=60000`,"test:coverage":`tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov`,prerelease:`npm test`,release:`standard-version`},repository:{type:`git`,url:`git://github.com/motdotla/dotenv.git`},homepage:`https://github.com/motdotla/dotenv#readme`,funding:`https://dotenvx.com`,keywords:[`dotenv`,`env`,`.env`,`environment`,`variables`,`config`,`settings`],readmeFilename:`README.md`,license:`BSD-2-Clause`,devDependencies:{"@types/node":`^18.11.3`,decache:`^4.6.2`,sinon:`^14.0.1`,standard:`^17.0.0`,"standard-version":`^9.5.0`,tap:`^19.2.0`,typescript:`^4.8.4`},engines:{node:`>=12`},browser:{fs:!1}}})),require_main=__commonJSMin(((exports,module)=>{let fs$3=__require$1(`fs`),path$2=__require$1(`path`),os$2=__require$1(`os`),crypto$3=__require$1(`crypto`),packageJson=require_package(),version$1=packageJson.version,TIPS=[`🔐 encrypt with Dotenvx: https://dotenvx.com`,`🔐 prevent committing .env to code: https://dotenvx.com/precommit`,`🔐 prevent building .env in docker: https://dotenvx.com/prebuild`,`📡 observe env with Radar: https://dotenvx.com/radar`,`📡 auto-backup env with Radar: https://dotenvx.com/radar`,`📡 version env with Radar: https://dotenvx.com/radar`,"🛠️ run anywhere with `dotenvx run -- yourcommand`",`⚙️ specify custom .env file path with { path: '/custom/path/.env' }`,`⚙️ enable debug logging with { debug: true }`,`⚙️ override existing env vars with { override: true }`,`⚙️ suppress all logs with { quiet: true }`,`⚙️ write to custom object with { processEnv: myObject }`,`⚙️ load multiple .env files with { path: ['.env.local', '.env'] }`];function _getRandomTip(){return TIPS[Math.floor(Math.random()*TIPS.length)]}function parseBoolean(value){return typeof value==`string`?![`false`,`0`,`no`,`off`,``].includes(value.toLowerCase()):!!value}function supportsAnsi(){return process.stdout.isTTY}function dim(text$3){return supportsAnsi()?`\x1b[2m${text$3}\x1b[0m`:text$3}let LINE=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function parse$1(src){let obj={},lines=src.toString();lines=lines.replace(/\r\n?/gm,`
|
|
2135
2129
|
`);let match$1;for(;(match$1=LINE.exec(lines))!=null;){let key=match$1[1],value=match$1[2]||``;value=value.trim();let maybeQuote=value[0];value=value.replace(/^(['"`])([\s\S]*)\1$/gm,`$2`),maybeQuote===`"`&&(value=value.replace(/\\n/g,`
|
|
2136
|
-
`),value=value.replace(/\\r/g,`\r`)),obj[key]=value}return obj}function _parseVault(options$1){options$1||={};let vaultPath=_vaultPath(options$1);options$1.path=vaultPath;let result=DotenvModule.configDotenv(options$1);if(!result.parsed){let err$1=Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`);throw err$1.code=`MISSING_DATA`,err$1}let keys=_dotenvKey(options$1).split(`,`),length=keys.length,decrypted;for(let i$5=0;i$5<length;i$5++)try{let key=keys[i$5].trim(),attrs=_instructions(result,key);decrypted=DotenvModule.decrypt(attrs.ciphertext,attrs.key);break}catch(error$65){if(i$5+1>=length)throw error$65}return DotenvModule.parse(decrypted)}function _warn(message){console.error(`[dotenv@${version}][WARN] ${message}`)}function _debug(message){console.log(`[dotenv@${version}][DEBUG] ${message}`)}function _log(message){console.log(`[dotenv@${version}] ${message}`)}function _dotenvKey(options$1){return options$1&&options$1.DOTENV_KEY&&options$1.DOTENV_KEY.length>0?options$1.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:``}function _instructions(result,dotenvKey){let uri$3;try{uri$3=new URL(dotenvKey)}catch(error$65){if(error$65.code===`ERR_INVALID_URL`){let err$1=Error(`INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}throw error$65}let key=uri$3.password;if(!key){let err$1=Error(`INVALID_DOTENV_KEY: Missing key part`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}let environment=uri$3.searchParams.get(`environment`);if(!environment){let err$1=Error(`INVALID_DOTENV_KEY: Missing environment part`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}let environmentKey=`DOTENV_VAULT_${environment.toUpperCase()}`,ciphertext=result.parsed[environmentKey];if(!ciphertext){let err$1=Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`);throw err$1.code=`NOT_FOUND_DOTENV_ENVIRONMENT`,err$1}return{ciphertext,key}}function _vaultPath(options$1){let possibleVaultPath=null;if(options$1&&options$1.path&&options$1.path.length>0)if(Array.isArray(options$1.path))for(let filepath of options$1.path)fs$3.existsSync(filepath)&&(possibleVaultPath=filepath.endsWith(`.vault`)?filepath:`${filepath}.vault`);else possibleVaultPath=options$1.path.endsWith(`.vault`)?options$1.path:`${options$1.path}.vault`;else possibleVaultPath=path$2.resolve(process.cwd(),`.env.vault`);return fs$3.existsSync(possibleVaultPath)?possibleVaultPath:null}function _resolveHome(envPath){return envPath[0]===`~`?path$2.join(os$2.homedir(),envPath.slice(1)):envPath}function _configVault(options$1){let debug$11=parseBoolean(process.env.DOTENV_CONFIG_DEBUG||options$1&&options$1.debug),quiet=parseBoolean(process.env.DOTENV_CONFIG_QUIET||options$1&&options$1.quiet);(debug$11||!quiet)&&_log(`Loading env from encrypted .env.vault`);let parsed=DotenvModule._parseVault(options$1),processEnv=process.env;return options$1&&options$1.processEnv!=null&&(processEnv=options$1.processEnv),DotenvModule.populate(processEnv,parsed,options$1),{parsed}}function configDotenv(options$1){let dotenvPath=path$2.resolve(process.cwd(),`.env`),encoding=`utf8`,processEnv=process.env;options$1&&options$1.processEnv!=null&&(processEnv=options$1.processEnv);let debug$11=parseBoolean(processEnv.DOTENV_CONFIG_DEBUG||options$1&&options$1.debug),quiet=parseBoolean(processEnv.DOTENV_CONFIG_QUIET||options$1&&options$1.quiet);options$1&&options$1.encoding?encoding=options$1.encoding:debug$11&&_debug(`No encoding is specified. UTF-8 is used by default`);let optionPaths=[dotenvPath];if(options$1&&options$1.path)if(!Array.isArray(options$1.path))optionPaths=[_resolveHome(options$1.path)];else{optionPaths=[];for(let filepath of options$1.path)optionPaths.push(_resolveHome(filepath))}let lastError,parsedAll={};for(let path$38 of optionPaths)try{let parsed=DotenvModule.parse(fs$3.readFileSync(path$38,{encoding}));DotenvModule.populate(parsedAll,parsed,options$1)}catch(e$2){debug$11&&_debug(`Failed to load ${path$38} ${e$2.message}`),lastError=e$2}let populated=DotenvModule.populate(processEnv,parsedAll,options$1);if(debug$11=parseBoolean(processEnv.DOTENV_CONFIG_DEBUG||debug$11),quiet=parseBoolean(processEnv.DOTENV_CONFIG_QUIET||quiet),debug$11||!quiet){let keysCount=Object.keys(populated).length,shortPaths=[];for(let filePath of optionPaths)try{let relative$1=path$2.relative(process.cwd(),filePath);shortPaths.push(relative$1)}catch(e$2){debug$11&&_debug(`Failed to load ${filePath} ${e$2.message}`),lastError=e$2}_log(`injecting env (${keysCount}) from ${shortPaths.join(`,`)} ${dim(`-- tip: ${_getRandomTip()}`)}`)}return lastError?{parsed:parsedAll,error:lastError}:{parsed:parsedAll}}function config(options$1){if(_dotenvKey(options$1).length===0)return DotenvModule.configDotenv(options$1);let vaultPath=_vaultPath(options$1);return vaultPath?DotenvModule._configVault(options$1):(_warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`),DotenvModule.configDotenv(options$1))}function decrypt(encrypted,keyStr){let key=Buffer.from(keyStr.slice(-64),`hex`),ciphertext=Buffer.from(encrypted,`base64`),nonce=ciphertext.subarray(0,12),authTag=ciphertext.subarray(-16);ciphertext=ciphertext.subarray(12,-16);try{let aesgcm=crypto$3.createDecipheriv(`aes-256-gcm`,key,nonce);return aesgcm.setAuthTag(authTag),`${aesgcm.update(ciphertext)}${aesgcm.final()}`}catch(error$65){let isRange=error$65 instanceof RangeError,invalidKeyLength=error$65.message===`Invalid key length`,decryptionFailed=error$65.message===`Unsupported state or unable to authenticate data`;if(isRange||invalidKeyLength){let err$1=Error(`INVALID_DOTENV_KEY: It must be 64 characters long (or more)`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}else if(decryptionFailed){let err$1=Error(`DECRYPTION_FAILED: Please check your DOTENV_KEY`);throw err$1.code=`DECRYPTION_FAILED`,err$1}else throw error$65}}function populate(processEnv,parsed,options$1={}){let debug$11=!!(options$1&&options$1.debug),override=!!(options$1&&options$1.override),populated={};if(typeof parsed!=`object`){let err$1=Error(`OBJECT_REQUIRED: Please check the processEnv argument being passed to populate`);throw err$1.code=`OBJECT_REQUIRED`,err$1}for(let key of Object.keys(parsed))Object.prototype.hasOwnProperty.call(processEnv,key)?(override===!0&&(processEnv[key]=parsed[key],populated[key]=parsed[key]),debug$11&&_debug(override===!0?`"${key}" is already defined and WAS overwritten`:`"${key}" is already defined and was NOT overwritten`)):(processEnv[key]=parsed[key],populated[key]=parsed[key]);return populated}let DotenvModule={configDotenv,_configVault,_parseVault,config,decrypt,parse:parse$1,populate};module.exports.configDotenv=DotenvModule.configDotenv,module.exports._configVault=DotenvModule._configVault,module.exports._parseVault=DotenvModule._parseVault,module.exports.config=DotenvModule.config,module.exports.decrypt=DotenvModule.decrypt,module.exports.parse=DotenvModule.parse,module.exports.populate=DotenvModule.populate,module.exports=DotenvModule})),import_main=__toESM(require_main(),1);async function deploy(directory){directory||=process.cwd();let token$1=await loginIfNeeded(),client=new Client({authToken:token$1}),packageJSON=await findNearestEntry(directory,`package.json`);if(!packageJSON)throw Error(`package.json not found`);let packageJSONContent=await readFile$1(packageJSON,`utf-8`),packageJSONData=JSON.parse(packageJSONContent),deployDirectory=dirname(packageJSON),deployConfigPath=join(deployDirectory,`.blink`,`config.json`),deployConfig={};if(existsSync(deployConfigPath)){let deployConfigContent=await readFile$1(deployConfigPath,`utf-8`);deployConfig=JSON.parse(deployConfigContent)}let organizationName;if(deployConfig?.organizationId)try{let org=await client.organizations.get(deployConfig.organizationId);organizationName=org.name}catch{deployConfig.organizationId=void 0}if(!deployConfig?.organizationId){let organizations=await client.organizations.list();if(organizations.length===1){let organization=organizations[0];deployConfig.organizationId=organization.id,organizationName=organization.name}else{let organization=await ve({message:`Which organization should contain this agent?`,options:organizations.map(organization$1=>({value:organization$1.id,label:organization$1.name}))});if(pD(organization))return;deployConfig.organizationId=organization,organizationName=organizations.find(org=>org.id===organization).name}}if(!deployConfig.organizationId)throw Error(`Developer error: No organization ID found.`);let agentName;if(deployConfig?.agentId)try{let agent=await client.agents.get(deployConfig.agentId);agentName=agent.name}catch{deployConfig.agentId=void 0}if(!deployConfig?.agentId)try{let agent=await client.organizations.agents.get({organization_id:deployConfig.organizationId,agent_name:packageJSONData.name});deployConfig.agentId=agent.id,agentName=agent.name}catch{let agent=await client.agents.create({name:packageJSONData.name,organization_id:deployConfig.organizationId});deployConfig.agentId=agent.id,agentName=agent.name}if(!deployConfig.agentId)throw Error(`Developer error: No agent ID found.`);await mkdir(dirname(deployConfigPath),{recursive:!0}),await writeFile(deployConfigPath,JSON.stringify({_:`This file can be source controlled. It contains no secrets.`,...deployConfig},null,2),`utf-8`);let entrypoint=await resolveEntrypoint(directory),{outfile}=await build$1(entrypoint),filesToUpload=await readdir(dirname(outfile)),uploadedFiles=[];for(let file$1 of filesToUpload){let fileContent=await readFile$1(join(dirname(outfile),file$1)),uploadedFile=await client.files.upload(new File([fileContent],file$1));uploadedFiles.push({path:file$1,id:uploadedFile.id})}let localEnvFile=join(directory,`.env.local`),localEnvVarsSet=[];if(await exists(localEnvFile)){let localEnv=(0,import_main.parse)(await readFile$1(localEnvFile,`utf-8`));localEnvVarsSet=Object.keys(localEnv)}let cloudEnvVarsSet=[],cloudEnvVars=await client.agents.env.list({agent_id:deployConfig.agentId});cloudEnvVarsSet=cloudEnvVars.map(env$8=>env$8.key);let prodEnvFile=join(directory,`.env.production`);if(await exists(prodEnvFile)){console.log(`Updating production environment variables with .env.production...`);let prodEnv=(0,import_main.parse)(await readFile$1(prodEnvFile,`utf-8`));for(let[key,value]of Object.entries(prodEnv)){let created=await client.agents.env.create({agent_id:deployConfig.agentId,key,value,target:[`production`,`preview`],secret:!0,upsert:!0});cloudEnvVarsSet.push(created.key)}}let missingEnvVars=localEnvVarsSet.filter(v$2=>!cloudEnvVarsSet.includes(v$2));if(missingEnvVars.length>0){console.log(`Warning: The following environment variables are set in .env.local but not in .env.production:`);for(let v$2 of missingEnvVars)console.log(`- ${v$2}`);let confirmed=await ye({message:`Do you want to deploy anyway?`});if(confirmed===!1||pD(confirmed))return}let deployment=await client.agents.deployments.create({agent_id:deployConfig.agentId,target:`production`,entrypoint:basename(outfile),files:uploadedFiles});console.log(`Inspect the deployment:`,`https://blink.so/${organizationName}/${agentName}/deployments/${deployment.number}`)}const exists=async path$38=>{try{return await stat$1(path$38),!0}catch{return!1}};async function login(){await login$1()}globalThis.crypto||(globalThis.crypto={}),globalThis.crypto.randomUUID||(globalThis.crypto.randomUUID=()=>randomUUID()),program.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(`v0.0.1`).action(()=>{program.outputHelp()}),program.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(init),program.command(`dev [directory] [options]`).description(`Start a development server for your agent.`).action(dev),program.command(`deploy [directory] [options]`).description(`Deploy your agent to the Blink Cloud.`).action(deploy),program.command(`build [directory]`).description(`Build your agent for production.`).action(build),program.command(`telemetry [boolean]`).description(`Enable or disable telemetry.`),program.command(`start [directory]`).description("Starts the Blink runtime in production mode. The agent must be compiled with `blink build` first."),program.command(`serve [entrypoint]`).description(`Serve the Blink agent as an HTTP server.`).action(serve),program.command(`connect`,{hidden:!0}).description(`Connect compute to the Blink Cloud.`).action(connect),program.command(`chat`,{hidden:!0}).description(`Start a Blink chat connected to your machine.`).action(chat),program.command(`login`,{hidden:!0}).description(`Log in to the Blink Cloud.`).action(login),program.parse(process.argv);export{};
|
|
2130
|
+
`),value=value.replace(/\\r/g,`\r`)),obj[key]=value}return obj}function _parseVault(options$1){options$1||={};let vaultPath=_vaultPath(options$1);options$1.path=vaultPath;let result=DotenvModule.configDotenv(options$1);if(!result.parsed){let err$1=Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`);throw err$1.code=`MISSING_DATA`,err$1}let keys=_dotenvKey(options$1).split(`,`),length=keys.length,decrypted;for(let i$5=0;i$5<length;i$5++)try{let key=keys[i$5].trim(),attrs=_instructions(result,key);decrypted=DotenvModule.decrypt(attrs.ciphertext,attrs.key);break}catch(error$65){if(i$5+1>=length)throw error$65}return DotenvModule.parse(decrypted)}function _warn(message){console.error(`[dotenv@${version$1}][WARN] ${message}`)}function _debug(message){console.log(`[dotenv@${version$1}][DEBUG] ${message}`)}function _log(message){console.log(`[dotenv@${version$1}] ${message}`)}function _dotenvKey(options$1){return options$1&&options$1.DOTENV_KEY&&options$1.DOTENV_KEY.length>0?options$1.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:``}function _instructions(result,dotenvKey){let uri$3;try{uri$3=new URL(dotenvKey)}catch(error$65){if(error$65.code===`ERR_INVALID_URL`){let err$1=Error(`INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}throw error$65}let key=uri$3.password;if(!key){let err$1=Error(`INVALID_DOTENV_KEY: Missing key part`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}let environment=uri$3.searchParams.get(`environment`);if(!environment){let err$1=Error(`INVALID_DOTENV_KEY: Missing environment part`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}let environmentKey=`DOTENV_VAULT_${environment.toUpperCase()}`,ciphertext=result.parsed[environmentKey];if(!ciphertext){let err$1=Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`);throw err$1.code=`NOT_FOUND_DOTENV_ENVIRONMENT`,err$1}return{ciphertext,key}}function _vaultPath(options$1){let possibleVaultPath=null;if(options$1&&options$1.path&&options$1.path.length>0)if(Array.isArray(options$1.path))for(let filepath of options$1.path)fs$3.existsSync(filepath)&&(possibleVaultPath=filepath.endsWith(`.vault`)?filepath:`${filepath}.vault`);else possibleVaultPath=options$1.path.endsWith(`.vault`)?options$1.path:`${options$1.path}.vault`;else possibleVaultPath=path$2.resolve(process.cwd(),`.env.vault`);return fs$3.existsSync(possibleVaultPath)?possibleVaultPath:null}function _resolveHome(envPath){return envPath[0]===`~`?path$2.join(os$2.homedir(),envPath.slice(1)):envPath}function _configVault(options$1){let debug$11=parseBoolean(process.env.DOTENV_CONFIG_DEBUG||options$1&&options$1.debug),quiet=parseBoolean(process.env.DOTENV_CONFIG_QUIET||options$1&&options$1.quiet);(debug$11||!quiet)&&_log(`Loading env from encrypted .env.vault`);let parsed=DotenvModule._parseVault(options$1),processEnv=process.env;return options$1&&options$1.processEnv!=null&&(processEnv=options$1.processEnv),DotenvModule.populate(processEnv,parsed,options$1),{parsed}}function configDotenv(options$1){let dotenvPath=path$2.resolve(process.cwd(),`.env`),encoding=`utf8`,processEnv=process.env;options$1&&options$1.processEnv!=null&&(processEnv=options$1.processEnv);let debug$11=parseBoolean(processEnv.DOTENV_CONFIG_DEBUG||options$1&&options$1.debug),quiet=parseBoolean(processEnv.DOTENV_CONFIG_QUIET||options$1&&options$1.quiet);options$1&&options$1.encoding?encoding=options$1.encoding:debug$11&&_debug(`No encoding is specified. UTF-8 is used by default`);let optionPaths=[dotenvPath];if(options$1&&options$1.path)if(!Array.isArray(options$1.path))optionPaths=[_resolveHome(options$1.path)];else{optionPaths=[];for(let filepath of options$1.path)optionPaths.push(_resolveHome(filepath))}let lastError,parsedAll={};for(let path$38 of optionPaths)try{let parsed=DotenvModule.parse(fs$3.readFileSync(path$38,{encoding}));DotenvModule.populate(parsedAll,parsed,options$1)}catch(e$2){debug$11&&_debug(`Failed to load ${path$38} ${e$2.message}`),lastError=e$2}let populated=DotenvModule.populate(processEnv,parsedAll,options$1);if(debug$11=parseBoolean(processEnv.DOTENV_CONFIG_DEBUG||debug$11),quiet=parseBoolean(processEnv.DOTENV_CONFIG_QUIET||quiet),debug$11||!quiet){let keysCount=Object.keys(populated).length,shortPaths=[];for(let filePath of optionPaths)try{let relative$1=path$2.relative(process.cwd(),filePath);shortPaths.push(relative$1)}catch(e$2){debug$11&&_debug(`Failed to load ${filePath} ${e$2.message}`),lastError=e$2}_log(`injecting env (${keysCount}) from ${shortPaths.join(`,`)} ${dim(`-- tip: ${_getRandomTip()}`)}`)}return lastError?{parsed:parsedAll,error:lastError}:{parsed:parsedAll}}function config(options$1){if(_dotenvKey(options$1).length===0)return DotenvModule.configDotenv(options$1);let vaultPath=_vaultPath(options$1);return vaultPath?DotenvModule._configVault(options$1):(_warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`),DotenvModule.configDotenv(options$1))}function decrypt(encrypted,keyStr){let key=Buffer.from(keyStr.slice(-64),`hex`),ciphertext=Buffer.from(encrypted,`base64`),nonce=ciphertext.subarray(0,12),authTag=ciphertext.subarray(-16);ciphertext=ciphertext.subarray(12,-16);try{let aesgcm=crypto$3.createDecipheriv(`aes-256-gcm`,key,nonce);return aesgcm.setAuthTag(authTag),`${aesgcm.update(ciphertext)}${aesgcm.final()}`}catch(error$65){let isRange=error$65 instanceof RangeError,invalidKeyLength=error$65.message===`Invalid key length`,decryptionFailed=error$65.message===`Unsupported state or unable to authenticate data`;if(isRange||invalidKeyLength){let err$1=Error(`INVALID_DOTENV_KEY: It must be 64 characters long (or more)`);throw err$1.code=`INVALID_DOTENV_KEY`,err$1}else if(decryptionFailed){let err$1=Error(`DECRYPTION_FAILED: Please check your DOTENV_KEY`);throw err$1.code=`DECRYPTION_FAILED`,err$1}else throw error$65}}function populate(processEnv,parsed,options$1={}){let debug$11=!!(options$1&&options$1.debug),override=!!(options$1&&options$1.override),populated={};if(typeof parsed!=`object`){let err$1=Error(`OBJECT_REQUIRED: Please check the processEnv argument being passed to populate`);throw err$1.code=`OBJECT_REQUIRED`,err$1}for(let key of Object.keys(parsed))Object.prototype.hasOwnProperty.call(processEnv,key)?(override===!0&&(processEnv[key]=parsed[key],populated[key]=parsed[key]),debug$11&&_debug(override===!0?`"${key}" is already defined and WAS overwritten`:`"${key}" is already defined and was NOT overwritten`)):(processEnv[key]=parsed[key],populated[key]=parsed[key]);return populated}let DotenvModule={configDotenv,_configVault,_parseVault,config,decrypt,parse:parse$1,populate};module.exports.configDotenv=DotenvModule.configDotenv,module.exports._configVault=DotenvModule._configVault,module.exports._parseVault=DotenvModule._parseVault,module.exports.config=DotenvModule.config,module.exports.decrypt=DotenvModule.decrypt,module.exports.parse=DotenvModule.parse,module.exports.populate=DotenvModule.populate,module.exports=DotenvModule})),import_main=__toESM(require_main(),1);async function deploy(directory){directory||=process.cwd();let token$1=await loginIfNeeded(),client=new Client({authToken:token$1}),packageJSON=await findNearestEntry(directory,`package.json`);if(!packageJSON)throw Error(`package.json not found`);let packageJSONContent=await readFile$1(packageJSON,`utf-8`),packageJSONData=JSON.parse(packageJSONContent),deployDirectory=dirname(packageJSON),deployConfigPath=join(deployDirectory,`.blink`,`config.json`),deployConfig={};if(existsSync(deployConfigPath)){let deployConfigContent=await readFile$1(deployConfigPath,`utf-8`);deployConfig=JSON.parse(deployConfigContent)}let organizationName;if(deployConfig?.organizationId)try{let org=await client.organizations.get(deployConfig.organizationId);organizationName=org.name}catch{deployConfig.organizationId=void 0}if(!deployConfig?.organizationId){let organizations=await client.organizations.list();if(organizations.length===1){let organization=organizations[0];deployConfig.organizationId=organization.id,organizationName=organization.name}else{let organization=await ve({message:`Which organization should contain this agent?`,options:organizations.map(organization$1=>({value:organization$1.id,label:organization$1.name}))});if(pD(organization))return;deployConfig.organizationId=organization,organizationName=organizations.find(org=>org.id===organization).name}}if(!deployConfig.organizationId)throw Error(`Developer error: No organization ID found.`);let agentName;if(deployConfig?.agentId)try{let agent=await client.agents.get(deployConfig.agentId);agentName=agent.name}catch{deployConfig.agentId=void 0}if(!deployConfig?.agentId)try{let agent=await client.organizations.agents.get({organization_id:deployConfig.organizationId,agent_name:packageJSONData.name});deployConfig.agentId=agent.id,agentName=agent.name}catch{let agent=await client.agents.create({name:packageJSONData.name,organization_id:deployConfig.organizationId});deployConfig.agentId=agent.id,agentName=agent.name}if(!deployConfig.agentId)throw Error(`Developer error: No agent ID found.`);await mkdir(dirname(deployConfigPath),{recursive:!0}),await writeFile(deployConfigPath,JSON.stringify({_:`This file can be source controlled. It contains no secrets.`,...deployConfig},null,2),`utf-8`);let entrypoint=await resolveEntrypoint(directory),{outfile}=await build$1(entrypoint),filesToUpload=await readdir(dirname(outfile)),uploadedFiles=[];for(let file$1 of filesToUpload){let fileContent=await readFile$1(join(dirname(outfile),file$1)),uploadedFile=await client.files.upload(new File([fileContent],file$1));uploadedFiles.push({path:file$1,id:uploadedFile.id})}let localEnvFile=join(directory,`.env.local`),localEnvVarsSet=[];if(await exists(localEnvFile)){let localEnv=(0,import_main.parse)(await readFile$1(localEnvFile,`utf-8`));localEnvVarsSet=Object.keys(localEnv)}let cloudEnvVarsSet=[],cloudEnvVars=await client.agents.env.list({agent_id:deployConfig.agentId});cloudEnvVarsSet=cloudEnvVars.map(env$8=>env$8.key);let prodEnvFile=join(directory,`.env.production`);if(await exists(prodEnvFile)){console.log(`Updating production environment variables with .env.production...`);let prodEnv=(0,import_main.parse)(await readFile$1(prodEnvFile,`utf-8`));for(let[key,value]of Object.entries(prodEnv)){let created=await client.agents.env.create({agent_id:deployConfig.agentId,key,value,target:[`production`,`preview`],secret:!0,upsert:!0});cloudEnvVarsSet.push(created.key)}}let missingEnvVars=localEnvVarsSet.filter(v$2=>!cloudEnvVarsSet.includes(v$2));if(missingEnvVars.length>0){console.log(`Warning: The following environment variables are set in .env.local but not in .env.production:`);for(let v$2 of missingEnvVars)console.log(`- ${v$2}`);let confirmed=await ye({message:`Do you want to deploy anyway?`});if(confirmed===!1||pD(confirmed))return}let deployment=await client.agents.deployments.create({agent_id:deployConfig.agentId,target:`production`,entrypoint:basename(outfile),files:uploadedFiles});console.log(`Inspect the deployment:`,`https://blink.so/${organizationName}/${agentName}/deployments/${deployment.number}`)}const exists=async path$38=>{try{return await stat$1(path$38),!0}catch{return!1}};async function login(){await login$1()}var version=`0.1.24`;await init_wrapper(),globalThis.WebSocket||(globalThis.WebSocket=import_websocket.default),globalThis.crypto||(globalThis.crypto={}),globalThis.crypto.randomUUID||(globalThis.crypto.randomUUID=()=>randomUUID()),program.name(`blink`).description(`Blink is a runtime for building and deploying AI agents.`).version(version).action(()=>{program.outputHelp()}),program.command(`init [directory]`).description(`Initialize a new Blink agent.`).action(init),program.command(`dev [directory] [options]`).description(`Start a development server for your agent.`).action(dev),program.command(`deploy [directory] [options]`).description(`Deploy your agent to the Blink Cloud.`).action(deploy),program.command(`build [directory]`).description(`Build your agent for production.`).action(build),program.command(`telemetry [boolean]`).description(`Enable or disable telemetry.`),program.command(`start [directory]`).description("Starts the Blink runtime in production mode. The agent must be compiled with `blink build` first."),program.command(`serve [entrypoint]`).description(`Serve the Blink agent as an HTTP server.`).action(serve),program.command(`connect`,{hidden:!0}).description(`Connect compute to the Blink Cloud.`).action(connect),program.command(`chat`,{hidden:!0}).description(`Start a Blink chat connected to your machine.`).action(chat),program.command(`login`,{hidden:!0}).description(`Log in to the Blink Cloud.`).action(login),program.parse(process.argv);export{};
|