blink 0.1.84 → 0.1.86
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/browser/agent/client/index.d.cts +3 -3
- package/dist/browser/agent/client/index.d.ts +3 -3
- package/dist/browser/agent/index.browser.d.cts +2 -2
- package/dist/browser/agent/index.browser.d.ts +2 -2
- package/dist/browser/{chat-DjsYj6b0.d.cts → chat-DRPmcXCS.d.ts} +1 -1
- package/dist/browser/{chat-k3skFyU5.d.ts → chat-DaDo5oPq.d.cts} +1 -1
- package/dist/browser/control/index.cjs +1 -1
- package/dist/browser/control/index.d.cts +17 -17
- package/dist/browser/control/index.d.ts +17 -17
- package/dist/browser/control/index.js +1 -1
- package/dist/browser/{index-Ct7PnO7V.d.ts → index-C3lpcocP.d.ts} +2 -2
- package/dist/browser/{index-Cm9mLCpT.d.cts → index-D0FLmR9p.d.cts} +2 -2
- package/dist/browser/{index.browser-DkykGx0f.d.ts → index.browser-CmI6JZoo.d.ts} +1 -1
- package/dist/browser/{index.browser-9_0VjM7D.d.cts → index.browser-DAen9O_U.d.cts} +1 -1
- package/dist/browser/react/index.d.cts +3 -3
- package/dist/browser/react/index.d.ts +3 -3
- package/dist/cli/{dev-FGXkSqqr.js → dev-G5Uo_ETr.js} +60 -23
- package/dist/cli/{ignore-GLTkbIEj.js → ignore-BA3hDG56.js} +1 -1
- package/dist/cli/index.js +3 -3
- package/dist/node/agent/index.node.d.cts +1 -1
- package/dist/node/agent/index.node.d.ts +1 -1
- package/dist/node/build/index.cjs +1 -1
- package/dist/node/build/index.js +1 -1
- package/dist/node/{index.browser-Chqtpkvq.d.cts → index.browser-CS2PXHA_.d.cts} +1 -1
- package/dist/node/{index.browser-CQKM-pMt.d.ts → index.browser-DonjglNq.d.ts} +1 -1
- package/dist/node/test.d.cts +1 -1
- package/dist/node/test.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__commonJSMin,__esmMin,__export as __export$2,__require as __require$2,__toCommonJS as __toCommonJS$1,__toDynamicImportESM,__toESM as __toESM$1}from"./chunk-ByIbJXPc.js";import{import_websocket}from"./wrapper-B4vDwpOq.js";import{findNearestEntry,require_ignore,require_main as require_main$1,resolveConfig}from"./ignore-GLTkbIEj.js";import{Client as Client$2,getAuthToken,source_default}from"./auth-xjF_htDn.js";import{open_default}from"./open-DfjrUP4O.js";import{DiagConsoleLogger,DiagLogLevel,SpanStatusCode,ValueType,diag,esm_exports as esm_exports$12,init_esm as init_esm$11,metrics,trace}from"./esm-DhNyK8uM.js";import{require_undici as require_undici$1}from"./undici-BcfpJJ8r.js";import{Emitter as Emitter$1,Multiplexer,Server}from"./events-NgMztwfM.js";import{createRequire}from"node:module";import{errorMonitor}from"events";import*as https$7 from"https";import*as http$2 from"http";import http,{createServer}from"http";import crypto$1 from"crypto";import{Readable}from"stream";import*as zlib from"zlib";import EventEmitter,{EventEmitter as EventEmitter$1,addAbortListener,on,once,setMaxListeners}from"node:events";import{ChildProcess,exec,execFile,execSync,spawn,spawnSync}from"node:child_process";import*as path$8 from"node:path";import path,{basename,dirname,join,posix,win32}from"node:path";import*as fs$12 from"node:fs";import fs,{appendFileSync,createReadStream,createWriteStream,promises,readFileSync,statSync,writeFileSync}from"node:fs";import*as process$3 from"node:process";import y,{cwd,env,execArgv,execPath,hrtime,platform}from"node:process";import path$1,{basename as basename$1,dirname as dirname$1,join as join$1,normalize,relative as relative$1,resolve,sep}from"path";import*as nativeFs from"fs";import fs$1,{createWriteStream as createWriteStream$1,existsSync as existsSync$1,lstatSync,mkdirSync,readFileSync as readFileSync$1,readdir,readdirSync,readlinkSync,realpathSync,watch,writeFile,writeFileSync as writeFileSync$1}from"fs";import{createRequire as createRequire$1}from"module";import*as fs$45 from"fs/promises";import{readFile,writeFile as writeFile$1}from"fs/promises";import{ZodFirstPartyTypeKind,ZodType,z}from"zod";import z6,{z as z$2}from"zod/v4";import"zod/v3";import*as fs$11 from"node:fs/promises";import fs$2,{lstat,readdir as readdir$2,readlink,realpath}from"node:fs/promises";import os,{tmpdir}from"os";import*as os$5 from"node:os";import os$1,{EOL,constants as constants$1,platform as platform$1}from"node:os";import tty from"node:tty";import{TextDecoder as TextDecoder$1,aborted,callbackify,debuglog,inspect,promisify,stripVTControlCharacters}from"node:util";import*as readline from"node:readline";import O from"node:readline";import Stream,{Duplex,PassThrough,Readable as Readable$1,Stream as Stream$1,Transform,Writable,getDefaultHighWaterMark}from"node:stream";import{Buffer as Buffer$1}from"node:buffer";import url,{URL as URL$1,fileURLToPath,pathToFileURL}from"node:url";import{spawn as spawn$1}from"child_process";import{inspect as inspect$1,types}from"util";import*as net$2 from"node:net";import net from"node:net";import*as http$11 from"node:http";import http$1,{ServerResponse}from"node:http";import{checkServerIdentity}from"node:tls";import*as crypto$3 from"node:crypto";import crypto$2,{createHash,randomUUID as randomUUID$1}from"node:crypto";import{AsyncLocalStorage}from"node:async_hooks";import{ADDRCONFIG,ALL,V4MAPPED,lookup,promises as promises$1}from"node:dns";import{convertToModelMessages,createUIMessageStream,getToolName,getToolOrDynamicToolName,isToolOrDynamicToolUIPart,isToolUIPart,readUIMessageStream,streamText,tool}from"ai";import React,{PureComponent,createContext,forwardRef,memo,useCallback,useContext,useEffect,useLayoutEffect,useMemo,useReducer,useRef,useState}from"react";import{finished,pipeline}from"node:stream/promises";import https from"node:https";import{Fragment,jsx,jsxs}from"react/jsx-runtime";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";function debounce$1(func,debounceMs,{signal,edges}={}){let pendingThis,pendingArgs=null,leading=edges!=null&&edges.includes(`leading`),trailing=edges==null||edges.includes(`trailing`),invoke=()=>{pendingArgs!==null&&(func.apply(pendingThis,pendingArgs),pendingThis=void 0,pendingArgs=null)},onTimerEnd=()=>{trailing&&invoke(),cancel()},timeoutId=null,schedule=()=>{timeoutId!=null&&clearTimeout(timeoutId),timeoutId=setTimeout(()=>{timeoutId=null,onTimerEnd()},debounceMs)},cancelTimer=()=>{timeoutId!==null&&(clearTimeout(timeoutId),timeoutId=null)},cancel=()=>{cancelTimer(),pendingThis=void 0,pendingArgs=null},flush=()=>{invoke()},debounced=function(...args){if(signal?.aborted)return;pendingThis=this,pendingArgs=args;let isFirstCall=timeoutId==null;schedule(),leading&&isFirstCall&&invoke()};return debounced.schedule=schedule,debounced.cancel=cancel,debounced.flush=flush,signal?.addEventListener(`abort`,cancel,{once:!0}),debounced}function debounce(func,debounceMs=0,options$1={}){typeof options$1!=`object`&&(options$1={});let{leading=!1,trailing=!0,maxWait}=options$1,edges=[,,];leading&&(edges[0]=`leading`),trailing&&(edges[1]=`trailing`);let result,pendingAt=null,_debounced=debounce$1(function(...args){result=func.apply(this,args),pendingAt=null},debounceMs,{edges}),debounced=function(...args){return maxWait!=null&&(pendingAt===null&&(pendingAt=Date.now()),Date.now()-pendingAt>=maxWait)?(result=func.apply(this,args),pendingAt=Date.now(),_debounced.cancel(),_debounced.schedule(),result):(_debounced.apply(this,args),result)},flush=()=>(_debounced.flush(),result);return debounced.cancel=_debounced.cancel,debounced.flush=flush,debounced}function throttle(func,throttleMs=0,options$1={}){let{leading=!0,trailing=!0}=options$1;return debounce(func,throttleMs,{leading,maxWait:throttleMs,trailing})}const isBrowser=globalThis.window?.document!==void 0,isNode$1=globalThis.process?.versions?.node!==void 0,isBun=globalThis.process?.versions?.bun!==void 0,isDeno=globalThis.Deno?.version?.deno!==void 0,isElectron$1=globalThis.process?.versions?.electron!==void 0,isJsDom=globalThis.navigator?.userAgent?.includes(`jsdom`)===!0,isWebWorker=typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope,isDedicatedWorker=typeof DedicatedWorkerGlobalScope<`u`&&globalThis instanceof DedicatedWorkerGlobalScope,isSharedWorker=typeof SharedWorkerGlobalScope<`u`&&globalThis instanceof SharedWorkerGlobalScope,isServiceWorker=typeof ServiceWorkerGlobalScope<`u`&&globalThis instanceof ServiceWorkerGlobalScope,platform$3=globalThis.navigator?.userAgentData?.platform,isMacOs=platform$3===`macOS`||globalThis.navigator?.platform===`MacIntel`||globalThis.navigator?.userAgent?.includes(` Mac `)===!0||globalThis.process?.platform===`darwin`,isWindows$3=platform$3===`Windows`||globalThis.navigator?.platform===`Win32`||globalThis.process?.platform===`win32`,isLinux=platform$3===`Linux`||globalThis.navigator?.platform?.startsWith(`Linux`)===!0||globalThis.navigator?.userAgent?.includes(` Linux `)===!0||globalThis.process?.platform===`linux`,isIos=platform$3===`iOS`||globalThis.navigator?.platform===`MacIntel`&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),isAndroid=platform$3===`Android`||globalThis.navigator?.platform===`Android`||globalThis.navigator?.userAgent?.includes(` Android `)===!0||globalThis.process?.platform===`android`,ESC$1=`\x1B[`,OSC=`\x1B]`,BEL=`\x07`,SEP$1=`;`,isTerminalApp=!isBrowser&&y.env.TERM_PROGRAM===`Apple_Terminal`,isWindows$2=!isBrowser&&y.platform===`win32`,cwdFunction=isBrowser?()=>{throw Error("`process.cwd()` only works in Node.js, not the browser.")}:y.cwd,cursorUp=(count$1=1)=>`\x1B[`+count$1+`A`,cursorLeft=`\x1B[G`,cursorSavePosition=isTerminalApp?`\x1B7`:`\x1B[s`,cursorRestorePosition=isTerminalApp?`\x1B8`:`\x1B[u`,cursorGetPosition=`\x1B[6n`,cursorNextLine=`\x1B[E`,cursorPrevLine=`\x1B[F`,cursorHide=`\x1B[?25l`,cursorShow=`\x1B[?25h`,eraseLines=count$1=>{let clear$1=``;for(let i$4=0;i$4<count$1;i$4++)clear$1+=eraseLine+(i$4<count$1-1?cursorUp():``);return count$1&&(clear$1+=`\x1B[G`),clear$1},eraseEndLine=`\x1B[K`,eraseStartLine=`\x1B[1K`,eraseLine=`\x1B[2K`,eraseDown=`\x1B[J`,eraseUp=`\x1B[1J`,eraseScreen=`\x1B[2J`,scrollUp=`\x1B[S`,scrollDown=`\x1B[T`,clearTerminal=isWindows$2?`${eraseScreen}[0f`:`${eraseScreen}[3J[H`,enterAlternativeScreen=`\x1B[?1049h`,exitAlternativeScreen=`\x1B[?1049l`,link$3=(text,url$5)=>[`\x1B]`,`8`,`;`,`;`,url$5,`\x07`,text,`\x1B]`,`8`,`;`,`;`,`\x07`].join(``),check$1=key=>key in env&&env[key]!==`0`&&env[key]!==`false`,isInCi=check$1(`CI`)||check$1(`CONTINUOUS_INTEGRATION`);var is_in_ci_default=isInCi;const getAllProperties=object=>{let properties$1=new Set;do for(let key of Reflect.ownKeys(object))properties$1.add([object,key]);while((object=Reflect.getPrototypeOf(object))&&object!==Object.prototype);return properties$1};function autoBind(self$1,{include,exclude}={}){let filter$4=key=>{let match$1=pattern=>typeof pattern==`string`?key===pattern:pattern.test(key);return include?include.some(match$1):exclude?!exclude.some(match$1):!0};for(let[object,key]of getAllProperties(self$1.constructor.prototype)){if(key===`constructor`||!filter$4(key))continue;let descriptor$1=Reflect.getOwnPropertyDescriptor(object,key);descriptor$1&&typeof descriptor$1.value==`function`&&(self$1[key]=self$1[key].bind(self$1))}return self$1}var require_signals=__commonJSMin(((exports,module)=>{module.exports=[`SIGABRT`,`SIGALRM`,`SIGHUP`,`SIGINT`,`SIGTERM`],process.platform!==`win32`&&module.exports.push(`SIGVTALRM`,`SIGXCPU`,`SIGXFSZ`,`SIGUSR2`,`SIGTRAP`,`SIGSYS`,`SIGQUIT`,`SIGIOT`),process.platform===`linux`&&module.exports.push(`SIGIO`,`SIGPOLL`,`SIGPWR`,`SIGSTKFLT`,`SIGUNUSED`)})),require_signal_exit=__commonJSMin(((exports,module)=>{var process$11=global.process;let processOk$1=function(process$12){return process$12&&typeof process$12==`object`&&typeof process$12.removeListener==`function`&&typeof process$12.emit==`function`&&typeof process$12.reallyExit==`function`&&typeof process$12.listeners==`function`&&typeof process$12.kill==`function`&&typeof process$12.pid==`number`&&typeof process$12.on==`function`};if(!processOk$1(process$11))module.exports=function(){return function(){}};else{var assert$2=__require$2(`assert`),signals$1=require_signals(),isWin$2=/^win/i.test(process$11.platform),EE=__require$2(`events`);typeof EE!=`function`&&(EE=EE.EventEmitter);var emitter;process$11.__signal_exit_emitter__?emitter=process$11.__signal_exit_emitter__:(emitter=process$11.__signal_exit_emitter__=new EE,emitter.count=0,emitter.emitted={}),emitter.infinite||(emitter.setMaxListeners(1/0),emitter.infinite=!0),module.exports=function(cb,opts){if(!processOk$1(global.process))return function(){};assert$2.equal(typeof cb,`function`,`a callback must be provided for exit handler`),loaded===!1&&load$14();var ev=`exit`;opts&&opts.alwaysLast&&(ev=`afterexit`);var remove$4=function(){emitter.removeListener(ev,cb),emitter.listeners(`exit`).length===0&&emitter.listeners(`afterexit`).length===0&&unload$1()};return emitter.on(ev,cb),remove$4};var unload$1=function(){!loaded||!processOk$1(global.process)||(loaded=!1,signals$1.forEach(function(sig){try{process$11.removeListener(sig,sigListeners[sig])}catch(er){}}),process$11.emit=originalProcessEmit,process$11.reallyExit=originalProcessReallyExit,--emitter.count)};module.exports.unload=unload$1;var emit=function(event,code$1,signal){emitter.emitted[event]||(emitter.emitted[event]=!0,emitter.emit(event,code$1,signal))},sigListeners={};signals$1.forEach(function(sig){sigListeners[sig]=function(){if(processOk$1(global.process)){var listeners=process$11.listeners(sig);listeners.length===emitter.count&&(unload$1(),emit(`exit`,null,sig),emit(`afterexit`,null,sig),isWin$2&&sig===`SIGHUP`&&(sig=`SIGINT`),process$11.kill(process$11.pid,sig))}}}),module.exports.signals=function(){return signals$1};var loaded=!1,load$14=function(){loaded||!processOk$1(global.process)||(loaded=!0,emitter.count+=1,signals$1=signals$1.filter(function(sig){try{return process$11.on(sig,sigListeners[sig]),!0}catch(er){return!1}}),process$11.emit=processEmit,process$11.reallyExit=processReallyExit)};module.exports.load=load$14;var originalProcessReallyExit=process$11.reallyExit,processReallyExit=function(code$1){processOk$1(global.process)&&(process$11.exitCode=code$1||0,emit(`exit`,process$11.exitCode,null),emit(`afterexit`,process$11.exitCode,null),originalProcessReallyExit.call(process$11,process$11.exitCode))},originalProcessEmit=process$11.emit,processEmit=function(ev,arg){if(ev===`exit`&&processOk$1(global.process)){arg!==void 0&&(process$11.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit(`exit`,process$11.exitCode,null),emit(`afterexit`,process$11.exitCode,null),ret}else return originalProcessEmit.apply(this,arguments)}}})),import_signal_exit$1=__toESM$1(require_signal_exit(),1);const consoleMethods=[`assert`,`count`,`countReset`,`debug`,`dir`,`dirxml`,`error`,`group`,`groupCollapsed`,`groupEnd`,`info`,`log`,`table`,`time`,`timeEnd`,`timeLog`,`trace`,`warn`];let originalMethods={};const patchConsole=callback$1=>{let stdout$1=new PassThrough,stderr=new PassThrough;stdout$1.write=data$2=>{callback$1(`stdout`,data$2)},stderr.write=data$2=>{callback$1(`stderr`,data$2)};let internalConsole=new console.Console(stdout$1,stderr);for(let method of consoleMethods)originalMethods[method]=console[method],console[method]=internalConsole[method];return()=>{for(let method of consoleMethods)console[method]=originalMethods[method];originalMethods={}}};var dist_default$1=patchConsole,require_react_reconciler_constants_production=__commonJSMin((exports=>{exports.ConcurrentRoot=1,exports.ContinuousEventPriority=8,exports.DefaultEventPriority=32,exports.DiscreteEventPriority=2,exports.IdleEventPriority=268435456,exports.LegacyRoot=0,exports.NoEventPriority=0})),require_react_reconciler_constants_development=__commonJSMin((exports=>{process.env.NODE_ENV!==`production`&&(exports.ConcurrentRoot=1,exports.ContinuousEventPriority=8,exports.DefaultEventPriority=32,exports.DiscreteEventPriority=2,exports.IdleEventPriority=268435456,exports.LegacyRoot=0,exports.NoEventPriority=0)})),require_constants$23=__commonJSMin(((exports,module)=>{process.env.NODE_ENV===`production`?module.exports=require_react_reconciler_constants_production():module.exports=require_react_reconciler_constants_development()})),import_constants$1=__toESM$1(require_constants$23(),1),loadYoga=(()=>{var _scriptDir=import.meta.url;return(function(loadYoga$1){loadYoga$1=loadYoga$1||{};var h$3;h$3||(h$3=loadYoga$1===void 0?{}:loadYoga$1);var aa,ca;h$3.ready=new Promise(function(a$3,b$2){aa=a$3,ca=b$2});var da=Object.assign({},h$3),q$3=``;typeof document<`u`&&document.currentScript&&(q$3=document.currentScript.src),_scriptDir&&(q$3=_scriptDir),q$3=q$3.indexOf(`blob:`)===0?``:q$3.substr(0,q$3.replace(/[?#].*/,``).lastIndexOf(`/`)+1);var ea=h$3.print||console.log.bind(console),v$1=h$3.printErr||console.warn.bind(console);Object.assign(h$3,da),da=null;var w$3;h$3.wasmBinary&&(w$3=h$3.wasmBinary),h$3.noExitRuntime,typeof WebAssembly!=`object`&&x$1(`no native wasm support detected`);var fa,ha=!1;function z$5(a$3,b$2,c$3){c$3=b$2+c$3;for(var d$3=``;!(b$2>=c$3);){var e$1=a$3[b$2++];if(!e$1)break;if(e$1&128){var f=a$3[b$2++]&63;if((e$1&224)==192)d$3+=String.fromCharCode((e$1&31)<<6|f);else{var g=a$3[b$2++]&63;e$1=(e$1&240)==224?(e$1&15)<<12|f<<6|g:(e$1&7)<<18|f<<12|g<<6|a$3[b$2++]&63,65536>e$1?d$3+=String.fromCharCode(e$1):(e$1-=65536,d$3+=String.fromCharCode(55296|e$1>>10,56320|e$1&1023))}}else d$3+=String.fromCharCode(e$1)}return d$3}var ia,ja,A,C$2,ka,D$1,E$2,la,ma;function na(){var a$3=fa.buffer;ia=a$3,h$3.HEAP8=ja=new Int8Array(a$3),h$3.HEAP16=C$2=new Int16Array(a$3),h$3.HEAP32=D$1=new Int32Array(a$3),h$3.HEAPU8=A=new Uint8Array(a$3),h$3.HEAPU16=ka=new Uint16Array(a$3),h$3.HEAPU32=E$2=new Uint32Array(a$3),h$3.HEAPF32=la=new Float32Array(a$3),h$3.HEAPF64=ma=new Float64Array(a$3)}var oa,pa=[],qa=[],ra=[];function sa(){var a$3=h$3.preRun.shift();pa.unshift(a$3)}var F$2=0,ta=null,G$1=null;function x$1(a$3){throw h$3.onAbort&&h$3.onAbort(a$3),a$3=`Aborted(`+a$3+`)`,v$1(a$3),ha=!0,a$3=new WebAssembly.RuntimeError(a$3+`. Build with -sASSERTIONS for more info.`),ca(a$3),a$3}function ua(a$3){return a$3.startsWith(`data:application/octet-stream;base64,`)}var H$1;if(H$1=`data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByANayIHIA5B/////wdzIhhKDQcgAARAIAAgDSAHECYLIAcNBiAIIAE2AkwgAUEBaiEHQX8hEgJAIAEsAAEiChBXRQ0AIAEtAAJBJEcNACABQQNqIQcgCkEwayESQQEhFQsgCCAHNgJMQQAhDAJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDHIhDCAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEiARBXRQ0AIAotAAJBJEcNACABQQJ0IARqQcABa0EKNgIAIApBA2ohCUEBIRUgCiwAAUEDdCADakGAA2soAgAMAQsgFQ0GIApBAWohCSAARQRAIAggCTYCTEEAIRVBACETDAMLIAIgAigCACIBQQRqNgIAQQAhFSABKAIACyETIAggCTYCTCATQQBODQFBACATayETIAxBgMAAciEMDAELIAhBzABqEIkBIhNBAEgNCCAIKAJMIQkLQQAhB0F/IQsCfyAJLQAAQS5HBEAgCSEBQQAMAQsgCS0AAUEqRgRAAn8CQCAJLAACIgEQV0UNACAJLQADQSRHDQAgAUECdCAEakHAAWtBCjYCACAJQQRqIQEgCSwAAkEDdCADakGAA2soAgAMAQsgFQ0GIAlBAmohAUEAIABFDQAaIAIgAigCACIKQQRqNgIAIAooAgALIQsgCCABNgJMIAtBf3NBH3YMAQsgCCAJQQFqNgJMIAhBzABqEIkBIQsgCCgCTCEBQQELIQ8DQCAHIRFBHCEKIAEiECwAACIHQfsAa0FGSQ0JIBBBAWohASAHIBFBOmxqQf8qai0AACIHQQFrQQhJDQALIAggATYCTAJAAkAgB0EbRwRAIAdFDQsgEkEATgRAIAQgEkECdGogBzYCACAIIAMgEkEDdGopAwA3A0AMAgsgAEUNCCAIQUBrIAcgAiAGEIcBDAILIBJBAE4NCgtBACEHIABFDQcLIAxB//97cSIJIAwgDEGAwABxGyEMQQAhEkGPCSEWIBQhCgJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAkACQAJAIBAsAAAiB0FfcSAHIAdBD3FBA0YbIAcgERsiB0HYAGsOIQQUFBQUFBQUFA4UDwYODg4UBhQUFBQCBQMUFAkUARQUBAALAkAgB0HBAGsOBw4UCxQODg4ACyAHQdMARg0JDBMLIAgpA0AhGUGPCQwFC0EAIQcCQAJAAkACQAJAAkACQCARQf8BcQ4IAAECAwQaBQYaCyAIKAJAIA42AgAMGQsgCCgCQCAONgIADBgLIAgoAkAgDqw3AwAMFwsgCCgCQCAOOwEADBYLIAgoAkAgDjoAAAwVCyAIKAJAIA42AgAMFAsgCCgCQCAOrDcDAAwTC0EIIAsgC0EITRshCyAMQQhyIQxB+AAhBwsgFCENIAgpA0AiGVBFBEAgB0EgcSEQA0AgDUEBayINIBmnQQ9xQZAvai0AACAQcjoAACAZQg9WIQkgGUIEiCEZIAkNAAsLIAxBCHFFIAgpA0BQcg0DIAdBBHZBjwlqIRZBAiESDAMLIBQhByAIKQNAIhlQRQRAA0AgB0EBayIHIBmnQQdxQTByOgAAIBlCB1YhDSAZQgOIIRkgDQ0ACwsgByENIAxBCHFFDQIgCyAUIA1rIgdBAWogByALSBshCwwCCyAIKQNAIhlCAFMEQCAIQgAgGX0iGTcDQEEBIRJBjwkMAQsgDEGAEHEEQEEBIRJBkAkMAQtBkQlBjwkgDEEBcSISGwshFiAZIBQQRyENCyAPQQAgC0EASBsNDiAMQf//e3EgDCAPGyEMIAgpA0AiGUIAUiALckUEQCAUIQ1BACELDAwLIAsgGVAgFCANa2oiByAHIAtIGyELDAsLQQAhDAJ/Qf////8HIAsgC0H/////B08bIgoiEUEARyEQAkACfwJAAkAgCCgCQCIHQY4lIAcbIg0iD0EDcUUgEUVyDQADQCAPLQAAIgxFDQIgEUEBayIRQQBHIRAgD0EBaiIPQQNxRQ0BIBENAAsLIBBFDQICQCAPLQAARSARQQRJckUEQANAIA8oAgAiB0F/cyAHQYGChAhrcUGAgYKEeHENAiAPQQRqIQ8gEUEEayIRQQNLDQALCyARRQ0DC0EADAELQQELIRADQCAQRQRAIA8tAAAhDEEBIRAMAQsgDyAMRQ0CGiAPQQFqIQ8gEUEBayIRRQ0BQQAhEAwACwALQQALIgcgDWsgCiAHGyIHIA1qIQogC0EATgRAIAkhDCAHIQsMCwsgCSEMIAchCyAKLQAADQ0MCgsgCwRAIAgoAkAMAgtBACEHIABBICATQQAgDBApDAILIAhBADYCDCAIIAgpA0A+AgggCCAIQQhqIgc2AkBBfyELIAcLIQlBACEHAkADQCAJKAIAIg1FDQEgCEEEaiANEIYBIgpBAEgiDSAKIAsgB2tLckUEQCAJQQRqIQkgCyAHIApqIgdLDQEMAgsLIA0NDQtBPSEKIAdBAEgNCyAAQSAgEyAHIAwQKSAHRQRAQQAhBwwBC0EAIQogCCgCQCEJA0AgCSgCACINRQ0BIAhBBGogDRCGASINIApqIgogB0sNASAAIAhBBGogDRAmIAlBBGohCSAHIApLDQALCyAAQSAgEyAHIAxBgMAAcxApIBMgByAHIBNIGyEHDAgLIA9BACALQQBIGw0IQT0hCiAAIAgrA0AgEyALIAwgByAFERwAIgdBAE4NBwwJCyAIIAgpA0A8ADdBASELIBchDSAJIQwMBAsgBy0AASEJIAdBAWohBwwACwALIAANByAVRQ0CQQEhBwNAIAQgB0ECdGooAgAiAARAIAMgB0EDdGogACACIAYQhwFBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIA1rIhAgCyAQShsiCSASQf////8Hc0oNAkE9IQogEyAJIBJqIgsgCyATSBsiByAYSg0DIABBICAHIAsgDBApIAAgFiASECYgAEEwIAcgCyAMQYCABHMQKSAAQTAgCSAQQQAQKSAAIA0gEBAmIABBICAHIAsgDEGAwABzECkMAQsLQQAhDgwDC0E9IQoLQfw7IAo2AgALQX8hDgsgCEHQAGokACAOC9kCAQR/IwBB0AFrIgUkACAFIAI2AswBIAVBoAFqIgJBAEEoECoaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEIoBQQBIBEBBfyEEDAELQQEgBiAAKAJMQQBOGyEGIAAoAgAhByAAKAJIQQBMBEAgACAHQV9xNgIACwJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQggACAFNgIsDAELIAAoAhANAQtBfyAAEJ0BDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIoBCyECIAgEQCAAQQBBACAAKAIkEQYAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQLfwIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQjAEhACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwsVACAARQRAQQAPC0H8OyAANgIAQX8LzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBxABqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC9EDAEHUO0GoHBAcQdU7QYoWQQFBAUEAEBtB1jtB/RJBAUGAf0H/ABAEQdc7QfYSQQFBgH9B/wAQBEHYO0H0EkEBQQBB/wEQBEHZO0GUCkECQYCAfkH//wEQBEHaO0GLCkECQQBB//8DEARB2ztBsQpBBEGAgICAeEH/////BxAEQdw7QagKQQRBAEF/EARB3TtB+BhBBEGAgICAeEH/////BxAEQd47Qe8YQQRBAEF/EARB3ztBjxBCgICAgICAgICAf0L///////////8AEIQBQeA7QY4QQgBCfxCEAUHhO0GIEEEEEA1B4jtB9BtBCBANQeM7QaQZEA5B5DtBmSIQDkHlO0EEQZcZEAhB5jtBAkGwGRAIQec7QQRBvxkQCEHoO0GPFhAaQek7QQBB1CEQAUHqO0EAQboiEAFB6ztBAUHyIRABQew7QQJB5B4QAUHtO0EDQYMfEAFB7jtBBEGrHxABQe87QQVByB8QAUHwO0EEQd8iEAFB8TtBBUH9IhABQeo7QQBBriAQAUHrO0EBQY0gEAFB7DtBAkHwIBABQe07QQNBziAQAUHuO0EEQbMhEAFB7ztBBUGRIRABQfI7QQZB7h8QAUHzO0EHQaQjEAELJQAgAEH0JjYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAsDAAALJQAgAEHsJzYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEGjOyAAQeI7QfooQcEBIAJB4jtB/ihBwgEgAxAHCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRBQALOQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQAgASACIAMgBEEBcQR/IAEoAgAgAGooAgAFIAALEQMACwkAIAEgABEAAAsHACAAEQ4ACzUBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAIAEgAkEBcQR/IAEoAgAgAGooAgAFIAALEQAACzABAX8jAEEQayICJAAgAiABNgIIIAJBCGogABECACEAIAIoAggQBiACQRBqJAAgAAsMACABIAAoAgARAAALCQAgAEEBOgAEC9coAQJ/QaA7QaE7QaI7QQBBjCZBB0GPJkEAQY8mQQBB2RZBkSZBCBAFQQgQHiIAQoiAgIAQNwMAQaA7QZcbQQZBoCZBuCZBCSAAQQEQAEGkO0GlO0GmO0GgO0GMJkEKQYwmQQtBjCZBDEG4EUGRJkENEAVBBBAeIgBBDjYCAEGkO0HoFEECQcAmQcgmQQ8gAEEAEABBoDtBowxBAkHMJkHUJkEQQREQA0GgO0GAHEEDQaQnQbAnQRJBExADQbg7Qbk7Qbo7QQBBjCZBFEGPJkEAQY8mQQBB6RZBkSZBFRAFQQgQHiIAQoiAgIAQNwMAQbg7QegcQQJBuCdByCZBFiAAQQEQAEG7O0G8O0G9O0G4O0GMJkEXQYwmQRhBjCZBGUHPEUGRJkEaEAVBBBAeIgBBGzYCAEG7O0HoFEECQcAnQcgmQRwgAEEAEABBuDtBowxBAkHIJ0HUJkEdQR4QA0G4O0GAHEEDQaQnQbAnQRJBHxADQb47Qb87QcA7QQBBjCZBIEGPJkEAQY8mQQBB2hpBkSZBIRAFQb47QQFB+CdBjCZBIkEjEA9BvjtBkBtBAUH4J0GMJkEiQSMQA0G+O0HpCEECQfwnQcgmQSRBJRADQQgQHiIAQQA2AgQgAEEmNgIAQb47Qa0cQQRBkChBoChBJyAAQQAQAEEIEB4iAEEANgIEIABBKDYCAEG+O0GkEUEDQagoQbQoQSkgAEEAEABBCBAeIgBBADYCBCAAQSo2AgBBvjtByB1BA0G8KEHIKEErIABBABAAQQgQHiIAQQA2AgQgAEEsNgIAQb47QaYQQQNB0ChByChBLSAAQQAQAEEIEB4iAEEANgIEIABBLjYCAEG+O0HLHEEDQdwoQbAnQS8gAEEAEABBCBAeIgBBADYCBCAAQTA2AgBBvjtB0h1BAkHoKEHUJkExIABBABAAQQgQHiIAQQA2AgQgAEEyNgIAQb47QZcQQQJB8ChB1CZBMyAAQQAQAEHBO0GECkH4KEE0QZEmQTUQCkHiD0EAEEhB6g5BCBBIQYITQRAQSEHxFUEYEEhBgxdBIBBIQfAOQSgQSEHBOxAJQaM7Qf8aQfgoQTZBkSZBNxAKQYMXQQAQkwFB8A5BCBCTAUGjOxAJQcI7QYobQfgoQThBkSZBORAKQQQQHiIAQQg2AgBBBBAeIgFBCDYCAEHCO0GEG0HiO0H6KEE6IABB4jtB/ihBOyABEAdBBBAeIgBBADYCAEEEEB4iAUEANgIAQcI7QeUOQds7QdQmQTwgAEHbO0HIKEE9IAEQB0HCOxAJQcM7QcQ7QcU7QQBBjCZBPkGPJkEAQY8mQQBB+xtBkSZBPxAFQcM7QQFBhClBjCZBwABBwQAQD0HDO0HXDkEBQYQpQYwmQcAAQcEAEANBwztB0BpBAkGIKUHUJkHCAEHDABADQcM7QekIQQJBkClByCZBxABBxQAQA0EIEB4iAEEANgIEIABBxgA2AgBBwztB9w9BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABByAA2AgBBwztB6htBA0GYKUHIKEHJACAAQQAQAEEIEB4iAEEANgIEIABBygA2AgBBwztBnxtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABBzAA2AgBBwztB0BRBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzgA2AgBBwztBiA1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzwA2AgBBwztB3RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0AA2AgBBwztB+QtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0QA2AgBBwztBuBBBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0gA2AgBBwztB5RpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0wA2AgBBwztB/BRBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1AA2AgBBwztBlRNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1QA2AgBBwztBtQpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1gA2AgBBwztBuBVBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB1wA2AgBBwztBmw1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB2AA2AgBBwztB7RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2QA2AgBBwztBxAlBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2gA2AgBBwztB8QhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2wA2AgBBwztBhwlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3QA2AgBBwztB1BBBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3gA2AgBBwztB5gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3wA2AgBBwztBzBNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB4AA2AgBBwztBrAlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4QA2AgBBwztBnxZBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4gA2AgBBwztBoRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4wA2AgBBwztBvw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5AA2AgBBwztB+xNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB5QA2AgBBwztBkQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5gA2AgBBwztBwQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5wA2AgBBwztBvhNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB6AA2AgBBwztBsxdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6QA2AgBBwztBzw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6gA2AgBBwztBpQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6wA2AgBBwztB0gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7AA2AgBBwztBiRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7QA2AgBBwztBrA1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7gA2AgBBwztB9w5BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7wA2AgBBwztBrQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8AA2AgBBwztB/RhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB8QA2AgBBwztBshRBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8gA2AgBBwztBlBJBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB8wA2AgBBwztBzhlBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9AA2AgBBwztB4g1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9QA2AgBBwztBrRNBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9gA2AgBBwztB+gxBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9wA2AgBBwztBnhVBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB+AA2AgBBwztBrxtBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB+gA2AgBBwztB3BRBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABB/AA2AgBBwztBiQxBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/QA2AgBBwztBxhBBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/gA2AgBBwztB8hpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/wA2AgBBwztBjRVBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgAE2AgBBwztBoRNBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgQE2AgBBwztBxwpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBggE2AgBBwztBwhVBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBgwE2AgBBwztB4RBBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBhQE2AgBBwztBuAlBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBhwE2AgBBwztBrRZBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBiAE2AgBBwztBqhdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiQE2AgBBwztBmw9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBigE2AgBBwztBvxdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiwE2AgBBwztBsg9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjAE2AgBBwztBlRdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjQE2AgBBwztBhA9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjgE2AgBBwztBihlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBjwE2AgBBwztBwRRBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBkAE2AgBBwztBnhJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBkgE2AgBBwztB0AlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBkwE2AgBBwztB/AhBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBlAE2AgBBwztB2RlBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBlQE2AgBBwztBtBNBA0GMKkGYKkGWASAAQQAQAEEIEB4iAEEANgIEIABBlwE2AgBBwztBhxxBBEGgKkGgKEGYASAAQQAQAEEIEB4iAEEANgIEIABBmQE2AgBBwztBnBxBA0GwKkHIKEGaASAAQQAQAEEIEB4iAEEANgIEIABBmwE2AgBBwztBmgpBAkG8KkHUJkGcASAAQQAQAEEIEB4iAEEANgIEIABBnQE2AgBBwztBmQxBAkHEKkHUJkGeASAAQQAQAEEIEB4iAEEANgIEIABBnwE2AgBBwztBkxxBA0HMKkGwJ0GgASAAQQAQAEEIEB4iAEEANgIEIABBoQE2AgBBwztBuxZBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBowE2AgBBwztBvxtBAkHkKkHUJkGkASAAQQAQAEEIEB4iAEEANgIEIABBpQE2AgBBwztB0xtBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBpgE2AgBBwztBqB1BA0HsKkHIKEGnASAAQQAQAEEIEB4iAEEANgIEIABBqAE2AgBBwztBph1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBqQE2AgBBwztBuR1BA0H4KkHIKEGqASAAQQAQAEEIEB4iAEEANgIEIABBqwE2AgBBwztBtx1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrAE2AgBBwztB3whBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrQE2AgBBwztB1whBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBrwE2AgBBwztB3hVBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBsAE2AgBBwztB3AlBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBsQE2AgBBwztB6QlBBUGQK0GkK0GyASAAQQAQAEEIEB4iAEEANgIEIABBswE2AgBBwztB5w9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtAE2AgBBwztB0Q9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtQE2AgBBwztBhhNBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtgE2AgBBwztB+BVBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtwE2AgBBwztByxdBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuAE2AgBBwztBvw9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuQE2AgBBwztB+QlBAkGsK0HUJkG6ASAAQQAQAEEIEB4iAEEANgIEIABBuwE2AgBBwztBzBVBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvAE2AgBBwztBqBJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvQE2AgBBwztB5BlBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvgE2AgBBwztBqxVBAkHUKUHUJkH5ACAAQQAQAAtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAtHAAJAIAFBA00EfyAAIAFBAnRqQQRqBSABQQRrIgEgACgCGCIAKAIEIAAoAgAiAGtBAnVPDQEgACABQQJ0agsoAgAPCxACAAs4AQF/IAFBAEgEQBACAAsgAUEBa0EFdkEBaiIBQQJ0EB4hAiAAIAE2AgggAEEANgIEIAAgAjYCAAvSBQEJfyAAIAEvAQA7AQAgACABKQIENwIEIAAgASkCDDcCDCAAIAEoAhQ2AhQCQAJAIAEoAhgiA0UNAEEYEB4iBUEANgIIIAVCADcCACADKAIEIgEgAygCACICRwRAIAEgAmsiAkEASA0CIAUgAhAeIgE2AgAgBSABIAJqNgIIIAMoAgAiAiADKAIEIgZHBEADQCABIAIoAgA2AgAgAUEEaiEBIAJBBGoiAiAGRw0ACwsgBSABNgIECyAFQgA3AgwgBUEANgIUIAMoAhAiAUUNACAFQQxqIAEQnwEgAygCDCEGIAUgBSgCECIEIAMoAhAiAkEfcWogAkFgcWoiATYCEAJAAkAgBEUEQCABQQFrIQMMAQsgAUEBayIDIARBAWtzQSBJDQELIAUoAgwgA0EFdkEAIAFBIU8bQQJ0akEANgIACyAFKAIMIARBA3ZB/P///wFxaiEBIARBH3EiA0UEQCACQQBMDQEgAkEgbSEDIAJBH2pBP08EQCABIAYgA0ECdBAzGgsgAiADQQV0ayICQQBMDQEgASADQQJ0IgNqIgEgASgCAEF/QSAgAmt2IgFBf3NxIAMgBmooAgAgAXFyNgIADAELIAJBAEwNAEF/IAN0IQhBICADayEEIAJBIE4EQCAIQX9zIQkgASgCACEHA0AgASAHIAlxIAYoAgAiByADdHI2AgAgASABKAIEIAhxIAcgBHZyIgc2AgQgBkEEaiEGIAFBBGohASACQT9LIQogAkEgayECIAoNAAsgAkEATA0BCyABIAEoAgBBfyAEIAQgAiACIARKGyIEa3YgCHFBf3NxIAYoAgBBf0EgIAJrdnEiBiADdHI2AgAgAiAEayICQQBMDQAgASADIARqQQN2Qfz///8BcWoiASABKAIAQX9BICACa3ZBf3NxIAYgBHZyNgIACyAAKAIYIQEgACAFNgIYIAEEQCABEFsLDwsQAgALvQMBB38gAARAIwBBIGsiBiQAIAAoAgAiASgC5AMiAwRAIAMgARBvGiABQQA2AuQDCyABKALsAyICIAEoAugDIgNHBEBBASACIANrQQJ1IgIgAkEBTRshBEEAIQIDQCADIAJBAnRqKAIAQQA2AuQDIAJBAWoiAiAERw0ACwsgASADNgLsAwJAIAMgAUHwA2oiAigCAEYNACAGQQhqQQBBACACEEoiAigCBCABKALsAyABKALoAyIEayIFayIDIAQgBRAzIQUgASgC6AMhBCABIAU2AugDIAIgBDYCBCABKALsAyEFIAEgAigCCDYC7AMgAiAFNgIIIAEoAvADIQcgASACKAIMNgLwAyACIAQ2AgAgAiAHNgIMIAQgBUcEQCACIAUgBCAFa0EDakF8cWo2AggLIARFDQAgBBAnIAEoAugDIQMLIAMEQCABIAM2AuwDIAMQJwsgASgClAEhAyABQQA2ApQBIAMEQCADEFsLIAEQJyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgQhASAAQQA2AgQgAQRAIAEgASgCACgCBBEAAAsgBkEgaiQAIAAQIwsLtQEBAX8jAEEQayICJAACfyABBEAgASgCACEBQYgEEB4gARBcIAENARogAkH3GTYCACACEHIQJAALQZQ7LQAARQRAQfg6QQM2AgBBiDtCgICAgICAgMA/NwIAQYA7QgA3AgBBlDtBAToAAEH8OkH8Oi0AAEH+AXE6AABB9DpBADYCAEGQO0EANgIAC0GIBBAeQfQ6EFwLIQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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`,!ua(H$1)){var va=H$1;H$1=h$3.locateFile?h$3.locateFile(va,q$3):q$3+va}function wa(){var a$3=H$1;try{if(a$3==H$1&&w$3)return new Uint8Array(w$3);if(ua(a$3))try{var b$2=xa(a$3.slice(37)),c$3=new Uint8Array(b$2.length);for(a$3=0;a$3<b$2.length;++a$3)c$3[a$3]=b$2.charCodeAt(a$3);var d$3=c$3}catch(f){throw Error(`Converting base64 string to bytes failed.`)}else d$3=void 0;var e$1=d$3;if(e$1)return e$1;throw`both async and sync fetching of the wasm failed`}catch(f){x$1(f)}}function ya(){return w$3||typeof fetch!=`function`?Promise.resolve().then(function(){return wa()}):fetch(H$1,{credentials:`same-origin`}).then(function(a$3){if(!a$3.ok)throw`failed to load wasm binary file at '`+H$1+`'`;return a$3.arrayBuffer()}).catch(function(){return wa()})}function za(a$3){for(;0<a$3.length;)a$3.shift()(h$3)}function Aa(a$3){if(a$3===void 0)return`_unknown`;a$3=a$3.replace(/[^a-zA-Z0-9_]/g,`$`);var b$2=a$3.charCodeAt(0);return 48<=b$2&&57>=b$2?`_`+a$3:a$3}function Ba(a$3,b$2){return a$3=Aa(a$3),function(){return b$2.apply(this,arguments)}}var J$2=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ca=[];function Da(a$3){var b$2=Error,c$3=Ba(a$3,function(d$3){this.name=a$3,this.message=d$3,d$3=Error(d$3).stack,d$3!==void 0&&(this.stack=this.toString()+`
|
|
1
|
+
import{__commonJSMin,__esmMin,__export as __export$2,__require as __require$2,__toCommonJS as __toCommonJS$1,__toDynamicImportESM,__toESM as __toESM$1}from"./chunk-ByIbJXPc.js";import{import_websocket}from"./wrapper-B4vDwpOq.js";import{findNearestEntry,require_ignore,require_main as require_main$1,resolveConfig}from"./ignore-BA3hDG56.js";import{Client as Client$2,getAuthToken,source_default}from"./auth-xjF_htDn.js";import{open_default}from"./open-DfjrUP4O.js";import{DiagConsoleLogger,DiagLogLevel,SpanStatusCode,ValueType,diag,esm_exports as esm_exports$12,init_esm as init_esm$11,metrics,trace}from"./esm-DhNyK8uM.js";import{require_undici as require_undici$1}from"./undici-BcfpJJ8r.js";import{Emitter as Emitter$1,Multiplexer,Server}from"./events-NgMztwfM.js";import{createRequire}from"node:module";import{errorMonitor}from"events";import*as https$7 from"https";import*as http$2 from"http";import http,{createServer}from"http";import crypto$1 from"crypto";import{Readable}from"stream";import*as zlib from"zlib";import EventEmitter,{EventEmitter as EventEmitter$1,addAbortListener,on,once,setMaxListeners}from"node:events";import{ChildProcess,exec,execFile,execSync,spawn,spawnSync}from"node:child_process";import*as path$8 from"node:path";import path,{basename,dirname,join,posix,win32}from"node:path";import*as fs$12 from"node:fs";import fs,{appendFileSync,createReadStream,createWriteStream,promises,readFileSync,statSync,writeFileSync}from"node:fs";import*as process$3 from"node:process";import y,{cwd,env,execArgv,execPath,hrtime,platform}from"node:process";import path$1,{basename as basename$1,dirname as dirname$1,join as join$1,normalize,relative as relative$1,resolve,sep}from"path";import*as nativeFs from"fs";import fs$1,{createWriteStream as createWriteStream$1,existsSync as existsSync$1,lstatSync,mkdirSync,readFileSync as readFileSync$1,readdir,readdirSync,readlinkSync,realpathSync,watch,writeFile,writeFileSync as writeFileSync$1}from"fs";import{createRequire as createRequire$1}from"module";import*as fs$45 from"fs/promises";import{readFile,writeFile as writeFile$1}from"fs/promises";import{ZodFirstPartyTypeKind,ZodType,z}from"zod";import z6,{z as z$2}from"zod/v4";import"zod/v3";import*as fs$11 from"node:fs/promises";import fs$2,{lstat,readdir as readdir$2,readlink,realpath}from"node:fs/promises";import os,{tmpdir}from"os";import*as os$5 from"node:os";import os$1,{EOL,constants as constants$1,platform as platform$1}from"node:os";import tty from"node:tty";import{TextDecoder as TextDecoder$1,aborted,callbackify,debuglog,inspect,promisify,stripVTControlCharacters}from"node:util";import*as readline from"node:readline";import O from"node:readline";import Stream,{Duplex,PassThrough,Readable as Readable$1,Stream as Stream$1,Transform,Writable,getDefaultHighWaterMark}from"node:stream";import{Buffer as Buffer$1}from"node:buffer";import url,{URL as URL$1,fileURLToPath,pathToFileURL}from"node:url";import{spawn as spawn$1}from"child_process";import{inspect as inspect$1,types}from"util";import*as net$2 from"node:net";import net from"node:net";import*as http$11 from"node:http";import http$1,{ServerResponse}from"node:http";import{checkServerIdentity}from"node:tls";import*as crypto$3 from"node:crypto";import crypto$2,{createHash,randomUUID as randomUUID$1}from"node:crypto";import{AsyncLocalStorage}from"node:async_hooks";import{ADDRCONFIG,ALL,V4MAPPED,lookup,promises as promises$1}from"node:dns";import{convertToModelMessages,createUIMessageStream,getToolName,getToolOrDynamicToolName,isToolOrDynamicToolUIPart,isToolUIPart,readUIMessageStream,streamText,tool}from"ai";import React,{PureComponent,createContext,forwardRef,memo,useCallback,useContext,useEffect,useLayoutEffect,useMemo,useReducer,useRef,useState}from"react";import{finished,pipeline}from"node:stream/promises";import https from"node:https";import{Fragment,jsx,jsxs}from"react/jsx-runtime";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";function debounce$1(func,debounceMs,{signal,edges}={}){let pendingThis,pendingArgs=null,leading=edges!=null&&edges.includes(`leading`),trailing=edges==null||edges.includes(`trailing`),invoke=()=>{pendingArgs!==null&&(func.apply(pendingThis,pendingArgs),pendingThis=void 0,pendingArgs=null)},onTimerEnd=()=>{trailing&&invoke(),cancel()},timeoutId=null,schedule=()=>{timeoutId!=null&&clearTimeout(timeoutId),timeoutId=setTimeout(()=>{timeoutId=null,onTimerEnd()},debounceMs)},cancelTimer=()=>{timeoutId!==null&&(clearTimeout(timeoutId),timeoutId=null)},cancel=()=>{cancelTimer(),pendingThis=void 0,pendingArgs=null},flush=()=>{invoke()},debounced=function(...args){if(signal?.aborted)return;pendingThis=this,pendingArgs=args;let isFirstCall=timeoutId==null;schedule(),leading&&isFirstCall&&invoke()};return debounced.schedule=schedule,debounced.cancel=cancel,debounced.flush=flush,signal?.addEventListener(`abort`,cancel,{once:!0}),debounced}function debounce(func,debounceMs=0,options$1={}){typeof options$1!=`object`&&(options$1={});let{leading=!1,trailing=!0,maxWait}=options$1,edges=[,,];leading&&(edges[0]=`leading`),trailing&&(edges[1]=`trailing`);let result,pendingAt=null,_debounced=debounce$1(function(...args){result=func.apply(this,args),pendingAt=null},debounceMs,{edges}),debounced=function(...args){return maxWait!=null&&(pendingAt===null&&(pendingAt=Date.now()),Date.now()-pendingAt>=maxWait)?(result=func.apply(this,args),pendingAt=Date.now(),_debounced.cancel(),_debounced.schedule(),result):(_debounced.apply(this,args),result)},flush=()=>(_debounced.flush(),result);return debounced.cancel=_debounced.cancel,debounced.flush=flush,debounced}function throttle(func,throttleMs=0,options$1={}){let{leading=!0,trailing=!0}=options$1;return debounce(func,throttleMs,{leading,maxWait:throttleMs,trailing})}const isBrowser=globalThis.window?.document!==void 0,isNode$1=globalThis.process?.versions?.node!==void 0,isBun=globalThis.process?.versions?.bun!==void 0,isDeno=globalThis.Deno?.version?.deno!==void 0,isElectron$1=globalThis.process?.versions?.electron!==void 0,isJsDom=globalThis.navigator?.userAgent?.includes(`jsdom`)===!0,isWebWorker=typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope,isDedicatedWorker=typeof DedicatedWorkerGlobalScope<`u`&&globalThis instanceof DedicatedWorkerGlobalScope,isSharedWorker=typeof SharedWorkerGlobalScope<`u`&&globalThis instanceof SharedWorkerGlobalScope,isServiceWorker=typeof ServiceWorkerGlobalScope<`u`&&globalThis instanceof ServiceWorkerGlobalScope,platform$3=globalThis.navigator?.userAgentData?.platform,isMacOs=platform$3===`macOS`||globalThis.navigator?.platform===`MacIntel`||globalThis.navigator?.userAgent?.includes(` Mac `)===!0||globalThis.process?.platform===`darwin`,isWindows$3=platform$3===`Windows`||globalThis.navigator?.platform===`Win32`||globalThis.process?.platform===`win32`,isLinux=platform$3===`Linux`||globalThis.navigator?.platform?.startsWith(`Linux`)===!0||globalThis.navigator?.userAgent?.includes(` Linux `)===!0||globalThis.process?.platform===`linux`,isIos=platform$3===`iOS`||globalThis.navigator?.platform===`MacIntel`&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),isAndroid=platform$3===`Android`||globalThis.navigator?.platform===`Android`||globalThis.navigator?.userAgent?.includes(` Android `)===!0||globalThis.process?.platform===`android`,ESC$1=`\x1B[`,OSC=`\x1B]`,BEL=`\x07`,SEP$1=`;`,isTerminalApp=!isBrowser&&y.env.TERM_PROGRAM===`Apple_Terminal`,isWindows$2=!isBrowser&&y.platform===`win32`,cwdFunction=isBrowser?()=>{throw Error("`process.cwd()` only works in Node.js, not the browser.")}:y.cwd,cursorUp=(count$1=1)=>`\x1B[`+count$1+`A`,cursorLeft=`\x1B[G`,cursorSavePosition=isTerminalApp?`\x1B7`:`\x1B[s`,cursorRestorePosition=isTerminalApp?`\x1B8`:`\x1B[u`,cursorGetPosition=`\x1B[6n`,cursorNextLine=`\x1B[E`,cursorPrevLine=`\x1B[F`,cursorHide=`\x1B[?25l`,cursorShow=`\x1B[?25h`,eraseLines=count$1=>{let clear$1=``;for(let i$4=0;i$4<count$1;i$4++)clear$1+=eraseLine+(i$4<count$1-1?cursorUp():``);return count$1&&(clear$1+=`\x1B[G`),clear$1},eraseEndLine=`\x1B[K`,eraseStartLine=`\x1B[1K`,eraseLine=`\x1B[2K`,eraseDown=`\x1B[J`,eraseUp=`\x1B[1J`,eraseScreen=`\x1B[2J`,scrollUp=`\x1B[S`,scrollDown=`\x1B[T`,clearTerminal=isWindows$2?`${eraseScreen}[0f`:`${eraseScreen}[3J[H`,enterAlternativeScreen=`\x1B[?1049h`,exitAlternativeScreen=`\x1B[?1049l`,link$3=(text,url$5)=>[`\x1B]`,`8`,`;`,`;`,url$5,`\x07`,text,`\x1B]`,`8`,`;`,`;`,`\x07`].join(``),check$1=key=>key in env&&env[key]!==`0`&&env[key]!==`false`,isInCi=check$1(`CI`)||check$1(`CONTINUOUS_INTEGRATION`);var is_in_ci_default=isInCi;const getAllProperties=object=>{let properties$1=new Set;do for(let key of Reflect.ownKeys(object))properties$1.add([object,key]);while((object=Reflect.getPrototypeOf(object))&&object!==Object.prototype);return properties$1};function autoBind(self$1,{include,exclude}={}){let filter$4=key=>{let match$1=pattern=>typeof pattern==`string`?key===pattern:pattern.test(key);return include?include.some(match$1):exclude?!exclude.some(match$1):!0};for(let[object,key]of getAllProperties(self$1.constructor.prototype)){if(key===`constructor`||!filter$4(key))continue;let descriptor$1=Reflect.getOwnPropertyDescriptor(object,key);descriptor$1&&typeof descriptor$1.value==`function`&&(self$1[key]=self$1[key].bind(self$1))}return self$1}var require_signals=__commonJSMin(((exports,module)=>{module.exports=[`SIGABRT`,`SIGALRM`,`SIGHUP`,`SIGINT`,`SIGTERM`],process.platform!==`win32`&&module.exports.push(`SIGVTALRM`,`SIGXCPU`,`SIGXFSZ`,`SIGUSR2`,`SIGTRAP`,`SIGSYS`,`SIGQUIT`,`SIGIOT`),process.platform===`linux`&&module.exports.push(`SIGIO`,`SIGPOLL`,`SIGPWR`,`SIGSTKFLT`,`SIGUNUSED`)})),require_signal_exit=__commonJSMin(((exports,module)=>{var process$11=global.process;let processOk$1=function(process$12){return process$12&&typeof process$12==`object`&&typeof process$12.removeListener==`function`&&typeof process$12.emit==`function`&&typeof process$12.reallyExit==`function`&&typeof process$12.listeners==`function`&&typeof process$12.kill==`function`&&typeof process$12.pid==`number`&&typeof process$12.on==`function`};if(!processOk$1(process$11))module.exports=function(){return function(){}};else{var assert$2=__require$2(`assert`),signals$1=require_signals(),isWin$2=/^win/i.test(process$11.platform),EE=__require$2(`events`);typeof EE!=`function`&&(EE=EE.EventEmitter);var emitter;process$11.__signal_exit_emitter__?emitter=process$11.__signal_exit_emitter__:(emitter=process$11.__signal_exit_emitter__=new EE,emitter.count=0,emitter.emitted={}),emitter.infinite||(emitter.setMaxListeners(1/0),emitter.infinite=!0),module.exports=function(cb,opts){if(!processOk$1(global.process))return function(){};assert$2.equal(typeof cb,`function`,`a callback must be provided for exit handler`),loaded===!1&&load$14();var ev=`exit`;opts&&opts.alwaysLast&&(ev=`afterexit`);var remove$4=function(){emitter.removeListener(ev,cb),emitter.listeners(`exit`).length===0&&emitter.listeners(`afterexit`).length===0&&unload$1()};return emitter.on(ev,cb),remove$4};var unload$1=function(){!loaded||!processOk$1(global.process)||(loaded=!1,signals$1.forEach(function(sig){try{process$11.removeListener(sig,sigListeners[sig])}catch(er){}}),process$11.emit=originalProcessEmit,process$11.reallyExit=originalProcessReallyExit,--emitter.count)};module.exports.unload=unload$1;var emit=function(event,code$1,signal){emitter.emitted[event]||(emitter.emitted[event]=!0,emitter.emit(event,code$1,signal))},sigListeners={};signals$1.forEach(function(sig){sigListeners[sig]=function(){if(processOk$1(global.process)){var listeners=process$11.listeners(sig);listeners.length===emitter.count&&(unload$1(),emit(`exit`,null,sig),emit(`afterexit`,null,sig),isWin$2&&sig===`SIGHUP`&&(sig=`SIGINT`),process$11.kill(process$11.pid,sig))}}}),module.exports.signals=function(){return signals$1};var loaded=!1,load$14=function(){loaded||!processOk$1(global.process)||(loaded=!0,emitter.count+=1,signals$1=signals$1.filter(function(sig){try{return process$11.on(sig,sigListeners[sig]),!0}catch(er){return!1}}),process$11.emit=processEmit,process$11.reallyExit=processReallyExit)};module.exports.load=load$14;var originalProcessReallyExit=process$11.reallyExit,processReallyExit=function(code$1){processOk$1(global.process)&&(process$11.exitCode=code$1||0,emit(`exit`,process$11.exitCode,null),emit(`afterexit`,process$11.exitCode,null),originalProcessReallyExit.call(process$11,process$11.exitCode))},originalProcessEmit=process$11.emit,processEmit=function(ev,arg){if(ev===`exit`&&processOk$1(global.process)){arg!==void 0&&(process$11.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit(`exit`,process$11.exitCode,null),emit(`afterexit`,process$11.exitCode,null),ret}else return originalProcessEmit.apply(this,arguments)}}})),import_signal_exit$1=__toESM$1(require_signal_exit(),1);const consoleMethods=[`assert`,`count`,`countReset`,`debug`,`dir`,`dirxml`,`error`,`group`,`groupCollapsed`,`groupEnd`,`info`,`log`,`table`,`time`,`timeEnd`,`timeLog`,`trace`,`warn`];let originalMethods={};const patchConsole=callback$1=>{let stdout$1=new PassThrough,stderr=new PassThrough;stdout$1.write=data$2=>{callback$1(`stdout`,data$2)},stderr.write=data$2=>{callback$1(`stderr`,data$2)};let internalConsole=new console.Console(stdout$1,stderr);for(let method of consoleMethods)originalMethods[method]=console[method],console[method]=internalConsole[method];return()=>{for(let method of consoleMethods)console[method]=originalMethods[method];originalMethods={}}};var dist_default$1=patchConsole,require_react_reconciler_constants_production=__commonJSMin((exports=>{exports.ConcurrentRoot=1,exports.ContinuousEventPriority=8,exports.DefaultEventPriority=32,exports.DiscreteEventPriority=2,exports.IdleEventPriority=268435456,exports.LegacyRoot=0,exports.NoEventPriority=0})),require_react_reconciler_constants_development=__commonJSMin((exports=>{process.env.NODE_ENV!==`production`&&(exports.ConcurrentRoot=1,exports.ContinuousEventPriority=8,exports.DefaultEventPriority=32,exports.DiscreteEventPriority=2,exports.IdleEventPriority=268435456,exports.LegacyRoot=0,exports.NoEventPriority=0)})),require_constants$23=__commonJSMin(((exports,module)=>{process.env.NODE_ENV===`production`?module.exports=require_react_reconciler_constants_production():module.exports=require_react_reconciler_constants_development()})),import_constants$1=__toESM$1(require_constants$23(),1),loadYoga=(()=>{var _scriptDir=import.meta.url;return(function(loadYoga$1){loadYoga$1=loadYoga$1||{};var h$3;h$3||(h$3=loadYoga$1===void 0?{}:loadYoga$1);var aa,ca;h$3.ready=new Promise(function(a$3,b$2){aa=a$3,ca=b$2});var da=Object.assign({},h$3),q$3=``;typeof document<`u`&&document.currentScript&&(q$3=document.currentScript.src),_scriptDir&&(q$3=_scriptDir),q$3=q$3.indexOf(`blob:`)===0?``:q$3.substr(0,q$3.replace(/[?#].*/,``).lastIndexOf(`/`)+1);var ea=h$3.print||console.log.bind(console),v$1=h$3.printErr||console.warn.bind(console);Object.assign(h$3,da),da=null;var w$3;h$3.wasmBinary&&(w$3=h$3.wasmBinary),h$3.noExitRuntime,typeof WebAssembly!=`object`&&x$1(`no native wasm support detected`);var fa,ha=!1;function z$5(a$3,b$2,c$3){c$3=b$2+c$3;for(var d$3=``;!(b$2>=c$3);){var e$1=a$3[b$2++];if(!e$1)break;if(e$1&128){var f=a$3[b$2++]&63;if((e$1&224)==192)d$3+=String.fromCharCode((e$1&31)<<6|f);else{var g=a$3[b$2++]&63;e$1=(e$1&240)==224?(e$1&15)<<12|f<<6|g:(e$1&7)<<18|f<<12|g<<6|a$3[b$2++]&63,65536>e$1?d$3+=String.fromCharCode(e$1):(e$1-=65536,d$3+=String.fromCharCode(55296|e$1>>10,56320|e$1&1023))}}else d$3+=String.fromCharCode(e$1)}return d$3}var ia,ja,A,C$2,ka,D$1,E$2,la,ma;function na(){var a$3=fa.buffer;ia=a$3,h$3.HEAP8=ja=new Int8Array(a$3),h$3.HEAP16=C$2=new Int16Array(a$3),h$3.HEAP32=D$1=new Int32Array(a$3),h$3.HEAPU8=A=new Uint8Array(a$3),h$3.HEAPU16=ka=new Uint16Array(a$3),h$3.HEAPU32=E$2=new Uint32Array(a$3),h$3.HEAPF32=la=new Float32Array(a$3),h$3.HEAPF64=ma=new Float64Array(a$3)}var oa,pa=[],qa=[],ra=[];function sa(){var a$3=h$3.preRun.shift();pa.unshift(a$3)}var F$2=0,ta=null,G$1=null;function x$1(a$3){throw h$3.onAbort&&h$3.onAbort(a$3),a$3=`Aborted(`+a$3+`)`,v$1(a$3),ha=!0,a$3=new WebAssembly.RuntimeError(a$3+`. Build with -sASSERTIONS for more info.`),ca(a$3),a$3}function ua(a$3){return a$3.startsWith(`data:application/octet-stream;base64,`)}var H$1;if(H$1=`data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIAIAELBQBBpDsLaQECfyMAQRBrIgYkACABIAAoAgQiB0EBdWohASAAKAIAIQAgBiABIAIgAyAEIAUgB0EBcQR/IAEoAgAgAGooAgAFIAALERAAQRAQHiIAIAYpAwg3AwggACAGKQMANwMAIAZBEGokACAACwUAQaA7Cx0AIAAoAgAiACAALQAAQfcBcUEIQQAgARtyOgAAC6oBAgJ/AX0jAEEQayICJAAgACgCACEAIAFB/wFxIgNBBkkEQAJ/AkACQAJAIANBBGsOAgABAgsgAEHUA2ogAC0AiANBA3FBAkYNAhogAEHMA2oMAgsgAEHMA2ogAC0AiANBA3FBAkYNARogAEHUA2oMAQsgACABQf8BcUECdGpBzANqCyoCACEEIAJBEGokACAEuw8LIAJB7hA2AgAgAEEFQdglIAIQLBAkAAuqAQICfwF9IwBBEGsiAiQAIAAoAgAhACABQf8BcSIDQQZJBEACfwJAAkACQCADQQRrDgIAAQILIABBxANqIAAtAIgDQQNxQQJGDQIaIABBvANqDAILIABBvANqIAAtAIgDQQNxQQJGDQEaIABBxANqDAELIAAgAUH/AXFBAnRqQbwDagsqAgAhBCACQRBqJAAgBLsPCyACQe4QNgIAIABBBUHYJSACECwQJAALqgECAn8BfSMAQRBrIgIkACAAKAIAIQAgAUH/AXEiA0EGSQRAAn8CQAJAAkAgA0EEaw4CAAECCyAAQbQDaiAALQCIA0EDcUECRg0CGiAAQawDagwCCyAAQawDaiAALQCIA0EDcUECRg0BGiAAQbQDagwBCyAAIAFB/wFxQQJ0akGsA2oLKgIAIQQgAkEQaiQAIAS7DwsgAkHuEDYCACAAQQVB2CUgAhAsECQAC08AIAAgASgCACIBKgKcA7s5AwAgACABKgKkA7s5AwggACABKgKgA7s5AxAgACABKgKoA7s5AxggACABKgKMA7s5AyAgACABKgKQA7s5AygLDAAgACgCACoCkAO7CwwAIAAoAgAqAowDuwsMACAAKAIAKgKoA7sLDAAgACgCACoCoAO7CwwAIAAoAgAqAqQDuwsMACAAKAIAKgKcA7sL6AMCBH0FfyMAQUBqIgokACAAKAIAIQAgCkEIakEAQTgQKhpB8DpB8DooAgBBAWo2AgAgABB4IAAtABRBA3EiCCADQQEgA0H/AXEbIAgbIQkgAEEUaiEIIAG2IQQgACoC+AMhBQJ9AkACQAJAIAAtAPwDQQFrDgIBAAILIAUgBJRDCtcjPJQhBQsgBUMAAAAAYEUNACAAIAlB/wFxQQAgBCAEEDEgCEECQQEgBBAiIAhBAkEBIAQQIZKSDAELIAggCUH/AXFBACAEIAQQLSIFIAVbBEBBAiELIAggCUH/AXFBACAEIAQQLQwBCyAEIARcIQsgBAshByACtiEFIAAqAoAEIQYgACAHAn0CQAJAAkAgAC0AhARBAWsOAgEAAgsgBiAFlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgCUH/AXFBASAFIAQQMSAIQQBBASAEECIgCEEAQQEgBBAhkpIMAQsgCCAJQf8BcSIJQQEgBSAEEC0iBiAGWwRAQQIhDCAIIAlBASAFIAQQLQwBCyAFIAVcIQwgBQsgA0H/AXEgCyAMIAQgBUEBQQAgCkEIakEAQfA6KAIAED0EQCAAIAAtAIgDQQNxIAQgBRB2IABEAAAAAAAAAABEAAAAAAAAAAAQcwsgCkFAayQACw0AIAAoAgAtAABBAXELFQAgACgCACIAIAAtAABB/gFxOgAACxAAIAAoAgAtAABBBHFBAnYLegECfyMAQRBrIgEkACAAKAIAIgAoAggEQANAIAAtAAAiAkEEcUUEQCAAIAJBBHI6AAAgACgCECICBEAgACACEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyABQRBqJAAPCyABQYAINgIAIABBBUHYJSABECwQJAALLgEBfyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgBBADYCEAsXACAAKAIEKAIIIgAgACgCACgCCBEAAAsuAQF/IAAoAgghAiAAIAE2AgggAgRAIAIgAigCACgCBBEAAAsgACgCAEEFNgIQCz4BAX8gACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIAIgBBADYCCCAAIAAtAABB7wFxOgAAC0kBAX8jAEEQayIGJAAgBiABKAIEKAIEIgEgAiADIAQgBSABKAIAKAIIERAAIAAgBisDALY4AgAgACAGKwMItjgCBCAGQRBqJAALcwECfyMAQRBrIgIkACAAKAIEIQMgACABNgIEIAMEQCADIAMoAgAoAgQRAAALIAAoAgAiACgC6AMgACgC7ANHBEAgAkH5IzYCACAAQQVB2CUgAhAsECQACyAAQQQ2AgggACAALQAAQRByOgAAIAJBEGokAAs8AQF/AkAgACgCACIAKALsAyAAKALoAyIAa0ECdSABTQ0AIAAgAUECdGooAgAiAEUNACAAKAIEIQILIAILGQAgACgCACgC5AMiAEUEQEEADwsgACgCBAsXACAAKAIAIgAoAuwDIAAoAugDa0ECdQuOAwEDfyMAQdACayICJAACQCAAKAIAIgAoAuwDIAAoAugDRg0AIAEoAgAiAygC5AMhASAAIAMQb0UNACAAIAFGBEAgAkEIakEAQcQCECoaIAJBADoAGCACQgA3AxAgAkGAgID+BzYCDCACQRxqQQBBxAEQKhogAkHgAWohBCACQSBqIQEDQCABQoCAgPyLgIDAv383AhAgAUKBgICAEDcCCCABQoCAgPyLgIDAv383AgAgAUEYaiIBIARHDQALIAJCgICA/IuAgMC/fzcD8AEgAkKBgICAEDcD6AEgAkKAgID8i4CAwL9/NwPgASACQoCAgP6HgIDg/wA3AoQCIAJCgICA/oeAgOD/ADcC/AEgAiACLQD4AUH4AXE6APgBIAJBjAJqQQBBwAAQKhogA0GYAWogAkEIakHEAhArGiADQQA2AuQDCwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIAJB0AJqJAAL4AcBCH8jAEHQAGsiByQAIAAoAgAhAAJAAkAgASgCACIIKALkA0UEQCAAKAIIDQEgCC0AF0EQdEGAgDBxQYCAIEYEQCAAIAAoAuADQQFqNgLgAwsgACgC6AMiASACQQJ0aiEGAkAgACgC7AMiBCAAQfADaiIDKAIAIgVJBEAgBCAGRgRAIAYgCDYCACAAIAZBBGo2AuwDDAILIAQgBCICQQRrIgFLBEADQCACIAEoAgA2AgAgAkEEaiECIAFBBGoiASAESQ0ACwsgACACNgLsAyAGQQRqIgEgBEcEQCAEIAQgAWsiAUF8cWsgBiABEDMaCyAGIAg2AgAMAQsgBCABa0ECdUEBaiIEQYCAgIAETw0DAkAgB0EgakH/////AyAFIAFrIgFBAXUiBSAEIAQgBUkbIAFB/P///wdPGyACIAMQSiIDKAIIIgIgAygCDEcNACADKAIEIgEgAygCACIESwRAIAMgASABIARrQQJ1QQFqQX5tQQJ0IgRqIAEgAiABayIBEDMgAWoiAjYCCCADIAMoAgQgBGo2AgQMAQsgB0E4akEBIAIgBGtBAXUgAiAERhsiASABQQJ2IAMoAhAQSiIFKAIIIQQCfyADKAIIIgIgAygCBCIBRgRAIAQhAiABDAELIAQgAiABa2ohAgNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIAJHDQALIAMoAgghASADKAIECyEEIAMoAgAhCSADIAUoAgA2AgAgBSAJNgIAIAMgBSgCBDYCBCAFIAQ2AgQgAyACNgIIIAUgATYCCCADKAIMIQogAyAFKAIMNgIMIAUgCjYCDCABIARHBEAgBSABIAQgAWtBA2pBfHFqNgIICyAJRQ0AIAkQIyADKAIIIQILIAIgCDYCACADIAMoAghBBGo2AgggAyADKAIEIAYgACgC6AMiAWsiAmsgASACEDM2AgQgAygCCCAGIAAoAuwDIAZrIgQQMyEGIAAoAugDIQEgACADKAIENgLoAyADIAE2AgQgACgC7AMhAiAAIAQgBmo2AuwDIAMgAjYCCCAAKALwAyEEIAAgAygCDDYC8AMgAyABNgIAIAMgBDYCDCABIAJHBEAgAyACIAEgAmtBA2pBfHFqNgIICyABRQ0AIAEQIwsgCCAANgLkAwNAIAAtAAAiAUEEcUUEQCAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyAHQdAAaiQADwsgB0HEIzYCECAAQQVB2CUgB0EQahAsECQACyAHQckkNgIAIABBBUHYJSAHECwQJAALEAIACxAAIAAoAgAtAABBAnFBAXYLWQIBfwF9IwBBEGsiAiQAIAJBCGogACgCACIAQfwAaiAAIAFB/wFxQQF0ai8BaBAfQwAAwH8hAwJAAkAgAi0ADA4EAQAAAQALIAIqAgghAwsgAkEQaiQAIAMLTgEBfyMAQRBrIgMkACADQQhqIAEoAgAiAUH8AGogASACQf8BcUEBdGovAUQQHyADLQAMIQEgACADKgIIuzkDCCAAIAE2AgAgA0EQaiQAC14CAX8BfCMAQRBrIgIkACACQQhqIAAoAgAiAEH8AGogACABQf8BcUEBdGovAVYQH0QAAAAAAAD4fyEDAkACQCACLQAMDgQBAAABAAsgAioCCLshAwsgAkEQaiQAIAMLJAEBfUMAAMB/IAAoAgAiAEH8AGogAC8BehAgIgEgASABXBu7C0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXgQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXYQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXQQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXIQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXAQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAW4QHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0gCAX8BfQJ9IAAoAgAiAEH8AGoiASAALwEcECAiAiACXARAQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsMAQsgASAALwEcECALuws2AgF/AX0gACgCACIAQfwAaiIBIAAvARoQICICIAJcBEBEAAAAAAAAAAAPCyABIAAvARoQILsLRAEBfyMAQRBrIgIkACACQQhqIAEoAgAiAUH8AGogAS8BHhAfIAItAAwhASAAIAIqAgi7OQMIIAAgATYCACACQRBqJAALEAAgACgCAC0AF0ECdkEDcQsNACAAKAIALQAXQQNxC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEgEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALQAUQQR2QQdxCw0AIAAoAgAvABVBDnYLDQAgACgCAC0AFEEDcQsQACAAKAIALQAUQQJ2QQNxCw0AIAAoAgAvABZBD3ELEAAgACgCAC8AFUEEdkEPcQsNACAAKAIALwAVQQ9xC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEyEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALwAVQQx2QQNxCxAAIAAoAgAtABdBBHZBAXELgQECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEIgBIANBEGokAAt5AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQiAEgBEEQaiQAC3EBAX8CQCAAKAIAIgAtAAAiAkECcUEBdiABRg0AIAAgAkH9AXFBAkEAIAEbcjoAAANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC4EBAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxCOASADQRBqJAALeQIBfQJ/IwBBEGsiBCQAIAAoAgAhBSAEAn8gArYiAyADXARAQwAAwH8hA0EADAELQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgAbIQMgAEULOgAMIAQgAzgCCCAEIAQpAwg3AwAgBSABQf8BcSAEEI4BIARBEGokAAv5AQICfQR/IwBBEGsiBSQAIAAoAgAhAAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIGGyEDIAZFCyEGQQEhByAFQQhqIABB/ABqIgggACABQf8BcUEBdGpB1gBqIgEvAQAQHwJAAkAgAyAFKgIIIgRcBH8gBCAEWw0BIAMgA1wFIAcLRQ0AIAUtAAwgBkYNAQsgCCABIAMgBhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgBUEQaiQAC7UBAgN/An0CQCAAKAIAIgBB/ABqIgMgAEH6AGoiAi8BABAgIgYgAbYiBVsNACAFIAVbIgRFIAYgBlxxDQACQCAEIAVDAAAAAFsgBYtDAACAf1tyRXFFBEAgAiACLwEAQfj/A3E7AQAMAQsgAyACIAVBAxBMCwNAIAAtAAAiAkEEcQ0BIAAgAkEEcjoAACAAKAIQIgIEQCAAIAIRAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQVSACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQVSADQRBqJAALfAIDfwF9IwBBEGsiAiQAIAAoAgAhAwJ9IAG2IgUgBVwEQEEAIQBDAADAfwwBC0EAQQIgBUMAAIB/WyAFQwAAgP9bciIEGyEAQwAAwH8gBSAEGwshBSACIAA6AAwgAiAFOAIIIAIgAikDCDcDACADQQAgAhBVIAJBEGokAAt0AgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEQQAgAxBVIANBEGokAAt8AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIANBASACEFYgAkEQaiQAC3QCAX0CfyMAQRBrIgMkACAAKAIAIQQgAwJ/IAG2IgIgAlwEQEMAAMB/IQJBAAwBC0MAAMB/IAIgAkMAAIB/WyACQwAAgP9bciIAGyECIABFCzoADCADIAI4AgggAyADKQMINwMAIARBASADEFYgA0EQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQViACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQViADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBASABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQRiADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBACABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQRiADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRxqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRpqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLPQEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIAAgARBrIAFBEGokAAt6AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIAMgAhBrIAJBEGokAAtyAgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEIAMQayADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRhqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLkAEBAX8CQCAAKAIAIgBBF2otAAAiAkECdkEDcSABQf8BcUYNACAAIAAvABUgAkEQdHIiAjsAFSAAIAJB///PB3EgAUEDcUESdHJBEHY6ABcDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuNAQEBfwJAIAAoAgAiAEEXai0AACICQQNxIAFB/wFxRg0AIAAgAC8AFSACQRB0ciICOwAVIAAgAkH///MHcSABQQNxQRB0ckEQdjoAFwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC0MBAX8jAEEQayICJAAgACgCACEAIAJBAzoADCACQYCAgP4HNgIIIAIgAikDCDcDACAAIAFB/wFxIAIQZSACQRBqJAALgAECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEGUgA0EQaiQAC3gCAX0CfyMAQRBrIgQkACAAKAIAIQUgBAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIAGyEDIABFCzoADCAEIAM4AgggBCAEKQMINwMAIAUgAUH/AXEgBBBlIARBEGokAAt3AQF/AkAgACgCACIALQAUIgJBBHZBB3EgAUH/AXFGDQAgACACQY8BcSABQQR0QfAAcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuJAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSICQQ52Rg0AIABBF2ogAiAALQAXQRB0ciICQRB2OgAAIAAgAkH//wBxIAFBDnRyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLcAEBfwJAIAAoAgAiAC0AFCICQQNxIAFB/wFxRg0AIAAgAkH8AXEgAUEDcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwt2AQF/AkAgACgCACIALQAUIgJBAnZBA3EgAUH/AXFGDQAgACACQfMBcSABQQJ0QQxxcjoAFANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC48BAQF/AkAgACgCACIALwAVIgJBCHZBD3EgAUH/AXFGDQAgAEEXaiACIAAtABdBEHRyIgJBEHY6AAAgACACQf/hA3EgAUEPcUEIdHI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuPAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSAAQRdqLQAAQRB0ciICQfABcUEEdkYNACAAIAJBEHY6ABcgACACQY/+A3EgAUEEdEHwAXFyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLhwEBAX8CQCAAKAIAIgAvABUgAEEXai0AAEEQdHIiAkEPcSABQf8BcUYNACAAIAJBEHY6ABcgACACQfD/A3EgAUEPcXI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwtDAQF/IwBBEGsiAiQAIAAoAgAhACACQQM6AAwgAkGAgID+BzYCCCACIAIpAwg3AwAgACABQf8BcSACEGcgAkEQaiQAC4ABAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxBnIANBEGokAAt4AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQZyAEQRBqJAALjwEBAX8CQCAAKAIAIgAvABUiAkEMdkEDcSABQf8BcUYNACAAQRdqIAIgAC0AF0EQdHIiAkEQdjoAACAAIAJB/58DcSABQQNxQQx0cjsAFQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC5ABAQF/AkAgACgCACIAQRdqLQAAIgJBBHZBAXEgAUH/AXFGDQAgACAALwAVIAJBEHRyIgI7ABUgACACQf//vwdxIAFBAXFBFHRyQRB2OgAXA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsL9g0CCH8CfSMAQRBrIgIkAAJAAkAgASgCACIFLQAUIAAoAgAiAS0AFHNB/wBxDQAgBS8AFSAFLQAXQRB0ciABLwAVIAEtABdBEHRyc0H//z9xDQAgBUH8AGohByABQfwAaiEIAkAgAS8AGCIAQQdxRQRAIAUtABhBB3FFDQELIAggABAgIgogByAFLwAYECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AGiIAQQdxRQRAIAUtABpBB3FFDQELIAggABAgIgogByAFLwAaECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHCIAQQdxRQRAIAUtABxBB3FFDQELIAggABAgIgogByAFLwAcECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHiIAQQdxRQRAIAUtAB5BB3FFDQELIAJBCGogCCAAEB8gAiAHIAUvAB4QH0EBIQAgAioCCCIKIAIqAgAiC1wEfyAKIApbDQIgCyALXAUgAAtFDQEgAi0ADCACLQAERw0BCyAFQSBqIQAgAUEgaiEGA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUEyaiEAIAFBMmohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EJRw0ACyAFQcQAaiEAIAFBxABqIQZBACEDA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUHWAGohACABQdYAaiEGQQAhAwNAAkAgBiADQQF0ai8AACIEQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAEEB8gAiAHIAAvAAAQH0EBIQQgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgBAtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQAgA0EBaiIDQQlHDQALIAVB6ABqIQAgAUHoAGohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EDRw0ACyAFQe4AaiEAIAFB7gBqIQlBACEEQQAhAwNAAkAgCSADQQF0ai8AACIGQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAGEB8gAiAHIAAvAAAQH0EBIQMgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgAwtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQBBASEDIAQhBkEBIQQgBkUNAAsgBUHyAGohACABQfIAaiEJQQAhBEEAIQMDQAJAIAkgA0EBdGovAAAiBkEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBhAfIAIgByAALwAAEB9BASEDIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAMLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAQQEhAyAEIQZBASEEIAZFDQALIAVB9gBqIQAgAUH2AGohCUEAIQRBACEDA0ACQCAJIANBAXRqLwAAIgZBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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`,!ua(H$1)){var va=H$1;H$1=h$3.locateFile?h$3.locateFile(va,q$3):q$3+va}function wa(){var a$3=H$1;try{if(a$3==H$1&&w$3)return new Uint8Array(w$3);if(ua(a$3))try{var b$2=xa(a$3.slice(37)),c$3=new Uint8Array(b$2.length);for(a$3=0;a$3<b$2.length;++a$3)c$3[a$3]=b$2.charCodeAt(a$3);var d$3=c$3}catch(f){throw Error(`Converting base64 string to bytes failed.`)}else d$3=void 0;var e$1=d$3;if(e$1)return e$1;throw`both async and sync fetching of the wasm failed`}catch(f){x$1(f)}}function ya(){return w$3||typeof fetch!=`function`?Promise.resolve().then(function(){return wa()}):fetch(H$1,{credentials:`same-origin`}).then(function(a$3){if(!a$3.ok)throw`failed to load wasm binary file at '`+H$1+`'`;return a$3.arrayBuffer()}).catch(function(){return wa()})}function za(a$3){for(;0<a$3.length;)a$3.shift()(h$3)}function Aa(a$3){if(a$3===void 0)return`_unknown`;a$3=a$3.replace(/[^a-zA-Z0-9_]/g,`$`);var b$2=a$3.charCodeAt(0);return 48<=b$2&&57>=b$2?`_`+a$3:a$3}function Ba(a$3,b$2){return a$3=Aa(a$3),function(){return b$2.apply(this,arguments)}}var J$2=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ca=[];function Da(a$3){var b$2=Error,c$3=Ba(a$3,function(d$3){this.name=a$3,this.message=d$3,d$3=Error(d$3).stack,d$3!==void 0&&(this.stack=this.toString()+`
|
|
2
2
|
`+d$3.replace(/^Error(:[^\n]*)?\n/,``))});return c$3.prototype=Object.create(b$2.prototype),c$3.prototype.constructor=c$3,c$3.prototype.toString=function(){return this.message===void 0?this.name:this.name+`: `+this.message},c$3}var K$2=void 0;function L$2(a$3){throw new K$2(a$3)}var M$2=a$3=>(a$3||L$2(`Cannot use deleted val. handle = `+a$3),J$2[a$3].value),Ea=a$3=>{switch(a$3){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var b$2=Ca.length?Ca.pop():J$2.length;return J$2[b$2]={ga:1,value:a$3},b$2}},Fa=void 0,Ga=void 0;function N$1(a$3){for(var b$2=``;A[a$3];)b$2+=Ga[A[a$3++]];return b$2}var O$3=[];function Ha(){for(;O$3.length;){var a$3=O$3.pop();a$3.M.$=!1,a$3.delete()}}var P$2=void 0,Q$2={};function Ia(a$3,b$2){for(b$2===void 0&&L$2(`ptr should not be undefined`);a$3.R;)b$2=a$3.ba(b$2),a$3=a$3.R;return b$2}var R$2={};function Ja(a$3){a$3=Ka(a$3);var b$2=N$1(a$3);return S$1(a$3),b$2}function La(a$3,b$2){var c$3=R$2[a$3];return c$3===void 0&&L$2(b$2+` has unknown type `+Ja(a$3)),c$3}function Ma(){}var Na=!1;function Oa(a$3){--a$3.count.value,a$3.count.value===0&&(a$3.T?a$3.U.W(a$3.T):a$3.P.N.W(a$3.O))}function Pa(a$3,b$2,c$3){return b$2===c$3?a$3:c$3.R===void 0?null:(a$3=Pa(a$3,b$2,c$3.R),a$3===null?null:c$3.na(a$3))}var Qa={};function Ra(a$3,b$2){return b$2=Ia(a$3,b$2),Q$2[b$2]}var Sa=void 0;function Ta(a$3){throw new Sa(a$3)}function Ua(a$3,b$2){return b$2.P&&b$2.O||Ta(`makeClassHandle requires ptr and ptrType`),!!b$2.U!=!!b$2.T&&Ta(`Both smartPtrType and smartPtr must be specified`),b$2.count={value:1},T$1(Object.create(a$3,{M:{value:b$2}}))}function T$1(a$3){return typeof FinalizationRegistry>`u`?(T$1=b$2=>b$2,a$3):(Na=new FinalizationRegistry(b$2=>{Oa(b$2.M)}),T$1=b$2=>{var c$3=b$2.M;return c$3.T&&Na.register(b$2,{M:c$3},b$2),b$2},Ma=b$2=>{Na.unregister(b$2)},T$1(a$3))}var Va={};function Wa(a$3){for(;a$3.length;){var b$2=a$3.pop();a$3.pop()(b$2)}}function Xa(a$3){return this.fromWireType(D$1[a$3>>2])}var U$2={},Ya={};function V$3(a$3,b$2,c$3){function d$3(k){k=c$3(k),k.length!==a$3.length&&Ta(`Mismatched type converter count`);for(var m$2=0;m$2<a$3.length;++m$2)W$2(a$3[m$2],k[m$2])}a$3.forEach(function(k){Ya[k]=b$2});var e$1=Array(b$2.length),f=[],g=0;b$2.forEach((k,m$2)=>{R$2.hasOwnProperty(k)?e$1[m$2]=R$2[k]:(f.push(k),U$2.hasOwnProperty(k)||(U$2[k]=[]),U$2[k].push(()=>{e$1[m$2]=R$2[k],++g,g===f.length&&d$3(e$1)}))}),f.length===0&&d$3(e$1)}function Za(a$3){switch(a$3){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError(`Unknown type size: `+a$3)}}function W$2(a$3,b$2,c$3={}){if(!(`argPackAdvance`in b$2))throw TypeError(`registerType registeredInstance requires argPackAdvance`);var d$3=b$2.name;if(a$3||L$2(`type "`+d$3+`" must have a positive integer typeid pointer`),R$2.hasOwnProperty(a$3)){if(c$3.ua)return;L$2(`Cannot register type '`+d$3+`' twice`)}R$2[a$3]=b$2,delete Ya[a$3],U$2.hasOwnProperty(a$3)&&(b$2=U$2[a$3],delete U$2[a$3],b$2.forEach(e$1=>e$1()))}function $a(a$3){L$2(a$3.M.P.N.name+` instance already deleted`)}function X$2(){}function ab$1(a$3,b$2,c$3){if(a$3[b$2].S===void 0){var d$3=a$3[b$2];a$3[b$2]=function(){return a$3[b$2].S.hasOwnProperty(arguments.length)||L$2(`Function '`+c$3+`' called with an invalid number of arguments (`+arguments.length+`) - expects one of (`+a$3[b$2].S+`)!`),a$3[b$2].S[arguments.length].apply(this,arguments)},a$3[b$2].S=[],a$3[b$2].S[d$3.Z]=d$3}}function bb(a$3,b$2){h$3.hasOwnProperty(a$3)?(L$2(`Cannot register public name '`+a$3+`' twice`),ab$1(h$3,a$3,a$3),h$3.hasOwnProperty(void 0)&&L$2(`Cannot register multiple overloads of a function with the same number of arguments (undefined)!`),h$3[a$3].S[void 0]=b$2):h$3[a$3]=b$2}function cb(a$3,b$2,c$3,d$3,e$1,f,g,k){this.name=a$3,this.constructor=b$2,this.X=c$3,this.W=d$3,this.R=e$1,this.pa=f,this.ba=g,this.na=k,this.ja=[]}function db(a$3,b$2,c$3){for(;b$2!==c$3;)b$2.ba||L$2(`Expected null or instance of `+c$3.name+`, got an instance of `+b$2.name),a$3=b$2.ba(a$3),b$2=b$2.R;return a$3}function eb(a$3,b$2){return b$2===null?(this.ea&&L$2(`null is not a valid `+this.name),0):(b$2.M||L$2(`Cannot pass "`+fb(b$2)+`" as a `+this.name),b$2.M.O||L$2(`Cannot pass deleted object as a pointer of type `+this.name),db(b$2.M.O,b$2.M.P.N,this.N))}function gb(a$3,b$2){if(b$2===null){if(this.ea&&L$2(`null is not a valid `+this.name),this.da){var c$3=this.fa();return a$3!==null&&a$3.push(this.W,c$3),c$3}return 0}if(b$2.M||L$2(`Cannot pass "`+fb(b$2)+`" as a `+this.name),b$2.M.O||L$2(`Cannot pass deleted object as a pointer of type `+this.name),!this.ca&&b$2.M.P.ca&&L$2(`Cannot convert argument of type `+(b$2.M.U?b$2.M.U.name:b$2.M.P.name)+` to parameter type `+this.name),c$3=db(b$2.M.O,b$2.M.P.N,this.N),this.da)switch(b$2.M.T===void 0&&L$2(`Passing raw pointer to smart pointer is illegal`),this.Ba){case 0:b$2.M.U===this?c$3=b$2.M.T:L$2(`Cannot convert argument of type `+(b$2.M.U?b$2.M.U.name:b$2.M.P.name)+` to parameter type `+this.name);break;case 1:c$3=b$2.M.T;break;case 2:if(b$2.M.U===this)c$3=b$2.M.T;else{var d$3=b$2.clone();c$3=this.xa(c$3,Ea(function(){d$3.delete()})),a$3!==null&&a$3.push(this.W,c$3)}break;default:L$2(`Unsupporting sharing policy`)}return c$3}function hb(a$3,b$2){return b$2===null?(this.ea&&L$2(`null is not a valid `+this.name),0):(b$2.M||L$2(`Cannot pass "`+fb(b$2)+`" as a `+this.name),b$2.M.O||L$2(`Cannot pass deleted object as a pointer of type `+this.name),b$2.M.P.ca&&L$2(`Cannot convert argument of type `+b$2.M.P.name+` to parameter type `+this.name),db(b$2.M.O,b$2.M.P.N,this.N))}function Y$1(a$3,b$2,c$3,d$3){this.name=a$3,this.N=b$2,this.ea=c$3,this.ca=d$3,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,b$2.R===void 0?(this.toWireType=d$3?eb:hb,this.V=null):this.toWireType=gb}function ib(a$3,b$2){h$3.hasOwnProperty(a$3)||Ta(`Replacing nonexistant public symbol`),h$3[a$3]=b$2,h$3[a$3].Z=void 0}function jb(a$3,b$2){var c$3=[];return function(){if(c$3.length=0,Object.assign(c$3,arguments),a$3.includes(`j`)){var d$3=h$3[`dynCall_`+a$3];d$3=c$3&&c$3.length?d$3.apply(null,[b$2].concat(c$3)):d$3.call(null,b$2)}else d$3=oa.get(b$2).apply(null,c$3);return d$3}}function Z(a$3,b$2){a$3=N$1(a$3);var c$3=a$3.includes(`j`)?jb(a$3,b$2):oa.get(b$2);return typeof c$3!=`function`&&L$2(`unknown function pointer with signature `+a$3+`: `+b$2),c$3}var mb=void 0;function nb(a$3,b$2){function c$3(f){e$1[f]||R$2[f]||(Ya[f]?Ya[f].forEach(c$3):(d$3.push(f),e$1[f]=!0))}var d$3=[],e$1={};throw b$2.forEach(c$3),new mb(a$3+`: `+d$3.map(Ja).join([`, `]))}function ob(a$3,b$2,c$3,d$3,e$1){var f=b$2.length;2>f&&L$2(`argTypes array size mismatch! Must at least get return value and 'this' types!`);var g=b$2[1]!==null&&c$3!==null,k=!1;for(c$3=1;c$3<b$2.length;++c$3)if(b$2[c$3]!==null&&b$2[c$3].V===void 0){k=!0;break}var m$2=b$2[0].name!==`void`,l$1=f-2,n$2=Array(l$1),p=[],r$2=[];return function(){if(arguments.length!==l$1&&L$2(`function `+a$3+` called with `+arguments.length+` arguments, expected `+l$1+` args!`),r$2.length=0,p.length=g?2:1,p[0]=e$1,g){var u$17=b$2[1].toWireType(r$2,this);p[1]=u$17}for(var t$1=0;t$1<l$1;++t$1)n$2[t$1]=b$2[t$1+2].toWireType(r$2,arguments[t$1]),p.push(n$2[t$1]);if(t$1=d$3.apply(null,p),k)Wa(r$2);else for(var y$3=g?1:2;y$3<b$2.length;y$3++){var B$1=y$3===1?u$17:n$2[y$3-2];b$2[y$3].V!==null&&b$2[y$3].V(B$1)}return u$17=m$2?b$2[0].fromWireType(t$1):void 0,u$17}}function pb(a$3,b$2){for(var c$3=[],d$3=0;d$3<a$3;d$3++)c$3.push(E$2[b$2+4*d$3>>2]);return c$3}function qb(a$3){4<a$3&&--J$2[a$3].ga===0&&(J$2[a$3]=void 0,Ca.push(a$3))}function fb(a$3){if(a$3===null)return`null`;var b$2=typeof a$3;return b$2===`object`||b$2===`array`||b$2===`function`?a$3.toString():``+a$3}function rb(a$3,b$2){switch(b$2){case 2:return function(c$3){return this.fromWireType(la[c$3>>2])};case 3:return function(c$3){return this.fromWireType(ma[c$3>>3])};default:throw TypeError(`Unknown float type: `+a$3)}}function sb(a$3,b$2,c$3){switch(b$2){case 0:return c$3?function(d$3){return ja[d$3]}:function(d$3){return A[d$3]};case 1:return c$3?function(d$3){return C$2[d$3>>1]}:function(d$3){return ka[d$3>>1]};case 2:return c$3?function(d$3){return D$1[d$3>>2]}:function(d$3){return E$2[d$3>>2]};default:throw TypeError(`Unknown integer type: `+a$3)}}function tb(a$3,b$2){for(var c$3=``,d$3=0;!(d$3>=b$2/2);++d$3){var e$1=C$2[a$3+2*d$3>>1];if(e$1==0)break;c$3+=String.fromCharCode(e$1)}return c$3}function ub(a$3,b$2,c$3){if(c$3===void 0&&(c$3=2147483647),2>c$3)return 0;c$3-=2;var d$3=b$2;c$3=c$3<2*a$3.length?c$3/2:a$3.length;for(var e$1=0;e$1<c$3;++e$1)C$2[b$2>>1]=a$3.charCodeAt(e$1),b$2+=2;return C$2[b$2>>1]=0,b$2-d$3}function vb(a$3){return 2*a$3.length}function wb(a$3,b$2){for(var c$3=0,d$3=``;!(c$3>=b$2/4);){var e$1=D$1[a$3+4*c$3>>2];if(e$1==0)break;++c$3,65536<=e$1?(e$1-=65536,d$3+=String.fromCharCode(55296|e$1>>10,56320|e$1&1023)):d$3+=String.fromCharCode(e$1)}return d$3}function xb(a$3,b$2,c$3){if(c$3===void 0&&(c$3=2147483647),4>c$3)return 0;var d$3=b$2;c$3=d$3+c$3-4;for(var e$1=0;e$1<a$3.length;++e$1){var f=a$3.charCodeAt(e$1);if(55296<=f&&57343>=f){var g=a$3.charCodeAt(++e$1);f=65536+((f&1023)<<10)|g&1023}if(D$1[b$2>>2]=f,b$2+=4,b$2+4>c$3)break}return D$1[b$2>>2]=0,b$2-d$3}function yb(a$3){for(var b$2=0,c$3=0;c$3<a$3.length;++c$3){var d$3=a$3.charCodeAt(c$3);55296<=d$3&&57343>=d$3&&++c$3,b$2+=4}return b$2}var zb={};function Ab(a$3){var b$2=zb[a$3];return b$2===void 0?N$1(a$3):b$2}var Bb=[];function Cb(a$3){var b$2=Bb.length;return Bb.push(a$3),b$2}function Db(a$3,b$2){for(var c$3=Array(a$3),d$3=0;d$3<a$3;++d$3)c$3[d$3]=La(E$2[b$2+4*d$3>>2],`parameter `+d$3);return c$3}var Eb=[],Fb=[null,[],[]];K$2=h$3.BindingError=Da(`BindingError`),h$3.count_emval_handles=function(){for(var a$3=0,b$2=5;b$2<J$2.length;++b$2)J$2[b$2]!==void 0&&++a$3;return a$3},h$3.get_first_emval=function(){for(var a$3=5;a$3<J$2.length;++a$3)if(J$2[a$3]!==void 0)return J$2[a$3];return null},Fa=h$3.PureVirtualError=Da(`PureVirtualError`);for(var Gb=Array(256),Hb=0;256>Hb;++Hb)Gb[Hb]=String.fromCharCode(Hb);Ga=Gb,h$3.getInheritedInstanceCount=function(){return Object.keys(Q$2).length},h$3.getLiveInheritedInstances=function(){var a$3=[],b$2;for(b$2 in Q$2)Q$2.hasOwnProperty(b$2)&&a$3.push(Q$2[b$2]);return a$3},h$3.flushPendingDeletes=Ha,h$3.setDelayFunction=function(a$3){P$2=a$3,O$3.length&&P$2&&P$2(Ha)},Sa=h$3.InternalError=Da(`InternalError`),X$2.prototype.isAliasOf=function(a$3){if(!(this instanceof X$2&&a$3 instanceof X$2))return!1;var b$2=this.M.P.N,c$3=this.M.O,d$3=a$3.M.P.N;for(a$3=a$3.M.O;b$2.R;)c$3=b$2.ba(c$3),b$2=b$2.R;for(;d$3.R;)a$3=d$3.ba(a$3),d$3=d$3.R;return b$2===d$3&&c$3===a$3},X$2.prototype.clone=function(){if(this.M.O||$a(this),this.M.aa)return this.M.count.value+=1,this;var a$3=T$1,b$2=Object,c$3=b$2.create,d$3=Object.getPrototypeOf(this),e$1=this.M;return a$3=a$3(c$3.call(b$2,d$3,{M:{value:{count:e$1.count,$:e$1.$,aa:e$1.aa,O:e$1.O,P:e$1.P,T:e$1.T,U:e$1.U}}})),a$3.M.count.value+=1,a$3.M.$=!1,a$3},X$2.prototype.delete=function(){this.M.O||$a(this),this.M.$&&!this.M.aa&&L$2(`Object already scheduled for deletion`),Ma(this),Oa(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},X$2.prototype.isDeleted=function(){return!this.M.O},X$2.prototype.deleteLater=function(){return this.M.O||$a(this),this.M.$&&!this.M.aa&&L$2(`Object already scheduled for deletion`),O$3.push(this),O$3.length===1&&P$2&&P$2(Ha),this.M.$=!0,this},Y$1.prototype.qa=function(a$3){return this.ka&&(a$3=this.ka(a$3)),a$3},Y$1.prototype.ha=function(a$3){this.W&&this.W(a$3)},Y$1.prototype.argPackAdvance=8,Y$1.prototype.readValueFromPointer=Xa,Y$1.prototype.deleteObject=function(a$3){a$3!==null&&a$3.delete()},Y$1.prototype.fromWireType=function(a$3){function b$2(){return this.da?Ua(this.N.X,{P:this.wa,O:c$3,U:this,T:a$3}):Ua(this.N.X,{P:this,O:a$3})}var c$3=this.qa(a$3);if(!c$3)return this.ha(a$3),null;var d$3=Ra(this.N,c$3);if(d$3!==void 0)return d$3.M.count.value===0?(d$3.M.O=c$3,d$3.M.T=a$3,d$3.clone()):(d$3=d$3.clone(),this.ha(a$3),d$3);if(d$3=this.N.pa(c$3),d$3=Qa[d$3],!d$3)return b$2.call(this);d$3=this.ca?d$3.la:d$3.pointerType;var e$1=Pa(c$3,this.N,d$3.N);return e$1===null?b$2.call(this):this.da?Ua(d$3.N.X,{P:d$3,O:e$1,U:this,T:a$3}):Ua(d$3.N.X,{P:d$3,O:e$1})},mb=h$3.UnboundTypeError=Da(`UnboundTypeError`);var xa=typeof atob==`function`?atob:function(a$3){var b$2=``,c$3=0;a$3=a$3.replace(/[^A-Za-z0-9\+\/=]/g,``);do{var d$3=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$3.charAt(c$3++)),e$1=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$3.charAt(c$3++)),f=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$3.charAt(c$3++)),g=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$3.charAt(c$3++));d$3=d$3<<2|e$1>>4,e$1=(e$1&15)<<4|f>>2;var k=(f&3)<<6|g;b$2+=String.fromCharCode(d$3),f!==64&&(b$2+=String.fromCharCode(e$1)),g!==64&&(b$2+=String.fromCharCode(k))}while(c$3<a$3.length);return b$2},Jb={l:function(a$3,b$2,c$3,d$3){x$1(`Assertion failed: `+(a$3?z$5(A,a$3):``)+`, at: `+[b$2?b$2?z$5(A,b$2):``:`unknown filename`,c$3,d$3?d$3?z$5(A,d$3):``:`unknown function`])},q:function(a$3,b$2,c$3){a$3=N$1(a$3),b$2=La(b$2,`wrapper`),c$3=M$2(c$3);var d$3=[].slice,e$1=b$2.N,f=e$1.X,g=e$1.R.X,k=e$1.R.constructor;for(var m$2 in a$3=Ba(a$3,function(){e$1.R.ja.forEach(function(l$1){if(this[l$1]===g[l$1])throw new Fa(`Pure virtual function `+l$1+` must be implemented in JavaScript`)}.bind(this)),Object.defineProperty(this,`__parent`,{value:f}),this.__construct.apply(this,d$3.call(arguments))}),f.__construct=function(){this===f&&L$2(`Pass correct 'this' to __construct`);var l$1=k.implement.apply(void 0,[this].concat(d$3.call(arguments)));Ma(l$1);var n$2=l$1.M;l$1.notifyOnDestruction(),n$2.aa=!0,Object.defineProperties(this,{M:{value:n$2}}),T$1(this),l$1=n$2.O,l$1=Ia(e$1,l$1),Q$2.hasOwnProperty(l$1)?L$2(`Tried to register registered instance: `+l$1):Q$2[l$1]=this},f.__destruct=function(){this===f&&L$2(`Pass correct 'this' to __destruct`),Ma(this);var l$1=this.M.O;l$1=Ia(e$1,l$1),Q$2.hasOwnProperty(l$1)?delete Q$2[l$1]:L$2(`Tried to unregister unregistered instance: `+l$1)},a$3.prototype=Object.create(f),c$3)a$3.prototype[m$2]=c$3[m$2];return Ea(a$3)},j:function(a$3){var b$2=Va[a$3];delete Va[a$3];var c$3=b$2.fa,d$3=b$2.W,e$1=b$2.ia,f=e$1.map(g=>g.ta).concat(e$1.map(g=>g.za));V$3([a$3],f,g=>{var k={};return e$1.forEach((m$2,l$1)=>{var n$2=g[l$1],p=m$2.ra,r$2=m$2.sa,u$17=g[l$1+e$1.length],t$1=m$2.ya,y$3=m$2.Aa;k[m$2.oa]={read:B$1=>n$2.fromWireType(p(r$2,B$1)),write:(B$1,ba)=>{var I$3=[];t$1(y$3,B$1,u$17.toWireType(I$3,ba)),Wa(I$3)}}}),[{name:b$2.name,fromWireType:function(m$2){var l$1={},n$2;for(n$2 in k)l$1[n$2]=k[n$2].read(m$2);return d$3(m$2),l$1},toWireType:function(m$2,l$1){for(var n$2 in k)if(!(n$2 in l$1))throw TypeError(`Missing field: "`+n$2+`"`);var p=c$3();for(n$2 in k)k[n$2].write(p,l$1[n$2]);return m$2!==null&&m$2.push(d$3,p),p},argPackAdvance:8,readValueFromPointer:Xa,V:d$3}]})},v:function(){},B:function(a$3,b$2,c$3,d$3,e$1){var f=Za(c$3);b$2=N$1(b$2),W$2(a$3,{name:b$2,fromWireType:function(g){return!!g},toWireType:function(g,k){return k?d$3:e$1},argPackAdvance:8,readValueFromPointer:function(g){if(c$3===1)var k=ja;else if(c$3===2)k=C$2;else if(c$3===4)k=D$1;else throw TypeError(`Unknown boolean type size: `+b$2);return this.fromWireType(k[g>>f])},V:null})},f:function(a$3,b$2,c$3,d$3,e$1,f,g,k,m$2,l$1,n$2,p,r$2){n$2=N$1(n$2),f=Z(e$1,f),k&&(k=Z(g,k)),l$1&&(l$1=Z(m$2,l$1)),r$2=Z(p,r$2);var u$17=Aa(n$2);bb(u$17,function(){nb(`Cannot construct `+n$2+` due to unbound types`,[d$3])}),V$3([a$3,b$2,c$3],d$3?[d$3]:[],function(t$1){if(t$1=t$1[0],d$3)var y$3=t$1.N,B$1=y$3.X;else B$1=X$2.prototype;t$1=Ba(u$17,function(){if(Object.getPrototypeOf(this)!==ba)throw new K$2(`Use 'new' to construct `+n$2);if(I$3.Y===void 0)throw new K$2(n$2+` has no accessible constructor`);var kb=I$3.Y[arguments.length];if(kb===void 0)throw new K$2(`Tried to invoke ctor of `+n$2+` with invalid number of parameters (`+arguments.length+`) - expected (`+Object.keys(I$3.Y).toString()+`) parameters instead!`);return kb.apply(this,arguments)});var ba=Object.create(B$1,{constructor:{value:t$1}});t$1.prototype=ba;var I$3=new cb(n$2,t$1,ba,r$2,y$3,f,k,l$1);y$3=new Y$1(n$2,I$3,!0,!1),B$1=new Y$1(n$2+`*`,I$3,!1,!1);var lb=new Y$1(n$2+` const*`,I$3,!1,!0);return Qa[a$3]={pointerType:B$1,la:lb},ib(u$17,t$1),[y$3,B$1,lb]})},d:function(a$3,b$2,c$3,d$3,e$1,f,g){var k=pb(c$3,d$3);b$2=N$1(b$2),f=Z(e$1,f),V$3([],[a$3],function(m$2){function l$1(){nb(`Cannot call `+n$2+` due to unbound types`,k)}m$2=m$2[0];var n$2=m$2.name+`.`+b$2;b$2.startsWith(`@@`)&&(b$2=Symbol[b$2.substring(2)]);var p=m$2.N.constructor;return p[b$2]===void 0?(l$1.Z=c$3-1,p[b$2]=l$1):(ab$1(p,b$2,n$2),p[b$2].S[c$3-1]=l$1),V$3([],k,function(r$2){return r$2=ob(n$2,[r$2[0],null].concat(r$2.slice(1)),null,f,g),p[b$2].S===void 0?(r$2.Z=c$3-1,p[b$2]=r$2):p[b$2].S[c$3-1]=r$2,[]}),[]})},p:function(a$3,b$2,c$3,d$3,e$1,f){0<b$2||x$1();var g=pb(b$2,c$3);e$1=Z(d$3,e$1),V$3([],[a$3],function(k){k=k[0];var m$2=`constructor `+k.name;if(k.N.Y===void 0&&(k.N.Y=[]),k.N.Y[b$2-1]!==void 0)throw new K$2(`Cannot register multiple constructors with identical number of parameters (`+(b$2-1)+`) for class '`+k.name+`'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return k.N.Y[b$2-1]=()=>{nb(`Cannot construct `+k.name+` due to unbound types`,g)},V$3([],g,function(l$1){return l$1.splice(1,0,null),k.N.Y[b$2-1]=ob(m$2,l$1,null,e$1,f),[]}),[]})},a:function(a$3,b$2,c$3,d$3,e$1,f,g,k){var m$2=pb(c$3,d$3);b$2=N$1(b$2),f=Z(e$1,f),V$3([],[a$3],function(l$1){function n$2(){nb(`Cannot call `+p+` due to unbound types`,m$2)}l$1=l$1[0];var p=l$1.name+`.`+b$2;b$2.startsWith(`@@`)&&(b$2=Symbol[b$2.substring(2)]),k&&l$1.N.ja.push(b$2);var r$2=l$1.N.X,u$17=r$2[b$2];return u$17===void 0||u$17.S===void 0&&u$17.className!==l$1.name&&u$17.Z===c$3-2?(n$2.Z=c$3-2,n$2.className=l$1.name,r$2[b$2]=n$2):(ab$1(r$2,b$2,p),r$2[b$2].S[c$3-2]=n$2),V$3([],m$2,function(t$1){return t$1=ob(p,t$1,l$1,f,g),r$2[b$2].S===void 0?(t$1.Z=c$3-2,r$2[b$2]=t$1):r$2[b$2].S[c$3-2]=t$1,[]}),[]})},A:function(a$3,b$2){b$2=N$1(b$2),W$2(a$3,{name:b$2,fromWireType:function(c$3){var d$3=M$2(c$3);return qb(c$3),d$3},toWireType:function(c$3,d$3){return Ea(d$3)},argPackAdvance:8,readValueFromPointer:Xa,V:null})},n:function(a$3,b$2,c$3){c$3=Za(c$3),b$2=N$1(b$2),W$2(a$3,{name:b$2,fromWireType:function(d$3){return d$3},toWireType:function(d$3,e$1){return e$1},argPackAdvance:8,readValueFromPointer:rb(b$2,c$3),V:null})},e:function(a$3,b$2,c$3,d$3,e$1){b$2=N$1(b$2),e$1===-1&&(e$1=4294967295),e$1=Za(c$3);var f=k=>k;if(d$3===0){var g=32-8*c$3;f=k=>k<<g>>>g}c$3=b$2.includes(`unsigned`)?function(k,m$2){return m$2>>>0}:function(k,m$2){return m$2},W$2(a$3,{name:b$2,fromWireType:f,toWireType:c$3,argPackAdvance:8,readValueFromPointer:sb(b$2,e$1,d$3!==0),V:null})},b:function(a$3,b$2,c$3){function d$3(f){f>>=2;var g=E$2;return new e$1(ia,g[f+1],g[f])}var e$1=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b$2];c$3=N$1(c$3),W$2(a$3,{name:c$3,fromWireType:d$3,argPackAdvance:8,readValueFromPointer:d$3},{ua:!0})},o:function(a$3,b$2){b$2=N$1(b$2);var c$3=b$2===`std::string`;W$2(a$3,{name:b$2,fromWireType:function(d$3){var e$1=E$2[d$3>>2],f=d$3+4;if(c$3)for(var g=f,k=0;k<=e$1;++k){var m$2=f+k;if(k==e$1||A[m$2]==0){if(g=g?z$5(A,g,m$2-g):``,l$1===void 0)var l$1=g;else l$1+=`\0`,l$1+=g;g=m$2+1}}else{for(l$1=Array(e$1),k=0;k<e$1;++k)l$1[k]=String.fromCharCode(A[f+k]);l$1=l$1.join(``)}return S$1(d$3),l$1},toWireType:function(d$3,e$1){e$1 instanceof ArrayBuffer&&(e$1=new Uint8Array(e$1));var f,g=typeof e$1==`string`;if(g||e$1 instanceof Uint8Array||e$1 instanceof Uint8ClampedArray||e$1 instanceof Int8Array||L$2(`Cannot pass non-string to std::string`),c$3&&g){var k=0;for(f=0;f<e$1.length;++f){var m$2=e$1.charCodeAt(f);127>=m$2?k++:2047>=m$2?k+=2:55296<=m$2&&57343>=m$2?(k+=4,++f):k+=3}f=k}else f=e$1.length;if(k=Ib(4+f+1),m$2=k+4,E$2[k>>2]=f,c$3&&g){if(g=m$2,m$2=f+1,f=A,0<m$2){m$2=g+m$2-1;for(var l$1=0;l$1<e$1.length;++l$1){var n$2=e$1.charCodeAt(l$1);if(55296<=n$2&&57343>=n$2){var p=e$1.charCodeAt(++l$1);n$2=65536+((n$2&1023)<<10)|p&1023}if(127>=n$2){if(g>=m$2)break;f[g++]=n$2}else{if(2047>=n$2){if(g+1>=m$2)break;f[g++]=192|n$2>>6}else{if(65535>=n$2){if(g+2>=m$2)break;f[g++]=224|n$2>>12}else{if(g+3>=m$2)break;f[g++]=240|n$2>>18,f[g++]=128|n$2>>12&63}f[g++]=128|n$2>>6&63}f[g++]=128|n$2&63}}f[g]=0}}else if(g)for(g=0;g<f;++g)l$1=e$1.charCodeAt(g),255<l$1&&(S$1(m$2),L$2(`String has UTF-16 code units that do not fit in 8 bits`)),A[m$2+g]=l$1;else for(g=0;g<f;++g)A[m$2+g]=e$1[g];return d$3!==null&&d$3.push(S$1,k),k},argPackAdvance:8,readValueFromPointer:Xa,V:function(d$3){S$1(d$3)}})},i:function(a$3,b$2,c$3){if(c$3=N$1(c$3),b$2===2)var d$3=tb,e$1=ub,f=vb,g=()=>ka,k=1;else b$2===4&&(d$3=wb,e$1=xb,f=yb,g=()=>E$2,k=2);W$2(a$3,{name:c$3,fromWireType:function(m$2){for(var l$1=E$2[m$2>>2],n$2=g(),p,r$2=m$2+4,u$17=0;u$17<=l$1;++u$17){var t$1=m$2+4+u$17*b$2;(u$17==l$1||n$2[t$1>>k]==0)&&(r$2=d$3(r$2,t$1-r$2),p===void 0?p=r$2:(p+=`\0`,p+=r$2),r$2=t$1+b$2)}return S$1(m$2),p},toWireType:function(m$2,l$1){typeof l$1!=`string`&&L$2(`Cannot pass non-string to C++ string type `+c$3);var n$2=f(l$1),p=Ib(4+n$2+b$2);return E$2[p>>2]=n$2>>k,e$1(l$1,p+4,n$2+b$2),m$2!==null&&m$2.push(S$1,p),p},argPackAdvance:8,readValueFromPointer:Xa,V:function(m$2){S$1(m$2)}})},k:function(a$3,b$2,c$3,d$3,e$1,f){Va[a$3]={name:N$1(b$2),fa:Z(c$3,d$3),W:Z(e$1,f),ia:[]}},h:function(a$3,b$2,c$3,d$3,e$1,f,g,k,m$2,l$1){Va[a$3].ia.push({oa:N$1(b$2),ta:c$3,ra:Z(d$3,e$1),sa:f,za:g,ya:Z(k,m$2),Aa:l$1})},C:function(a$3,b$2){b$2=N$1(b$2),W$2(a$3,{va:!0,name:b$2,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(a$3,b$2,c$3,d$3,e$1){a$3=Bb[a$3],b$2=M$2(b$2),c$3=Ab(c$3);var f=[];return E$2[d$3>>2]=Ea(f),a$3(b$2,c$3,f,e$1)},t:function(a$3,b$2,c$3,d$3){a$3=Bb[a$3],b$2=M$2(b$2),c$3=Ab(c$3),a$3(b$2,c$3,null,d$3)},g:qb,m:function(a$3,b$2){var c$3=Db(a$3,b$2),d$3=c$3[0];b$2=d$3.name+`_$`+c$3.slice(1).map(function(g){return g.name}).join(`_`)+`$`;var e$1=Eb[b$2];if(e$1!==void 0)return e$1;var f=Array(a$3-1);return e$1=Cb((g,k,m$2,l$1)=>{for(var n$2=0,p=0;p<a$3-1;++p)f[p]=c$3[p+1].readValueFromPointer(l$1+n$2),n$2+=c$3[p+1].argPackAdvance;for(g=g[k].apply(g,f),p=0;p<a$3-1;++p)c$3[p+1].ma&&c$3[p+1].ma(f[p]);if(!d$3.va)return d$3.toWireType(m$2,g)}),Eb[b$2]=e$1},D:function(a$3){4<a$3&&(J$2[a$3].ga+=1)},r:function(a$3){var b$2=M$2(a$3);Wa(b$2),qb(a$3)},c:function(){x$1(``)},x:function(a$3,b$2,c$3){A.copyWithin(a$3,b$2,b$2+c$3)},w:function(a$3){var b$2=A.length;if(a$3>>>=0,2147483648<a$3)return!1;for(var c$3=1;4>=c$3;c$3*=2){var d$3=b$2*(1+.2/c$3);d$3=Math.min(d$3,a$3+100663296);var e$1=Math;d$3=Math.max(a$3,d$3),e$1=e$1.min.call(e$1,2147483648,d$3+(65536-d$3%65536)%65536);a:{try{fa.grow(e$1-ia.byteLength+65535>>>16),na();var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(a$3,b$2,c$3,d$3){for(var e$1=0,f=0;f<c$3;f++){var g=E$2[b$2>>2],k=E$2[b$2+4>>2];b$2+=8;for(var m$2=0;m$2<k;m$2++){var l$1=A[g+m$2],n$2=Fb[a$3];l$1===0||l$1===10?((a$3===1?ea:v$1)(z$5(n$2,0)),n$2.length=0):n$2.push(l$1)}e$1+=k}return E$2[d$3>>2]=e$1,0}};(function(){function a$3(e$1){h$3.asm=e$1.exports,fa=h$3.asm.E,na(),oa=h$3.asm.J,qa.unshift(h$3.asm.F),F$2--,h$3.monitorRunDependencies&&h$3.monitorRunDependencies(F$2),F$2==0&&(ta!==null&&(clearInterval(ta),ta=null),G$1&&(e$1=G$1,G$1=null,e$1()))}function b$2(e$1){a$3(e$1.instance)}function c$3(e$1){return ya().then(function(f){return WebAssembly.instantiate(f,d$3)}).then(function(f){return f}).then(e$1,function(f){v$1(`failed to asynchronously prepare wasm: `+f),x$1(f)})}var d$3={a:Jb};if(F$2++,h$3.monitorRunDependencies&&h$3.monitorRunDependencies(F$2),h$3.instantiateWasm)try{return h$3.instantiateWasm(d$3,a$3)}catch(e$1){v$1(`Module.instantiateWasm callback failed with error: `+e$1),ca(e$1)}return(function(){return w$3||typeof WebAssembly.instantiateStreaming!=`function`||ua(H$1)||typeof fetch!=`function`?c$3(b$2):fetch(H$1,{credentials:`same-origin`}).then(function(e$1){return WebAssembly.instantiateStreaming(e$1,d$3).then(b$2,function(f){return v$1(`wasm streaming compile failed: `+f),v$1(`falling back to ArrayBuffer instantiation`),c$3(b$2)})})})().catch(ca),{}})(),h$3.___wasm_call_ctors=function(){return(h$3.___wasm_call_ctors=h$3.asm.F).apply(null,arguments)};var Ka=h$3.___getTypeName=function(){return(Ka=h$3.___getTypeName=h$3.asm.G).apply(null,arguments)};h$3.__embind_initialize_bindings=function(){return(h$3.__embind_initialize_bindings=h$3.asm.H).apply(null,arguments)};var Ib=h$3._malloc=function(){return(Ib=h$3._malloc=h$3.asm.I).apply(null,arguments)},S$1=h$3._free=function(){return(S$1=h$3._free=h$3.asm.K).apply(null,arguments)};h$3.dynCall_jiji=function(){return(h$3.dynCall_jiji=h$3.asm.L).apply(null,arguments)};var Kb;G$1=function Lb(){Kb||Mb(),Kb||(G$1=Lb)};function Mb(){function a$3(){if(!Kb&&(Kb=!0,h$3.calledRun=!0,!ha)){if(za(qa),aa(h$3),h$3.onRuntimeInitialized&&h$3.onRuntimeInitialized(),h$3.postRun)for(typeof h$3.postRun==`function`&&(h$3.postRun=[h$3.postRun]);h$3.postRun.length;){var b$2=h$3.postRun.shift();ra.unshift(b$2)}za(ra)}}if(!(0<F$2)){if(h$3.preRun)for(typeof h$3.preRun==`function`&&(h$3.preRun=[h$3.preRun]);h$3.preRun.length;)sa();za(pa),0<F$2||(h$3.setStatus?(h$3.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){h$3.setStatus(``)},1),a$3()},1)):a$3())}}if(h$3.preInit)for(typeof h$3.preInit==`function`&&(h$3.preInit=[h$3.preInit]);0<h$3.preInit.length;)h$3.preInit.pop()();return Mb(),loadYoga$1.ready})})(),yoga_wasm_base64_esm_default=loadYoga;let Align=function(Align$1){return Align$1[Align$1.Auto=0]=`Auto`,Align$1[Align$1.FlexStart=1]=`FlexStart`,Align$1[Align$1.Center=2]=`Center`,Align$1[Align$1.FlexEnd=3]=`FlexEnd`,Align$1[Align$1.Stretch=4]=`Stretch`,Align$1[Align$1.Baseline=5]=`Baseline`,Align$1[Align$1.SpaceBetween=6]=`SpaceBetween`,Align$1[Align$1.SpaceAround=7]=`SpaceAround`,Align$1[Align$1.SpaceEvenly=8]=`SpaceEvenly`,Align$1}({}),BoxSizing=function(BoxSizing$1){return BoxSizing$1[BoxSizing$1.BorderBox=0]=`BorderBox`,BoxSizing$1[BoxSizing$1.ContentBox=1]=`ContentBox`,BoxSizing$1}({}),Dimension=function(Dimension$1){return Dimension$1[Dimension$1.Width=0]=`Width`,Dimension$1[Dimension$1.Height=1]=`Height`,Dimension$1}({}),Direction=function(Direction$1){return Direction$1[Direction$1.Inherit=0]=`Inherit`,Direction$1[Direction$1.LTR=1]=`LTR`,Direction$1[Direction$1.RTL=2]=`RTL`,Direction$1}({}),Display=function(Display$1){return Display$1[Display$1.Flex=0]=`Flex`,Display$1[Display$1.None=1]=`None`,Display$1[Display$1.Contents=2]=`Contents`,Display$1}({}),Edge=function(Edge$1){return Edge$1[Edge$1.Left=0]=`Left`,Edge$1[Edge$1.Top=1]=`Top`,Edge$1[Edge$1.Right=2]=`Right`,Edge$1[Edge$1.Bottom=3]=`Bottom`,Edge$1[Edge$1.Start=4]=`Start`,Edge$1[Edge$1.End=5]=`End`,Edge$1[Edge$1.Horizontal=6]=`Horizontal`,Edge$1[Edge$1.Vertical=7]=`Vertical`,Edge$1[Edge$1.All=8]=`All`,Edge$1}({}),Errata=function(Errata$1){return Errata$1[Errata$1.None=0]=`None`,Errata$1[Errata$1.StretchFlexBasis=1]=`StretchFlexBasis`,Errata$1[Errata$1.AbsolutePositionWithoutInsetsExcludesPadding=2]=`AbsolutePositionWithoutInsetsExcludesPadding`,Errata$1[Errata$1.AbsolutePercentAgainstInnerSize=4]=`AbsolutePercentAgainstInnerSize`,Errata$1[Errata$1.All=2147483647]=`All`,Errata$1[Errata$1.Classic=2147483646]=`Classic`,Errata$1}({}),ExperimentalFeature=function(ExperimentalFeature$1){return ExperimentalFeature$1[ExperimentalFeature$1.WebFlexBasis=0]=`WebFlexBasis`,ExperimentalFeature$1}({}),FlexDirection=function(FlexDirection$1){return FlexDirection$1[FlexDirection$1.Column=0]=`Column`,FlexDirection$1[FlexDirection$1.ColumnReverse=1]=`ColumnReverse`,FlexDirection$1[FlexDirection$1.Row=2]=`Row`,FlexDirection$1[FlexDirection$1.RowReverse=3]=`RowReverse`,FlexDirection$1}({}),Gutter=function(Gutter$1){return Gutter$1[Gutter$1.Column=0]=`Column`,Gutter$1[Gutter$1.Row=1]=`Row`,Gutter$1[Gutter$1.All=2]=`All`,Gutter$1}({}),Justify=function(Justify$1){return Justify$1[Justify$1.FlexStart=0]=`FlexStart`,Justify$1[Justify$1.Center=1]=`Center`,Justify$1[Justify$1.FlexEnd=2]=`FlexEnd`,Justify$1[Justify$1.SpaceBetween=3]=`SpaceBetween`,Justify$1[Justify$1.SpaceAround=4]=`SpaceAround`,Justify$1[Justify$1.SpaceEvenly=5]=`SpaceEvenly`,Justify$1}({}),LogLevel=function(LogLevel$1){return LogLevel$1[LogLevel$1.Error=0]=`Error`,LogLevel$1[LogLevel$1.Warn=1]=`Warn`,LogLevel$1[LogLevel$1.Info=2]=`Info`,LogLevel$1[LogLevel$1.Debug=3]=`Debug`,LogLevel$1[LogLevel$1.Verbose=4]=`Verbose`,LogLevel$1[LogLevel$1.Fatal=5]=`Fatal`,LogLevel$1}({}),MeasureMode=function(MeasureMode$1){return MeasureMode$1[MeasureMode$1.Undefined=0]=`Undefined`,MeasureMode$1[MeasureMode$1.Exactly=1]=`Exactly`,MeasureMode$1[MeasureMode$1.AtMost=2]=`AtMost`,MeasureMode$1}({}),NodeType=function(NodeType$1){return NodeType$1[NodeType$1.Default=0]=`Default`,NodeType$1[NodeType$1.Text=1]=`Text`,NodeType$1}({}),Overflow=function(Overflow$1){return Overflow$1[Overflow$1.Visible=0]=`Visible`,Overflow$1[Overflow$1.Hidden=1]=`Hidden`,Overflow$1[Overflow$1.Scroll=2]=`Scroll`,Overflow$1}({}),PositionType=function(PositionType$1){return PositionType$1[PositionType$1.Static=0]=`Static`,PositionType$1[PositionType$1.Relative=1]=`Relative`,PositionType$1[PositionType$1.Absolute=2]=`Absolute`,PositionType$1}({}),Unit=function(Unit$1){return Unit$1[Unit$1.Undefined=0]=`Undefined`,Unit$1[Unit$1.Point=1]=`Point`,Unit$1[Unit$1.Percent=2]=`Percent`,Unit$1[Unit$1.Auto=3]=`Auto`,Unit$1}({}),Wrap=function(Wrap$1){return Wrap$1[Wrap$1.NoWrap=0]=`NoWrap`,Wrap$1[Wrap$1.Wrap=1]=`Wrap`,Wrap$1[Wrap$1.WrapReverse=2]=`WrapReverse`,Wrap$1}({});const constants$9={ALIGN_AUTO:Align.Auto,ALIGN_FLEX_START:Align.FlexStart,ALIGN_CENTER:Align.Center,ALIGN_FLEX_END:Align.FlexEnd,ALIGN_STRETCH:Align.Stretch,ALIGN_BASELINE:Align.Baseline,ALIGN_SPACE_BETWEEN:Align.SpaceBetween,ALIGN_SPACE_AROUND:Align.SpaceAround,ALIGN_SPACE_EVENLY:Align.SpaceEvenly,BOX_SIZING_BORDER_BOX:BoxSizing.BorderBox,BOX_SIZING_CONTENT_BOX:BoxSizing.ContentBox,DIMENSION_WIDTH:Dimension.Width,DIMENSION_HEIGHT:Dimension.Height,DIRECTION_INHERIT:Direction.Inherit,DIRECTION_LTR:Direction.LTR,DIRECTION_RTL:Direction.RTL,DISPLAY_FLEX:Display.Flex,DISPLAY_NONE:Display.None,DISPLAY_CONTENTS:Display.Contents,EDGE_LEFT:Edge.Left,EDGE_TOP:Edge.Top,EDGE_RIGHT:Edge.Right,EDGE_BOTTOM:Edge.Bottom,EDGE_START:Edge.Start,EDGE_END:Edge.End,EDGE_HORIZONTAL:Edge.Horizontal,EDGE_VERTICAL:Edge.Vertical,EDGE_ALL:Edge.All,ERRATA_NONE:Errata.None,ERRATA_STRETCH_FLEX_BASIS:Errata.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:Errata.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:Errata.AbsolutePercentAgainstInnerSize,ERRATA_ALL:Errata.All,ERRATA_CLASSIC:Errata.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:ExperimentalFeature.WebFlexBasis,FLEX_DIRECTION_COLUMN:FlexDirection.Column,FLEX_DIRECTION_COLUMN_REVERSE:FlexDirection.ColumnReverse,FLEX_DIRECTION_ROW:FlexDirection.Row,FLEX_DIRECTION_ROW_REVERSE:FlexDirection.RowReverse,GUTTER_COLUMN:Gutter.Column,GUTTER_ROW:Gutter.Row,GUTTER_ALL:Gutter.All,JUSTIFY_FLEX_START:Justify.FlexStart,JUSTIFY_CENTER:Justify.Center,JUSTIFY_FLEX_END:Justify.FlexEnd,JUSTIFY_SPACE_BETWEEN:Justify.SpaceBetween,JUSTIFY_SPACE_AROUND:Justify.SpaceAround,JUSTIFY_SPACE_EVENLY:Justify.SpaceEvenly,LOG_LEVEL_ERROR:LogLevel.Error,LOG_LEVEL_WARN:LogLevel.Warn,LOG_LEVEL_INFO:LogLevel.Info,LOG_LEVEL_DEBUG:LogLevel.Debug,LOG_LEVEL_VERBOSE:LogLevel.Verbose,LOG_LEVEL_FATAL:LogLevel.Fatal,MEASURE_MODE_UNDEFINED:MeasureMode.Undefined,MEASURE_MODE_EXACTLY:MeasureMode.Exactly,MEASURE_MODE_AT_MOST:MeasureMode.AtMost,NODE_TYPE_DEFAULT:NodeType.Default,NODE_TYPE_TEXT:NodeType.Text,OVERFLOW_VISIBLE:Overflow.Visible,OVERFLOW_HIDDEN:Overflow.Hidden,OVERFLOW_SCROLL:Overflow.Scroll,POSITION_TYPE_STATIC:PositionType.Static,POSITION_TYPE_RELATIVE:PositionType.Relative,POSITION_TYPE_ABSOLUTE:PositionType.Absolute,UNIT_UNDEFINED:Unit.Undefined,UNIT_POINT:Unit.Point,UNIT_PERCENT:Unit.Percent,UNIT_AUTO:Unit.Auto,WRAP_NO_WRAP:Wrap.NoWrap,WRAP_WRAP:Wrap.Wrap,WRAP_WRAP_REVERSE:Wrap.WrapReverse};var YGEnums_default=constants$9;function wrapAssembly(lib){function patch$2(prototype,name$3,fn){let original=prototype[name$3];prototype[name$3]=function(){var args=[...arguments];return fn.call(this,original,...args)}}for(let fnName of[`setPosition`,`setMargin`,`setFlexBasis`,`setWidth`,`setHeight`,`setMinWidth`,`setMinHeight`,`setMaxWidth`,`setMaxHeight`,`setPadding`,`setGap`]){let methods={[Unit.Point]:lib.Node.prototype[fnName],[Unit.Percent]:lib.Node.prototype[`${fnName}Percent`],[Unit.Auto]:lib.Node.prototype[`${fnName}Auto`]};patch$2(lib.Node.prototype,fnName,function(original){var args=[...arguments].slice(1);let value=args.pop(),unit,asNumber$1;if(value===`auto`)unit=Unit.Auto,asNumber$1=void 0;else if(typeof value==`object`)unit=value.unit,asNumber$1=value.valueOf();else if(unit=typeof value==`string`&&value.endsWith(`%`)?Unit.Percent:Unit.Point,asNumber$1=parseFloat(value),value!==void 0&&!Number.isNaN(value)&&Number.isNaN(asNumber$1))throw Error(`Invalid value ${value} for ${fnName}`);if(!methods[unit])throw Error(`Failed to execute "${fnName}": Unsupported unit '${value}'`);return asNumber$1===void 0?methods[unit].call(this,...args):methods[unit].call(this,...args,asNumber$1)})}function wrapMeasureFunction(measureFunction){return lib.MeasureCallback.implement({measure:function(){let{width,height}=measureFunction(...arguments);return{width:width??NaN,height:height??NaN}}})}patch$2(lib.Node.prototype,`setMeasureFunc`,function(original,measureFunc){return measureFunc?original.call(this,wrapMeasureFunction(measureFunc)):this.unsetMeasureFunc()});function wrapDirtiedFunc(dirtiedFunction){return lib.DirtiedCallback.implement({dirtied:dirtiedFunction})}return patch$2(lib.Node.prototype,`setDirtiedFunc`,function(original,dirtiedFunc){original.call(this,wrapDirtiedFunc(dirtiedFunc))}),patch$2(lib.Config.prototype,`free`,function(){lib.Config.destroy(this)}),patch$2(lib.Node,`create`,(_$3,config)=>config?lib.Node.createWithConfig(config):lib.Node.createDefault()),patch$2(lib.Node.prototype,`free`,function(){lib.Node.destroy(this)}),patch$2(lib.Node.prototype,`freeRecursive`,function(){for(let t$1=0,T$1=this.getChildCount();t$1<T$1;++t$1)this.getChild(0).freeRecursive();this.free()}),patch$2(lib.Node.prototype,`calculateLayout`,function(original){let width=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,height=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,direction=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Direction.LTR;return original.call(this,width,height,direction)}),{Config:lib.Config,Node:lib.Node,...YGEnums_default}}const Yoga=wrapAssembly(await yoga_wasm_base64_esm_default());var src_default=Yoga;function ansiRegex({onlyFirst=!1}={}){let ST=`(?:\\u0007|\\u001B\\u005C|\\u009C)`,osc=`(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))`,csi=`[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]`,pattern=`(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]`;return RegExp(`(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]`,onlyFirst?void 0:`g`)}const regex$2=ansiRegex();function stripAnsi$1(string){if(typeof string!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof string}\``);return string.replace(regex$2,``)}function isAmbiguous(x$1){return x$1===161||x$1===164||x$1===167||x$1===168||x$1===170||x$1===173||x$1===174||x$1>=176&&x$1<=180||x$1>=182&&x$1<=186||x$1>=188&&x$1<=191||x$1===198||x$1===208||x$1===215||x$1===216||x$1>=222&&x$1<=225||x$1===230||x$1>=232&&x$1<=234||x$1===236||x$1===237||x$1===240||x$1===242||x$1===243||x$1>=247&&x$1<=250||x$1===252||x$1===254||x$1===257||x$1===273||x$1===275||x$1===283||x$1===294||x$1===295||x$1===299||x$1>=305&&x$1<=307||x$1===312||x$1>=319&&x$1<=322||x$1===324||x$1>=328&&x$1<=331||x$1===333||x$1===338||x$1===339||x$1===358||x$1===359||x$1===363||x$1===462||x$1===464||x$1===466||x$1===468||x$1===470||x$1===472||x$1===474||x$1===476||x$1===593||x$1===609||x$1===708||x$1===711||x$1>=713&&x$1<=715||x$1===717||x$1===720||x$1>=728&&x$1<=731||x$1===733||x$1===735||x$1>=768&&x$1<=879||x$1>=913&&x$1<=929||x$1>=931&&x$1<=937||x$1>=945&&x$1<=961||x$1>=963&&x$1<=969||x$1===1025||x$1>=1040&&x$1<=1103||x$1===1105||x$1===8208||x$1>=8211&&x$1<=8214||x$1===8216||x$1===8217||x$1===8220||x$1===8221||x$1>=8224&&x$1<=8226||x$1>=8228&&x$1<=8231||x$1===8240||x$1===8242||x$1===8243||x$1===8245||x$1===8251||x$1===8254||x$1===8308||x$1===8319||x$1>=8321&&x$1<=8324||x$1===8364||x$1===8451||x$1===8453||x$1===8457||x$1===8467||x$1===8470||x$1===8481||x$1===8482||x$1===8486||x$1===8491||x$1===8531||x$1===8532||x$1>=8539&&x$1<=8542||x$1>=8544&&x$1<=8555||x$1>=8560&&x$1<=8569||x$1===8585||x$1>=8592&&x$1<=8601||x$1===8632||x$1===8633||x$1===8658||x$1===8660||x$1===8679||x$1===8704||x$1===8706||x$1===8707||x$1===8711||x$1===8712||x$1===8715||x$1===8719||x$1===8721||x$1===8725||x$1===8730||x$1>=8733&&x$1<=8736||x$1===8739||x$1===8741||x$1>=8743&&x$1<=8748||x$1===8750||x$1>=8756&&x$1<=8759||x$1===8764||x$1===8765||x$1===8776||x$1===8780||x$1===8786||x$1===8800||x$1===8801||x$1>=8804&&x$1<=8807||x$1===8810||x$1===8811||x$1===8814||x$1===8815||x$1===8834||x$1===8835||x$1===8838||x$1===8839||x$1===8853||x$1===8857||x$1===8869||x$1===8895||x$1===8978||x$1>=9312&&x$1<=9449||x$1>=9451&&x$1<=9547||x$1>=9552&&x$1<=9587||x$1>=9600&&x$1<=9615||x$1>=9618&&x$1<=9621||x$1===9632||x$1===9633||x$1>=9635&&x$1<=9641||x$1===9650||x$1===9651||x$1===9654||x$1===9655||x$1===9660||x$1===9661||x$1===9664||x$1===9665||x$1>=9670&&x$1<=9672||x$1===9675||x$1>=9678&&x$1<=9681||x$1>=9698&&x$1<=9701||x$1===9711||x$1===9733||x$1===9734||x$1===9737||x$1===9742||x$1===9743||x$1===9756||x$1===9758||x$1===9792||x$1===9794||x$1===9824||x$1===9825||x$1>=9827&&x$1<=9829||x$1>=9831&&x$1<=9834||x$1===9836||x$1===9837||x$1===9839||x$1===9886||x$1===9887||x$1===9919||x$1>=9926&&x$1<=9933||x$1>=9935&&x$1<=9939||x$1>=9941&&x$1<=9953||x$1===9955||x$1===9960||x$1===9961||x$1>=9963&&x$1<=9969||x$1===9972||x$1>=9974&&x$1<=9977||x$1===9979||x$1===9980||x$1===9982||x$1===9983||x$1===10045||x$1>=10102&&x$1<=10111||x$1>=11094&&x$1<=11097||x$1>=12872&&x$1<=12879||x$1>=57344&&x$1<=63743||x$1>=65024&&x$1<=65039||x$1===65533||x$1>=127232&&x$1<=127242||x$1>=127248&&x$1<=127277||x$1>=127280&&x$1<=127337||x$1>=127344&&x$1<=127373||x$1===127375||x$1===127376||x$1>=127387&&x$1<=127404||x$1>=917760&&x$1<=917999||x$1>=983040&&x$1<=1048573||x$1>=1048576&&x$1<=1114109}function isFullWidth(x$1){return x$1===12288||x$1>=65281&&x$1<=65376||x$1>=65504&&x$1<=65510}function isWide(x$1){return x$1>=4352&&x$1<=4447||x$1===8986||x$1===8987||x$1===9001||x$1===9002||x$1>=9193&&x$1<=9196||x$1===9200||x$1===9203||x$1===9725||x$1===9726||x$1===9748||x$1===9749||x$1>=9776&&x$1<=9783||x$1>=9800&&x$1<=9811||x$1===9855||x$1>=9866&&x$1<=9871||x$1===9875||x$1===9889||x$1===9898||x$1===9899||x$1===9917||x$1===9918||x$1===9924||x$1===9925||x$1===9934||x$1===9940||x$1===9962||x$1===9970||x$1===9971||x$1===9973||x$1===9978||x$1===9981||x$1===9989||x$1===9994||x$1===9995||x$1===10024||x$1===10060||x$1===10062||x$1>=10067&&x$1<=10069||x$1===10071||x$1>=10133&&x$1<=10135||x$1===10160||x$1===10175||x$1===11035||x$1===11036||x$1===11088||x$1===11093||x$1>=11904&&x$1<=11929||x$1>=11931&&x$1<=12019||x$1>=12032&&x$1<=12245||x$1>=12272&&x$1<=12287||x$1>=12289&&x$1<=12350||x$1>=12353&&x$1<=12438||x$1>=12441&&x$1<=12543||x$1>=12549&&x$1<=12591||x$1>=12593&&x$1<=12686||x$1>=12688&&x$1<=12773||x$1>=12783&&x$1<=12830||x$1>=12832&&x$1<=12871||x$1>=12880&&x$1<=42124||x$1>=42128&&x$1<=42182||x$1>=43360&&x$1<=43388||x$1>=44032&&x$1<=55203||x$1>=63744&&x$1<=64255||x$1>=65040&&x$1<=65049||x$1>=65072&&x$1<=65106||x$1>=65108&&x$1<=65126||x$1>=65128&&x$1<=65131||x$1>=94176&&x$1<=94180||x$1===94192||x$1===94193||x$1>=94208&&x$1<=100343||x$1>=100352&&x$1<=101589||x$1>=101631&&x$1<=101640||x$1>=110576&&x$1<=110579||x$1>=110581&&x$1<=110587||x$1===110589||x$1===110590||x$1>=110592&&x$1<=110882||x$1===110898||x$1>=110928&&x$1<=110930||x$1===110933||x$1>=110948&&x$1<=110951||x$1>=110960&&x$1<=111355||x$1>=119552&&x$1<=119638||x$1>=119648&&x$1<=119670||x$1===126980||x$1===127183||x$1===127374||x$1>=127377&&x$1<=127386||x$1>=127488&&x$1<=127490||x$1>=127504&&x$1<=127547||x$1>=127552&&x$1<=127560||x$1===127568||x$1===127569||x$1>=127584&&x$1<=127589||x$1>=127744&&x$1<=127776||x$1>=127789&&x$1<=127797||x$1>=127799&&x$1<=127868||x$1>=127870&&x$1<=127891||x$1>=127904&&x$1<=127946||x$1>=127951&&x$1<=127955||x$1>=127968&&x$1<=127984||x$1===127988||x$1>=127992&&x$1<=128062||x$1===128064||x$1>=128066&&x$1<=128252||x$1>=128255&&x$1<=128317||x$1>=128331&&x$1<=128334||x$1>=128336&&x$1<=128359||x$1===128378||x$1===128405||x$1===128406||x$1===128420||x$1>=128507&&x$1<=128591||x$1>=128640&&x$1<=128709||x$1===128716||x$1>=128720&&x$1<=128722||x$1>=128725&&x$1<=128727||x$1>=128732&&x$1<=128735||x$1===128747||x$1===128748||x$1>=128756&&x$1<=128764||x$1>=128992&&x$1<=129003||x$1===129008||x$1>=129292&&x$1<=129338||x$1>=129340&&x$1<=129349||x$1>=129351&&x$1<=129535||x$1>=129648&&x$1<=129660||x$1>=129664&&x$1<=129673||x$1>=129679&&x$1<=129734||x$1>=129742&&x$1<=129756||x$1>=129759&&x$1<=129769||x$1>=129776&&x$1<=129784||x$1>=131072&&x$1<=196605||x$1>=196608&&x$1<=262141}function validate$5(codePoint){if(!Number.isSafeInteger(codePoint))throw TypeError(`Expected a code point, got \`${typeof codePoint}\`.`)}function eastAsianWidth(codePoint,{ambiguousAsWide=!1}={}){return validate$5(codePoint),isFullWidth(codePoint)||isWide(codePoint)||ambiguousAsWide&&isAmbiguous(codePoint)?2:1}var require_emoji_regex$1=__commonJSMin(((exports,module)=>{module.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g})),import_emoji_regex=__toESM$1(require_emoji_regex$1(),1);const segmenter$1=new Intl.Segmenter,defaultIgnorableCodePointRegex=/^\p{Default_Ignorable_Code_Point}$/u;function stringWidth(string,options$1={}){if(typeof string!=`string`||string.length===0)return 0;let{ambiguousIsNarrow=!0,countAnsiEscapeCodes=!1}=options$1;if(countAnsiEscapeCodes||(string=stripAnsi$1(string)),string.length===0)return 0;let width=0,eastAsianWidthOptions={ambiguousAsWide:!ambiguousIsNarrow};for(let{segment:character}of segmenter$1.segment(string)){let codePoint=character.codePointAt(0);if(codePoint<=31||codePoint>=127&&codePoint<=159||codePoint>=8203&&codePoint<=8207||codePoint===65279||codePoint>=768&&codePoint<=879||codePoint>=6832&&codePoint<=6911||codePoint>=7616&&codePoint<=7679||codePoint>=8400&&codePoint<=8447||codePoint>=65056&&codePoint<=65071||codePoint>=55296&&codePoint<=57343||codePoint>=65024&&codePoint<=65039||defaultIgnorableCodePointRegex.test(character))continue;if((0,import_emoji_regex.default)().test(character)){width+=2;continue}width+=eastAsianWidth(codePoint,eastAsianWidthOptions)}return width}const ANSI_BACKGROUND_OFFSET=10,wrapAnsi16$1=(offset=0)=>code$1=>`\u001B[${code$1+offset}m`,wrapAnsi256$1=(offset=0)=>code$1=>`\u001B[${38+offset};5;${code$1}m`,wrapAnsi16m$1=(offset=0)=>(red$1,green$1,blue$1)=>`\u001B[${38+offset};2;${red$1};${green$1};${blue$1}m`,styles$4={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},modifierNames=Object.keys(styles$4.modifier),foregroundColorNames=Object.keys(styles$4.color),backgroundColorNames=Object.keys(styles$4.bgColor),colorNames=[...foregroundColorNames,...backgroundColorNames];function assembleStyles$1(){let codes$1=new Map;for(let[groupName,group]of Object.entries(styles$4)){for(let[styleName,style]of Object.entries(group))styles$4[styleName]={open:`\u001B[${style[0]}m`,close:`\u001B[${style[1]}m`},group[styleName]=styles$4[styleName],codes$1.set(style[0],style[1]);Object.defineProperty(styles$4,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles$4,`codes`,{value:codes$1,enumerable:!1}),styles$4.color.close=`\x1B[39m`,styles$4.bgColor.close=`\x1B[49m`,styles$4.color.ansi=wrapAnsi16$1(),styles$4.color.ansi256=wrapAnsi256$1(),styles$4.color.ansi16m=wrapAnsi16m$1(),styles$4.bgColor.ansi=wrapAnsi16$1(10),styles$4.bgColor.ansi256=wrapAnsi256$1(10),styles$4.bgColor.ansi16m=wrapAnsi16m$1(10),Object.defineProperties(styles$4,{rgbToAnsi256:{value:(red$1,green$1,blue$1)=>red$1===green$1&&green$1===blue$1?red$1<8?16:red$1>248?231:Math.round((red$1-8)/247*24)+232:16+36*Math.round(red$1/255*5)+6*Math.round(green$1/255*5)+Math.round(blue$1/255*5),enumerable:!1},hexToRgb:{value:hex=>{let matches=/[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));if(!matches)return[0,0,0];let[colorString]=matches;colorString.length===3&&(colorString=[...colorString].map(character=>character+character).join(``));let integer=Number.parseInt(colorString,16);return[integer>>16&255,integer>>8&255,integer&255]},enumerable:!1},hexToAnsi256:{value:hex=>styles$4.rgbToAnsi256(...styles$4.hexToRgb(hex)),enumerable:!1},ansi256ToAnsi:{value:code$1=>{if(code$1<8)return 30+code$1;if(code$1<16)return 90+(code$1-8);let red$1,green$1,blue$1;if(code$1>=232)red$1=((code$1-232)*10+8)/255,green$1=red$1,blue$1=red$1;else{code$1-=16;let remainder=code$1%36;red$1=Math.floor(code$1/36)/5,green$1=Math.floor(remainder/6)/5,blue$1=remainder%6/5}let value=Math.max(red$1,green$1,blue$1)*2;if(value===0)return 30;let result=30+(Math.round(blue$1)<<2|Math.round(green$1)<<1|Math.round(red$1));return value===2&&(result+=60),result},enumerable:!1},rgbToAnsi:{value:(red$1,green$1,blue$1)=>styles$4.ansi256ToAnsi(styles$4.rgbToAnsi256(red$1,green$1,blue$1)),enumerable:!1},hexToAnsi:{value:hex=>styles$4.ansi256ToAnsi(styles$4.hexToAnsi256(hex)),enumerable:!1}}),styles$4}const ansiStyles$2=assembleStyles$1();var ansi_styles_default=ansiStyles$2;const ESCAPES$4=new Set([`\x1B`,``]),END_CODE=39,ANSI_ESCAPE_BELL=`\x07`,ANSI_CSI=`[`,ANSI_OSC=`]`,ANSI_SGR_TERMINATOR=`m`,ANSI_ESCAPE_LINK=`]8;;`,wrapAnsiCode=code$1=>`${ESCAPES$4.values().next().value}[${code$1}m`,wrapAnsiHyperlink=url$5=>`${ESCAPES$4.values().next().value}${ANSI_ESCAPE_LINK}${url$5}`,wordLengths=string=>string.split(` `).map(character=>stringWidth(character)),wrapWord=(rows,word,columns)=>{let characters=[...word],isInsideEscape=!1,isInsideLinkEscape=!1,visible=stringWidth(stripAnsi$1(rows.at(-1)));for(let[index,character]of characters.entries()){let characterLength=stringWidth(character);if(visible+characterLength<=columns?rows[rows.length-1]+=character:(rows.push(character),visible=0),ESCAPES$4.has(character)){isInsideEscape=!0;let ansiEscapeLinkCandidate=characters.slice(index+1,index+1+4).join(``);isInsideLinkEscape=ansiEscapeLinkCandidate===ANSI_ESCAPE_LINK}if(isInsideEscape){isInsideLinkEscape?character===`\x07`&&(isInsideEscape=!1,isInsideLinkEscape=!1):character===`m`&&(isInsideEscape=!1);continue}visible+=characterLength,visible===columns&&index<characters.length-1&&(rows.push(``),visible=0)}!visible&&rows.at(-1).length>0&&rows.length>1&&(rows[rows.length-2]+=rows.pop())},stringVisibleTrimSpacesRight=string=>{let words$1=string.split(` `),last$1=words$1.length;for(;last$1>0&&!(stringWidth(words$1[last$1-1])>0);)last$1--;return last$1===words$1.length?string:words$1.slice(0,last$1).join(` `)+words$1.slice(last$1).join(``)},exec$1=(string,columns,options$1={})=>{if(options$1.trim!==!1&&string.trim()===``)return``;let returnValue=``,escapeCode,escapeUrl,lengths=wordLengths(string),rows=[``];for(let[index,word]of string.split(` `).entries()){options$1.trim!==!1&&(rows[rows.length-1]=rows.at(-1).trimStart());let rowLength=stringWidth(rows.at(-1));if(index!==0&&(rowLength>=columns&&(options$1.wordWrap===!1||options$1.trim===!1)&&(rows.push(``),rowLength=0),(rowLength>0||options$1.trim===!1)&&(rows[rows.length-1]+=` `,rowLength++)),options$1.hard&&lengths[index]>columns){let remainingColumns=columns-rowLength,breaksStartingThisLine=1+Math.floor((lengths[index]-remainingColumns-1)/columns),breaksStartingNextLine=Math.floor((lengths[index]-1)/columns);breaksStartingNextLine<breaksStartingThisLine&&rows.push(``),wrapWord(rows,word,columns);continue}if(rowLength+lengths[index]>columns&&rowLength>0&&lengths[index]>0){if(options$1.wordWrap===!1&&rowLength<columns){wrapWord(rows,word,columns);continue}rows.push(``)}if(rowLength+lengths[index]>columns&&options$1.wordWrap===!1){wrapWord(rows,word,columns);continue}rows[rows.length-1]+=word}options$1.trim!==!1&&(rows=rows.map(row=>stringVisibleTrimSpacesRight(row)));let preString=rows.join(`
|
|
3
3
|
`),pre=[...preString],preStringIndex=0;for(let[index,character]of pre.entries()){if(returnValue+=character,ESCAPES$4.has(character)){let{groups}=RegExp(`(?:\\[(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*))`).exec(preString.slice(preStringIndex))||{groups:{}};if(groups.code!==void 0){let code$2=Number.parseFloat(groups.code);escapeCode=code$2===39?void 0:code$2}else groups.uri!==void 0&&(escapeUrl=groups.uri.length===0?void 0:groups.uri)}let code$1=ansi_styles_default.codes.get(Number(escapeCode));pre[index+1]===`
|
|
4
4
|
`?(escapeUrl&&(returnValue+=wrapAnsiHyperlink(``)),escapeCode&&code$1&&(returnValue+=wrapAnsiCode(code$1))):character===`
|
|
@@ -245,7 +245,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
245
245
|
--`+boundary),this._bparser.on(`info`,function(isMatch,data$2,start$1,end){self$1._oninfo(isMatch,data$2,start$1,end)})},Dicer$2.prototype._ignore=function(){this._part&&!this._ignoreData&&(this._ignoreData=!0,this._part.on(`error`,EMPTY_FN),this._part.resume())},Dicer$2.prototype._oninfo=function(isMatch,data$2,start$1,end){let buf,self$1=this,i$4=0,r$2,shouldWriteMore=!0;if(!this._part&&this._justMatched&&data$2){for(;this._dashes<2&&start$1+i$4<end;)if(data$2[start$1+i$4]===45)++i$4,++this._dashes;else{this._dashes&&(buf=B_ONEDASH),this._dashes=0;break}if(this._dashes===2&&(start$1+i$4<end&&this.listenerCount(`trailer`)!==0&&this.emit(`trailer`,data$2.slice(start$1+i$4,end)),this.reset(),this._finished=!0,self$1._parts===0&&(self$1._realFinish=!0,self$1.emit(`finish`),self$1._realFinish=!1)),this._dashes)return}this._justMatched&&(this._justMatched=!1),this._part||(this._part=new PartStream(this._partOpts),this._part._read=function(n$2){self$1._unpause()},this._isPreamble&&this.listenerCount(`preamble`)!==0?this.emit(`preamble`,this._part):this._isPreamble!==!0&&this.listenerCount(`part`)!==0?this.emit(`part`,this._part):this._ignore(),this._isPreamble||(this._inHeader=!0)),data$2&&start$1<end&&!this._ignoreData&&(this._isPreamble||!this._inHeader?(buf&&(shouldWriteMore=this._part.push(buf)),shouldWriteMore=this._part.push(data$2.slice(start$1,end)),shouldWriteMore||(this._pause=!0)):!this._isPreamble&&this._inHeader&&(buf&&this._hparser.push(buf),r$2=this._hparser.push(data$2.slice(start$1,end)),!this._inHeader&&r$2!==void 0&&r$2<end&&this._oninfo(!1,data$2,start$1+r$2,end))),isMatch&&(this._hparser.reset(),this._isPreamble?this._isPreamble=!1:start$1!==end&&(++this._parts,this._part.on(`end`,function(){--self$1._parts===0&&(self$1._finished?(self$1._realFinish=!0,self$1.emit(`finish`),self$1._realFinish=!1):self$1._unpause())})),this._part.push(null),this._part=void 0,this._ignoreData=!1,this._justMatched=!0,this._dashes=0)},Dicer$2.prototype._unpause=function(){if(this._pause&&(this._pause=!1,this._cb)){let cb=this._cb;this._cb=void 0,cb()}},module.exports=Dicer$2})),require_decodeText=__commonJSMin(((exports,module)=>{let utf8Decoder=new TextDecoder(`utf-8`),textDecoders=new Map([[`utf-8`,utf8Decoder],[`utf8`,utf8Decoder]]);function getDecoder$1(charset){let lc;for(;;)switch(charset){case`utf-8`:case`utf8`:return decoders.utf8;case`latin1`:case`ascii`:case`us-ascii`:case`iso-8859-1`:case`iso8859-1`:case`iso88591`:case`iso_8859-1`:case`windows-1252`:case`iso_8859-1:1987`:case`cp1252`:case`x-cp1252`:return decoders.latin1;case`utf16le`:case`utf-16le`:case`ucs2`:case`ucs-2`:return decoders.utf16le;case`base64`:return decoders.base64;default:if(lc===void 0){lc=!0,charset=charset.toLowerCase();continue}return decoders.other.bind(charset)}}let decoders={utf8:(data$2,sourceEncoding)=>data$2.length===0?``:(typeof data$2==`string`&&(data$2=Buffer.from(data$2,sourceEncoding)),data$2.utf8Slice(0,data$2.length)),latin1:(data$2,sourceEncoding)=>data$2.length===0?``:typeof data$2==`string`?data$2:data$2.latin1Slice(0,data$2.length),utf16le:(data$2,sourceEncoding)=>data$2.length===0?``:(typeof data$2==`string`&&(data$2=Buffer.from(data$2,sourceEncoding)),data$2.ucs2Slice(0,data$2.length)),base64:(data$2,sourceEncoding)=>data$2.length===0?``:(typeof data$2==`string`&&(data$2=Buffer.from(data$2,sourceEncoding)),data$2.base64Slice(0,data$2.length)),other:(data$2,sourceEncoding)=>{if(data$2.length===0)return``;if(typeof data$2==`string`&&(data$2=Buffer.from(data$2,sourceEncoding)),textDecoders.has(exports.toString()))try{return textDecoders.get(exports).decode(data$2)}catch{}return typeof data$2==`string`?data$2:data$2.toString()}};function decodeText$3(text,sourceEncoding,destEncoding){return text&&getDecoder$1(destEncoding)(text,sourceEncoding)}module.exports=decodeText$3})),require_parseParams=__commonJSMin(((exports,module)=>{let decodeText$2=require_decodeText(),RE_ENCODED=/%[a-fA-F0-9][a-fA-F0-9]/g,EncodedLookup={"%00":`\0`,"%01":``,"%02":``,"%03":``,"%04":``,"%05":``,"%06":``,"%07":`\x07`,"%08":`\b`,"%09":` `,"%0a":`
|
|
246
246
|
`,"%0A":`
|
|
247
247
|
`,"%0b":`\v`,"%0B":`\v`,"%0c":`\f`,"%0C":`\f`,"%0d":`\r`,"%0D":`\r`,"%0e":``,"%0E":``,"%0f":``,"%0F":``,"%10":``,"%11":``,"%12":``,"%13":``,"%14":``,"%15":``,"%16":``,"%17":``,"%18":``,"%19":``,"%1a":``,"%1A":``,"%1b":`\x1B`,"%1B":`\x1B`,"%1c":``,"%1C":``,"%1d":``,"%1D":``,"%1e":``,"%1E":``,"%1f":``,"%1F":``,"%20":` `,"%21":`!`,"%22":`"`,"%23":`#`,"%24":`$`,"%25":`%`,"%26":`&`,"%27":`'`,"%28":`(`,"%29":`)`,"%2a":`*`,"%2A":`*`,"%2b":`+`,"%2B":`+`,"%2c":`,`,"%2C":`,`,"%2d":`-`,"%2D":`-`,"%2e":`.`,"%2E":`.`,"%2f":`/`,"%2F":`/`,"%30":`0`,"%31":`1`,"%32":`2`,"%33":`3`,"%34":`4`,"%35":`5`,"%36":`6`,"%37":`7`,"%38":`8`,"%39":`9`,"%3a":`:`,"%3A":`:`,"%3b":`;`,"%3B":`;`,"%3c":`<`,"%3C":`<`,"%3d":`=`,"%3D":`=`,"%3e":`>`,"%3E":`>`,"%3f":`?`,"%3F":`?`,"%40":`@`,"%41":`A`,"%42":`B`,"%43":`C`,"%44":`D`,"%45":`E`,"%46":`F`,"%47":`G`,"%48":`H`,"%49":`I`,"%4a":`J`,"%4A":`J`,"%4b":`K`,"%4B":`K`,"%4c":`L`,"%4C":`L`,"%4d":`M`,"%4D":`M`,"%4e":`N`,"%4E":`N`,"%4f":`O`,"%4F":`O`,"%50":`P`,"%51":`Q`,"%52":`R`,"%53":`S`,"%54":`T`,"%55":`U`,"%56":`V`,"%57":`W`,"%58":`X`,"%59":`Y`,"%5a":`Z`,"%5A":`Z`,"%5b":`[`,"%5B":`[`,"%5c":`\\`,"%5C":`\\`,"%5d":`]`,"%5D":`]`,"%5e":`^`,"%5E":`^`,"%5f":`_`,"%5F":`_`,"%60":"`","%61":`a`,"%62":`b`,"%63":`c`,"%64":`d`,"%65":`e`,"%66":`f`,"%67":`g`,"%68":`h`,"%69":`i`,"%6a":`j`,"%6A":`j`,"%6b":`k`,"%6B":`k`,"%6c":`l`,"%6C":`l`,"%6d":`m`,"%6D":`m`,"%6e":`n`,"%6E":`n`,"%6f":`o`,"%6F":`o`,"%70":`p`,"%71":`q`,"%72":`r`,"%73":`s`,"%74":`t`,"%75":`u`,"%76":`v`,"%77":`w`,"%78":`x`,"%79":`y`,"%7a":`z`,"%7A":`z`,"%7b":`{`,"%7B":`{`,"%7c":`|`,"%7C":`|`,"%7d":`}`,"%7D":`}`,"%7e":`~`,"%7E":`~`,"%7f":``,"%7F":``,"%80":``,"%81":``,"%82":``,"%83":``,"%84":``,"%85":`
`,"%86":``,"%87":``,"%88":``,"%89":``,"%8a":``,"%8A":``,"%8b":``,"%8B":``,"%8c":``,"%8C":``,"%8d":``,"%8D":``,"%8e":``,"%8E":``,"%8f":``,"%8F":``,"%90":``,"%91":``,"%92":``,"%93":``,"%94":``,"%95":``,"%96":``,"%97":``,"%98":``,"%99":``,"%9a":``,"%9A":``,"%9b":``,"%9B":``,"%9c":``,"%9C":``,"%9d":``,"%9D":``,"%9e":``,"%9E":``,"%9f":``,"%9F":``,"%a0":`\xA0`,"%A0":`\xA0`,"%a1":`¡`,"%A1":`¡`,"%a2":`¢`,"%A2":`¢`,"%a3":`£`,"%A3":`£`,"%a4":`¤`,"%A4":`¤`,"%a5":`¥`,"%A5":`¥`,"%a6":`¦`,"%A6":`¦`,"%a7":`§`,"%A7":`§`,"%a8":`¨`,"%A8":`¨`,"%a9":`©`,"%A9":`©`,"%aa":`ª`,"%Aa":`ª`,"%aA":`ª`,"%AA":`ª`,"%ab":`«`,"%Ab":`«`,"%aB":`«`,"%AB":`«`,"%ac":`¬`,"%Ac":`¬`,"%aC":`¬`,"%AC":`¬`,"%ad":``,"%Ad":``,"%aD":``,"%AD":``,"%ae":`®`,"%Ae":`®`,"%aE":`®`,"%AE":`®`,"%af":`¯`,"%Af":`¯`,"%aF":`¯`,"%AF":`¯`,"%b0":`°`,"%B0":`°`,"%b1":`±`,"%B1":`±`,"%b2":`²`,"%B2":`²`,"%b3":`³`,"%B3":`³`,"%b4":`´`,"%B4":`´`,"%b5":`µ`,"%B5":`µ`,"%b6":`¶`,"%B6":`¶`,"%b7":`·`,"%B7":`·`,"%b8":`¸`,"%B8":`¸`,"%b9":`¹`,"%B9":`¹`,"%ba":`º`,"%Ba":`º`,"%bA":`º`,"%BA":`º`,"%bb":`»`,"%Bb":`»`,"%bB":`»`,"%BB":`»`,"%bc":`¼`,"%Bc":`¼`,"%bC":`¼`,"%BC":`¼`,"%bd":`½`,"%Bd":`½`,"%bD":`½`,"%BD":`½`,"%be":`¾`,"%Be":`¾`,"%bE":`¾`,"%BE":`¾`,"%bf":`¿`,"%Bf":`¿`,"%bF":`¿`,"%BF":`¿`,"%c0":`À`,"%C0":`À`,"%c1":`Á`,"%C1":`Á`,"%c2":`Â`,"%C2":`Â`,"%c3":`Ã`,"%C3":`Ã`,"%c4":`Ä`,"%C4":`Ä`,"%c5":`Å`,"%C5":`Å`,"%c6":`Æ`,"%C6":`Æ`,"%c7":`Ç`,"%C7":`Ç`,"%c8":`È`,"%C8":`È`,"%c9":`É`,"%C9":`É`,"%ca":`Ê`,"%Ca":`Ê`,"%cA":`Ê`,"%CA":`Ê`,"%cb":`Ë`,"%Cb":`Ë`,"%cB":`Ë`,"%CB":`Ë`,"%cc":`Ì`,"%Cc":`Ì`,"%cC":`Ì`,"%CC":`Ì`,"%cd":`Í`,"%Cd":`Í`,"%cD":`Í`,"%CD":`Í`,"%ce":`Î`,"%Ce":`Î`,"%cE":`Î`,"%CE":`Î`,"%cf":`Ï`,"%Cf":`Ï`,"%cF":`Ï`,"%CF":`Ï`,"%d0":`Ð`,"%D0":`Ð`,"%d1":`Ñ`,"%D1":`Ñ`,"%d2":`Ò`,"%D2":`Ò`,"%d3":`Ó`,"%D3":`Ó`,"%d4":`Ô`,"%D4":`Ô`,"%d5":`Õ`,"%D5":`Õ`,"%d6":`Ö`,"%D6":`Ö`,"%d7":`×`,"%D7":`×`,"%d8":`Ø`,"%D8":`Ø`,"%d9":`Ù`,"%D9":`Ù`,"%da":`Ú`,"%Da":`Ú`,"%dA":`Ú`,"%DA":`Ú`,"%db":`Û`,"%Db":`Û`,"%dB":`Û`,"%DB":`Û`,"%dc":`Ü`,"%Dc":`Ü`,"%dC":`Ü`,"%DC":`Ü`,"%dd":`Ý`,"%Dd":`Ý`,"%dD":`Ý`,"%DD":`Ý`,"%de":`Þ`,"%De":`Þ`,"%dE":`Þ`,"%DE":`Þ`,"%df":`ß`,"%Df":`ß`,"%dF":`ß`,"%DF":`ß`,"%e0":`à`,"%E0":`à`,"%e1":`á`,"%E1":`á`,"%e2":`â`,"%E2":`â`,"%e3":`ã`,"%E3":`ã`,"%e4":`ä`,"%E4":`ä`,"%e5":`å`,"%E5":`å`,"%e6":`æ`,"%E6":`æ`,"%e7":`ç`,"%E7":`ç`,"%e8":`è`,"%E8":`è`,"%e9":`é`,"%E9":`é`,"%ea":`ê`,"%Ea":`ê`,"%eA":`ê`,"%EA":`ê`,"%eb":`ë`,"%Eb":`ë`,"%eB":`ë`,"%EB":`ë`,"%ec":`ì`,"%Ec":`ì`,"%eC":`ì`,"%EC":`ì`,"%ed":`í`,"%Ed":`í`,"%eD":`í`,"%ED":`í`,"%ee":`î`,"%Ee":`î`,"%eE":`î`,"%EE":`î`,"%ef":`ï`,"%Ef":`ï`,"%eF":`ï`,"%EF":`ï`,"%f0":`ð`,"%F0":`ð`,"%f1":`ñ`,"%F1":`ñ`,"%f2":`ò`,"%F2":`ò`,"%f3":`ó`,"%F3":`ó`,"%f4":`ô`,"%F4":`ô`,"%f5":`õ`,"%F5":`õ`,"%f6":`ö`,"%F6":`ö`,"%f7":`÷`,"%F7":`÷`,"%f8":`ø`,"%F8":`ø`,"%f9":`ù`,"%F9":`ù`,"%fa":`ú`,"%Fa":`ú`,"%fA":`ú`,"%FA":`ú`,"%fb":`û`,"%Fb":`û`,"%fB":`û`,"%FB":`û`,"%fc":`ü`,"%Fc":`ü`,"%fC":`ü`,"%FC":`ü`,"%fd":`ý`,"%Fd":`ý`,"%fD":`ý`,"%FD":`ý`,"%fe":`þ`,"%Fe":`þ`,"%fE":`þ`,"%FE":`þ`,"%ff":`ÿ`,"%Ff":`ÿ`,"%fF":`ÿ`,"%FF":`ÿ`};function encodedReplacer(match$1){return EncodedLookup[match$1]}let STATE_KEY=0,STATE_VALUE=1,STATE_CHARSET=2,STATE_LANG=3;function parseParams$2(str$1){let res=[],state=0,charset=``,inquote=!1,escaping=!1,p=0,tmp=``,len$1=str$1.length;for(var i$4=0;i$4<len$1;++i$4){let char=str$1[i$4];if(char===`\\`&&inquote)if(escaping)escaping=!1;else{escaping=!0;continue}else if(char===`"`)if(escaping)escaping=!1;else{if(inquote)for(inquote=!1,state=0;i$4+1<len$1&&str$1[i$4+1]!==`;`;)++i$4;else inquote=!0;continue}else if(escaping&&inquote&&(tmp+=`\\`),escaping=!1,(state===2||state===3)&&char===`'`){state===2?(state=3,charset=tmp.substring(1)):state=1,tmp=``;continue}else if(state===0&&(char===`*`||char===`=`)&&res.length){state=char===`*`?2:1,res[p]=[tmp,void 0],tmp=``;continue}else if(!inquote&&char===`;`){state=0,charset?(tmp.length&&(tmp=decodeText$2(tmp.replace(RE_ENCODED,encodedReplacer),`binary`,charset)),charset=``):tmp.length&&(tmp=decodeText$2(tmp,`binary`,`utf8`)),res[p]===void 0?res[p]=tmp:res[p][1]=tmp,tmp=``,++p;continue}else if(!inquote&&(char===` `||char===` `))continue;tmp+=char}return charset&&tmp.length?tmp=decodeText$2(tmp.replace(RE_ENCODED,encodedReplacer),`binary`,charset):tmp&&(tmp=decodeText$2(tmp,`binary`,`utf8`)),res[p]===void 0?tmp&&(res[p]=tmp):res[p][1]=tmp,res}module.exports=parseParams$2})),require_basename=__commonJSMin(((exports,module)=>{module.exports=function(path$40){if(typeof path$40!=`string`)return``;for(var i$4=path$40.length-1;i$4>=0;--i$4)switch(path$40.charCodeAt(i$4)){case 47:case 92:return path$40=path$40.slice(i$4+1),path$40===`..`||path$40===`.`?``:path$40}return path$40===`..`||path$40===`.`?``:path$40}})),require_multipart=__commonJSMin(((exports,module)=>{let{Readable:Readable$5}=__require$2(`node:stream`),{inherits:inherits$1}=__require$2(`node:util`),Dicer$1=require_Dicer(),parseParams$1=require_parseParams(),decodeText$1=require_decodeText(),basename$2=require_basename(),getLimit$1=require_getLimit(),RE_BOUNDARY=/^boundary$/i,RE_FIELD=/^form-data$/i,RE_CHARSET$1=/^charset$/i,RE_FILENAME=/^filename$/i,RE_NAME=/^name$/i;Multipart.detect=/^multipart\/form-data/i;function Multipart(boy,cfg){let i$4,len$1,self$1=this,boundary,limits$1=cfg.limits,isPartAFile=cfg.isPartAFile||((fieldName,contentType,fileName)=>contentType===`application/octet-stream`||fileName!==void 0),parsedConType=cfg.parsedConType||[],defCharset=cfg.defCharset||`utf8`,preservePath=cfg.preservePath,fileOpts={highWaterMark:cfg.fileHwm};for(i$4=0,len$1=parsedConType.length;i$4<len$1;++i$4)if(Array.isArray(parsedConType[i$4])&&RE_BOUNDARY.test(parsedConType[i$4][0])){boundary=parsedConType[i$4][1];break}function checkFinished(){nends===0&&finished$1&&!boy._done&&(finished$1=!1,self$1.end())}if(typeof boundary!=`string`)throw Error(`Multipart: Boundary not found`);let fieldSizeLimit=getLimit$1(limits$1,`fieldSize`,1*1024*1024),fileSizeLimit=getLimit$1(limits$1,`fileSize`,1/0),filesLimit=getLimit$1(limits$1,`files`,1/0),fieldsLimit=getLimit$1(limits$1,`fields`,1/0),partsLimit=getLimit$1(limits$1,`parts`,1/0),headerPairsLimit=getLimit$1(limits$1,`headerPairs`,2e3),headerSizeLimit=getLimit$1(limits$1,`headerSize`,80*1024),nfiles=0,nfields=0,nends=0,curFile,curField,finished$1=!1;this._needDrain=!1,this._pause=!1,this._cb=void 0,this._nparts=0,this._boy=boy;let parserCfg={boundary,maxHeaderPairs:headerPairsLimit,maxHeaderSize:headerSizeLimit,partHwm:fileOpts.highWaterMark,highWaterMark:cfg.highWaterMark};this.parser=new Dicer$1(parserCfg),this.parser.on(`drain`,function(){if(self$1._needDrain=!1,self$1._cb&&!self$1._pause){let cb=self$1._cb;self$1._cb=void 0,cb()}}).on(`part`,function onPart(part){if(++self$1._nparts>partsLimit)return self$1.parser.removeListener(`part`,onPart),self$1.parser.on(`part`,skipPart),boy.hitPartsLimit=!0,boy.emit(`partsLimit`),skipPart(part);if(curField){let field=curField;field.emit(`end`),field.removeAllListeners(`end`)}part.on(`header`,function(header){let contype,fieldname,parsed,charset,encoding,filename,nsize=0;if(header[`content-type`]&&(parsed=parseParams$1(header[`content-type`][0]),parsed[0])){for(contype=parsed[0].toLowerCase(),i$4=0,len$1=parsed.length;i$4<len$1;++i$4)if(RE_CHARSET$1.test(parsed[i$4][0])){charset=parsed[i$4][1].toLowerCase();break}}if(contype===void 0&&(contype=`text/plain`),charset===void 0&&(charset=defCharset),header[`content-disposition`]){if(parsed=parseParams$1(header[`content-disposition`][0]),!RE_FIELD.test(parsed[0]))return skipPart(part);for(i$4=0,len$1=parsed.length;i$4<len$1;++i$4)RE_NAME.test(parsed[i$4][0])?fieldname=parsed[i$4][1]:RE_FILENAME.test(parsed[i$4][0])&&(filename=parsed[i$4][1],preservePath||(filename=basename$2(filename)))}else return skipPart(part);encoding=header[`content-transfer-encoding`]?header[`content-transfer-encoding`][0].toLowerCase():`7bit`;let onData,onEnd;if(isPartAFile(fieldname,contype,filename)){if(nfiles===filesLimit)return boy.hitFilesLimit||(boy.hitFilesLimit=!0,boy.emit(`filesLimit`)),skipPart(part);if(++nfiles,boy.listenerCount(`file`)===0){self$1.parser._ignore();return}++nends;let file=new FileStream(fileOpts);curFile=file,file.on(`end`,function(){if(--nends,self$1._pause=!1,checkFinished(),self$1._cb&&!self$1._needDrain){let cb=self$1._cb;self$1._cb=void 0,cb()}}),file._read=function(n$2){if(self$1._pause&&(self$1._pause=!1,self$1._cb&&!self$1._needDrain)){let cb=self$1._cb;self$1._cb=void 0,cb()}},boy.emit(`file`,fieldname,file,filename,encoding,contype),onData=function(data$2){if((nsize+=data$2.length)>fileSizeLimit){let extralen=fileSizeLimit-nsize+data$2.length;extralen>0&&file.push(data$2.slice(0,extralen)),file.truncated=!0,file.bytesRead=fileSizeLimit,part.removeAllListeners(`data`),file.emit(`limit`);return}else file.push(data$2)||(self$1._pause=!0);file.bytesRead=nsize},onEnd=function(){curFile=void 0,file.push(null)}}else{if(nfields===fieldsLimit)return boy.hitFieldsLimit||(boy.hitFieldsLimit=!0,boy.emit(`fieldsLimit`)),skipPart(part);++nfields,++nends;let buffer$1=``,truncated=!1;curField=part,onData=function(data$2){if((nsize+=data$2.length)>fieldSizeLimit){let extralen=fieldSizeLimit-(nsize-data$2.length);buffer$1+=data$2.toString(`binary`,0,extralen),truncated=!0,part.removeAllListeners(`data`)}else buffer$1+=data$2.toString(`binary`)},onEnd=function(){curField=void 0,buffer$1.length&&(buffer$1=decodeText$1(buffer$1,`binary`,charset)),boy.emit(`field`,fieldname,buffer$1,!1,truncated,encoding,contype),--nends,checkFinished()}}part._readableState.sync=!1,part.on(`data`,onData),part.on(`end`,onEnd)}).on(`error`,function(err){curFile&&curFile.emit(`error`,err)})}).on(`error`,function(err){boy.emit(`error`,err)}).on(`finish`,function(){finished$1=!0,checkFinished()})}Multipart.prototype.write=function(chunk$1,cb){let r$2=this.parser.write(chunk$1);r$2&&!this._pause?cb():(this._needDrain=!r$2,this._cb=cb)},Multipart.prototype.end=function(){let self$1=this;self$1.parser.writable?self$1.parser.end():self$1._boy._done||process.nextTick(function(){self$1._boy._done=!0,self$1._boy.emit(`finish`)})};function skipPart(part){part.resume()}function FileStream(opts){Readable$5.call(this,opts),this.bytesRead=0,this.truncated=!1}inherits$1(FileStream,Readable$5),FileStream.prototype._read=function(n$2){},module.exports=Multipart})),require_Decoder=__commonJSMin(((exports,module)=>{let RE_PLUS=/\+/g,HEX=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function Decoder$1(){this.buffer=void 0}Decoder$1.prototype.write=function(str$1){str$1=str$1.replace(RE_PLUS,` `);let res=``,i$4=0,p=0,len$1=str$1.length;for(;i$4<len$1;++i$4)this.buffer===void 0?str$1[i$4]===`%`&&(i$4>p&&(res+=str$1.substring(p,i$4),p=i$4),this.buffer=``,++p):HEX[str$1.charCodeAt(i$4)]?(this.buffer+=str$1[i$4],++p,this.buffer.length===2&&(res+=String.fromCharCode(parseInt(this.buffer,16)),this.buffer=void 0)):(res+=`%`+this.buffer,this.buffer=void 0,--i$4);return p<len$1&&this.buffer===void 0&&(res+=str$1.substring(p)),res},Decoder$1.prototype.reset=function(){this.buffer=void 0},module.exports=Decoder$1})),require_urlencoded=__commonJSMin(((exports,module)=>{let Decoder=require_Decoder(),decodeText=require_decodeText(),getLimit=require_getLimit(),RE_CHARSET=/^charset$/i;UrlEncoded.detect=/^application\/x-www-form-urlencoded/i;function UrlEncoded(boy,cfg){let limits$1=cfg.limits,parsedConType=cfg.parsedConType;this.boy=boy,this.fieldSizeLimit=getLimit(limits$1,`fieldSize`,1*1024*1024),this.fieldNameSizeLimit=getLimit(limits$1,`fieldNameSize`,100),this.fieldsLimit=getLimit(limits$1,`fields`,1/0);let charset;for(var i$4=0,len$1=parsedConType.length;i$4<len$1;++i$4)if(Array.isArray(parsedConType[i$4])&&RE_CHARSET.test(parsedConType[i$4][0])){charset=parsedConType[i$4][1].toLowerCase();break}charset===void 0&&(charset=cfg.defCharset||`utf8`),this.decoder=new Decoder,this.charset=charset,this._fields=0,this._state=`key`,this._checkingBytes=!0,this._bytesKey=0,this._bytesVal=0,this._key=``,this._val=``,this._keyTrunc=!1,this._valTrunc=!1,this._hitLimit=!1}UrlEncoded.prototype.write=function(data$2,cb){if(this._fields===this.fieldsLimit)return this.boy.hitFieldsLimit||(this.boy.hitFieldsLimit=!0,this.boy.emit(`fieldsLimit`)),cb();let idxeq,idxamp,i$4,p=0,len$1=data$2.length;for(;p<len$1;)if(this._state===`key`){for(idxeq=idxamp=void 0,i$4=p;i$4<len$1;++i$4){if(this._checkingBytes||++p,data$2[i$4]===61){idxeq=i$4;break}else if(data$2[i$4]===38){idxamp=i$4;break}if(this._checkingBytes&&this._bytesKey===this.fieldNameSizeLimit){this._hitLimit=!0;break}else this._checkingBytes&&++this._bytesKey}if(idxeq!==void 0)idxeq>p&&(this._key+=this.decoder.write(data$2.toString(`binary`,p,idxeq))),this._state=`val`,this._hitLimit=!1,this._checkingBytes=!0,this._val=``,this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),p=idxeq+1;else if(idxamp!==void 0){++this._fields;let key,keyTrunc=this._keyTrunc;if(key=idxamp>p?this._key+=this.decoder.write(data$2.toString(`binary`,p,idxamp)):this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key=``,this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),key.length&&this.boy.emit(`field`,decodeText(key,`binary`,this.charset),``,keyTrunc,!1),p=idxamp+1,this._fields===this.fieldsLimit)return cb()}else this._hitLimit?(i$4>p&&(this._key+=this.decoder.write(data$2.toString(`binary`,p,i$4))),p=i$4,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(p<len$1&&(this._key+=this.decoder.write(data$2.toString(`binary`,p))),p=len$1)}else{for(idxamp=void 0,i$4=p;i$4<len$1;++i$4){if(this._checkingBytes||++p,data$2[i$4]===38){idxamp=i$4;break}if(this._checkingBytes&&this._bytesVal===this.fieldSizeLimit){this._hitLimit=!0;break}else this._checkingBytes&&++this._bytesVal}if(idxamp!==void 0){if(++this._fields,idxamp>p&&(this._val+=this.decoder.write(data$2.toString(`binary`,p,idxamp))),this.boy.emit(`field`,decodeText(this._key,`binary`,this.charset),decodeText(this._val,`binary`,this.charset),this._keyTrunc,this._valTrunc),this._state=`key`,this._hitLimit=!1,this._checkingBytes=!0,this._key=``,this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),p=idxamp+1,this._fields===this.fieldsLimit)return cb()}else this._hitLimit?(i$4>p&&(this._val+=this.decoder.write(data$2.toString(`binary`,p,i$4))),p=i$4,(this._val===``&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(p<len$1&&(this._val+=this.decoder.write(data$2.toString(`binary`,p))),p=len$1)}cb()},UrlEncoded.prototype.end=function(){this.boy._done||(this._state===`key`&&this._key.length>0?this.boy.emit(`field`,decodeText(this._key,`binary`,this.charset),``,this._keyTrunc,!1):this._state===`val`&&this.boy.emit(`field`,decodeText(this._key,`binary`,this.charset),decodeText(this._val,`binary`,this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit(`finish`))},module.exports=UrlEncoded})),require_main=__commonJSMin(((exports,module)=>{let WritableStream=__require$2(`node:stream`).Writable,{inherits}=__require$2(`node:util`),Dicer=require_Dicer(),MultipartParser=require_multipart(),UrlencodedParser=require_urlencoded(),parseParams=require_parseParams();function Busboy(opts){if(!(this instanceof Busboy))return new Busboy(opts);if(typeof opts!=`object`)throw TypeError(`Busboy expected an options-Object.`);if(typeof opts.headers!=`object`)throw TypeError(`Busboy expected an options-Object with headers-attribute.`);if(typeof opts.headers[`content-type`]!=`string`)throw TypeError(`Missing Content-Type-header.`);let{headers,...streamOptions}=opts;this.opts={autoDestroy:!1,...streamOptions},WritableStream.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(headers),this._finished=!1}inherits(Busboy,WritableStream),Busboy.prototype.emit=function(ev){if(ev===`finish`){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}WritableStream.prototype.emit.apply(this,arguments)},Busboy.prototype.getParserByHeaders=function(headers){let parsed=parseParams(headers[`content-type`]),cfg={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:parsed,preservePath:this.opts.preservePath};if(MultipartParser.detect.test(parsed[0]))return new MultipartParser(this,cfg);if(UrlencodedParser.detect.test(parsed[0]))return new UrlencodedParser(this,cfg);throw Error(`Unsupported Content-Type.`)},Busboy.prototype._write=function(chunk$1,encoding,cb){this._parser.write(chunk$1,cb)},module.exports=Busboy,module.exports.default=Busboy,module.exports.Busboy=Busboy,module.exports.Dicer=Dicer})),require_utils$85=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fakePromise=void 0,exports.getHeadersObj=getHeadersObj,exports.defaultHeadersSerializer=defaultHeadersSerializer,exports.isArrayBufferView=isArrayBufferView$1,exports.isNodeReadable=isNodeReadable$1,exports.isIterable=isIterable$2,exports.shouldRedirect=shouldRedirect,exports.pipeThrough=pipeThrough,exports.endStream=endStream$1,exports.safeWrite=safeWrite$1;let node_events_1$4=__require$2(`node:events`);function isHeadersInstance(obj){return obj?.forEach!=null}function getHeadersObj(headers){return headers==null||!isHeadersInstance(headers)?headers:headers.headersInit&&!headers._map&&!isHeadersInstance(headers.headersInit)?headers.headersInit:Object.fromEntries(headers.entries())}function defaultHeadersSerializer(headers,onContentLength){let headerArray=[];return headers.forEach((value,key)=>{onContentLength&&key===`content-length`&&onContentLength(value),headerArray.push(`${key}: ${value}`)}),headerArray}var promise_helpers_1$6=require_cjs$4();Object.defineProperty(exports,`fakePromise`,{enumerable:!0,get:function(){return promise_helpers_1$6.fakePromise}});function isArrayBufferView$1(obj){return obj!=null&&obj.buffer!=null&&obj.byteLength!=null&&obj.byteOffset!=null}function isNodeReadable$1(obj){return obj!=null&&obj.pipe!=null}function isIterable$2(value){return value?.[Symbol.iterator]!=null}function shouldRedirect(status){return status===301||status===302||status===303||status===307||status===308}function pipeThrough({src,dest,signal,onError:onError$1}){if(onError$1&&dest.once(`error`,onError$1),src.once(`error`,e$1=>{dest.destroy(e$1)}),dest.once(`close`,()=>{src.destroyed||src.destroy()}),signal){let srcRef=new WeakRef(src),signalRef=new WeakRef(signal);function cleanup(){signalRef.deref()?.removeEventListener(`abort`,onAbort),srcRef.deref()?.removeListener(`end`,cleanup),srcRef.deref()?.removeListener(`error`,cleanup),srcRef.deref()?.removeListener(`close`,cleanup)}function onAbort(){srcRef.deref()?.destroy(new AbortError$3),cleanup()}signal.addEventListener(`abort`,onAbort,{once:!0}),src.once(`end`,cleanup),src.once(`error`,cleanup),src.once(`close`,cleanup)}src.pipe(dest,{end:!0})}function endStream$1(stream$8){return stream$8.end(null,null,null)}function safeWrite$1(chunk$1,stream$8){let result=stream$8.write(chunk$1);if(!result)return(0,node_events_1$4.once)(stream$8,`drain`)}var AbortError$3=class extends Error{constructor(message=`The operation was aborted`,options$1=void 0){super(message,options$1),this.name=`AbortError`}}})),require_ReadableStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillReadableStream=void 0;let node_buffer_1$6=__require$2(`node:buffer`),node_events_1$3=__require$2(`node:events`),node_stream_1$5=__require$2(`node:stream`),promises_1=__require$2(`node:stream/promises`),promise_helpers_1$5=require_cjs$4(),utils_js_1$11=require_utils$85();function createController(desiredSize,readable$1){let chunks=[],_closed=!1,flushed=!1;return{desiredSize,enqueue(chunk$1){let buf=typeof chunk$1==`string`?node_buffer_1$6.Buffer.from(chunk$1):chunk$1;flushed?readable$1.push(buf):chunks.push(buf)},close(){chunks.length>0&&this._flush(),readable$1.push(null),_closed=!0},error(error$22){chunks.length>0&&this._flush(),readable$1.destroy(error$22)},get _closed(){return _closed},_flush(){if(flushed=!0,chunks.length>0){let concatenated=chunks.length>1?node_buffer_1$6.Buffer.concat(chunks):chunks[0];readable$1.push(concatenated),chunks=[]}}}}function isNodeReadable(obj){return obj?.read!=null}function isReadableStream$4(obj){return obj?.getReader!=null}var PonyfillReadableStream=class PonyfillReadableStream{readable;constructor(underlyingSource){if(underlyingSource instanceof PonyfillReadableStream&&underlyingSource.readable!=null)this.readable=underlyingSource.readable;else if(isNodeReadable(underlyingSource))this.readable=underlyingSource;else if(isReadableStream$4(underlyingSource))this.readable=node_stream_1$5.Readable.fromWeb(underlyingSource);else{let started=!1,ongoing=!1,handleStart=desiredSize=>{if(!started){let controller=createController(desiredSize,this.readable);return started=!0,(0,promise_helpers_1$5.handleMaybePromise)(()=>underlyingSource?.start?.(controller),()=>(controller._flush(),!controller._closed))}return!0},readImpl=desiredSize=>(0,promise_helpers_1$5.handleMaybePromise)(()=>handleStart(desiredSize),shouldContinue=>{if(!shouldContinue)return;let controller=createController(desiredSize,this.readable);return(0,promise_helpers_1$5.handleMaybePromise)(()=>underlyingSource?.pull?.(controller),()=>{controller._flush(),ongoing=!1})});this.readable=new node_stream_1$5.Readable({read(desiredSize){if(!ongoing)return ongoing=!0,readImpl(desiredSize)},destroy(err,callback$1){if(underlyingSource?.cancel)try{let res$=underlyingSource.cancel(err);if(res$?.then)return res$.then(()=>{callback$1(null)},err$1=>{callback$1(err$1)})}catch(err$1){callback$1(err$1);return}callback$1(null)}})}}cancel(reason){return this.readable.destroy(reason),(0,node_events_1$3.once)(this.readable,`close`)}locked=!1;getReader(_options$1){let iterator=this.readable[Symbol.asyncIterator]();this.locked=!0;let thisReadable=this.readable;return{read(){return iterator.next()},releaseLock:()=>{if(iterator.return){let retResult$=iterator.return();if(retResult$.then){retResult$.then(()=>{this.locked=!1});return}}this.locked=!1},cancel:reason=>{if(iterator.return){let retResult$=iterator.return(reason);if(retResult$.then)return retResult$.then(()=>{this.locked=!1})}return this.locked=!1,(0,utils_js_1$11.fakePromise)()},get closed(){return Promise.race([(0,node_events_1$3.once)(thisReadable,`end`),(0,node_events_1$3.once)(thisReadable,`error`).then(err=>Promise.reject(err))])}}}[Symbol.asyncIterator](){let iterator=this.readable[Symbol.asyncIterator]();return{[Symbol.asyncIterator](){return this},next:()=>iterator.next(),return:()=>(this.readable.destroyed||this.readable.destroy(),iterator.return?.()||(0,utils_js_1$11.fakePromise)({done:!0,value:void 0})),throw:err=>(this.readable.destroyed||this.readable.destroy(err),iterator.throw?.(err)||(0,utils_js_1$11.fakePromise)({done:!0,value:void 0}))}}tee(){throw Error(`Not implemented`)}async pipeToWriter(writer){try{for await(let chunk$1 of this)await writer.write(chunk$1);await writer.close()}catch(err){await writer.abort(err)}}pipeTo(destination){if(isPonyfillWritableStream(destination))return(0,promises_1.pipeline)(this.readable,destination.writable,{end:!0});{let writer=destination.getWriter();return this.pipeToWriter(writer)}}pipeThrough({writable:writable$1,readable:readable$1}){return this.pipeTo(writable$1).catch(err=>{this.readable.destroy(err)}),isPonyfillReadableStream(readable$1)&&(readable$1.readable.once(`error`,err=>this.readable.destroy(err)),readable$1.readable.once(`finish`,()=>this.readable.push(null)),readable$1.readable.once(`close`,()=>this.readable.push(null))),readable$1}static[Symbol.hasInstance](instance$1){return isReadableStream$4(instance$1)}static from(iterable){return new PonyfillReadableStream(node_stream_1$5.Readable.from(iterable))}[Symbol.toStringTag]=`ReadableStream`};exports.PonyfillReadableStream=PonyfillReadableStream;function isPonyfillReadableStream(obj){return obj?.readable!=null}function isPonyfillWritableStream(obj){return obj?.writable!=null}})),require_Blob=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillBlob=void 0,exports.hasBufferMethod=hasBufferMethod,exports.hasArrayBufferMethod=hasArrayBufferMethod,exports.hasBytesMethod=hasBytesMethod,exports.hasTextMethod=hasTextMethod,exports.hasSizeProperty=hasSizeProperty,exports.hasStreamMethod=hasStreamMethod,exports.hasBlobSignature=hasBlobSignature,exports.isArrayBuffer=isArrayBuffer$2;let node_buffer_1$5=__require$2(`node:buffer`),ReadableStream_js_1$4=require_ReadableStream(),utils_js_1$10=require_utils$85();function getBlobPartAsBuffer(blobPart){return typeof blobPart==`string`?node_buffer_1$5.Buffer.from(blobPart):node_buffer_1$5.Buffer.isBuffer(blobPart)?blobPart:(0,utils_js_1$10.isArrayBufferView)(blobPart)?node_buffer_1$5.Buffer.from(blobPart.buffer,blobPart.byteOffset,blobPart.byteLength):node_buffer_1$5.Buffer.from(blobPart)}function hasBufferMethod(obj){return obj!=null&&obj.buffer!=null&&typeof obj.buffer==`function`}function hasArrayBufferMethod(obj){return obj!=null&&obj.arrayBuffer!=null&&typeof obj.arrayBuffer==`function`}function hasBytesMethod(obj){return obj!=null&&obj.bytes!=null&&typeof obj.bytes==`function`}function hasTextMethod(obj){return obj!=null&&obj.text!=null&&typeof obj.text==`function`}function hasSizeProperty(obj){return obj!=null&&typeof obj.size==`number`}function hasStreamMethod(obj){return obj!=null&&obj.stream!=null&&typeof obj.stream==`function`}function hasBlobSignature(obj){return obj!=null&&obj[Symbol.toStringTag]===`Blob`}function isArrayBuffer$2(obj){return obj!=null&&obj.byteLength!=null&&obj.slice!=null}var PonyfillBlob=class{blobParts;type;encoding;_size=null;constructor(blobParts=[],options$1){if(this.blobParts=blobParts,this.type=options$1?.type||`application/octet-stream`,this.encoding=options$1?.encoding||`utf8`,this._size=options$1?.size||null,blobParts.length===1&&hasBlobSignature(blobParts[0]))return blobParts[0]}_buffer=null;buffer(){if(this._buffer)return(0,utils_js_1$10.fakePromise)(this._buffer);if(this.blobParts.length===1){let blobPart=this.blobParts[0];return hasBufferMethod(blobPart)?blobPart.buffer().then(buf=>(this._buffer=buf,this._buffer)):hasBytesMethod(blobPart)?blobPart.bytes().then(bytes=>(this._buffer=node_buffer_1$5.Buffer.from(bytes),this._buffer)):hasArrayBufferMethod(blobPart)?blobPart.arrayBuffer().then(arrayBuf=>(this._buffer=node_buffer_1$5.Buffer.from(arrayBuf,void 0,blobPart.size),this._buffer)):(this._buffer=getBlobPartAsBuffer(blobPart),(0,utils_js_1$10.fakePromise)(this._buffer))}let jobs=[],bufferChunks=this.blobParts.map((blobPart,i$4)=>{if(hasBufferMethod(blobPart)){jobs.push(blobPart.buffer().then(buf=>{bufferChunks[i$4]=buf}));return}else if(hasArrayBufferMethod(blobPart)){jobs.push(blobPart.arrayBuffer().then(arrayBuf=>{bufferChunks[i$4]=node_buffer_1$5.Buffer.from(arrayBuf,void 0,blobPart.size)}));return}else if(hasBytesMethod(blobPart)){jobs.push(blobPart.bytes().then(bytes=>{bufferChunks[i$4]=node_buffer_1$5.Buffer.from(bytes)}));return}else return getBlobPartAsBuffer(blobPart)});return jobs.length>0?Promise.all(jobs).then(()=>node_buffer_1$5.Buffer.concat(bufferChunks,this._size||void 0)):(0,utils_js_1$10.fakePromise)(node_buffer_1$5.Buffer.concat(bufferChunks,this._size||void 0))}arrayBuffer(){if(this._buffer)return(0,utils_js_1$10.fakePromise)(this._buffer);if(this.blobParts.length===1){if(isArrayBuffer$2(this.blobParts[0]))return(0,utils_js_1$10.fakePromise)(this.blobParts[0]);if(hasArrayBufferMethod(this.blobParts[0]))return this.blobParts[0].arrayBuffer()}return this.buffer()}bytes(){if(this._buffer)return(0,utils_js_1$10.fakePromise)(this._buffer);if(this.blobParts.length===1){if(node_buffer_1$5.Buffer.isBuffer(this.blobParts[0]))return this._buffer=this.blobParts[0],(0,utils_js_1$10.fakePromise)(this._buffer);if(this.blobParts[0]instanceof Uint8Array)return this._buffer=node_buffer_1$5.Buffer.from(this.blobParts[0]),(0,utils_js_1$10.fakePromise)(this._buffer);if(hasBytesMethod(this.blobParts[0]))return this.blobParts[0].bytes();if(hasBufferMethod(this.blobParts[0]))return this.blobParts[0].buffer()}return this.buffer()}_text=null;text(){if(this._text)return(0,utils_js_1$10.fakePromise)(this._text);if(this.blobParts.length===1){let blobPart=this.blobParts[0];if(typeof blobPart==`string`)return this._text=blobPart,(0,utils_js_1$10.fakePromise)(this._text);if(hasTextMethod(blobPart))return blobPart.text().then(text=>(this._text=text,this._text));let buf=getBlobPartAsBuffer(blobPart);return this._text=buf.toString(this.encoding),(0,utils_js_1$10.fakePromise)(this._text)}return this.buffer().then(buf=>(this._text=buf.toString(this.encoding),this._text))}_json=null;json(){return this._json?(0,utils_js_1$10.fakePromise)(this._json):this.text().then(text=>(this._json=JSON.parse(text),this._json))}_formData=null;formData(){if(this._formData)return(0,utils_js_1$10.fakePromise)(this._formData);throw Error(`Not implemented`)}get size(){if(this._size==null){this._size=0;for(let blobPart of this.blobParts)typeof blobPart==`string`?this._size+=node_buffer_1$5.Buffer.byteLength(blobPart):hasSizeProperty(blobPart)?this._size+=blobPart.size:(0,utils_js_1$10.isArrayBufferView)(blobPart)&&(this._size+=blobPart.byteLength)}return this._size}stream(){if(this.blobParts.length===1){let blobPart=this.blobParts[0];if(hasStreamMethod(blobPart))return blobPart.stream();let buf=getBlobPartAsBuffer(blobPart);return new ReadableStream_js_1$4.PonyfillReadableStream({start:controller=>{controller.enqueue(buf),controller.close()}})}if(this._buffer!=null)return new ReadableStream_js_1$4.PonyfillReadableStream({start:controller=>{controller.enqueue(this._buffer),controller.close()}});let blobPartIterator;return new ReadableStream_js_1$4.PonyfillReadableStream({start:controller=>{if(this.blobParts.length===0){controller.close();return}blobPartIterator=this.blobParts[Symbol.iterator]()},pull:controller=>{let{value:blobPart,done}=blobPartIterator.next();if(done){controller.close();return}if(blobPart){if(hasBufferMethod(blobPart))return blobPart.buffer().then(buf$1=>{controller.enqueue(buf$1)});if(hasBytesMethod(blobPart))return blobPart.bytes().then(bytes=>{let buf$1=node_buffer_1$5.Buffer.from(bytes);controller.enqueue(buf$1)});if(hasArrayBufferMethod(blobPart))return blobPart.arrayBuffer().then(arrayBuffer=>{let buf$1=node_buffer_1$5.Buffer.from(arrayBuffer,void 0,blobPart.size);controller.enqueue(buf$1)});let buf=getBlobPartAsBuffer(blobPart);controller.enqueue(buf)}}})}slice(){throw Error(`Not implemented`)}};exports.PonyfillBlob=PonyfillBlob})),require_File=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillFile=void 0;let Blob_js_1$2=require_Blob();var PonyfillFile=class extends Blob_js_1$2.PonyfillBlob{name;lastModified;constructor(fileBits,name$3,options$1){super(fileBits,options$1),this.name=name$3,this.lastModified=options$1?.lastModified||Date.now()}webkitRelativePath=``};exports.PonyfillFile=PonyfillFile})),tslib_es6_exports={};__export$2(tslib_es6_exports,{__addDisposableResource:()=>__addDisposableResource,__assign:()=>__assign,__asyncDelegator:()=>__asyncDelegator,__asyncGenerator:()=>__asyncGenerator$1,__asyncValues:()=>__asyncValues$1,__await:()=>__await$1,__awaiter:()=>__awaiter,__classPrivateFieldGet:()=>__classPrivateFieldGet$8,__classPrivateFieldIn:()=>__classPrivateFieldIn,__classPrivateFieldSet:()=>__classPrivateFieldSet$4,__createBinding:()=>__createBinding$10,__decorate:()=>__decorate,__disposeResources:()=>__disposeResources,__esDecorate:()=>__esDecorate$1,__exportStar:()=>__exportStar$5,__extends:()=>__extends,__generator:()=>__generator,__importDefault:()=>__importDefault$14,__importStar:()=>__importStar$7,__makeTemplateObject:()=>__makeTemplateObject,__metadata:()=>__metadata,__param:()=>__param,__propKey:()=>__propKey,__read:()=>__read,__rest:()=>__rest,__rewriteRelativeImportExtension:()=>__rewriteRelativeImportExtension,__runInitializers:()=>__runInitializers$1,__setFunctionName:()=>__setFunctionName,__spread:()=>__spread,__spreadArray:()=>__spreadArray,__spreadArrays:()=>__spreadArrays,__values:()=>__values$1,default:()=>tslib_es6_default});function __extends(d$3,b$2){if(typeof b$2!=`function`&&b$2!==null)throw TypeError(`Class extends value `+String(b$2)+` is not a constructor or null`);extendStatics(d$3,b$2);function __(){this.constructor=d$3}d$3.prototype=b$2===null?Object.create(b$2):(__.prototype=b$2.prototype,new __)}function __rest(s$3,e$1){var t$1={};for(var p in s$3)Object.prototype.hasOwnProperty.call(s$3,p)&&e$1.indexOf(p)<0&&(t$1[p]=s$3[p]);if(s$3!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i$4=0,p=Object.getOwnPropertySymbols(s$3);i$4<p.length;i$4++)e$1.indexOf(p[i$4])<0&&Object.prototype.propertyIsEnumerable.call(s$3,p[i$4])&&(t$1[p[i$4]]=s$3[p[i$4]]);return t$1}function __decorate(decorators,target,key,desc){var c$3=arguments.length,r$2=c$3<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d$3;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)r$2=Reflect.decorate(decorators,target,key,desc);else for(var i$4=decorators.length-1;i$4>=0;i$4--)(d$3=decorators[i$4])&&(r$2=(c$3<3?d$3(r$2):c$3>3?d$3(target,key,r$2):d$3(target,key))||r$2);return c$3>3&&r$2&&Object.defineProperty(target,key,r$2),r$2}function __param(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}}function __esDecorate$1(ctor,descriptorIn,decorators,contextIn,initializers,extraInitializers){function accept(f){if(f!==void 0&&typeof f!=`function`)throw TypeError(`Function expected`);return f}for(var kind=contextIn.kind,key=kind===`getter`?`get`:kind===`setter`?`set`:`value`,target=!descriptorIn&&ctor?contextIn.static?ctor:ctor.prototype:null,descriptor$1=descriptorIn||(target?Object.getOwnPropertyDescriptor(target,contextIn.name):{}),_$3,done=!1,i$4=decorators.length-1;i$4>=0;i$4--){var context={};for(var p in contextIn)context[p]=p===`access`?{}:contextIn[p];for(var p in contextIn.access)context.access[p]=contextIn.access[p];context.addInitializer=function(f){if(done)throw TypeError(`Cannot add initializers after decoration has completed`);extraInitializers.push(accept(f||null))};var result=(0,decorators[i$4])(kind===`accessor`?{get:descriptor$1.get,set:descriptor$1.set}:descriptor$1[key],context);if(kind===`accessor`){if(result===void 0)continue;if(typeof result!=`object`||!result)throw TypeError(`Object expected`);(_$3=accept(result.get))&&(descriptor$1.get=_$3),(_$3=accept(result.set))&&(descriptor$1.set=_$3),(_$3=accept(result.init))&&initializers.unshift(_$3)}else (_$3=accept(result))&&(kind===`field`?initializers.unshift(_$3):descriptor$1[key]=_$3)}target&&Object.defineProperty(target,contextIn.name,descriptor$1),done=!0}function __runInitializers$1(thisArg,initializers,value){for(var useValue=arguments.length>2,i$4=0;i$4<initializers.length;i$4++)value=useValue?initializers[i$4].call(thisArg,value):initializers[i$4].call(thisArg);return useValue?value:void 0}function __propKey(x$1){return typeof x$1==`symbol`?x$1:`${x$1}`}function __setFunctionName(f,name$3,prefix){return typeof name$3==`symbol`&&(name$3=name$3.description?`[${name$3.description}]`:``),Object.defineProperty(f,`name`,{configurable:!0,value:prefix?`${prefix} ${name$3}`:name$3})}function __metadata(metadataKey,metadataValue){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(metadataKey,metadataValue)}function __awaiter(thisArg,_arguments,P$2,generator){function adopt(value){return value instanceof P$2?value:new P$2(function(resolve$9){resolve$9(value)})}return new(P$2||(P$2=Promise))(function(resolve$9,reject){function fulfilled(value){try{step(generator.next(value))}catch(e$1){reject(e$1)}}function rejected(value){try{step(generator.throw(value))}catch(e$1){reject(e$1)}}function step(result){result.done?resolve$9(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})}function __generator(thisArg,body){var _$3={label:0,sent:function(){if(t$1[0]&1)throw t$1[1];return t$1[1]},trys:[],ops:[]},f,y$3,t$1,g=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return g.next=verb(0),g.throw=verb(1),g.return=verb(2),typeof Symbol==`function`&&(g[Symbol.iterator]=function(){return this}),g;function verb(n$2){return function(v$1){return step([n$2,v$1])}}function step(op){if(f)throw TypeError(`Generator is already executing.`);for(;g&&(g=0,op[0]&&(_$3=0)),_$3;)try{if(f=1,y$3&&(t$1=op[0]&2?y$3.return:op[0]?y$3.throw||((t$1=y$3.return)&&t$1.call(y$3),0):y$3.next)&&!(t$1=t$1.call(y$3,op[1])).done)return t$1;switch(y$3=0,t$1&&(op=[op[0]&2,t$1.value]),op[0]){case 0:case 1:t$1=op;break;case 4:return _$3.label++,{value:op[1],done:!1};case 5:_$3.label++,y$3=op[1],op=[0];continue;case 7:op=_$3.ops.pop(),_$3.trys.pop();continue;default:if((t$1=_$3.trys,!(t$1=t$1.length>0&&t$1[t$1.length-1]))&&(op[0]===6||op[0]===2)){_$3=0;continue}if(op[0]===3&&(!t$1||op[1]>t$1[0]&&op[1]<t$1[3])){_$3.label=op[1];break}if(op[0]===6&&_$3.label<t$1[1]){_$3.label=t$1[1],t$1=op;break}if(t$1&&_$3.label<t$1[2]){_$3.label=t$1[2],_$3.ops.push(op);break}t$1[2]&&_$3.ops.pop(),_$3.trys.pop();continue}op=body.call(thisArg,_$3)}catch(e$1){op=[6,e$1],y$3=0}finally{f=t$1=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}}function __exportStar$5(m$2,o$2){for(var p in m$2)p!==`default`&&!Object.prototype.hasOwnProperty.call(o$2,p)&&__createBinding$10(o$2,m$2,p)}function __values$1(o$2){var s$3=typeof Symbol==`function`&&Symbol.iterator,m$2=s$3&&o$2[s$3],i$4=0;if(m$2)return m$2.call(o$2);if(o$2&&typeof o$2.length==`number`)return{next:function(){return o$2&&i$4>=o$2.length&&(o$2=void 0),{value:o$2&&o$2[i$4++],done:!o$2}}};throw TypeError(s$3?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function __read(o$2,n$2){var m$2=typeof Symbol==`function`&&o$2[Symbol.iterator];if(!m$2)return o$2;var i$4=m$2.call(o$2),r$2,ar=[],e$1;try{for(;(n$2===void 0||n$2-- >0)&&!(r$2=i$4.next()).done;)ar.push(r$2.value)}catch(error$22){e$1={error:error$22}}finally{try{r$2&&!r$2.done&&(m$2=i$4.return)&&m$2.call(i$4)}finally{if(e$1)throw e$1.error}}return ar}function __spread(){for(var ar=[],i$4=0;i$4<arguments.length;i$4++)ar=ar.concat(__read(arguments[i$4]));return ar}function __spreadArrays(){for(var s$3=0,i$4=0,il=arguments.length;i$4<il;i$4++)s$3+=arguments[i$4].length;for(var r$2=Array(s$3),k=0,i$4=0;i$4<il;i$4++)for(var a$3=arguments[i$4],j$2=0,jl=a$3.length;j$2<jl;j$2++,k++)r$2[k]=a$3[j$2];return r$2}function __spreadArray(to,from,pack){if(pack||arguments.length===2)for(var i$4=0,l$1=from.length,ar;i$4<l$1;i$4++)(ar||!(i$4 in from))&&(ar||(ar=Array.prototype.slice.call(from,0,i$4)),ar[i$4]=from[i$4]);return to.concat(ar||Array.prototype.slice.call(from))}function __await$1(v$1){return this instanceof __await$1?(this.v=v$1,this):new __await$1(v$1)}function __asyncGenerator$1(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var g=generator.apply(thisArg,_arguments||[]),i$4,q$3=[];return i$4=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$4[Symbol.asyncIterator]=function(){return this},i$4;function awaitReturn(f){return function(v$1){return Promise.resolve(v$1).then(f,reject)}}function verb(n$2,f){g[n$2]&&(i$4[n$2]=function(v$1){return new Promise(function(a$3,b$2){q$3.push([n$2,v$1,a$3,b$2])>1||resume$1(n$2,v$1)})},f&&(i$4[n$2]=f(i$4[n$2])))}function resume$1(n$2,v$1){try{step(g[n$2](v$1))}catch(e$1){settle(q$3[0][3],e$1)}}function step(r$2){r$2.value instanceof __await$1?Promise.resolve(r$2.value.v).then(fulfill,reject):settle(q$3[0][2],r$2)}function fulfill(value){resume$1(`next`,value)}function reject(value){resume$1(`throw`,value)}function settle(f,v$1){f(v$1),q$3.shift(),q$3.length&&resume$1(q$3[0][0],q$3[0][1])}}function __asyncDelegator(o$2){var i$4,p;return i$4={},verb(`next`),verb(`throw`,function(e$1){throw e$1}),verb(`return`),i$4[Symbol.iterator]=function(){return this},i$4;function verb(n$2,f){i$4[n$2]=o$2[n$2]?function(v$1){return(p=!p)?{value:__await$1(o$2[n$2](v$1)),done:!1}:f?f(v$1):v$1}:f}}function __asyncValues$1(o$2){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var m$2=o$2[Symbol.asyncIterator],i$4;return m$2?m$2.call(o$2):(o$2=typeof __values$1==`function`?__values$1(o$2):o$2[Symbol.iterator](),i$4={},verb(`next`),verb(`throw`),verb(`return`),i$4[Symbol.asyncIterator]=function(){return this},i$4);function verb(n$2){i$4[n$2]=o$2[n$2]&&function(v$1){return new Promise(function(resolve$9,reject){v$1=o$2[n$2](v$1),settle(resolve$9,reject,v$1.done,v$1.value)})}}function settle(resolve$9,reject,d$3,v$1){Promise.resolve(v$1).then(function(v$2){resolve$9({value:v$2,done:d$3})},reject)}}function __makeTemplateObject(cooked,raw$1){return Object.defineProperty?Object.defineProperty(cooked,`raw`,{value:raw$1}):cooked.raw=raw$1,cooked}function __importStar$7(mod$1){if(mod$1&&mod$1.__esModule)return mod$1;var result={};if(mod$1!=null)for(var k=ownKeys$1(mod$1),i$4=0;i$4<k.length;i$4++)k[i$4]!==`default`&&__createBinding$10(result,mod$1,k[i$4]);return __setModuleDefault$7(result,mod$1),result}function __importDefault$14(mod$1){return mod$1&&mod$1.__esModule?mod$1:{default:mod$1}}function __classPrivateFieldGet$8(receiver,state,kind,f){if(kind===`a`&&!f)throw TypeError(`Private accessor was defined without a getter`);if(typeof state==`function`?receiver!==state||!f:!state.has(receiver))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return kind===`m`?f:kind===`a`?f.call(receiver):f?f.value:state.get(receiver)}function __classPrivateFieldSet$4(receiver,state,value,kind,f){if(kind===`m`)throw TypeError(`Private method is not writable`);if(kind===`a`&&!f)throw TypeError(`Private accessor was defined without a setter`);if(typeof state==`function`?receiver!==state||!f:!state.has(receiver))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return kind===`a`?f.call(receiver,value):f?f.value=value:state.set(receiver,value),value}function __classPrivateFieldIn(state,receiver){if(receiver===null||typeof receiver!=`object`&&typeof receiver!=`function`)throw TypeError(`Cannot use 'in' operator on non-object`);return typeof state==`function`?receiver===state:state.has(receiver)}function __addDisposableResource(env$4,value,async$1){if(value!=null){if(typeof value!=`object`&&typeof value!=`function`)throw TypeError(`Object expected.`);var dispose,inner;if(async$1){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);dispose=value[Symbol.asyncDispose]}if(dispose===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);dispose=value[Symbol.dispose],async$1&&(inner=dispose)}if(typeof dispose!=`function`)throw TypeError(`Object not disposable.`);inner&&(dispose=function(){try{inner.call(this)}catch(e$1){return Promise.reject(e$1)}}),env$4.stack.push({value,dispose,async:async$1})}else async$1&&env$4.stack.push({async:!0});return value}function __disposeResources(env$4){function fail(e$1){env$4.error=env$4.hasError?new _SuppressedError(e$1,env$4.error,`An error was suppressed during disposal.`):e$1,env$4.hasError=!0}var r$2,s$3=0;function next(){for(;r$2=env$4.stack.pop();)try{if(!r$2.async&&s$3===1)return s$3=0,env$4.stack.push(r$2),Promise.resolve().then(next);if(r$2.dispose){var result=r$2.dispose.call(r$2.value);if(r$2.async)return s$3|=2,Promise.resolve(result).then(next,function(e$1){return fail(e$1),next()})}else s$3|=1}catch(e$1){fail(e$1)}if(s$3===1)return env$4.hasError?Promise.reject(env$4.error):Promise.resolve();if(env$4.hasError)throw env$4.error}return next()}function __rewriteRelativeImportExtension(path$40,preserveJsx){return typeof path$40==`string`&&/^\.\.?\//.test(path$40)?path$40.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m$2,tsx,d$3,ext$1,cm){return tsx?preserveJsx?`.jsx`:`.js`:d$3&&(!ext$1||!cm)?m$2:d$3+ext$1+`.`+cm.toLowerCase()+`js`}):path$40}var extendStatics,__assign,__createBinding$10,__setModuleDefault$7,ownKeys$1,_SuppressedError,tslib_es6_default,init_tslib_es6=__esmMin((()=>{extendStatics=function(d$3,b$2){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d$4,b$3){d$4.__proto__=b$3}||function(d$4,b$3){for(var p in b$3)Object.prototype.hasOwnProperty.call(b$3,p)&&(d$4[p]=b$3[p])},extendStatics(d$3,b$2)},__assign=function(){return __assign=Object.assign||function(t$1){for(var s$3,i$4=1,n$2=arguments.length;i$4<n$2;i$4++)for(var p in s$3=arguments[i$4],s$3)Object.prototype.hasOwnProperty.call(s$3,p)&&(t$1[p]=s$3[p]);return t$1},__assign.apply(this,arguments)},__createBinding$10=Object.create?(function(o$2,m$2,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m$2,k);(!desc||(`get`in desc?!m$2.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m$2[k]}}),Object.defineProperty(o$2,k2,desc)}):(function(o$2,m$2,k,k2){k2===void 0&&(k2=k),o$2[k2]=m$2[k]}),__setModuleDefault$7=Object.create?(function(o$2,v$1){Object.defineProperty(o$2,`default`,{enumerable:!0,value:v$1})}):function(o$2,v$1){o$2.default=v$1},ownKeys$1=function(o$2){return ownKeys$1=Object.getOwnPropertyNames||function(o$3){var ar=[];for(var k in o$3)Object.prototype.hasOwnProperty.call(o$3,k)&&(ar[ar.length]=k);return ar},ownKeys$1(o$2)},_SuppressedError=typeof SuppressedError==`function`?SuppressedError:function(error$22,suppressed,message){var e$1=Error(message);return e$1.name=`SuppressedError`,e$1.error=error$22,e$1.suppressed=suppressed,e$1},tslib_es6_default={__extends,__assign,__rest,__decorate,__param,__esDecorate:__esDecorate$1,__runInitializers:__runInitializers$1,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__createBinding:__createBinding$10,__exportStar:__exportStar$5,__values:__values$1,__read,__spread,__spreadArrays,__spreadArray,__await:__await$1,__asyncGenerator:__asyncGenerator$1,__asyncDelegator,__asyncValues:__asyncValues$1,__makeTemplateObject,__importStar:__importStar$7,__importDefault:__importDefault$14,__classPrivateFieldGet:__classPrivateFieldGet$8,__classPrivateFieldSet:__classPrivateFieldSet$4,__classPrivateFieldIn,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension}})),require_SupressedError=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillSuppressedError=void 0;var PonyfillSuppressedError=class extends Error{error;suppressed;constructor(error$22,suppressed,message){super(message),this.error=error$22,this.suppressed=suppressed,this.name=`SuppressedError`,Error.captureStackTrace(this,this.constructor)}};exports.PonyfillSuppressedError=PonyfillSuppressedError})),require_symbols$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.DisposableSymbols=void 0,exports.patchSymbols=patchSymbols,exports.DisposableSymbols={get dispose(){return Symbol.dispose||Symbol.for(`dispose`)},get asyncDispose(){return Symbol.asyncDispose||Symbol.for(`asyncDispose`)}};function patchSymbols(){Symbol.dispose||=Symbol.for(`dispose`),Symbol.asyncDispose||=Symbol.for(`asyncDispose`)}})),require_utils$84=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isSyncDisposable=isSyncDisposable,exports.isAsyncDisposable=isAsyncDisposable;let symbols_js_1$2=require_symbols$1();function isSyncDisposable(obj){return obj?.[symbols_js_1$2.DisposableSymbols.dispose]!=null}function isAsyncDisposable(obj){return obj?.[symbols_js_1$2.DisposableSymbols.asyncDispose]!=null}})),require_AsyncDisposableStack=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillAsyncDisposableStack=void 0;let promise_helpers_1$4=require_cjs$4(),SupressedError_js_1$2=require_SupressedError(),symbols_js_1$1=require_symbols$1(),utils_js_1$9=require_utils$84(),SuppressedError$2=globalThis.SuppressedError||SupressedError_js_1$2.PonyfillSuppressedError;var PonyfillAsyncDisposableStack=class PonyfillAsyncDisposableStack{callbacks=[];get disposed(){return this.callbacks.length===0}use(value){return(0,utils_js_1$9.isAsyncDisposable)(value)?this.callbacks.push(()=>value[symbols_js_1$1.DisposableSymbols.asyncDispose]()):(0,utils_js_1$9.isSyncDisposable)(value)&&this.callbacks.push(()=>value[symbols_js_1$1.DisposableSymbols.dispose]()),value}adopt(value,onDisposeAsync){return onDisposeAsync&&this.callbacks.push(()=>onDisposeAsync(value)),value}defer(onDisposeAsync){onDisposeAsync&&this.callbacks.push(onDisposeAsync)}move(){let stack=new PonyfillAsyncDisposableStack;return stack.callbacks=this.callbacks,this.callbacks=[],stack}disposeAsync(){return this[symbols_js_1$1.DisposableSymbols.asyncDispose]()}_error;_iterateCallbacks(){let cb=this.callbacks.pop();if(cb)return(0,promise_helpers_1$4.handleMaybePromise)(cb,()=>this._iterateCallbacks(),error$22=>(this._error=this._error?new SuppressedError$2(error$22,this._error):error$22,this._iterateCallbacks()))}[symbols_js_1$1.DisposableSymbols.asyncDispose](){let res$=this._iterateCallbacks();if(res$?.then)return res$.then(()=>{if(this._error){let error$22=this._error;throw this._error=void 0,error$22}});if(this._error){let error$22=this._error;throw this._error=void 0,error$22}}[Symbol.toStringTag]=`AsyncDisposableStack`};exports.PonyfillAsyncDisposableStack=PonyfillAsyncDisposableStack})),require_DisposableStack=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillDisposableStack=void 0;let SupressedError_js_1$1=require_SupressedError(),symbols_js_1=require_symbols$1(),utils_js_1$8=require_utils$84(),SuppressedError$1=globalThis.SuppressedError||SupressedError_js_1$1.PonyfillSuppressedError;var PonyfillDisposableStack=class PonyfillDisposableStack{callbacks=[];get disposed(){return this.callbacks.length===0}use(value){return(0,utils_js_1$8.isSyncDisposable)(value)&&this.callbacks.push(()=>value[symbols_js_1.DisposableSymbols.dispose]()),value}adopt(value,onDispose){return onDispose&&this.callbacks.push(()=>onDispose(value)),value}defer(onDispose){onDispose&&this.callbacks.push(onDispose)}move(){let stack=new PonyfillDisposableStack;return stack.callbacks=this.callbacks,this.callbacks=[],stack}dispose(){return this[symbols_js_1.DisposableSymbols.dispose]()}_error;_iterateCallbacks(){let cb=this.callbacks.pop();if(cb){try{cb()}catch(error$22){this._error=this._error?new SuppressedError$1(error$22,this._error):error$22}return this._iterateCallbacks()}}[symbols_js_1.DisposableSymbols.dispose](){if(this._iterateCallbacks(),this._error){let error$22=this._error;throw this._error=void 0,error$22}}[Symbol.toStringTag]=`DisposableStack`};exports.PonyfillDisposableStack=PonyfillDisposableStack})),require_cjs$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SuppressedError=exports.AsyncDisposableStack=exports.DisposableStack=void 0;let tslib_1$1=(init_tslib_es6(),__toCommonJS$1(tslib_es6_exports)),AsyncDisposableStack_js_1=require_AsyncDisposableStack(),DisposableStack_js_1=require_DisposableStack(),SupressedError_js_1=require_SupressedError();exports.DisposableStack=globalThis.DisposableStack||DisposableStack_js_1.PonyfillDisposableStack,exports.AsyncDisposableStack=globalThis.AsyncDisposableStack||AsyncDisposableStack_js_1.PonyfillAsyncDisposableStack,exports.SuppressedError=globalThis.SuppressedError||SupressedError_js_1.PonyfillSuppressedError,tslib_1$1.__exportStar(require_symbols$1(),exports)})),require_IteratorObject=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillIteratorObject=void 0;let node_util_1$1=__require$2(`node:util`),disposablestack_1=require_cjs$3(),utils_js_1$7=require_utils$85();var PonyfillIteratorObject=class{iterableIterator;[Symbol.toStringTag]=`IteratorObject`;constructor(iterableIterator,className){this.iterableIterator=iterableIterator,this[Symbol.toStringTag]=className}*map(callbackfn){let index=0;for(let value of this.iterableIterator)yield callbackfn(value,index++)}*filter(callbackfn){let index=0;for(let value of this.iterableIterator)callbackfn(value,index++)&&(yield value)}reduce(callbackfn,initialValue){let index=0,accumulator=initialValue;for(let value of this.iterableIterator)accumulator=callbackfn(accumulator,value,index++);return accumulator}forEach(callbackfn){let index=0;for(let value of this.iterableIterator)callbackfn(value,index++)}*take(limit){let index=0;for(let value of this.iterableIterator){if(index>=limit)break;yield value,index++}}*drop(count$1){let index=0;for(let value of this.iterableIterator)index>=count$1&&(yield value),index++}*flatMap(callback$1){let index=0;for(let value of this.iterableIterator){let iteratorOrIterable=callback$1(value,index++);if((0,utils_js_1$7.isIterable)(iteratorOrIterable))for(let innerValue of iteratorOrIterable)yield innerValue;else for(let innerValue of{[Symbol.iterator]:()=>iteratorOrIterable})yield innerValue}}some(predicate){let index=0;for(let value of this.iterableIterator)if(predicate(value,index++))return!0;return!1}every(predicate){let index=0;for(let value of this.iterableIterator)if(!predicate(value,index++))return!1;return!0}find(predicate){let index=0;for(let value of this.iterableIterator)if(predicate(value,index++))return value}toArray(){return Array.from(this.iterableIterator)}[disposablestack_1.DisposableSymbols.dispose](){this.iterableIterator.return?.()}next(...[value]){return this.iterableIterator.next(value)}[Symbol.iterator](){return this}[Symbol.for(`nodejs.util.inspect.custom`)](){let record={};return this.forEach((value,key)=>{let inspectedValue=(0,node_util_1$1.inspect)(value);record[key]=inspectedValue.includes(`,`)?inspectedValue.split(`,`).map(el=>el.trim()):inspectedValue}),`${this[Symbol.toStringTag]} ${(0,node_util_1$1.inspect)(record)}`}};exports.PonyfillIteratorObject=PonyfillIteratorObject})),require_FormData=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillFormData=void 0,exports.getStreamFromFormData=getStreamFromFormData;let node_buffer_1$4=__require$2(`node:buffer`),IteratorObject_js_1$2=require_IteratorObject(),ReadableStream_js_1$3=require_ReadableStream();var PonyfillFormData=class{map=new Map;append(name$3,value,fileName){let values=this.map.get(name$3);values||(values=[],this.map.set(name$3,values));let entry=isBlob$3(value)?getNormalizedFile(name$3,value,fileName):value;values.push(entry)}delete(name$3){this.map.delete(name$3)}get(name$3){let values=this.map.get(name$3);return values?values[0]:null}getAll(name$3){return this.map.get(name$3)||[]}has(name$3){return this.map.has(name$3)}set(name$3,value,fileName){let entry=isBlob$3(value)?getNormalizedFile(name$3,value,fileName):value;this.map.set(name$3,[entry])}[Symbol.iterator](){return this._entries()}*_entries(){for(let[key,values]of this.map)for(let value of values)yield[key,value]}entries(){return new IteratorObject_js_1$2.PonyfillIteratorObject(this._entries(),`FormDataIterator`)}_keys(){return this.map.keys()}keys(){return new IteratorObject_js_1$2.PonyfillIteratorObject(this._keys(),`FormDataIterator`)}*_values(){for(let values of this.map.values())for(let value of values)yield value}values(){return new IteratorObject_js_1$2.PonyfillIteratorObject(this._values(),`FormDataIterator`)}forEach(callback$1){for(let[key,value]of this)callback$1(value,key,this)}};exports.PonyfillFormData=PonyfillFormData;function getStreamFromFormData(formData,boundary=`---`){let entriesIterator,sentInitialHeader=!1,currentAsyncIterator,hasBefore=!1;function handleNextEntry(controller){let{done,value}=entriesIterator.next();if(done)return controller.enqueue(node_buffer_1$4.Buffer.from(`\r\n--${boundary}--\r\n`)),controller.close();if(hasBefore&&controller.enqueue(node_buffer_1$4.Buffer.from(`\r\n--${boundary}\r\n`)),value){let[key,blobOrString]=value;if(typeof blobOrString==`string`)controller.enqueue(node_buffer_1$4.Buffer.from(`Content-Disposition: form-data; name="${key}"\r\n\r\n`)),controller.enqueue(node_buffer_1$4.Buffer.from(blobOrString));else{let filenamePart=``;blobOrString.name&&(filenamePart=`; filename="${blobOrString.name}"`),controller.enqueue(node_buffer_1$4.Buffer.from(`Content-Disposition: form-data; name="${key}"${filenamePart}\r\n`)),controller.enqueue(node_buffer_1$4.Buffer.from(`Content-Type: ${blobOrString.type||`application/octet-stream`}\r\n\r\n`));let entryStream=blobOrString.stream();currentAsyncIterator=entryStream[Symbol.asyncIterator]()}hasBefore=!0}}return new ReadableStream_js_1$3.PonyfillReadableStream({start:()=>{entriesIterator=formData.entries()},pull:controller=>sentInitialHeader?currentAsyncIterator?currentAsyncIterator.next().then(({done,value})=>(done&&(currentAsyncIterator=void 0),value?controller.enqueue(value):handleNextEntry(controller))):handleNextEntry(controller):(sentInitialHeader=!0,controller.enqueue(node_buffer_1$4.Buffer.from(`--${boundary}\r\n`))),cancel:err=>{entriesIterator?.return?.(err),currentAsyncIterator?.return?.(err)}})}function getNormalizedFile(name$3,blob,fileName){return Object.defineProperty(blob,`name`,{configurable:!0,enumerable:!0,value:fileName||blob.name||name$3}),blob}function isBlob$3(value){return value?.arrayBuffer!=null}})),require_Body=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillBody=void 0;let node_buffer_1$3=__require$2(`node:buffer`),node_stream_1$4=__require$2(`node:stream`),busboy_1=require_main(),promise_helpers_1$3=require_cjs$4(),Blob_js_1$1=require_Blob(),File_js_1$1=require_File(),FormData_js_1$1=require_FormData(),ReadableStream_js_1$2=require_ReadableStream(),utils_js_1$6=require_utils$85();var BodyInitType;(function(BodyInitType$1){BodyInitType$1.ReadableStream=`ReadableStream`,BodyInitType$1.Blob=`Blob`,BodyInitType$1.FormData=`FormData`,BodyInitType$1.String=`String`,BodyInitType$1.Readable=`Readable`,BodyInitType$1.Buffer=`Buffer`,BodyInitType$1.AsyncIterable=`AsyncIterable`})(BodyInitType||(BodyInitType={}));var PonyfillBody=class{bodyInit;options;bodyUsed=!1;contentType=null;contentLength=null;constructor(bodyInit,options$1={}){this.bodyInit=bodyInit,this.options=options$1;let{bodyFactory,contentType,contentLength,bodyType,buffer:buffer$1}=processBodyInit(bodyInit);this._bodyFactory=bodyFactory,this.contentType=contentType,this.contentLength=contentLength,this.bodyType=bodyType,this._buffer=buffer$1,this._signal=options$1.signal}bodyType;_bodyFactory=()=>null;_generatedBody=null;_buffer;_signal;generateBody(){if(this._generatedBody?.readable?.destroyed&&this._buffer&&(this._generatedBody.readable=node_stream_1$4.Readable.from(this._buffer)),this._generatedBody)return this._generatedBody;let body=this._bodyFactory();return this._generatedBody=body,body}handleContentLengthHeader(forceSet=!1){let contentTypeInHeaders=this.headers.get(`content-type`);contentTypeInHeaders?this.contentType=contentTypeInHeaders:this.contentType&&this.headers.set(`content-type`,this.contentType);let contentLengthInHeaders=this.headers.get(`content-length`);forceSet&&this.bodyInit==null&&!contentLengthInHeaders&&(this.contentLength=0,this.headers.set(`content-length`,`0`)),contentLengthInHeaders?this.contentLength=parseInt(contentLengthInHeaders,10):this.contentLength&&this.headers.set(`content-length`,this.contentLength.toString())}get body(){let _body=this.generateBody();if(_body!=null){let ponyfillReadableStream=_body,readable$1=_body.readable;return new Proxy(_body.readable,{get(_$3,prop){if(prop in ponyfillReadableStream){let ponyfillReadableStreamProp=ponyfillReadableStream[prop];return typeof ponyfillReadableStreamProp==`function`?ponyfillReadableStreamProp.bind(ponyfillReadableStream):ponyfillReadableStreamProp}if(prop in readable$1){let readableProp=readable$1[prop];return typeof readableProp==`function`?readableProp.bind(readable$1):readableProp}}})}return null}_chunks=null;_doCollectChunksFromReadableJob(){if(this.bodyType===BodyInitType.AsyncIterable){if(Array.fromAsync)return(0,promise_helpers_1$3.handleMaybePromise)(()=>Array.fromAsync(this.bodyInit),chunks$2=>(this._chunks=chunks$2,this._chunks));let iterator=this.bodyInit[Symbol.asyncIterator](),chunks$1=[],collectValue=()=>(0,promise_helpers_1$3.handleMaybePromise)(()=>iterator.next(),({value,done})=>(value&&chunks$1.push(value),done?(this._chunks=chunks$1,this._chunks):collectValue()));return collectValue()}let _body=this.generateBody();if(!_body)return this._chunks=[],(0,utils_js_1$6.fakePromise)(this._chunks);if(_body.readable.destroyed)return(0,utils_js_1$6.fakePromise)(this._chunks=[]);let chunks=[];return new Promise((resolve$9,reject)=>{_body.readable.on(`data`,chunk$1=>{chunks.push(chunk$1)}),_body.readable.once(`error`,reject),_body.readable.once(`end`,()=>{resolve$9(this._chunks=chunks)})})}_collectChunksFromReadable(){return this._chunks?(0,utils_js_1$6.fakePromise)(this._chunks):(this._chunks||=this._doCollectChunksFromReadableJob(),this._chunks)}_blob=null;blob(){return this._blob?(0,utils_js_1$6.fakePromise)(this._blob):(this.bodyType===BodyInitType.String&&(this._text=this.bodyInit,this._blob=new Blob_js_1$1.PonyfillBlob([this._text],{type:this.contentType||`text/plain;charset=UTF-8`,size:this.contentLength})),this.bodyType===BodyInitType.Blob?(this._blob=this.bodyInit,(0,utils_js_1$6.fakePromise)(this._blob)):this._buffer?(this._blob=new Blob_js_1$1.PonyfillBlob([this._buffer],{type:this.contentType||``,size:this.contentLength}),(0,utils_js_1$6.fakePromise)(this._blob)):(0,utils_js_1$6.fakePromise)((0,promise_helpers_1$3.handleMaybePromise)(()=>this._collectChunksFromReadable(),chunks=>(this._blob=new Blob_js_1$1.PonyfillBlob(chunks,{type:this.contentType||``,size:this.contentLength}),this._blob))))}_formData=null;formData(opts){if(this._formData)return(0,utils_js_1$6.fakePromise)(this._formData);if(this.bodyType===BodyInitType.FormData)return this._formData=this.bodyInit,(0,utils_js_1$6.fakePromise)(this._formData);this._formData=new FormData_js_1$1.PonyfillFormData;let _body=this.generateBody();if(_body==null)return(0,utils_js_1$6.fakePromise)(this._formData);let formDataLimits={...this.options.formDataLimits,...opts?.formDataLimits};return new Promise((resolve$9,reject)=>{let stream$8=this.body?.readable;if(!stream$8)return reject(Error(`No stream available`));let currFile=null,bb=new busboy_1.Busboy({headers:{"content-length":typeof this.contentLength==`number`?this.contentLength.toString():this.contentLength||``,"content-type":this.contentType||``},limits:formDataLimits,defCharset:`utf-8`});this._signal&&(0,node_stream_1$4.addAbortSignal)(this._signal,bb);let completed=!1,complete=err=>{completed||(completed=!0,stream$8.unpipe(bb),bb.destroy(),currFile&&(currFile.destroy(),currFile=null),err?reject(err):resolve$9(this._formData))};stream$8.on(`error`,complete),bb.on(`field`,(name$3,value,fieldnameTruncated,valueTruncated)=>{if(fieldnameTruncated)return complete(Error(`Field name size exceeded: ${formDataLimits?.fieldNameSize} bytes`));if(valueTruncated)return complete(Error(`Field value size exceeded: ${formDataLimits?.fieldSize} bytes`));this._formData.set(name$3,value)}),bb.on(`file`,(name$3,fileStream,filename,_transferEncoding,mimeType)=>{currFile=fileStream;let chunks=[];fileStream.on(`data`,chunk$1=>{chunks.push(chunk$1)}),fileStream.on(`error`,complete),fileStream.on(`limit`,()=>{complete(Error(`File size limit exceeded: ${formDataLimits?.fileSize} bytes`))}),fileStream.on(`close`,()=>{fileStream.truncated&&complete(Error(`File size limit exceeded: ${formDataLimits?.fileSize} bytes`)),currFile=null;let file=new File_js_1$1.PonyfillFile(chunks,filename,{type:mimeType});this._formData.set(name$3,file)})}),bb.on(`fieldsLimit`,()=>{complete(Error(`Fields limit exceeded: ${formDataLimits?.fields}`))}),bb.on(`filesLimit`,()=>{complete(Error(`Files limit exceeded: ${formDataLimits?.files}`))}),bb.on(`partsLimit`,()=>{complete(Error(`Parts limit exceeded: ${formDataLimits?.parts}`))}),bb.on(`end`,complete),bb.on(`finish`,complete),bb.on(`close`,complete),bb.on(`error`,complete),stream$8.pipe(bb)})}buffer(){if(this._buffer)return(0,utils_js_1$6.fakePromise)(this._buffer);if(this._text)return this._buffer=node_buffer_1$3.Buffer.from(this._text,`utf-8`),(0,utils_js_1$6.fakePromise)(this._buffer);if(this.bodyType===BodyInitType.String)return this.text().then(text=>(this._text=text,this._buffer=node_buffer_1$3.Buffer.from(text,`utf-8`),this._buffer));if(this.bodyType===BodyInitType.Blob){if((0,Blob_js_1$1.hasBufferMethod)(this.bodyInit))return this.bodyInit.buffer().then(buf=>(this._buffer=buf,this._buffer));if((0,Blob_js_1$1.hasBytesMethod)(this.bodyInit))return this.bodyInit.bytes().then(bytes=>(this._buffer=node_buffer_1$3.Buffer.from(bytes),this._buffer));if((0,Blob_js_1$1.hasArrayBufferMethod)(this.bodyInit))return this.bodyInit.arrayBuffer().then(buf=>(this._buffer=node_buffer_1$3.Buffer.from(buf,void 0,buf.byteLength),this._buffer))}return(0,utils_js_1$6.fakePromise)((0,promise_helpers_1$3.handleMaybePromise)(()=>this._collectChunksFromReadable(),chunks=>chunks.length===1?(this._buffer=chunks[0],this._buffer):(this._buffer=node_buffer_1$3.Buffer.concat(chunks),this._buffer)))}bytes(){return this.buffer()}arrayBuffer(){return this.buffer()}_json=null;json(){return this._json?(0,utils_js_1$6.fakePromise)(this._json):this.text().then(text=>{try{this._json=JSON.parse(text)}catch(e$1){throw e$1 instanceof SyntaxError&&(e$1.message+=`, "${text}" is not valid JSON`),e$1}return this._json})}_text=null;text(){return this._text?(0,utils_js_1$6.fakePromise)(this._text):this.bodyType===BodyInitType.String?(this._text=this.bodyInit,(0,utils_js_1$6.fakePromise)(this._text)):this.buffer().then(buffer$1=>(this._text=buffer$1.toString(`utf-8`),this._text))}};exports.PonyfillBody=PonyfillBody;function processBodyInit(bodyInit){if(bodyInit==null)return{bodyFactory:()=>null,contentType:null,contentLength:null};if(typeof bodyInit==`string`){let contentLength=node_buffer_1$3.Buffer.byteLength(bodyInit);return{bodyType:BodyInitType.String,contentType:`text/plain;charset=UTF-8`,contentLength,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(node_buffer_1$3.Buffer.from(bodyInit,`utf-8`));return new ReadableStream_js_1$2.PonyfillReadableStream(readable$1)}}}if(node_buffer_1$3.Buffer.isBuffer(bodyInit)){let buffer$1=bodyInit;return{bodyType:BodyInitType.Buffer,contentType:null,contentLength:bodyInit.length,buffer:bodyInit,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(buffer$1),body=new ReadableStream_js_1$2.PonyfillReadableStream(readable$1);return body}}}if((0,utils_js_1$6.isArrayBufferView)(bodyInit)){let buffer$1=node_buffer_1$3.Buffer.from(bodyInit.buffer,bodyInit.byteOffset,bodyInit.byteLength);return{bodyType:BodyInitType.Buffer,contentLength:bodyInit.byteLength,contentType:null,buffer:buffer$1,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(buffer$1),body=new ReadableStream_js_1$2.PonyfillReadableStream(readable$1);return body}}}if(bodyInit instanceof ReadableStream_js_1$2.PonyfillReadableStream&&bodyInit.readable!=null){let readableStream=bodyInit;return{bodyType:BodyInitType.ReadableStream,bodyFactory:()=>readableStream,contentType:null,contentLength:null}}if(isBlob$2(bodyInit)){let blob=bodyInit;return{bodyType:BodyInitType.Blob,contentType:bodyInit.type,contentLength:bodyInit.size,bodyFactory(){return blob.stream()}}}if(bodyInit instanceof ArrayBuffer){let contentLength=bodyInit.byteLength,buffer$1=node_buffer_1$3.Buffer.from(bodyInit,void 0,bodyInit.byteLength);return{bodyType:BodyInitType.Buffer,contentType:null,contentLength,buffer:buffer$1,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(buffer$1),body=new ReadableStream_js_1$2.PonyfillReadableStream(readable$1);return body}}}if(bodyInit instanceof node_stream_1$4.Readable)return{bodyType:BodyInitType.Readable,contentType:null,contentLength:null,bodyFactory(){let body=new ReadableStream_js_1$2.PonyfillReadableStream(bodyInit);return body}};if(isURLSearchParams$1(bodyInit)){let contentType=`application/x-www-form-urlencoded;charset=UTF-8`;return{bodyType:BodyInitType.String,contentType:`application/x-www-form-urlencoded;charset=UTF-8`,contentLength:null,bodyFactory(){let body=new ReadableStream_js_1$2.PonyfillReadableStream(node_stream_1$4.Readable.from(bodyInit.toString()));return body}}}if(isFormData$3(bodyInit)){let boundary=Math.random().toString(36).substr(2),contentType=`multipart/form-data; boundary=${boundary}`;return{bodyType:BodyInitType.FormData,contentType,contentLength:null,bodyFactory(){return(0,FormData_js_1$1.getStreamFromFormData)(bodyInit,boundary)}}}if(isReadableStream$3(bodyInit))return{contentType:null,contentLength:null,bodyFactory(){return new ReadableStream_js_1$2.PonyfillReadableStream(bodyInit)}};if(bodyInit[Symbol.iterator]||bodyInit[Symbol.asyncIterator])return{contentType:null,contentLength:null,bodyType:BodyInitType.AsyncIterable,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(bodyInit);return new ReadableStream_js_1$2.PonyfillReadableStream(readable$1)}};throw Error(`Unknown body type`)}function isFormData$3(value){return value?.forEach!=null}function isBlob$2(value){return value?.stream!=null&&typeof value.stream==`function`}function isURLSearchParams$1(value){return value?.sort!=null}function isReadableStream$3(value){return value?.getReader!=null}})),require_Headers=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillHeaders=void 0,exports.isHeadersLike=isHeadersLike;let node_util_1=__require$2(`node:util`),IteratorObject_js_1$1=require_IteratorObject();function isHeadersLike(headers){return headers?.get&&headers?.forEach}var PonyfillHeaders=class{headersInit;_map;objectNormalizedKeysOfHeadersInit=[];objectOriginalKeysOfHeadersInit=[];_setCookies;constructor(headersInit){this.headersInit=headersInit}_get(key){let normalized$1=key.toLowerCase();if(normalized$1===`set-cookie`&&this._setCookies?.length)return this._setCookies.join(`, `);if(this._map)return this._map.get(normalized$1)||null;if(this.headersInit==null)return null;if(Array.isArray(this.headersInit)){let found=this.headersInit.filter(([headerKey])=>headerKey.toLowerCase()===normalized$1);return found.length===0?null:found.length===1?found[0][1]:found.map(([,value])=>value).join(`, `)}else if(isHeadersLike(this.headersInit))return this.headersInit.get(normalized$1);else{let initValue=this.headersInit[key]||this.headersInit[normalized$1];if(initValue!=null)return initValue;this.objectNormalizedKeysOfHeadersInit.length||Object.keys(this.headersInit).forEach(k=>{this.objectOriginalKeysOfHeadersInit.push(k),this.objectNormalizedKeysOfHeadersInit.push(k.toLowerCase())});let index=this.objectNormalizedKeysOfHeadersInit.indexOf(normalized$1);if(index===-1)return null;let originalKey=this.objectOriginalKeysOfHeadersInit[index];return this.headersInit[originalKey]}}getMap(){if(!this._map)if(this._setCookies||=[],this.headersInit!=null)if(Array.isArray(this.headersInit)){this._map=new Map;for(let[key,value]of this.headersInit){let normalizedKey=key.toLowerCase();if(normalizedKey===`set-cookie`){this._setCookies.push(value);continue}this._map.set(normalizedKey,value)}}else if(isHeadersLike(this.headersInit))this._map=new Map,this.headersInit.forEach((value,key)=>{if(key===`set-cookie`){this._setCookies||=[],this._setCookies.push(value);return}this._map.set(key,value)});else for(let initKey in this._map=new Map,this.headersInit){let initValue=this.headersInit[initKey];if(initValue!=null){let normalizedKey=initKey.toLowerCase();if(normalizedKey===`set-cookie`){this._setCookies||=[],this._setCookies.push(initValue);continue}this._map.set(normalizedKey,initValue)}}else this._map=new Map;return this._map}append(name$3,value){let key=name$3.toLowerCase();if(key===`set-cookie`){this._setCookies||=[],this._setCookies.push(value);return}let existingValue=this.getMap().get(key),finalValue=existingValue?`${existingValue}, ${value}`:value;this.getMap().set(key,finalValue)}get(name$3){let value=this._get(name$3);return value==null?null:value.toString()}has(name$3){let key=name$3.toLowerCase();return key===`set-cookie`?!!this._setCookies?.length:!!this._get(name$3)}set(name$3,value){let key=name$3.toLowerCase();if(key===`set-cookie`){this._setCookies=[value];return}if(!this._map&&this.headersInit!=null)if(Array.isArray(this.headersInit)){let found=this.headersInit.find(([headerKey])=>headerKey.toLowerCase()===key);found?found[1]=value:this.headersInit.push([key,value]);return}else if(isHeadersLike(this.headersInit)){this.headersInit.set(key,value);return}else{this.headersInit[key]=value;return}this.getMap().set(key,value)}delete(name$3){let key=name$3.toLowerCase();if(key===`set-cookie`){this._setCookies=[];return}this.getMap().delete(key)}forEach(callback$1){if(this._setCookies?.forEach(setCookie=>{callback$1(setCookie,`set-cookie`,this)}),!this._map){if(this.headersInit){if(Array.isArray(this.headersInit)){this.headersInit.forEach(([key,value])=>{callback$1(value,key,this)});return}if(isHeadersLike(this.headersInit)){this.headersInit.forEach(callback$1);return}Object.entries(this.headersInit).forEach(([key,value])=>{value!=null&&callback$1(value,key,this)})}return}this.getMap().forEach((value,key)=>{callback$1(value,key,this)})}*_keys(){if(this._setCookies?.length&&(yield`set-cookie`),!this._map&&this.headersInit){if(Array.isArray(this.headersInit)){yield*this.headersInit.map(([key])=>key)[Symbol.iterator]();return}if(isHeadersLike(this.headersInit)){yield*this.headersInit.keys();return}yield*Object.keys(this.headersInit)[Symbol.iterator]();return}yield*this.getMap().keys()}keys(){return new IteratorObject_js_1$1.PonyfillIteratorObject(this._keys(),`HeadersIterator`)}*_values(){if(this._setCookies?.length&&(yield*this._setCookies),!this._map&&this.headersInit){if(Array.isArray(this.headersInit)){yield*this.headersInit.map(([,value])=>value)[Symbol.iterator]();return}if(isHeadersLike(this.headersInit)){yield*this.headersInit.values();return}yield*Object.values(this.headersInit)[Symbol.iterator]();return}yield*this.getMap().values()}values(){return new IteratorObject_js_1$1.PonyfillIteratorObject(this._values(),`HeadersIterator`)}*_entries(){if(this._setCookies?.length&&(yield*this._setCookies.map(cookie=>[`set-cookie`,cookie])),!this._map&&this.headersInit){if(Array.isArray(this.headersInit)){yield*this.headersInit;return}if(isHeadersLike(this.headersInit)){yield*this.headersInit.entries();return}yield*Object.entries(this.headersInit);return}yield*this.getMap().entries()}entries(){return new IteratorObject_js_1$1.PonyfillIteratorObject(this._entries(),`HeadersIterator`)}getSetCookie(){return this._setCookies||this.getMap(),this._setCookies}[Symbol.iterator](){return this.entries()}[Symbol.for(`nodejs.util.inspect.custom`)](){let record={};return this.forEach((value,key)=>{key===`set-cookie`?record[`set-cookie`]=this._setCookies||[]:record[key]=value?.includes(`,`)?value.split(`,`).map(el=>el.trim()):value}),`Headers ${(0,node_util_1.inspect)(record)}`}};exports.PonyfillHeaders=PonyfillHeaders})),require_Response=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillResponse=void 0;let node_http_1$19=__require$2(`node:http`),Body_js_1$2=require_Body(),Headers_js_1$2=require_Headers(),JSON_CONTENT_TYPE=`application/json; charset=utf-8`;var PonyfillResponse=class PonyfillResponse extends Body_js_1$2.PonyfillBody{headers;constructor(body,init$7){super(body||null,init$7),this.headers=init$7?.headers&&(0,Headers_js_1$2.isHeadersLike)(init$7.headers)?init$7.headers:new Headers_js_1$2.PonyfillHeaders(init$7?.headers),this.status=init$7?.status||200,this.statusText=init$7?.statusText||node_http_1$19.STATUS_CODES[this.status]||`OK`,this.url=init$7?.url||``,this.redirected=init$7?.redirected||!1,this.type=init$7?.type||`default`,this.handleContentLengthHeader()}get ok(){return this.status>=200&&this.status<300}status;statusText;url;redirected;type;clone(){return this}static error(){return new PonyfillResponse(null,{status:500,statusText:`Internal Server Error`})}static redirect(url$5,status=302){if(status<300||status>399)throw RangeError(`Invalid status code`);return new PonyfillResponse(null,{headers:{location:url$5},status})}static json(data$2,init$7){let bodyInit=JSON.stringify(data$2);if(!init$7)init$7={headers:{"content-type":JSON_CONTENT_TYPE,"content-length":Buffer.byteLength(bodyInit).toString()}};else if(!init$7.headers)init$7.headers={"content-type":JSON_CONTENT_TYPE,"content-length":Buffer.byteLength(bodyInit).toString()};else if((0,Headers_js_1$2.isHeadersLike)(init$7.headers))init$7.headers.has(`content-type`)||init$7.headers.set(`content-type`,JSON_CONTENT_TYPE),init$7.headers.has(`content-length`)||init$7.headers.set(`content-length`,Buffer.byteLength(bodyInit).toString());else if(Array.isArray(init$7.headers)){let contentTypeExists=!1,contentLengthExists=!1;for(let[key]of init$7.headers){if(contentLengthExists&&contentTypeExists)break;!contentTypeExists&&key.toLowerCase()===`content-type`?contentTypeExists=!0:!contentLengthExists&&key.toLowerCase()===`content-length`&&(contentLengthExists=!0)}contentTypeExists||init$7.headers.push([`content-type`,JSON_CONTENT_TYPE]),contentLengthExists||init$7.headers.push([`content-length`,Buffer.byteLength(bodyInit).toString()])}else typeof init$7.headers==`object`&&(init$7.headers?.[`content-type`]==null&&(init$7.headers[`content-type`]=JSON_CONTENT_TYPE),init$7.headers?.[`content-length`]==null&&(init$7.headers[`content-length`]=Buffer.byteLength(bodyInit).toString()));return new PonyfillResponse(bodyInit,init$7)}[Symbol.toStringTag]=`Response`};exports.PonyfillResponse=PonyfillResponse})),require_fetchCurl=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchCurl=fetchCurl;let node_stream_1$3=__require$2(`node:stream`),node_tls_1=__require$2(`node:tls`),promise_helpers_1$2=require_cjs$4(),Response_js_1$3=require_Response(),utils_js_1$5=require_utils$85();function fetchCurl(fetchRequest){let{Curl,CurlFeature,CurlPause,CurlProgressFunc}=globalThis.libcurl,curlHandle=new Curl;curlHandle.enable(CurlFeature.NoDataParsing),curlHandle.setOpt(`URL`,fetchRequest.url),process.env.NODE_TLS_REJECT_UNAUTHORIZED===`0`&&curlHandle.setOpt(`SSL_VERIFYPEER`,!1),process.env.NODE_EXTRA_CA_CERTS?curlHandle.setOpt(`CAINFO`,process.env.NODE_EXTRA_CA_CERTS):curlHandle.setOpt(`CAINFO_BLOB`,node_tls_1.rootCertificates.join(`
|
|
248
|
-
`)),curlHandle.enable(CurlFeature.StreamResponse);let signal;if(fetchRequest._signal===null?signal=void 0:fetchRequest._signal&&(signal=fetchRequest._signal),curlHandle.setStreamProgressCallback(function(){return signal?.aborted?process.env.DEBUG?CurlProgressFunc.Continue:1:0}),fetchRequest.bodyType===`String`)curlHandle.setOpt(`POSTFIELDS`,fetchRequest.bodyInit);else{let nodeReadable=fetchRequest.body==null?null:(0,utils_js_1$5.isNodeReadable)(fetchRequest.body)?fetchRequest.body:node_stream_1$3.Readable.from(fetchRequest.body);nodeReadable&&(curlHandle.setOpt(`UPLOAD`,!0),curlHandle.setUploadStream(nodeReadable))}process.env.DEBUG&&curlHandle.setOpt(`VERBOSE`,!0),curlHandle.setOpt(`TRANSFER_ENCODING`,!1),curlHandle.setOpt(`HTTP_TRANSFER_DECODING`,!0),curlHandle.setOpt(`FOLLOWLOCATION`,fetchRequest.redirect===`follow`),curlHandle.setOpt(`MAXREDIRS`,20),curlHandle.setOpt(`ACCEPT_ENCODING`,``),curlHandle.setOpt(`CUSTOMREQUEST`,fetchRequest.method);let headersSerializer=fetchRequest.headersSerializer||utils_js_1$5.defaultHeadersSerializer,size,curlHeaders=headersSerializer(fetchRequest.headers,value=>{size=Number(value)});size!=null&&curlHandle.setOpt(`INFILESIZE`,size),curlHandle.setOpt(`HTTPHEADER`,curlHeaders),curlHandle.enable(CurlFeature.NoHeaderParsing);let deferredPromise=(0,promise_helpers_1$2.createDeferredPromise)(),streamResolved;function onAbort(){if(curlHandle.isOpen)try{curlHandle.pause(CurlPause.Recv)}catch(e$1){deferredPromise.reject(e$1)}}return signal?.addEventListener(`abort`,onAbort,{once:!0}),curlHandle.once(`end`,function(){try{curlHandle.close()}catch(e$1){deferredPromise.reject(e$1)}signal?.removeEventListener(`abort`,onAbort)}),curlHandle.once(`error`,function(error$22){streamResolved&&!streamResolved.closed&&!streamResolved.destroyed?streamResolved.destroy(error$22):(error$22.message===`Operation was aborted by an application callback`&&(error$22.message=`The operation was aborted.`),deferredPromise.reject(error$22));try{curlHandle.close()}catch(e$1){deferredPromise.reject(e$1)}}),curlHandle.once(`stream`,function(stream$8,status,headersBuf){let outputStream=stream$8.pipe(new node_stream_1$3.PassThrough,{end:!0}),headersFlat=headersBuf.toString(`utf8`).split(/\r?\n|\r/g).filter(headerFilter=>headerFilter&&!headerFilter.startsWith(`HTTP/`)?(fetchRequest.redirect===`error`&&headerFilter.toLowerCase().includes(`location`)&&(0,utils_js_1$5.shouldRedirect)(status)&&(stream$8.destroyed||stream$8.resume(),outputStream.destroy(),deferredPromise.reject(Error(`redirect is not allowed`))),!0):!1),headersInit=headersFlat.map(headerFlat=>headerFlat.split(/:\s(.+)/).slice(0,2)),ponyfillResponse=new Response_js_1$3.PonyfillResponse(outputStream,{status,headers:headersInit,url:curlHandle.getInfo(Curl.info.REDIRECT_URL)?.toString()||fetchRequest.url,redirected:Number(curlHandle.getInfo(Curl.info.REDIRECT_COUNT))>0});deferredPromise.resolve(ponyfillResponse),streamResolved=outputStream}),setImmediate(()=>{curlHandle.perform()}),deferredPromise.promise}})),require_URL$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillURL=void 0;let tslib_1=(init_tslib_es6(),__toCommonJS$1(tslib_es6_exports)),node_buffer_1$2=tslib_1.__importDefault(__require$2(`node:buffer`)),node_crypto_1=__require$2(`node:crypto`),NativeURL=globalThis.URL;var URL$10=class extends NativeURL{static blobRegistry=new Map;static createObjectURL(blob){let blobUrl=`blob:whatwgnode:${(0,node_crypto_1.randomUUID)()}`;return this.blobRegistry.set(blobUrl,blob),blobUrl}static revokeObjectURL(url$5){this.blobRegistry.has(url$5)?this.blobRegistry.delete(url$5):NativeURL.revokeObjectURL(url$5)}static getBlobFromURL(url$5){return this.blobRegistry.get(url$5)||node_buffer_1$2.default?.resolveObjectURL?.(url$5)}};exports.PonyfillURL=URL$10})),require_Request=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillRequest=void 0;let node_http_1$18=__require$2(`node:http`),node_https_1$1=__require$2(`node:https`),Body_js_1$1=require_Body(),Headers_js_1$1=require_Headers(),URL_js_1$3=require_URL$2();function isRequest$4(input){return input[Symbol.toStringTag]===`Request`}function isURL$1(obj){return obj?.href!=null}var PonyfillRequest=class extends Body_js_1$1.PonyfillBody{constructor(input,options$1){let _url$1,_parsedUrl,bodyInit=null,requestInit;if(typeof input==`string`?_url$1=input:isURL$1(input)?_parsedUrl=input:isRequest$4(input)&&(input._parsedUrl?_parsedUrl=input._parsedUrl:_url$1=input._url?input._url:input.url,bodyInit=input.body,requestInit=input),options$1!=null&&(bodyInit=options$1.body||null,requestInit=options$1),super(bodyInit,requestInit),this._url=_url$1,this._parsedUrl=_parsedUrl,this.cache=requestInit?.cache||`default`,this.credentials=requestInit?.credentials||`same-origin`,this.headers=requestInit?.headers&&(0,Headers_js_1$1.isHeadersLike)(requestInit.headers)?requestInit.headers:new Headers_js_1$1.PonyfillHeaders(requestInit?.headers),this.integrity=requestInit?.integrity||``,this.keepalive=requestInit?.keepalive==null?!1:requestInit?.keepalive,this.method=requestInit?.method?.toUpperCase()||`GET`,this.mode=requestInit?.mode||`cors`,this.redirect=requestInit?.redirect||`follow`,this.referrer=requestInit?.referrer||`about:client`,this.referrerPolicy=requestInit?.referrerPolicy||`no-referrer`,this.headersSerializer=requestInit?.headersSerializer,this.duplex=requestInit?.duplex||`half`,this.destination=`document`,this.priority=`auto`,this.method!==`GET`&&this.method!==`HEAD`&&this.handleContentLengthHeader(!0),requestInit?.agent!=null){let protocol=_parsedUrl?.protocol||_url$1||this.url;requestInit.agent===!1?this.agent=!1:(protocol.startsWith(`http:`)&&requestInit.agent instanceof node_http_1$18.Agent||protocol.startsWith(`https:`)&&requestInit.agent instanceof node_https_1$1.Agent)&&(this.agent=requestInit.agent)}}headersSerializer;cache;credentials;destination;headers;integrity;keepalive;method;mode;priority;redirect;referrer;referrerPolicy;_url;get signal(){return this._signal||=new AbortController().signal,this._signal}get url(){if(this._url==null)if(this._parsedUrl)this._url=this._parsedUrl.toString();else throw TypeError(`Invalid URL`);return this._url}_parsedUrl;get parsedUrl(){if(this._parsedUrl==null)if(this._url!=null)this._parsedUrl=new URL_js_1$3.PonyfillURL(this._url,`http://localhost`);else throw TypeError(`Invalid URL`);return this._parsedUrl}duplex;agent;clone(){return this}[Symbol.toStringTag]=`Request`};exports.PonyfillRequest=PonyfillRequest})),require_fetchNodeHttp=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchNodeHttp=fetchNodeHttp;let node_http_1$17=__require$2(`node:http`),node_https_1=__require$2(`node:https`),node_stream_1$2=__require$2(`node:stream`),node_zlib_1$2=__require$2(`node:zlib`),promise_helpers_1$1=require_cjs$4(),Request_js_1$2=require_Request(),Response_js_1$2=require_Response(),URL_js_1$2=require_URL$2(),utils_js_1$4=require_utils$85();function getRequestFnForProtocol(url$5){if(url$5.startsWith(`http:`))return node_http_1$17.request;if(url$5.startsWith(`https:`))return node_https_1.request;throw Error(`Unsupported protocol: ${url$5.split(`:`)[0]||url$5}`)}function fetchNodeHttp(fetchRequest){return new Promise((resolve$9,reject)=>{try{let requestFn=getRequestFnForProtocol(fetchRequest.parsedUrl?.protocol||fetchRequest.url),headersSerializer=fetchRequest.headersSerializer||utils_js_1$4.getHeadersObj,nodeHeaders=headersSerializer(fetchRequest.headers);nodeHeaders[`accept-encoding`]==null&&(nodeHeaders[`accept-encoding`]=`gzip, deflate, br`);let signal;fetchRequest._signal==null?signal=void 0:fetchRequest._signal&&(signal=fetchRequest._signal);let nodeRequest;if(nodeRequest=fetchRequest.parsedUrl?requestFn(fetchRequest.parsedUrl,{method:fetchRequest.method,headers:nodeHeaders,signal,agent:fetchRequest.agent}):requestFn(fetchRequest.url,{method:fetchRequest.method,headers:nodeHeaders,signal,agent:fetchRequest.agent}),nodeRequest.once(`error`,reject),nodeRequest.once(`response`,nodeResponse=>{let outputStream,contentEncoding=nodeResponse.headers[`content-encoding`];switch(contentEncoding){case`x-gzip`:case`gzip`:outputStream=(0,node_zlib_1$2.createGunzip)();break;case`x-deflate`:case`deflate`:outputStream=(0,node_zlib_1$2.createInflate)();break;case`x-deflate-raw`:case`deflate-raw`:outputStream=(0,node_zlib_1$2.createInflateRaw)();break;case`br`:outputStream=(0,node_zlib_1$2.createBrotliDecompress)();break}if(nodeResponse.headers.location&&(0,utils_js_1$4.shouldRedirect)(nodeResponse.statusCode)){if(fetchRequest.redirect===`error`){let redirectError=Error(`Redirects are not allowed`);reject(redirectError),nodeResponse.resume();return}if(fetchRequest.redirect===`follow`){let redirectedUrl=new URL_js_1$2.PonyfillURL(nodeResponse.headers.location,fetchRequest.parsedUrl||fetchRequest.url),redirectResponse$=fetchNodeHttp(new Request_js_1$2.PonyfillRequest(redirectedUrl,fetchRequest));resolve$9(redirectResponse$.then(redirectResponse=>(redirectResponse.redirected=!0,redirectResponse))),nodeResponse.resume();return}}outputStream||=new node_stream_1$2.PassThrough,(0,utils_js_1$4.pipeThrough)({src:nodeResponse,dest:outputStream,signal,onError:e$1=>{nodeResponse.destroyed||nodeResponse.destroy(e$1),outputStream.destroyed||outputStream.destroy(e$1),reject(e$1)}});let statusCode=nodeResponse.statusCode||200,statusText=nodeResponse.statusMessage||node_http_1$17.STATUS_CODES[statusCode];statusText==null&&(statusText=``);let ponyfillResponse=new Response_js_1$2.PonyfillResponse(outputStream||nodeResponse,{status:statusCode,statusText,headers:nodeResponse.headers,url:fetchRequest.url,signal});resolve$9(ponyfillResponse)}),fetchRequest._buffer!=null)(0,promise_helpers_1$1.handleMaybePromise)(()=>(0,utils_js_1$4.safeWrite)(fetchRequest._buffer,nodeRequest),()=>(0,utils_js_1$4.endStream)(nodeRequest),reject);else{let nodeReadable=fetchRequest.body==null?null:(0,utils_js_1$4.isNodeReadable)(fetchRequest.body)?fetchRequest.body:node_stream_1$2.Readable.from(fetchRequest.body);nodeReadable?nodeReadable.pipe(nodeRequest):(0,utils_js_1$4.endStream)(nodeRequest)}}catch(e$1){reject(e$1)}})}})),require_fetch$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchPonyfill=fetchPonyfill;let node_buffer_1$1=__require$2(`node:buffer`),node_fs_1=__require$2(`node:fs`),node_url_1=__require$2(`node:url`),fetchCurl_js_1=require_fetchCurl(),fetchNodeHttp_js_1=require_fetchNodeHttp(),Request_js_1$1=require_Request(),Response_js_1$1=require_Response(),URL_js_1$1=require_URL$2(),utils_js_1$3=require_utils$85(),BASE64_SUFFIX=`;base64`;async function getResponseForFile(url$5){let path$40=(0,node_url_1.fileURLToPath)(url$5);try{await node_fs_1.promises.access(path$40,node_fs_1.promises.constants.R_OK);let stats=await node_fs_1.promises.stat(path$40,{bigint:!0}),readable$1=(0,node_fs_1.createReadStream)(path$40);return new Response_js_1$1.PonyfillResponse(readable$1,{status:200,statusText:`OK`,headers:{"content-type":`application/octet-stream`,"last-modified":stats.mtime.toUTCString()}})}catch(err){if(err.code===`ENOENT`)return new Response_js_1$1.PonyfillResponse(null,{status:404,statusText:`Not Found`});if(err.code===`EACCES`)return new Response_js_1$1.PonyfillResponse(null,{status:403,statusText:`Forbidden`});throw err}}function getResponseForDataUri(url$5){let[mimeType=`text/plain`,...datas]=url$5.substring(5).split(`,`),data$2=decodeURIComponent(datas.join(`,`));if(mimeType.endsWith(`;base64`)){let buffer$1=node_buffer_1$1.Buffer.from(data$2,`base64url`),realMimeType=mimeType.slice(0,-7);return new Response_js_1$1.PonyfillResponse(buffer$1,{status:200,statusText:`OK`,headers:{"content-type":realMimeType}})}return new Response_js_1$1.PonyfillResponse(data$2,{status:200,statusText:`OK`,headers:{"content-type":mimeType}})}function getResponseForBlob(url$5){let blob=URL_js_1$1.PonyfillURL.getBlobFromURL(url$5);if(!blob)throw TypeError(`Invalid Blob URL`);return new Response_js_1$1.PonyfillResponse(blob,{status:200,headers:{"content-type":blob.type,"content-length":blob.size.toString()}})}function isURL(obj){return obj!=null&&obj.href!=null}function fetchPonyfill(info$1,init$7){if(typeof info$1==`string`||isURL(info$1)){let ponyfillRequest=new Request_js_1$1.PonyfillRequest(info$1,init$7);return fetchPonyfill(ponyfillRequest)}let fetchRequest=info$1;if(fetchRequest.url.startsWith(`data:`)){let response=getResponseForDataUri(fetchRequest.url);return(0,utils_js_1$3.fakePromise)(response)}if(fetchRequest.url.startsWith(`file:`)){let response=getResponseForFile(fetchRequest.url);return response}if(fetchRequest.url.startsWith(`blob:`)){let response=getResponseForBlob(fetchRequest.url);return(0,utils_js_1$3.fakePromise)(response)}return globalThis.libcurl&&!fetchRequest.agent?(0,fetchCurl_js_1.fetchCurl)(fetchRequest):(0,fetchNodeHttp_js_1.fetchNodeHttp)(fetchRequest)}})),require_TextEncoderDecoder=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillTextDecoder=exports.PonyfillTextEncoder=void 0,exports.PonyfillBtoa=PonyfillBtoa;let node_buffer_1=__require$2(`node:buffer`),utils_js_1$2=require_utils$85();var PonyfillTextEncoder=class{encoding;constructor(encoding=`utf-8`){this.encoding=encoding}encode(input){return node_buffer_1.Buffer.from(input,this.encoding)}encodeInto(source$39,destination){let buffer$1=this.encode(source$39),copied=buffer$1.copy(destination);return{read:copied,written:copied}}};exports.PonyfillTextEncoder=PonyfillTextEncoder;var PonyfillTextDecoder=class{encoding;fatal=!1;ignoreBOM=!1;constructor(encoding=`utf-8`,options$1){this.encoding=encoding,options$1&&(this.fatal=options$1.fatal||!1,this.ignoreBOM=options$1.ignoreBOM||!1)}decode(input){return node_buffer_1.Buffer.isBuffer(input)?input.toString(this.encoding):(0,utils_js_1$2.isArrayBufferView)(input)?node_buffer_1.Buffer.from(input.buffer,input.byteOffset,input.byteLength).toString(this.encoding):node_buffer_1.Buffer.from(input).toString(this.encoding)}};exports.PonyfillTextDecoder=PonyfillTextDecoder;function PonyfillBtoa(input){return node_buffer_1.Buffer.from(input,`binary`).toString(`base64`)}})),require_URLSearchParams=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillURLSearchParams=void 0,exports.PonyfillURLSearchParams=globalThis.URLSearchParams})),require_WritableStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillWritableStream=void 0;let node_events_1$2=__require$2(`node:events`),node_stream_1$1=__require$2(`node:stream`),promise_helpers_1=require_cjs$4(),utils_js_1$1=require_utils$85();var PonyfillWritableStream=class{writable;constructor(underlyingSink){if(underlyingSink instanceof node_stream_1$1.Writable)this.writable=underlyingSink;else if(underlyingSink){let writable$1=new node_stream_1$1.Writable({write(chunk$1,_encoding,callback$1){try{let result=underlyingSink.write?.(chunk$1,controller);result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}catch(err){callback$1(err)}},final(callback$1){let result=underlyingSink.close?.();result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}});this.writable=writable$1;let abortCtrl=new AbortController,controller={signal:abortCtrl.signal,error(e$1){writable$1.destroy(e$1)}};writable$1.once(`error`,err=>abortCtrl.abort(err)),writable$1.once(`close`,()=>abortCtrl.abort())}else this.writable=new node_stream_1$1.Writable}getWriter(){let writable$1=this.writable;return{get closed(){return(0,node_events_1$2.once)(writable$1,`close`)},get desiredSize(){return writable$1.writableLength},get ready(){return(0,node_events_1$2.once)(writable$1,`drain`)},releaseLock(){},write(chunk$1){let promise$1=(0,utils_js_1$1.fakePromise)();return chunk$1==null?promise$1:promise$1.then(()=>(0,utils_js_1$1.safeWrite)(chunk$1,writable$1))},close(){return!writable$1.errored&&writable$1.closed?(0,utils_js_1$1.fakePromise)():writable$1.errored?(0,promise_helpers_1.fakeRejectPromise)(writable$1.errored):(0,utils_js_1$1.fakePromise)().then(()=>(0,utils_js_1$1.endStream)(writable$1))},abort(reason){return writable$1.destroy(reason),(0,node_events_1$2.once)(writable$1,`close`)}}}close(){return!this.writable.errored&&this.writable.closed?(0,utils_js_1$1.fakePromise)():this.writable.errored?(0,promise_helpers_1.fakeRejectPromise)(this.writable.errored):(0,utils_js_1$1.fakePromise)().then(()=>(0,utils_js_1$1.endStream)(this.writable))}abort(reason){return this.writable.destroy(reason),(0,node_events_1$2.once)(this.writable,`close`)}locked=!1};exports.PonyfillWritableStream=PonyfillWritableStream})),require_TransformStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillTransformStream=void 0;let node_stream_1=__require$2(`node:stream`),ReadableStream_js_1$1=require_ReadableStream(),utils_js_1=require_utils$85(),WritableStream_js_1$1=require_WritableStream();var PonyfillTransformStream=class{transform;writable;readable;constructor(transformer){if(transformer instanceof node_stream_1.Transform)this.transform=transformer;else if(transformer){let controller={enqueue(chunk$1){transform.push(chunk$1)},error(reason){transform.destroy(reason)},terminate(){(0,utils_js_1.endStream)(transform)},get desiredSize(){return transform.writableLength}},transform=new node_stream_1.Transform({read(){},write(chunk$1,_encoding,callback$1){try{let result=transformer.transform?.(chunk$1,controller);result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}catch(err){callback$1(err)}},final(callback$1){try{let result=transformer.flush?.(controller);result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}catch(err){callback$1(err)}}});this.transform=transform}else this.transform=new node_stream_1.Transform;this.writable=new WritableStream_js_1$1.PonyfillWritableStream(this.transform),this.readable=new ReadableStream_js_1$1.PonyfillReadableStream(this.transform)}};exports.PonyfillTransformStream=PonyfillTransformStream})),require_CompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillCompressionStream=void 0;let node_zlib_1$1=__require$2(`node:zlib`),TransformStream_js_1$3=require_TransformStream();var PonyfillCompressionStream=class extends TransformStream_js_1$3.PonyfillTransformStream{static supportedFormats=globalThis.process?.version?.startsWith(`v2`)?[`gzip`,`deflate`,`br`]:[`gzip`,`deflate`,`deflate-raw`,`br`];constructor(compressionFormat){switch(compressionFormat){case`x-gzip`:case`gzip`:super((0,node_zlib_1$1.createGzip)());break;case`x-deflate`:case`deflate`:super((0,node_zlib_1$1.createDeflate)());break;case`deflate-raw`:super((0,node_zlib_1$1.createDeflateRaw)());break;case`br`:super((0,node_zlib_1$1.createBrotliCompress)());break;default:throw Error(`Unsupported compression format: ${compressionFormat}`)}}};exports.PonyfillCompressionStream=PonyfillCompressionStream})),require_DecompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillDecompressionStream=void 0;let node_zlib_1=__require$2(`node:zlib`),TransformStream_js_1$2=require_TransformStream();var PonyfillDecompressionStream=class extends TransformStream_js_1$2.PonyfillTransformStream{static supportedFormats=globalThis.process?.version?.startsWith(`v2`)?[`gzip`,`deflate`,`br`]:[`gzip`,`deflate`,`deflate-raw`,`br`];constructor(compressionFormat){switch(compressionFormat){case`x-gzip`:case`gzip`:super((0,node_zlib_1.createGunzip)());break;case`x-deflate`:case`deflate`:super((0,node_zlib_1.createInflate)());break;case`deflate-raw`:super((0,node_zlib_1.createInflateRaw)());break;case`br`:super((0,node_zlib_1.createBrotliDecompress)());break;default:throw TypeError(`Unsupported compression format: '${compressionFormat}'`)}}};exports.PonyfillDecompressionStream=PonyfillDecompressionStream})),require_TextEncoderDecoderStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillTextEncoderStream=exports.PonyfillTextDecoderStream=void 0;let TextEncoderDecoder_js_1$1=require_TextEncoderDecoder(),TransformStream_js_1$1=require_TransformStream();var PonyfillTextDecoderStream=class extends TransformStream_js_1$1.PonyfillTransformStream{textDecoder;constructor(encoding,options$1){super({transform:(chunk$1,controller)=>controller.enqueue(this.textDecoder.decode(chunk$1,{stream:!0}))}),this.textDecoder=new TextEncoderDecoder_js_1$1.PonyfillTextDecoder(encoding,options$1)}get encoding(){return this.textDecoder.encoding}get fatal(){return this.textDecoder.fatal}get ignoreBOM(){return this.textDecoder.ignoreBOM}};exports.PonyfillTextDecoderStream=PonyfillTextDecoderStream;var PonyfillTextEncoderStream=class extends TransformStream_js_1$1.PonyfillTransformStream{textEncoder;constructor(encoding){super({transform:(chunk$1,controller)=>controller.enqueue(this.textEncoder.encode(chunk$1))}),this.textEncoder=new TextEncoderDecoder_js_1$1.PonyfillTextEncoder(encoding)}get encoding(){return this.textEncoder.encoding}encode(input){return this.textEncoder.encode(input)}};exports.PonyfillTextEncoderStream=PonyfillTextEncoderStream})),require_cjs$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TextEncoderStream=exports.TextDecoderStream=exports.IteratorObject=exports.DecompressionStream=exports.CompressionStream=exports.TransformStream=exports.WritableStream=exports.URLSearchParams=exports.URL=exports.btoa=exports.TextDecoder=exports.TextEncoder=exports.Blob=exports.FormData=exports.File=exports.ReadableStream=exports.Response=exports.Request=exports.Body=exports.Headers=exports.fetch=void 0;var fetch_js_1=require_fetch$1();Object.defineProperty(exports,`fetch`,{enumerable:!0,get:function(){return fetch_js_1.fetchPonyfill}});var Headers_js_1=require_Headers();Object.defineProperty(exports,`Headers`,{enumerable:!0,get:function(){return Headers_js_1.PonyfillHeaders}});var Body_js_1=require_Body();Object.defineProperty(exports,`Body`,{enumerable:!0,get:function(){return Body_js_1.PonyfillBody}});var Request_js_1=require_Request();Object.defineProperty(exports,`Request`,{enumerable:!0,get:function(){return Request_js_1.PonyfillRequest}});var Response_js_1=require_Response();Object.defineProperty(exports,`Response`,{enumerable:!0,get:function(){return Response_js_1.PonyfillResponse}});var ReadableStream_js_1=require_ReadableStream();Object.defineProperty(exports,`ReadableStream`,{enumerable:!0,get:function(){return ReadableStream_js_1.PonyfillReadableStream}});var File_js_1=require_File();Object.defineProperty(exports,`File`,{enumerable:!0,get:function(){return File_js_1.PonyfillFile}});var FormData_js_1=require_FormData();Object.defineProperty(exports,`FormData`,{enumerable:!0,get:function(){return FormData_js_1.PonyfillFormData}});var Blob_js_1=require_Blob();Object.defineProperty(exports,`Blob`,{enumerable:!0,get:function(){return Blob_js_1.PonyfillBlob}});var TextEncoderDecoder_js_1=require_TextEncoderDecoder();Object.defineProperty(exports,`TextEncoder`,{enumerable:!0,get:function(){return TextEncoderDecoder_js_1.PonyfillTextEncoder}}),Object.defineProperty(exports,`TextDecoder`,{enumerable:!0,get:function(){return TextEncoderDecoder_js_1.PonyfillTextDecoder}}),Object.defineProperty(exports,`btoa`,{enumerable:!0,get:function(){return TextEncoderDecoder_js_1.PonyfillBtoa}});var URL_js_1=require_URL$2();Object.defineProperty(exports,`URL`,{enumerable:!0,get:function(){return URL_js_1.PonyfillURL}});var URLSearchParams_js_1=require_URLSearchParams();Object.defineProperty(exports,`URLSearchParams`,{enumerable:!0,get:function(){return URLSearchParams_js_1.PonyfillURLSearchParams}});var WritableStream_js_1=require_WritableStream();Object.defineProperty(exports,`WritableStream`,{enumerable:!0,get:function(){return WritableStream_js_1.PonyfillWritableStream}});var TransformStream_js_1=require_TransformStream();Object.defineProperty(exports,`TransformStream`,{enumerable:!0,get:function(){return TransformStream_js_1.PonyfillTransformStream}});var CompressionStream_js_1=require_CompressionStream();Object.defineProperty(exports,`CompressionStream`,{enumerable:!0,get:function(){return CompressionStream_js_1.PonyfillCompressionStream}});var DecompressionStream_js_1=require_DecompressionStream();Object.defineProperty(exports,`DecompressionStream`,{enumerable:!0,get:function(){return DecompressionStream_js_1.PonyfillDecompressionStream}});var IteratorObject_js_1=require_IteratorObject();Object.defineProperty(exports,`IteratorObject`,{enumerable:!0,get:function(){return IteratorObject_js_1.PonyfillIteratorObject}});var TextEncoderDecoderStream_js_1=require_TextEncoderDecoderStream();Object.defineProperty(exports,`TextDecoderStream`,{enumerable:!0,get:function(){return TextEncoderDecoderStream_js_1.PonyfillTextDecoderStream}}),Object.defineProperty(exports,`TextEncoderStream`,{enumerable:!0,get:function(){return TextEncoderDecoderStream_js_1.PonyfillTextEncoderStream}})})),require_create_node_ponyfill=__commonJSMin(((exports,module)=>{let shouldSkipPonyfill$1=require_shouldSkipPonyfill(),newNodeFetch;module.exports=function(opts={}){let ponyfills$1={};if(ponyfills$1.URLPattern=globalThis.URLPattern,!ponyfills$1.URLPattern){let urlPatternModule=require_urlpattern_polyfill();ponyfills$1.URLPattern=urlPatternModule.URLPattern}if(opts.skipPonyfill||shouldSkipPonyfill$1())return{fetch:globalThis.fetch,Headers:globalThis.Headers,Request:globalThis.Request,Response:globalThis.Response,FormData:globalThis.FormData,ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,CompressionStream:globalThis.CompressionStream,DecompressionStream:globalThis.DecompressionStream,TextDecoderStream:globalThis.TextDecoderStream,TextEncoderStream:globalThis.TextEncoderStream,Blob:globalThis.Blob,File:globalThis.File,crypto:globalThis.crypto,btoa:globalThis.btoa,TextEncoder:globalThis.TextEncoder,TextDecoder:globalThis.TextDecoder,URLPattern:ponyfills$1.URLPattern,URL:globalThis.URL,URLSearchParams:globalThis.URLSearchParams};if(newNodeFetch||=require_cjs$2(),ponyfills$1.fetch=newNodeFetch.fetch,ponyfills$1.Request=newNodeFetch.Request,ponyfills$1.Response=newNodeFetch.Response,ponyfills$1.Headers=newNodeFetch.Headers,ponyfills$1.FormData=newNodeFetch.FormData,ponyfills$1.ReadableStream=newNodeFetch.ReadableStream,ponyfills$1.URL=newNodeFetch.URL,ponyfills$1.URLSearchParams=newNodeFetch.URLSearchParams,ponyfills$1.WritableStream=newNodeFetch.WritableStream,ponyfills$1.TransformStream=newNodeFetch.TransformStream,ponyfills$1.CompressionStream=newNodeFetch.CompressionStream,ponyfills$1.DecompressionStream=newNodeFetch.DecompressionStream,ponyfills$1.TextDecoderStream=newNodeFetch.TextDecoderStream,ponyfills$1.TextEncoderStream=newNodeFetch.TextEncoderStream,ponyfills$1.Blob=newNodeFetch.Blob,ponyfills$1.File=newNodeFetch.File,ponyfills$1.crypto=globalThis.crypto,ponyfills$1.btoa=newNodeFetch.btoa,ponyfills$1.TextEncoder=newNodeFetch.TextEncoder,ponyfills$1.TextDecoder=newNodeFetch.TextDecoder,opts.formDataLimits&&(ponyfills$1.Body=class extends newNodeFetch.Body{constructor(body,userOpts){super(body,{formDataLimits:opts.formDataLimits,...userOpts})}},ponyfills$1.Request=class extends newNodeFetch.Request{constructor(input,userOpts){super(input,{formDataLimits:opts.formDataLimits,...userOpts})}},ponyfills$1.Response=class extends newNodeFetch.Response{constructor(body,userOpts){super(body,{formDataLimits:opts.formDataLimits,...userOpts})}}),!ponyfills$1.crypto){let cryptoModule=__require$2(`crypto`);ponyfills$1.crypto=cryptoModule.webcrypto}return ponyfills$1}})),require_node_ponyfill$1=__commonJSMin(((exports,module)=>{let createNodePonyfill=require_create_node_ponyfill(),shouldSkipPonyfill=require_shouldSkipPonyfill(),ponyfills=createNodePonyfill();if(!shouldSkipPonyfill())try{let nodelibcurlName=`node-libcurl`;globalThis.libcurl=globalThis.libcurl||__require$2(`node-libcurl`)}catch(e$1){}module.exports.fetch=ponyfills.fetch,module.exports.Headers=ponyfills.Headers,module.exports.Request=ponyfills.Request,module.exports.Response=ponyfills.Response,module.exports.FormData=ponyfills.FormData,module.exports.ReadableStream=ponyfills.ReadableStream,module.exports.WritableStream=ponyfills.WritableStream,module.exports.TransformStream=ponyfills.TransformStream,module.exports.CompressionStream=ponyfills.CompressionStream,module.exports.DecompressionStream=ponyfills.DecompressionStream,module.exports.TextDecoderStream=ponyfills.TextDecoderStream,module.exports.TextEncoderStream=ponyfills.TextEncoderStream,module.exports.Blob=ponyfills.Blob,module.exports.File=ponyfills.File,module.exports.crypto=ponyfills.crypto,module.exports.btoa=ponyfills.btoa,module.exports.TextEncoder=ponyfills.TextEncoder,module.exports.TextDecoder=ponyfills.TextDecoder,module.exports.URLPattern=ponyfills.URLPattern,module.exports.URL=ponyfills.URL,module.exports.URLSearchParams=ponyfills.URLSearchParams,exports.createFetch=createNodePonyfill}));function isAsyncIterable$2(body){return typeof body==`object`&&!!body&&typeof body[Symbol.asyncIterator]==`function`}function getPort$2(nodeRequest){if(nodeRequest.socket?.localPort)return nodeRequest.socket?.localPort;let hostInHeader=nodeRequest.headers?.[`:authority`]||nodeRequest.headers?.host,portInHeader=hostInHeader?.split(`:`)?.[1];return portInHeader||80}function getHostnameWithPort(nodeRequest){if(nodeRequest.headers?.[`:authority`])return nodeRequest.headers?.[`:authority`];if(nodeRequest.headers?.host)return nodeRequest.headers?.host;let port$1=getPort$2(nodeRequest);if(nodeRequest.hostname)return nodeRequest.hostname+`:`+port$1;let localIp=nodeRequest.socket?.localAddress;return localIp&&!localIp?.includes(`::`)&&!localIp?.includes(`ffff`)?`${localIp}:${port$1}`:`localhost`}function buildFullUrl(nodeRequest){let hostnameWithPort=getHostnameWithPort(nodeRequest),protocol=nodeRequest.protocol||(nodeRequest.socket?.encrypted?`https`:`http`),endpoint=nodeRequest.originalUrl||nodeRequest.url||`/graphql`;return`${protocol}://${hostnameWithPort}${endpoint}`}function isRequestBody(body){let stringTag=body[Symbol.toStringTag];return!!(typeof body==`string`||stringTag===`Uint8Array`||stringTag===`Blob`||stringTag===`FormData`||stringTag===`URLSearchParams`||isAsyncIterable$2(body))}function normalizeNodeRequest(nodeRequest,fetchAPI,nodeResponse,__useCustomAbortCtrl){let rawRequest=nodeRequest.raw||nodeRequest.req||nodeRequest,fullUrl=buildFullUrl(rawRequest);if(nodeRequest.query){let url$5=new fetchAPI.URL(fullUrl);for(let key in nodeRequest.query)url$5.searchParams.set(key,nodeRequest.query[key]);fullUrl=url$5.toString()}let normalizedHeaders=nodeRequest.headers;if(nodeRequest.headers?.[`:method`])for(let key in normalizedHeaders={},nodeRequest.headers)key.startsWith(`:`)||(normalizedHeaders[key]=nodeRequest.headers[key]);let controller=__useCustomAbortCtrl?createCustomAbortControllerSignal():new AbortController;if(nodeResponse?.once){let closeEventListener=()=>{controller.signal.aborted||(Object.defineProperty(rawRequest,`aborted`,{value:!0}),controller.abort(nodeResponse.errored??void 0))};nodeResponse.once(`error`,closeEventListener),nodeResponse.once(`close`,closeEventListener),nodeResponse.once(`finish`,()=>{nodeResponse.removeListener(`close`,closeEventListener)})}if(nodeRequest.method===`GET`||nodeRequest.method===`HEAD`)return new fetchAPI.Request(fullUrl,{method:nodeRequest.method,headers:normalizedHeaders,signal:controller.signal});let maybeParsedBody=nodeRequest.body;if(maybeParsedBody!=null&&Object.keys(maybeParsedBody).length>0){if(isRequestBody(maybeParsedBody))return new fetchAPI.Request(fullUrl,{method:nodeRequest.method||`GET`,headers:normalizedHeaders,body:maybeParsedBody,signal:controller.signal});let request$2=new fetchAPI.Request(fullUrl,{method:nodeRequest.method||`GET`,headers:normalizedHeaders,signal:controller.signal});return request$2.headers.get(`content-type`)?.includes(`json`)||request$2.headers.set(`content-type`,`application/json; charset=utf-8`),new Proxy(request$2,{get:(target,prop,receiver)=>{switch(prop){case`json`:return()=>fakePromise(maybeParsedBody);case`text`:return()=>fakePromise(JSON.stringify(maybeParsedBody));default:return globalThis.Bun?Reflect.get(target,prop):Reflect.get(target,prop,receiver)}}})}return new fetchAPI.Request(fullUrl,{method:nodeRequest.method,headers:normalizedHeaders,signal:controller.signal,body:rawRequest,duplex:`half`})}function isReadable$1(stream$8){return stream$8.read!=null}function isNodeRequest(request$2){return isReadable$1(request$2)}function isServerResponse(stream$8){return stream$8!=null&&stream$8.setHeader!=null&&stream$8.end!=null&&stream$8.once!=null&&stream$8.write!=null}function isReadableStream$2(stream$8){return stream$8!=null&&stream$8.getReader!=null}function isFetchEvent(event){return event!=null&&event.request!=null&&event.respondWith!=null}function configureSocket(rawRequest){rawRequest?.socket?.setTimeout?.(0),rawRequest?.socket?.setNoDelay?.(!0),rawRequest?.socket?.setKeepAlive?.(!0)}function endResponse(serverResponse){serverResponse.end(null,null,null)}function sendAsyncIterable(serverResponse,asyncIterable){let closed=!1,closeEventListener=()=>{closed=!0};serverResponse.once(`error`,closeEventListener),serverResponse.once(`close`,closeEventListener),serverResponse.once(`finish`,()=>{serverResponse.removeListener(`close`,closeEventListener),serverResponse.removeListener(`error`,closeEventListener)});let iterator=asyncIterable[Symbol.asyncIterator](),pump$2=()=>iterator.next().then(({done,value})=>{if(!(closed||done))return handleMaybePromise(()=>safeWrite(value,serverResponse),()=>closed?endResponse(serverResponse):pump$2())});return pump$2()}function safeWrite(chunk$1,serverResponse){let result=serverResponse.write(chunk$1);if(!result)return new Promise(resolve$9=>serverResponse.once(`drain`,resolve$9))}function sendNodeResponse(fetchResponse,serverResponse,nodeRequest,__useSingleWriteHead){if(serverResponse.closed||serverResponse.destroyed||serverResponse.writableEnded)return;if(!fetchResponse){serverResponse.statusCode=404,endResponse(serverResponse);return}if(__useSingleWriteHead&&fetchResponse.headers?.headersInit&&!Array.isArray(fetchResponse.headers.headersInit)&&!fetchResponse.headers.headersInit.get&&!fetchResponse.headers._map&&!fetchResponse.headers._setCookies?.length)serverResponse.writeHead(fetchResponse.status,fetchResponse.statusText,fetchResponse.headers.headersInit);else{if(serverResponse.setHeaders)serverResponse.setHeaders(fetchResponse.headers);else{let setCookiesSet=!1;fetchResponse.headers.forEach((value,key)=>{if(key===`set-cookie`){if(setCookiesSet)return;setCookiesSet=!0;let setCookies=fetchResponse.headers.getSetCookie?.();if(setCookies){serverResponse.setHeader(`set-cookie`,setCookies);return}}serverResponse.setHeader(key,value)})}serverResponse.writeHead(fetchResponse.status,fetchResponse.statusText)}if(fetchResponse.bodyType===`String`)return handleMaybePromise(()=>safeWrite(fetchResponse.bodyInit,serverResponse),()=>endResponse(serverResponse));let bufOfRes=fetchResponse._buffer;if(bufOfRes)return handleMaybePromise(()=>safeWrite(bufOfRes,serverResponse),()=>endResponse(serverResponse));let fetchBody=fetchResponse.body;if(fetchBody==null){endResponse(serverResponse);return}if(fetchBody[Symbol.toStringTag]===`Uint8Array`)return handleMaybePromise(()=>safeWrite(fetchBody,serverResponse),()=>endResponse(serverResponse));if(configureSocket(nodeRequest),isReadable$1(fetchBody)){serverResponse.once(`close`,()=>{fetchBody.destroy()}),fetchBody.pipe(serverResponse,{end:!0});return}if(isReadableStream$2(fetchBody))return sendReadableStream(nodeRequest,serverResponse,fetchBody);if(isAsyncIterable$2(fetchBody))return sendAsyncIterable(serverResponse,fetchBody)}function sendReadableStream(nodeRequest,serverResponse,readableStream){let reader=readableStream.getReader();nodeRequest?.once?.(`error`,err=>{reader.cancel(err)});function pump$2(){return reader.read().then(({done,value})=>done?endResponse(serverResponse):handleMaybePromise(()=>safeWrite(value,serverResponse),pump$2))}return pump$2()}function isRequestInit(val){return typeof val==`object`&&!!val&&(`body`in val||`cache`in val||`credentials`in val||`headers`in val||`integrity`in val||`keepalive`in val||`method`in val||`mode`in val||`redirect`in val||`referrer`in val||`referrerPolicy`in val||`signal`in val||`window`in val)}function completeAssign(...args){let[target,...sources]=args.filter(arg=>typeof arg==`object`&&!!arg);return sources.forEach(source$39=>{let descriptors$1=Object.getOwnPropertyNames(source$39).reduce((descriptors$2,key)=>{let descriptor$1=Object.getOwnPropertyDescriptor(source$39,key);return descriptor$1&&(descriptors$2[key]=Object.getOwnPropertyDescriptor(source$39,key)),descriptors$2},{});Object.getOwnPropertySymbols(source$39).forEach(sym=>{let descriptor$1=Object.getOwnPropertyDescriptor(source$39,sym);descriptor$1?.enumerable&&(descriptors$1[sym]=descriptor$1)}),Object.defineProperties(target,descriptors$1)}),target}function handleErrorFromRequestHandler(error$22,ResponseCtor){return new ResponseCtor(error$22.stack||error$22.message||error$22.toString(),{status:error$22.status||500})}function isolateObject(originalCtx,waitUntilFn){return originalCtx==null?waitUntilFn==null?{}:{waitUntil:waitUntilFn}:completeAssign(Object.create(originalCtx),{waitUntil:waitUntilFn},originalCtx)}function handleAbortSignalAndPromiseResponse(response$,abortSignal){if(abortSignal?.aborted)throw abortSignal.reason;if(isPromise$5(response$)&&abortSignal){let deferred$=createDeferredPromise();function abortSignalFetchErrorHandler(){deferred$.reject(abortSignal.reason)}return abortSignal.addEventListener(`abort`,abortSignalFetchErrorHandler,{once:!0}),response$.then(function(res){deferred$.resolve(res)}).catch(function(err){deferred$.reject(err)}).finally(()=>{abortSignal.removeEventListener(`abort`,abortSignalFetchErrorHandler)}),deferred$.promise}return response$}const terminateEvents=[`SIGINT`,`exit`,`SIGTERM`],disposableStacks=new Set;let eventListenerRegistered=!1;function ensureEventListenerForDisposableStacks(){if(!eventListenerRegistered){eventListenerRegistered=!0;for(let event of terminateEvents)globalThis.process.once(event,function(){return Promise.allSettled([...disposableStacks].map(stack=>!stack.disposed&&stack.disposeAsync()))})}}function ensureDisposableStackRegisteredForTerminateEvents(disposableStack){globalThis.process&&(ensureEventListenerForDisposableStacks(),disposableStacks.has(disposableStack)||(disposableStacks.add(disposableStack),disposableStack.defer(()=>{disposableStacks.delete(disposableStack)})))}var CustomAbortControllerSignal=class extends EventTarget{aborted=!1;_onabort=null;_reason;constructor(){super();let nodeEvents=globalThis.process?.getBuiltinModule?.(`node:events`);nodeEvents?.kMaxEventTargetListeners&&(this[nodeEvents.kMaxEventTargetListeners]=0)}throwIfAborted(){if(this._nativeCtrl?.signal?.throwIfAborted)return this._nativeCtrl.signal.throwIfAborted();if(this.aborted)throw this._reason}_nativeCtrl;ensureNativeCtrl(){if(!this._nativeCtrl){let isAborted=this.aborted;this._nativeCtrl=new AbortController,isAborted&&this._nativeCtrl.abort(this._reason)}return this._nativeCtrl}abort(reason){if(this._nativeCtrl?.abort)return this._nativeCtrl?.abort(reason);this._reason=reason||new DOMException(`This operation was aborted`,`AbortError`),this.aborted=!0,this.dispatchEvent(new Event(`abort`))}get signal(){return this._nativeCtrl?.signal?this._nativeCtrl.signal:this}get reason(){return this._nativeCtrl?.signal?this._nativeCtrl.signal.reason:this._reason}get onabort(){return this._onabort,this._onabort}set onabort(value){if(this._nativeCtrl?.signal){this._nativeCtrl.signal.onabort=value;return}this._onabort&&this.removeEventListener(`abort`,this._onabort),this._onabort=value,value&&this.addEventListener(`abort`,value)}};function createCustomAbortControllerSignal(){return globalThis.Bun||globalThis.Deno?new AbortController:new Proxy(new CustomAbortControllerSignal,{get(target,prop,receiver){if(prop.toString().includes(`kDependantSignals`)){let nativeCtrl=target.ensureNativeCtrl();return Reflect.get(nativeCtrl.signal,prop,nativeCtrl.signal)}return Reflect.get(target,prop,receiver)},set(target,prop,value,receiver){if(prop.toString().includes(`kDependantSignals`)){let nativeCtrl=target.ensureNativeCtrl();return Reflect.set(nativeCtrl.signal,prop,value,nativeCtrl.signal)}return Reflect.set(target,prop,value,receiver)},getPrototypeOf(){return AbortSignal.prototype}})}function isUWSResponse(res){return!!res.onData}function getRequestFromUWSRequest({req:req$1,res,fetchAPI,controller}){let method=req$1.getMethod(),duplex$1,chunks=[],pushFns=[chunk$1=>{chunks.push(chunk$1)}],push$2=chunk$1=>{for(let pushFn of pushFns)pushFn(chunk$1)},stopped=!1,stopFns=[()=>{stopped=!0}],stop=()=>{for(let stopFn of stopFns)stopFn()};res.onData(function(ab$1,isLast){push$2(Buffer.from(Buffer.from(ab$1,0,ab$1.byteLength))),isLast&&stop()});let getReadableStream;if(method!==`get`&&method!==`head`){duplex$1=`half`,controller.signal.addEventListener(`abort`,()=>{stop()},{once:!0});let readableStream;getReadableStream=()=>(readableStream||(readableStream=new fetchAPI.ReadableStream({start(streamCtrl){for(let chunk$1 of chunks)streamCtrl.enqueue(chunk$1);if(stopped){streamCtrl.close();return}pushFns.push(chunk$1=>{streamCtrl.enqueue(chunk$1)}),stopFns.push(()=>{if(controller.signal.reason){streamCtrl.error(controller.signal.reason);return}streamCtrl.desiredSize&&streamCtrl.close()})}})),readableStream)}let headers=new fetchAPI.Headers;req$1.forEach((key,value)=>{headers.append(key,value)});let url$5=`http://localhost${req$1.getUrl()}`,query=req$1.getQuery();query&&(url$5+=`?${query}`);let buffer$1;function getBody(){return getReadableStream?stopped?getBufferFromChunks():getReadableStream():null}let request$2=new fetchAPI.Request(url$5,{method,headers,get body(){return getBody()},signal:controller.signal,duplex:duplex$1});function getBufferFromChunks(){return buffer$1||(buffer$1=chunks.length===1?chunks[0]:Buffer.concat(chunks)),buffer$1}function collectBuffer(){return stopped?fakePromise(getBufferFromChunks()):new Promise((resolve$9,reject)=>{try{stopFns.push(()=>{resolve$9(getBufferFromChunks())})}catch(e$1){reject(e$1)}})}return Object.defineProperties(request$2,{body:{get(){return getBody()},configurable:!0,enumerable:!0},json:{value(){return collectBuffer().then(b$2=>b$2.toString(`utf8`)).then(t$1=>JSON.parse(t$1))},configurable:!0,enumerable:!0},text:{value(){return collectBuffer().then(b$2=>b$2.toString(`utf8`))},configurable:!0,enumerable:!0},arrayBuffer:{value(){return collectBuffer()},configurable:!0,enumerable:!0}}),request$2}function createWritableFromUWS(uwsResponse,fetchAPI){return new fetchAPI.WritableStream({write(chunk$1){uwsResponse.cork(()=>{uwsResponse.write(chunk$1)})},close(){uwsResponse.cork(()=>{uwsResponse.end()})}})}function sendResponseToUwsOpts(uwsResponse,fetchResponse,controller,fetchAPI){if(!fetchResponse){uwsResponse.writeStatus(`404 Not Found`),uwsResponse.end();return}let bufferOfRes=fetchResponse._buffer,strBody=fetchResponse.bodyType===`String`?fetchResponse.bodyInit:void 0;if(!controller.signal.aborted&&(uwsResponse.cork(()=>{uwsResponse.writeStatus(`${fetchResponse.status} ${fetchResponse.statusText}`);for(let[key,value]of fetchResponse.headers)if(key!==`content-length`){if(key===`set-cookie`){let setCookies=fetchResponse.headers.getSetCookie?.();if(setCookies){for(let setCookie of setCookies)uwsResponse.writeHeader(key,setCookie);continue}}uwsResponse.writeHeader(key,value)}strBody?uwsResponse.end(strBody):bufferOfRes?uwsResponse.end(bufferOfRes):fetchResponse.body||uwsResponse.end()}),!(strBody||bufferOfRes||!fetchResponse.body)))return controller.signal.addEventListener(`abort`,()=>{fetchResponse.body?.locked||fetchResponse.body?.cancel(controller.signal.reason)},{once:!0}),fetchResponse.body.pipeTo(createWritableFromUWS(uwsResponse,fetchAPI),{signal:controller.signal}).catch(err=>{if(!controller.signal.aborted)throw err})}var import_node_ponyfill$1=__toESM$1(require_node_ponyfill$1(),1);function isRequestAccessible(serverContext){try{return!!serverContext?.request}catch{return!1}}const EMPTY_OBJECT={};function createServerAdapter(serverAdapterBaseObject,options$1){let useSingleWriteHead=options$1?.__useSingleWriteHead==null?!0:options$1.__useSingleWriteHead,fetchAPI={...import_node_ponyfill$1,...options$1?.fetchAPI},useCustomAbortCtrl=options$1?.__useCustomAbortCtrl==null?fetchAPI.Request!==globalThis.Request:options$1.__useCustomAbortCtrl,givenHandleRequest=typeof serverAdapterBaseObject==`function`?serverAdapterBaseObject:serverAdapterBaseObject.handle,onRequestHooks=[],onResponseHooks=[],instrumentation,waitUntilPromises=new Set,_disposableStack;function ensureDisposableStack(){return _disposableStack||(_disposableStack=new AsyncDisposableStack,options$1?.disposeOnProcessTerminate&&ensureDisposableStackRegisteredForTerminateEvents(_disposableStack),_disposableStack.defer(()=>{if(waitUntilPromises.size>0)return Promise.allSettled(waitUntilPromises).then(()=>{waitUntilPromises.clear()},()=>{waitUntilPromises.clear()})})),_disposableStack}function waitUntil(maybePromise){isPromise$5(maybePromise)&&(ensureDisposableStack(),waitUntilPromises.add(maybePromise),maybePromise.then(()=>{waitUntilPromises.delete(maybePromise)},err=>{console.error(`Unexpected error while waiting: ${err.message||err}`),waitUntilPromises.delete(maybePromise)}))}if(options$1?.plugins!=null)for(let plugin of options$1.plugins){plugin.instrumentation&&(instrumentation=instrumentation?chain$1(instrumentation,plugin.instrumentation):plugin.instrumentation),plugin.onRequest&&onRequestHooks.push(plugin.onRequest),plugin.onResponse&&onResponseHooks.push(plugin.onResponse);let disposeFn=plugin[DisposableSymbols.dispose];disposeFn&&ensureDisposableStack().defer(disposeFn);let asyncDisposeFn=plugin[DisposableSymbols.asyncDispose];asyncDisposeFn&&ensureDisposableStack().defer(asyncDisposeFn),plugin.onDispose&&ensureDisposableStack().defer(plugin.onDispose)}let handleRequest=onRequestHooks.length>0||onResponseHooks.length>0?function(request$2,serverContext){let requestHandler=givenHandleRequest,response;if(onRequestHooks.length===0)return handleEarlyResponse();let url$5=request$2.parsedUrl||new Proxy(EMPTY_OBJECT,{get(_target,prop,_receiver){return url$5=new fetchAPI.URL(request$2.url,`http://localhost`),Reflect.get(url$5,prop,url$5)}});function handleResponse(response$1){return onResponseHooks.length===0?response$1:handleMaybePromise(()=>iterateAsync(onResponseHooks,onResponseHook=>onResponseHook({request:request$2,response:response$1,serverContext,setResponse(newResponse){response$1=newResponse},fetchAPI})),()=>response$1)}function handleEarlyResponse(){return response?handleResponse(response):handleMaybePromise(()=>requestHandler(request$2,serverContext),handleResponse)}return handleMaybePromise(()=>iterateAsync(onRequestHooks,(onRequestHook,stopEarly)=>onRequestHook({request:request$2,setRequest(newRequest){request$2=newRequest},serverContext,fetchAPI,url:url$5,requestHandler,setRequestHandler(newRequestHandler){requestHandler=newRequestHandler},endResponse(newResponse){response=newResponse,newResponse&&stopEarly()}})),handleEarlyResponse)}:givenHandleRequest;if(instrumentation?.request){let originalRequestHandler=handleRequest;handleRequest=(request$2,initialContext)=>getInstrumented({request:request$2}).asyncFn(instrumentation.request,originalRequestHandler)(request$2,initialContext)}function handleNodeRequest(nodeRequest,...ctx){let serverContext=ctx.length>1?completeAssign(...ctx):ctx[0]||{};serverContext.waitUntil||(serverContext.waitUntil=waitUntil);let request$2=normalizeNodeRequest(nodeRequest,fetchAPI,void 0,useCustomAbortCtrl);return handleRequest(request$2,serverContext)}function handleNodeRequestAndResponse(nodeRequest,nodeResponseOrContainer,...ctx){let nodeResponse=nodeResponseOrContainer.raw||nodeResponseOrContainer,serverContext=ctx.length>1?completeAssign(...ctx):ctx[0]||{};serverContext.waitUntil||(serverContext.waitUntil=waitUntil);let request$2=normalizeNodeRequest(nodeRequest,fetchAPI,nodeResponse,useCustomAbortCtrl);return handleRequest(request$2,serverContext)}function requestListener(nodeRequest,nodeResponse,...ctx){let defaultServerContext={req:nodeRequest,res:nodeResponse,waitUntil};return unfakePromise(fakePromise().then(()=>handleNodeRequestAndResponse(nodeRequest,nodeResponse,defaultServerContext,...ctx)).catch(err=>handleErrorFromRequestHandler(err,fetchAPI.Response)).then(response=>sendNodeResponse(response,nodeResponse,nodeRequest,useSingleWriteHead)).catch(err=>console.error(`Unexpected error while handling request: ${err.message||err}`)))}function handleUWS(res,req$1,...ctx){let defaultServerContext={res,req:req$1,waitUntil},filteredCtxParts=ctx.filter(partCtx=>partCtx!=null),serverContext=filteredCtxParts.length>0?completeAssign(defaultServerContext,...ctx):defaultServerContext,controller=useCustomAbortCtrl?createCustomAbortControllerSignal():new AbortController,originalResEnd=res.end.bind(res),resEnded=!1;res.end=function(data$2){return resEnded=!0,originalResEnd(data$2)};let originalOnAborted=res.onAborted.bind(res);originalOnAborted(function(){controller.abort()}),res.onAborted=function(cb){controller.signal.addEventListener(`abort`,cb,{once:!0})};let request$2=getRequestFromUWSRequest({req:req$1,res,fetchAPI,controller});return handleMaybePromise(()=>handleMaybePromise(()=>handleRequest(request$2,serverContext),response=>response,err=>handleErrorFromRequestHandler(err,fetchAPI.Response)),response=>{if(!controller.signal.aborted&&!resEnded)return handleMaybePromise(()=>sendResponseToUwsOpts(res,response,controller,fetchAPI),r$2=>r$2,err=>{console.error(`Unexpected error while handling request: ${err.message||err}`)})})}function handleEvent(event,...ctx){if(!event.respondWith||!event.request)throw TypeError(`Expected FetchEvent, got ${event}`);let filteredCtxParts=ctx.filter(partCtx=>partCtx!=null),serverContext=filteredCtxParts.length>0?completeAssign({},event,...filteredCtxParts):isolateObject(event),response$=handleRequest(event.request,serverContext);event.respondWith(response$)}function handleRequestWithWaitUntil(request$2,...ctx){let filteredCtxParts=ctx.filter(partCtx=>partCtx!=null),serverContext=filteredCtxParts.length>1?completeAssign({},...filteredCtxParts):isolateObject(filteredCtxParts[0],filteredCtxParts[0]==null||filteredCtxParts[0].waitUntil==null?waitUntil:void 0);return handleRequest(request$2,serverContext)}let fetchFn=(input,...maybeCtx)=>{if(typeof input==`string`||`href`in input){let[initOrCtx,...restOfCtx]=maybeCtx;if(isRequestInit(initOrCtx)){let request$3=new fetchAPI.Request(input,initOrCtx),res$$1=handleRequestWithWaitUntil(request$3,...restOfCtx),signal=initOrCtx.signal;return signal?handleAbortSignalAndPromiseResponse(res$$1,signal):res$$1}let request$2=new fetchAPI.Request(input);return handleRequestWithWaitUntil(request$2,...maybeCtx)}let res$=handleRequestWithWaitUntil(input,...maybeCtx);return handleAbortSignalAndPromiseResponse(res$,input.signal)},genericRequestHandler=(input,...maybeCtx)=>{let[initOrCtxOrRes,...restOfCtx]=maybeCtx;if(isNodeRequest(input)){if(!isServerResponse(initOrCtxOrRes))throw TypeError(`Expected ServerResponse, got ${initOrCtxOrRes}`);return requestListener(input,initOrCtxOrRes,...restOfCtx)}if(isUWSResponse(input))return handleUWS(input,initOrCtxOrRes,...restOfCtx);if(isServerResponse(initOrCtxOrRes))throw TypeError(`Got Node response without Node request`);return isRequestAccessible(input)?isFetchEvent(input)?handleEvent(input,...maybeCtx):handleRequestWithWaitUntil(input.request,input,...maybeCtx):fetchFn(input,...maybeCtx)},adapterObj={handleRequest:handleRequestWithWaitUntil,fetch:fetchFn,handleNodeRequest,handleNodeRequestAndResponse,requestListener,handleEvent,handleUWS,handle:genericRequestHandler,get disposableStack(){return ensureDisposableStack()},[DisposableSymbols.asyncDispose](){return _disposableStack&&!_disposableStack.disposed?_disposableStack.disposeAsync():fakePromise()},dispose(){return _disposableStack&&!_disposableStack.disposed?_disposableStack.disposeAsync():fakePromise()},waitUntil},serverAdapter=new Proxy(genericRequestHandler,{has:(_$3,prop)=>prop in adapterObj||prop in genericRequestHandler||serverAdapterBaseObject&&prop in serverAdapterBaseObject,get:(_$3,prop)=>{if(globalThis.Deno||prop===Symbol.asyncDispose||prop===Symbol.dispose){let adapterProp$1=Reflect.get(adapterObj,prop,adapterObj);if(adapterProp$1)return adapterProp$1}let adapterProp=adapterObj[prop];if(adapterProp)return adapterProp.bind?adapterProp.bind(adapterObj):adapterProp;let handleProp=genericRequestHandler[prop];if(handleProp)return handleProp.bind?handleProp.bind(genericRequestHandler):handleProp;if(serverAdapterBaseObject){let serverAdapterBaseObjectProp=serverAdapterBaseObject[prop];if(serverAdapterBaseObjectProp)return serverAdapterBaseObjectProp.bind?function(...args){let returnedVal=serverAdapterBaseObject[prop](...args);return returnedVal===serverAdapterBaseObject?serverAdapter:returnedVal}:serverAdapterBaseObjectProp}},apply(_$3,__,args){return genericRequestHandler(...args)}});return serverAdapter}var CustomChatResponseError=class extends Error{constructor(message,response){super(message),this.response=response}};const tools=Object.freeze({withContext(tools$3,context){let withTools={};for(let key of Object.keys(tools$3)){let tool$3=tools$3[key];withTools[key]=tool$3.withContext(context)}return withTools},with(tools$3,context){let withTools={};for(let key of Object.keys(tools$3)){let tool$3=tools$3[key];withTools[key]=tool$3.withContext(context)}return withTools},async withApproval(options$1){let newTools={};for(let[key,tool$3]of Object.entries(options$1.tools)){let originalExecute=tool$3.execute;newTools[key]={...tool$3,execute:async(input,options$2)=>{if(tool$3.autoApprove&&originalExecute){let approved=await tool$3.autoApprove(input);if(approved)return originalExecute(input,options$2)}let output={type:`tool-approval`,outcome:`pending`};return output}}}let lastMessage=options$1.messages[options$1.messages.length-1];if(!lastMessage?.parts)return newTools;let toolsToRun=[];for(let part of lastMessage.parts){if(!isToolUIPart(part))continue;let toolName=getToolName(part),tool$3=options$1.tools[toolName];if(!tool$3||part.state!==`output-available`||!tool$3.execute||!isToolApprovalOutput(part.output))continue;part.output.outcome===`approved`&&toolsToRun.push({toolName:getToolName(part),tool:tool$3,input:part.input,toolCallId:part.toolCallId})}if(toolsToRun.length>0){let stream$8=createUIMessageStream({execute:async({writer})=>{writer.write({type:`start-step`}),await Promise.all(toolsToRun.map(async toRun=>{if(!toRun.tool.execute)throw Error(`Tool does not support execute.`);writer.write({type:`tool-input-available`,toolCallId:toRun.toolCallId,toolName:toRun.toolName,input:toRun.input});try{let result=await toRun.tool.execute(toRun.input,{toolCallId:toRun.toolCallId,messages:convertToModelMessages(options$1.messages,{tools:options$1.tools}),abortSignal:options$1.abortSignal});if(isAsyncIterable$2(result))for await(let chunk$1 of result)writer.write({type:`tool-output-available`,toolCallId:toRun.toolCallId,output:chunk$1,preliminary:!0});writer.write({type:`tool-output-available`,toolCallId:toRun.toolCallId,output:result})}catch(err){writer.write({type:`tool-output-error`,toolCallId:toRun.toolCallId,errorText:err instanceof Error?err.message:String(err)})}})),writer.write({type:`finish`})}});throw new CustomChatResponseError(`Executing tools`,stream$8)}return newTools},prefix(tools$3,prefix){let prefixed={};for(let[key,tool$3]of Object.entries(tools$3))prefixed[`${prefix}${key}`]=tool$3;return prefixed}});function isToolApprovalOutput(output){return typeof output==`object`&&!!output&&`type`in output&&output.type===`tool-approval`}var compose$1=(middleware,onError$1,onNotFound)=>(context,next)=>{let index=-1;return dispatch(0);async function dispatch(i$4){if(i$4<=index)throw Error(`next() called multiple times`);index=i$4;let res,isError$1=!1,handler;if(middleware[i$4]?(handler=middleware[i$4][0][0],context.req.routeIndex=i$4):handler=i$4===middleware.length&&next||void 0,handler)try{res=await handler(context,()=>dispatch(i$4+1))}catch(err){if(err instanceof Error&&onError$1)context.error=err,res=await onError$1(err,context),isError$1=!0;else throw err}else context.finalized===!1&&onNotFound&&(res=await onNotFound(context));return res&&(context.finalized===!1||isError$1)&&(context.res=res),context}},GET_MATCH_RESULT=Symbol(),parseBody$1=async(request$2,options$1=Object.create(null))=>{let{all:all$2=!1,dot=!1}=options$1,headers=request$2 instanceof HonoRequest?request$2.raw.headers:request$2.headers,contentType=headers.get(`Content-Type`);return contentType?.startsWith(`multipart/form-data`)||contentType?.startsWith(`application/x-www-form-urlencoded`)?parseFormData(request$2,{all:all$2,dot}):{}};async function parseFormData(request$2,options$1){let formData=await request$2.formData();return formData?convertFormDataToBodyData(formData,options$1):{}}function convertFormDataToBodyData(formData,options$1){let form=Object.create(null);return formData.forEach((value,key)=>{let shouldParseAllValues=options$1.all||key.endsWith(`[]`);shouldParseAllValues?handleParsingAllValues(form,key,value):form[key]=value}),options$1.dot&&Object.entries(form).forEach(([key,value])=>{let shouldParseDotValues=key.includes(`.`);shouldParseDotValues&&(handleParsingNestedValues(form,key,value),delete form[key])}),form}var handleParsingAllValues=(form,key,value)=>{form[key]===void 0?key.endsWith(`[]`)?form[key]=[value]:form[key]=value:Array.isArray(form[key])?form[key].push(value):form[key]=[form[key],value]},handleParsingNestedValues=(form,key,value)=>{let nestedForm=form,keys=key.split(`.`);keys.forEach((key2,index)=>{index===keys.length-1?nestedForm[key2]=value:((!nestedForm[key2]||typeof nestedForm[key2]!=`object`||Array.isArray(nestedForm[key2])||nestedForm[key2]instanceof File)&&(nestedForm[key2]=Object.create(null)),nestedForm=nestedForm[key2])})},splitPath=path$40=>{let paths=path$40.split(`/`);return paths[0]===``&&paths.shift(),paths},splitRoutingPath=routePath=>{let{groups,path:path$40}=extractGroupsFromPath(routePath),paths=splitPath(path$40);return replaceGroupMarks(paths,groups)},extractGroupsFromPath=path$40=>{let groups=[];return path$40=path$40.replace(/\{[^}]+\}/g,(match$1,index)=>{let mark=`@${index}`;return groups.push([mark,match$1]),mark}),{groups,path:path$40}},replaceGroupMarks=(paths,groups)=>{for(let i$4=groups.length-1;i$4>=0;i$4--){let[mark]=groups[i$4];for(let j$2=paths.length-1;j$2>=0;j$2--)if(paths[j$2].includes(mark)){paths[j$2]=paths[j$2].replace(mark,groups[i$4][1]);break}}return paths},patternCache={},getPattern=(label,next)=>{if(label===`*`)return`*`;let match$1=label.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(match$1){let cacheKey=`${label}#${next}`;return patternCache[cacheKey]||(match$1[2]?patternCache[cacheKey]=next&&next[0]!==`:`&&next[0]!==`*`?[cacheKey,match$1[1],RegExp(`^${match$1[2]}(?=/${next})`)]:[label,match$1[1],RegExp(`^${match$1[2]}$`)]:patternCache[cacheKey]=[label,match$1[1],!0]),patternCache[cacheKey]}return null},tryDecode=(str$1,decoder$2)=>{try{return decoder$2(str$1)}catch{return str$1.replace(/(?:%[0-9A-Fa-f]{2})+/g,match$1=>{try{return decoder$2(match$1)}catch{return match$1}})}},tryDecodeURI=str$1=>tryDecode(str$1,decodeURI),getPath$1=request$2=>{let url$5=request$2.url,start$1=url$5.indexOf(`/`,url$5.indexOf(`:`)+4),i$4=start$1;for(;i$4<url$5.length;i$4++){let charCode=url$5.charCodeAt(i$4);if(charCode===37){let queryIndex=url$5.indexOf(`?`,i$4),path$40=url$5.slice(start$1,queryIndex===-1?void 0:queryIndex);return tryDecodeURI(path$40.includes(`%25`)?path$40.replace(/%25/g,`%2525`):path$40)}else if(charCode===63)break}return url$5.slice(start$1,i$4)},getPathNoStrict=request$2=>{let result=getPath$1(request$2);return result.length>1&&result.at(-1)===`/`?result.slice(0,-1):result},mergePath$1=(base,sub,...rest)=>(rest.length&&(sub=mergePath$1(sub,...rest)),`${base?.[0]===`/`?``:`/`}${base}${sub===`/`?``:`${base?.at(-1)===`/`?``:`/`}${sub?.[0]===`/`?sub.slice(1):sub}`}`),checkOptionalParameter=path$40=>{if(path$40.charCodeAt(path$40.length-1)!==63||!path$40.includes(`:`))return null;let segments=path$40.split(`/`),results=[],basePath=``;return segments.forEach(segment=>{if(segment!==``&&!/\:/.test(segment))basePath+=`/`+segment;else if(/\:/.test(segment))if(/\?/.test(segment)){results.length===0&&basePath===``?results.push(`/`):results.push(basePath);let optionalSegment=segment.replace(`?`,``);basePath+=`/`+optionalSegment,results.push(basePath)}else basePath+=`/`+segment}),results.filter((v$1,i$4,a$3)=>a$3.indexOf(v$1)===i$4)},_decodeURI=value=>/[%+]/.test(value)?(value.indexOf(`+`)!==-1&&(value=value.replace(/\+/g,` `)),value.indexOf(`%`)===-1?value:tryDecode(value,decodeURIComponent_)):value,_getQueryParam=(url$5,key,multiple)=>{let encoded;if(!multiple&&key&&!/[%+]/.test(key)){let keyIndex2=url$5.indexOf(`?${key}`,8);for(keyIndex2===-1&&(keyIndex2=url$5.indexOf(`&${key}`,8));keyIndex2!==-1;){let trailingKeyCode=url$5.charCodeAt(keyIndex2+key.length+1);if(trailingKeyCode===61){let valueIndex=keyIndex2+key.length+2,endIndex=url$5.indexOf(`&`,valueIndex);return _decodeURI(url$5.slice(valueIndex,endIndex===-1?void 0:endIndex))}else if(trailingKeyCode==38||isNaN(trailingKeyCode))return``;keyIndex2=url$5.indexOf(`&${key}`,keyIndex2+1)}if(encoded=/[%+]/.test(url$5),!encoded)return}let results={};encoded??=/[%+]/.test(url$5);let keyIndex=url$5.indexOf(`?`,8);for(;keyIndex!==-1;){let nextKeyIndex=url$5.indexOf(`&`,keyIndex+1),valueIndex=url$5.indexOf(`=`,keyIndex);valueIndex>nextKeyIndex&&nextKeyIndex!==-1&&(valueIndex=-1);let name$3=url$5.slice(keyIndex+1,valueIndex===-1?nextKeyIndex===-1?void 0:nextKeyIndex:valueIndex);if(encoded&&(name$3=_decodeURI(name$3)),keyIndex=nextKeyIndex,name$3===``)continue;let value;valueIndex===-1?value=``:(value=url$5.slice(valueIndex+1,nextKeyIndex===-1?void 0:nextKeyIndex),encoded&&(value=_decodeURI(value))),multiple?(results[name$3]&&Array.isArray(results[name$3])||(results[name$3]=[]),results[name$3].push(value)):results[name$3]??=value}return key?results[key]:results},getQueryParam=_getQueryParam,getQueryParams=(url$5,key)=>_getQueryParam(url$5,key,!0),decodeURIComponent_=decodeURIComponent,tryDecodeURIComponent=str$1=>tryDecode(str$1,decodeURIComponent_),HonoRequest=class{raw;#validatedData;#matchResult;routeIndex=0;path;bodyCache={};constructor(request$2,path$40=`/`,matchResult=[[]]){this.raw=request$2,this.path=path$40,this.#matchResult=matchResult,this.#validatedData={}}param(key){return key?this.#getDecodedParam(key):this.#getAllDecodedParams()}#getDecodedParam(key){let paramKey=this.#matchResult[0][this.routeIndex][1][key],param=this.#getParamValue(paramKey);return param&&/\%/.test(param)?tryDecodeURIComponent(param):param}#getAllDecodedParams(){let decoded={},keys=Object.keys(this.#matchResult[0][this.routeIndex][1]);for(let key of keys){let value=this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);value!==void 0&&(decoded[key]=/\%/.test(value)?tryDecodeURIComponent(value):value)}return decoded}#getParamValue(paramKey){return this.#matchResult[1]?this.#matchResult[1][paramKey]:paramKey}query(key){return getQueryParam(this.url,key)}queries(key){return getQueryParams(this.url,key)}header(name$3){if(name$3)return this.raw.headers.get(name$3)??void 0;let headerData={};return this.raw.headers.forEach((value,key)=>{headerData[key]=value}),headerData}async parseBody(options$1){return this.bodyCache.parsedBody??=await parseBody$1(this,options$1)}#cachedBody=key=>{let{bodyCache,raw:raw$1}=this,cachedBody=bodyCache[key];if(cachedBody)return cachedBody;let anyCachedKey=Object.keys(bodyCache)[0];return anyCachedKey?bodyCache[anyCachedKey].then(body=>(anyCachedKey===`json`&&(body=JSON.stringify(body)),new Response(body)[key]())):bodyCache[key]=raw$1[key]()};json(){return this.#cachedBody(`text`).then(text=>JSON.parse(text))}text(){return this.#cachedBody(`text`)}arrayBuffer(){return this.#cachedBody(`arrayBuffer`)}blob(){return this.#cachedBody(`blob`)}formData(){return this.#cachedBody(`formData`)}addValidatedData(target,data$2){this.#validatedData[target]=data$2}valid(target){return this.#validatedData[target]}get url(){return this.raw.url}get method(){return this.raw.method}get[GET_MATCH_RESULT](){return this.#matchResult}get matchedRoutes(){return this.#matchResult[0].map(([[,route$1]])=>route$1)}get routePath(){return this.#matchResult[0].map(([[,route$1]])=>route$1)[this.routeIndex].path}},HtmlEscapedCallbackPhase={Stringify:1,BeforeStream:2,Stream:3},raw=(value,callbacks)=>{let escapedString=new String(value);return escapedString.isEscaped=!0,escapedString.callbacks=callbacks,escapedString},resolveCallback=async(str$1,phase,preserveCallbacks,context,buffer$1)=>{typeof str$1==`object`&&!(str$1 instanceof String)&&(str$1 instanceof Promise||(str$1=str$1.toString()),str$1 instanceof Promise&&(str$1=await str$1));let callbacks=str$1.callbacks;if(!callbacks?.length)return Promise.resolve(str$1);buffer$1?buffer$1[0]+=str$1:buffer$1=[str$1];let resStr=Promise.all(callbacks.map(c$3=>c$3({phase,buffer:buffer$1,context}))).then(res=>Promise.all(res.filter(Boolean).map(str2=>resolveCallback(str2,phase,!1,context,buffer$1))).then(()=>buffer$1[0]));return preserveCallbacks?raw(await resStr,callbacks):resStr},TEXT_PLAIN=`text/plain; charset=UTF-8`,setDefaultContentType=(contentType,headers)=>({"Content-Type":contentType,...headers}),Context=class{#rawRequest;#req;env={};#var;finalized=!1;error;#status;#executionCtx;#res;#layout;#renderer;#notFoundHandler;#preparedHeaders;#matchResult;#path;constructor(req$1,options$1){this.#rawRequest=req$1,options$1&&(this.#executionCtx=options$1.executionCtx,this.env=options$1.env,this.#notFoundHandler=options$1.notFoundHandler,this.#path=options$1.path,this.#matchResult=options$1.matchResult)}get req(){return this.#req??=new HonoRequest(this.#rawRequest,this.#path,this.#matchResult),this.#req}get event(){if(this.#executionCtx&&`respondWith`in this.#executionCtx)return this.#executionCtx;throw Error(`This context has no FetchEvent`)}get executionCtx(){if(this.#executionCtx)return this.#executionCtx;throw Error(`This context has no ExecutionContext`)}get res(){return this.#res||=new Response(null,{headers:this.#preparedHeaders??=new Headers})}set res(_res){if(this.#res&&_res){_res=new Response(_res.body,_res);for(let[k,v$1]of this.#res.headers.entries()){if(k===`content-type`)continue;if(k===`set-cookie`){let cookies=this.#res.headers.getSetCookie();_res.headers.delete(`set-cookie`);for(let cookie of cookies)_res.headers.append(`set-cookie`,cookie)}else _res.headers.set(k,v$1)}}this.#res=_res,this.finalized=!0}render=(...args)=>(this.#renderer??=content=>this.html(content),this.#renderer(...args));setLayout=layout=>this.#layout=layout;getLayout=()=>this.#layout;setRenderer=renderer$1=>{this.#renderer=renderer$1};header=(name$3,value,options$1)=>{this.finalized&&(this.#res=new Response(this.#res.body,this.#res));let headers=this.#res?this.#res.headers:this.#preparedHeaders??=new Headers;value===void 0?headers.delete(name$3):options$1?.append?headers.append(name$3,value):headers.set(name$3,value)};status=status=>{this.#status=status};set=(key,value)=>{this.#var??=new Map,this.#var.set(key,value)};get=key=>this.#var?this.#var.get(key):void 0;get var(){return this.#var?Object.fromEntries(this.#var):{}}#newResponse(data$2,arg,headers){let responseHeaders=this.#res?new Headers(this.#res.headers):this.#preparedHeaders??new Headers;if(typeof arg==`object`&&`headers`in arg){let argHeaders=arg.headers instanceof Headers?arg.headers:new Headers(arg.headers);for(let[key,value]of argHeaders)key.toLowerCase()===`set-cookie`?responseHeaders.append(key,value):responseHeaders.set(key,value)}if(headers)for(let[k,v$1]of Object.entries(headers))if(typeof v$1==`string`)responseHeaders.set(k,v$1);else{responseHeaders.delete(k);for(let v2 of v$1)responseHeaders.append(k,v2)}let status=typeof arg==`number`?arg:arg?.status??this.#status;return new Response(data$2,{status,headers:responseHeaders})}newResponse=(...args)=>this.#newResponse(...args);body=(data$2,arg,headers)=>this.#newResponse(data$2,arg,headers);text=(text,arg,headers)=>!this.#preparedHeaders&&!this.#status&&!arg&&!headers&&!this.finalized?new Response(text):this.#newResponse(text,arg,setDefaultContentType(TEXT_PLAIN,headers));json=(object,arg,headers)=>this.#newResponse(JSON.stringify(object),arg,setDefaultContentType(`application/json`,headers));html=(html$1,arg,headers)=>{let res=html2=>this.#newResponse(html2,arg,setDefaultContentType(`text/html; charset=UTF-8`,headers));return typeof html$1==`object`?resolveCallback(html$1,HtmlEscapedCallbackPhase.Stringify,!1,{}).then(res):res(html$1)};redirect=(location,status)=>{let locationString=String(location);return this.header(`Location`,/[^\x00-\xFF]/.test(locationString)?encodeURI(locationString):locationString),this.newResponse(null,status??302)};notFound=()=>(this.#notFoundHandler??=()=>new Response,this.#notFoundHandler(this))},METHOD_NAME_ALL=`ALL`,METHOD_NAME_ALL_LOWERCASE=`all`,METHODS=[`get`,`post`,`put`,`delete`,`options`,`patch`],MESSAGE_MATCHER_IS_ALREADY_BUILT=`Can not add a route since the matcher is already built.`,UnsupportedPathError=class extends Error{},COMPOSED_HANDLER=`__COMPOSED_HANDLER`,notFoundHandler=c$3=>c$3.text(`404 Not Found`,404),errorHandler=(err,c$3)=>{if(`getResponse`in err){let res=err.getResponse();return c$3.newResponse(res.body,res)}return console.error(err),c$3.text(`Internal Server Error`,500)},Hono$1=class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath=`/`;#path=`/`;routes=[];constructor(options$1={}){let allMethods=[...METHODS,METHOD_NAME_ALL_LOWERCASE];allMethods.forEach(method=>{this[method]=(args1,...args)=>(typeof args1==`string`?this.#path=args1:this.#addRoute(method,this.#path,args1),args.forEach(handler=>{this.#addRoute(method,this.#path,handler)}),this)}),this.on=(method,path$40,...handlers)=>{for(let p of[path$40].flat()){this.#path=p;for(let m$2 of[method].flat())handlers.map(handler=>{this.#addRoute(m$2.toUpperCase(),this.#path,handler)})}return this},this.use=(arg1,...handlers)=>(typeof arg1==`string`?this.#path=arg1:(this.#path=`*`,handlers.unshift(arg1)),handlers.forEach(handler=>{this.#addRoute(METHOD_NAME_ALL,this.#path,handler)}),this);let{strict,...optionsWithoutStrict}=options$1;Object.assign(this,optionsWithoutStrict),this.getPath=strict??!0?options$1.getPath??getPath$1:getPathNoStrict}#clone(){let clone$3=new Hono$1({router:this.router,getPath:this.getPath});return clone$3.errorHandler=this.errorHandler,clone$3.#notFoundHandler=this.#notFoundHandler,clone$3.routes=this.routes,clone$3}#notFoundHandler=notFoundHandler;errorHandler=errorHandler;route(path$40,app){let subApp=this.basePath(path$40);return app.routes.map(r$2=>{let handler;app.errorHandler===errorHandler?handler=r$2.handler:(handler=async(c$3,next)=>(await compose$1([],app.errorHandler)(c$3,()=>r$2.handler(c$3,next))).res,handler[COMPOSED_HANDLER]=r$2.handler),subApp.#addRoute(r$2.method,r$2.path,handler)}),this}basePath(path$40){let subApp=this.#clone();return subApp._basePath=mergePath$1(this._basePath,path$40),subApp}onError=handler=>(this.errorHandler=handler,this);notFound=handler=>(this.#notFoundHandler=handler,this);mount(path$40,applicationHandler,options$1){let replaceRequest,optionHandler;options$1&&(typeof options$1==`function`?optionHandler=options$1:(optionHandler=options$1.optionHandler,replaceRequest=options$1.replaceRequest===!1?request$2=>request$2:options$1.replaceRequest));let getOptions$1=optionHandler?c$3=>{let options2=optionHandler(c$3);return Array.isArray(options2)?options2:[options2]}:c$3=>{let executionContext;try{executionContext=c$3.executionCtx}catch{}return[c$3.env,executionContext]};replaceRequest||=(()=>{let mergedPath=mergePath$1(this._basePath,path$40),pathPrefixLength=mergedPath===`/`?0:mergedPath.length;return request$2=>{let url$5=new URL(request$2.url);return url$5.pathname=url$5.pathname.slice(pathPrefixLength)||`/`,new Request(url$5,request$2)}})();let handler=async(c$3,next)=>{let res=await applicationHandler(replaceRequest(c$3.req.raw),...getOptions$1(c$3));if(res)return res;await next()};return this.#addRoute(METHOD_NAME_ALL,mergePath$1(path$40,`*`),handler),this}#addRoute(method,path$40,handler){method=method.toUpperCase(),path$40=mergePath$1(this._basePath,path$40);let r$2={basePath:this._basePath,path:path$40,method,handler};this.router.add(method,path$40,[handler,r$2]),this.routes.push(r$2)}#handleError(err,c$3){if(err instanceof Error)return this.errorHandler(err,c$3);throw err}#dispatch(request$2,executionCtx,env$4,method){if(method===`HEAD`)return(async()=>new Response(null,await this.#dispatch(request$2,executionCtx,env$4,`GET`)))();let path$40=this.getPath(request$2,{env:env$4}),matchResult=this.router.match(method,path$40),c$3=new Context(request$2,{path:path$40,matchResult,env:env$4,executionCtx,notFoundHandler:this.#notFoundHandler});if(matchResult[0].length===1){let res;try{res=matchResult[0][0][0][0](c$3,async()=>{c$3.res=await this.#notFoundHandler(c$3)})}catch(err){return this.#handleError(err,c$3)}return res instanceof Promise?res.then(resolved=>resolved||(c$3.finalized?c$3.res:this.#notFoundHandler(c$3))).catch(err=>this.#handleError(err,c$3)):res??this.#notFoundHandler(c$3)}let composed=compose$1(matchResult[0],this.errorHandler,this.#notFoundHandler);return(async()=>{try{let context=await composed(c$3);if(!context.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return context.res}catch(err){return this.#handleError(err,c$3)}})()}fetch=(request$2,...rest)=>this.#dispatch(request$2,rest[1],rest[0],request$2.method);request=(input,requestInit,Env,executionCtx)=>input instanceof Request?this.fetch(requestInit?new Request(input,requestInit):input,Env,executionCtx):(input=input.toString(),this.fetch(new Request(/^https?:\/\//.test(input)?input:`http://localhost${mergePath$1(`/`,input)}`,requestInit),Env,executionCtx));fire=()=>{addEventListener(`fetch`,event=>{event.respondWith(this.#dispatch(event.request,event,void 0,event.request.method))})}},LABEL_REG_EXP_STR=`[^/]+`,ONLY_WILDCARD_REG_EXP_STR=`.*`,TAIL_WILDCARD_REG_EXP_STR=`(?:|/.*)`,PATH_ERROR=Symbol(),regExpMetaChars=new Set(`.\\+*[^]$()`);function compareKey(a$3,b$2){return a$3.length===1?b$2.length===1?a$3<b$2?-1:1:-1:b$2.length===1||a$3===ONLY_WILDCARD_REG_EXP_STR||a$3===TAIL_WILDCARD_REG_EXP_STR?1:b$2===ONLY_WILDCARD_REG_EXP_STR||b$2===TAIL_WILDCARD_REG_EXP_STR?-1:a$3===LABEL_REG_EXP_STR?1:b$2===LABEL_REG_EXP_STR?-1:a$3.length===b$2.length?a$3<b$2?-1:1:b$2.length-a$3.length}var Node$4=class{#index;#varIndex;#children=Object.create(null);insert(tokens,index,paramMap,context,pathErrorCheckOnly){if(tokens.length===0){if(this.#index!==void 0)throw PATH_ERROR;if(pathErrorCheckOnly)return;this.#index=index;return}let[token$1,...restTokens]=tokens,pattern=token$1===`*`?restTokens.length===0?[``,``,ONLY_WILDCARD_REG_EXP_STR]:[``,``,LABEL_REG_EXP_STR]:token$1===`/*`?[``,``,TAIL_WILDCARD_REG_EXP_STR]:token$1.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),node;if(pattern){let name$3=pattern[1],regexpStr=pattern[2]||LABEL_REG_EXP_STR;if(name$3&&pattern[2]&&(regexpStr===`.*`||(regexpStr=regexpStr.replace(/^\((?!\?:)(?=[^)]+\)$)/,`(?:`),/\((?!\?:)/.test(regexpStr))))throw PATH_ERROR;if(node=this.#children[regexpStr],!node){if(Object.keys(this.#children).some(k=>k!==ONLY_WILDCARD_REG_EXP_STR&&k!==TAIL_WILDCARD_REG_EXP_STR))throw PATH_ERROR;if(pathErrorCheckOnly)return;node=this.#children[regexpStr]=new Node$4,name$3!==``&&(node.#varIndex=context.varIndex++)}!pathErrorCheckOnly&&name$3!==``&¶mMap.push([name$3,node.#varIndex])}else if(node=this.#children[token$1],!node){if(Object.keys(this.#children).some(k=>k.length>1&&k!==ONLY_WILDCARD_REG_EXP_STR&&k!==TAIL_WILDCARD_REG_EXP_STR))throw PATH_ERROR;if(pathErrorCheckOnly)return;node=this.#children[token$1]=new Node$4}node.insert(restTokens,index,paramMap,context,pathErrorCheckOnly)}buildRegExpStr(){let childKeys=Object.keys(this.#children).sort(compareKey),strList=childKeys.map(k=>{let c$3=this.#children[k];return(typeof c$3.#varIndex==`number`?`(${k})@${c$3.#varIndex}`:regExpMetaChars.has(k)?`\\${k}`:k)+c$3.buildRegExpStr()});return typeof this.#index==`number`&&strList.unshift(`#${this.#index}`),strList.length===0?``:strList.length===1?strList[0]:`(?:`+strList.join(`|`)+`)`}},Trie=class{#context={varIndex:0};#root=new Node$4;insert(path$40,index,pathErrorCheckOnly){let paramAssoc=[],groups=[];for(let i$4=0;;){let replaced=!1;if(path$40=path$40.replace(/\{[^}]+\}/g,m$2=>{let mark=`@\\${i$4}`;return groups[i$4]=[mark,m$2],i$4++,replaced=!0,mark}),!replaced)break}let tokens=path$40.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let i$4=groups.length-1;i$4>=0;i$4--){let[mark]=groups[i$4];for(let j$2=tokens.length-1;j$2>=0;j$2--)if(tokens[j$2].indexOf(mark)!==-1){tokens[j$2]=tokens[j$2].replace(mark,groups[i$4][1]);break}}return this.#root.insert(tokens,index,paramAssoc,this.#context,pathErrorCheckOnly),paramAssoc}buildRegExp(){let regexp=this.#root.buildRegExpStr();if(regexp===``)return[/^$/,[],[]];let captureIndex=0,indexReplacementMap=[],paramReplacementMap=[];return regexp=regexp.replace(/#(\d+)|@(\d+)|\.\*\$/g,(_$3,handlerIndex,paramIndex)=>handlerIndex===void 0?(paramIndex===void 0||(paramReplacementMap[Number(paramIndex)]=++captureIndex),``):(indexReplacementMap[++captureIndex]=Number(handlerIndex),`$()`)),[RegExp(`^${regexp}`),indexReplacementMap,paramReplacementMap]}},emptyParam=[],nullMatcher=[/^$/,[],Object.create(null)],wildcardRegExpCache=Object.create(null);function buildWildcardRegExp(path$40){return wildcardRegExpCache[path$40]??=RegExp(path$40===`*`?``:`^${path$40.replace(/\/\*$|([.\\+*[^\]$()])/g,(_$3,metaChar)=>metaChar?`\\${metaChar}`:`(?:|/.*)`)}$`)}function clearWildcardRegExpCache(){wildcardRegExpCache=Object.create(null)}function buildMatcherFromPreprocessedRoutes(routes){let trie=new Trie,handlerData=[];if(routes.length===0)return nullMatcher;let routesWithStaticPathFlag=routes.map(route$1=>[!/\*|\/:/.test(route$1[0]),...route$1]).sort(([isStaticA,pathA],[isStaticB,pathB])=>isStaticA?1:isStaticB?-1:pathA.length-pathB.length),staticMap=Object.create(null);for(let i$4=0,j$2=-1,len$1=routesWithStaticPathFlag.length;i$4<len$1;i$4++){let[pathErrorCheckOnly,path$40,handlers]=routesWithStaticPathFlag[i$4];pathErrorCheckOnly?staticMap[path$40]=[handlers.map(([h$3])=>[h$3,Object.create(null)]),emptyParam]:j$2++;let paramAssoc;try{paramAssoc=trie.insert(path$40,j$2,pathErrorCheckOnly)}catch(e$1){throw e$1===PATH_ERROR?new UnsupportedPathError(path$40):e$1}pathErrorCheckOnly||(handlerData[j$2]=handlers.map(([h$3,paramCount])=>{let paramIndexMap=Object.create(null);for(--paramCount;paramCount>=0;paramCount--){let[key,value]=paramAssoc[paramCount];paramIndexMap[key]=value}return[h$3,paramIndexMap]}))}let[regexp,indexReplacementMap,paramReplacementMap]=trie.buildRegExp();for(let i$4=0,len$1=handlerData.length;i$4<len$1;i$4++)for(let j$2=0,len2=handlerData[i$4].length;j$2<len2;j$2++){let map$2=handlerData[i$4][j$2]?.[1];if(!map$2)continue;let keys=Object.keys(map$2);for(let k=0,len3=keys.length;k<len3;k++)map$2[keys[k]]=paramReplacementMap[map$2[keys[k]]]}let handlerMap=[];for(let i$4 in indexReplacementMap)handlerMap[i$4]=handlerData[indexReplacementMap[i$4]];return[regexp,handlerMap,staticMap]}function findMiddleware(middleware,path$40){if(middleware){for(let k of Object.keys(middleware).sort((a$3,b$2)=>b$2.length-a$3.length))if(buildWildcardRegExp(k).test(path$40))return[...middleware[k]]}}var RegExpRouter=class{name=`RegExpRouter`;#middleware;#routes;constructor(){this.#middleware={[METHOD_NAME_ALL]:Object.create(null)},this.#routes={[METHOD_NAME_ALL]:Object.create(null)}}add(method,path$40,handler){let middleware=this.#middleware,routes=this.#routes;if(!middleware||!routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);middleware[method]||[middleware,routes].forEach(handlerMap=>{handlerMap[method]=Object.create(null),Object.keys(handlerMap[METHOD_NAME_ALL]).forEach(p=>{handlerMap[method][p]=[...handlerMap[METHOD_NAME_ALL][p]]})}),path$40===`/*`&&(path$40=`*`);let paramCount=(path$40.match(/\/:/g)||[]).length;if(/\*$/.test(path$40)){let re$3=buildWildcardRegExp(path$40);method===METHOD_NAME_ALL?Object.keys(middleware).forEach(m$2=>{middleware[m$2][path$40]||=findMiddleware(middleware[m$2],path$40)||findMiddleware(middleware[METHOD_NAME_ALL],path$40)||[]}):middleware[method][path$40]||=findMiddleware(middleware[method],path$40)||findMiddleware(middleware[METHOD_NAME_ALL],path$40)||[],Object.keys(middleware).forEach(m$2=>{(method===METHOD_NAME_ALL||method===m$2)&&Object.keys(middleware[m$2]).forEach(p=>{re$3.test(p)&&middleware[m$2][p].push([handler,paramCount])})}),Object.keys(routes).forEach(m$2=>{(method===METHOD_NAME_ALL||method===m$2)&&Object.keys(routes[m$2]).forEach(p=>re$3.test(p)&&routes[m$2][p].push([handler,paramCount]))});return}let paths=checkOptionalParameter(path$40)||[path$40];for(let i$4=0,len$1=paths.length;i$4<len$1;i$4++){let path2=paths[i$4];Object.keys(routes).forEach(m$2=>{(method===METHOD_NAME_ALL||method===m$2)&&(routes[m$2][path2]||=[...findMiddleware(middleware[m$2],path2)||findMiddleware(middleware[METHOD_NAME_ALL],path2)||[]],routes[m$2][path2].push([handler,paramCount-len$1+i$4+1]))})}}match(method,path$40){clearWildcardRegExpCache();let matchers=this.#buildAllMatchers();return this.match=(method2,path2)=>{let matcher=matchers[method2]||matchers[METHOD_NAME_ALL],staticMatch=matcher[2][path2];if(staticMatch)return staticMatch;let match$1=path2.match(matcher[0]);if(!match$1)return[[],emptyParam];let index=match$1.indexOf(``,1);return[matcher[1][index],match$1]},this.match(method,path$40)}#buildAllMatchers(){let matchers=Object.create(null);return Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach(method=>{matchers[method]||=this.#buildMatcher(method)}),this.#middleware=this.#routes=void 0,matchers}#buildMatcher(method){let routes=[],hasOwnRoute=method===METHOD_NAME_ALL;return[this.#middleware,this.#routes].forEach(r$2=>{let ownRoute=r$2[method]?Object.keys(r$2[method]).map(path$40=>[path$40,r$2[method][path$40]]):[];ownRoute.length===0?method!==METHOD_NAME_ALL&&routes.push(...Object.keys(r$2[METHOD_NAME_ALL]).map(path$40=>[path$40,r$2[METHOD_NAME_ALL][path$40]])):(hasOwnRoute||=!0,routes.push(...ownRoute))}),hasOwnRoute?buildMatcherFromPreprocessedRoutes(routes):null}},SmartRouter=class{name=`SmartRouter`;#routers=[];#routes=[];constructor(init$7){this.#routers=init$7.routers}add(method,path$40,handler){if(!this.#routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);this.#routes.push([method,path$40,handler])}match(method,path$40){if(!this.#routes)throw Error(`Fatal error`);let routers=this.#routers,routes=this.#routes,len$1=routers.length,i$4=0,res;for(;i$4<len$1;i$4++){let router=routers[i$4];try{for(let i2=0,len2=routes.length;i2<len2;i2++)router.add(...routes[i2]);res=router.match(method,path$40)}catch(e$1){if(e$1 instanceof UnsupportedPathError)continue;throw e$1}this.match=router.match.bind(router),this.#routers=[router],this.#routes=void 0;break}if(i$4===len$1)throw Error(`Fatal error`);return this.name=`SmartRouter + ${this.activeRouter.name}`,res}get activeRouter(){if(this.#routes||this.#routers.length!==1)throw Error(`No active router has been determined yet.`);return this.#routers[0]}},emptyParams=Object.create(null),Node$3=class{#methods;#children;#patterns;#order=0;#params=emptyParams;constructor(method,handler,children){if(this.#children=children||Object.create(null),this.#methods=[],method&&handler){let m$2=Object.create(null);m$2[method]={handler,possibleKeys:[],score:0},this.#methods=[m$2]}this.#patterns=[]}insert(method,path$40,handler){this.#order=++this.#order;let curNode=this,parts=splitRoutingPath(path$40),possibleKeys=[];for(let i$4=0,len$1=parts.length;i$4<len$1;i$4++){let p=parts[i$4],nextP=parts[i$4+1],pattern=getPattern(p,nextP),key=Array.isArray(pattern)?pattern[0]:p;if(key in curNode.#children){curNode=curNode.#children[key],pattern&&possibleKeys.push(pattern[1]);continue}curNode.#children[key]=new Node$3,pattern&&(curNode.#patterns.push(pattern),possibleKeys.push(pattern[1])),curNode=curNode.#children[key]}return curNode.#methods.push({[method]:{handler,possibleKeys:possibleKeys.filter((v$1,i$4,a$3)=>a$3.indexOf(v$1)===i$4),score:this.#order}}),curNode}#getHandlerSets(node,method,nodeParams,params){let handlerSets=[];for(let i$4=0,len$1=node.#methods.length;i$4<len$1;i$4++){let m$2=node.#methods[i$4],handlerSet=m$2[method]||m$2[METHOD_NAME_ALL],processedSet={};if(handlerSet!==void 0&&(handlerSet.params=Object.create(null),handlerSets.push(handlerSet),nodeParams!==emptyParams||params&¶ms!==emptyParams))for(let i2=0,len2=handlerSet.possibleKeys.length;i2<len2;i2++){let key=handlerSet.possibleKeys[i2],processed=processedSet[handlerSet.score];handlerSet.params[key]=params?.[key]&&!processed?params[key]:nodeParams[key]??params?.[key],processedSet[handlerSet.score]=!0}}return handlerSets}search(method,path$40){let handlerSets=[];this.#params=emptyParams;let curNode=this,curNodes=[curNode],parts=splitPath(path$40),curNodesQueue=[];for(let i$4=0,len$1=parts.length;i$4<len$1;i$4++){let part=parts[i$4],isLast=i$4===len$1-1,tempNodes=[];for(let j$2=0,len2=curNodes.length;j$2<len2;j$2++){let node=curNodes[j$2],nextNode=node.#children[part];nextNode&&(nextNode.#params=node.#params,isLast?(nextNode.#children[`*`]&&handlerSets.push(...this.#getHandlerSets(nextNode.#children[`*`],method,node.#params)),handlerSets.push(...this.#getHandlerSets(nextNode,method,node.#params))):tempNodes.push(nextNode));for(let k=0,len3=node.#patterns.length;k<len3;k++){let pattern=node.#patterns[k],params=node.#params===emptyParams?{}:{...node.#params};if(pattern===`*`){let astNode=node.#children[`*`];astNode&&(handlerSets.push(...this.#getHandlerSets(astNode,method,node.#params)),astNode.#params=params,tempNodes.push(astNode));continue}let[key,name$3,matcher]=pattern;if(!part&&!(matcher instanceof RegExp))continue;let child=node.#children[key],restPathString=parts.slice(i$4).join(`/`);if(matcher instanceof RegExp){let m$2=matcher.exec(restPathString);if(m$2){if(params[name$3]=m$2[0],handlerSets.push(...this.#getHandlerSets(child,method,node.#params,params)),Object.keys(child.#children).length){child.#params=params;let componentCount=m$2[0].match(/\//)?.length??0,targetCurNodes=curNodesQueue[componentCount]||=[];targetCurNodes.push(child)}continue}}(matcher===!0||matcher.test(part))&&(params[name$3]=part,isLast?(handlerSets.push(...this.#getHandlerSets(child,method,params,node.#params)),child.#children[`*`]&&handlerSets.push(...this.#getHandlerSets(child.#children[`*`],method,params,node.#params))):(child.#params=params,tempNodes.push(child)))}}curNodes=tempNodes.concat(curNodesQueue.shift()??[])}return handlerSets.length>1&&handlerSets.sort((a$3,b$2)=>a$3.score-b$2.score),[handlerSets.map(({handler,params})=>[handler,params])]}},TrieRouter=class{name=`TrieRouter`;#node;constructor(){this.#node=new Node$3}add(method,path$40,handler){let results=checkOptionalParameter(path$40);if(results){for(let i$4=0,len$1=results.length;i$4<len$1;i$4++)this.#node.insert(method,results[i$4],handler);return}this.#node.insert(method,path$40,handler)}match(method,path$40){return this.#node.search(method,path$40)}},Hono=class extends Hono$1{constructor(options$1={}){super(options$1),this.router=options$1.router??new SmartRouter({routers:[new RegExpRouter,new TrieRouter]})}},validCookieNameRegEx=/^[\w!#$%&'*.^`|~+-]+$/,validCookieValueRegEx=/^[ !#-:<-[\]-~]*$/,parse$16=(cookie,name$3)=>{if(name$3&&cookie.indexOf(name$3)===-1)return{};let pairs=cookie.trim().split(`;`),parsedCookie={};for(let pairStr of pairs){pairStr=pairStr.trim();let valueStartPos=pairStr.indexOf(`=`);if(valueStartPos===-1)continue;let cookieName=pairStr.substring(0,valueStartPos).trim();if(name$3&&name$3!==cookieName||!validCookieNameRegEx.test(cookieName))continue;let cookieValue=pairStr.substring(valueStartPos+1).trim();if(cookieValue.startsWith(`"`)&&cookieValue.endsWith(`"`)&&(cookieValue=cookieValue.slice(1,-1)),validCookieValueRegEx.test(cookieValue)&&(parsedCookie[cookieName]=cookieValue.indexOf(`%`)===-1?cookieValue:tryDecode(cookieValue,decodeURIComponent_),name$3))break}return parsedCookie},_serialize=(name$3,value,opt={})=>{let cookie=`${name$3}=${value}`;if(name$3.startsWith(`__Secure-`)&&!opt.secure)throw Error(`__Secure- Cookie must have Secure attributes`);if(name$3.startsWith(`__Host-`)){if(!opt.secure)throw Error(`__Host- Cookie must have Secure attributes`);if(opt.path!==`/`)throw Error(`__Host- Cookie must have Path attributes with "/"`);if(opt.domain)throw Error(`__Host- Cookie must not have Domain attributes`)}if(opt&&typeof opt.maxAge==`number`&&opt.maxAge>=0){if(opt.maxAge>3456e4)throw Error(`Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.`);cookie+=`; Max-Age=${opt.maxAge|0}`}if(opt.domain&&opt.prefix!==`host`&&(cookie+=`; Domain=${opt.domain}`),opt.path&&(cookie+=`; Path=${opt.path}`),opt.expires){if(opt.expires.getTime()-Date.now()>3456e7)throw Error(`Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.`);cookie+=`; Expires=${opt.expires.toUTCString()}`}if(opt.httpOnly&&(cookie+=`; HttpOnly`),opt.secure&&(cookie+=`; Secure`),opt.sameSite&&(cookie+=`; SameSite=${opt.sameSite.charAt(0).toUpperCase()+opt.sameSite.slice(1)}`),opt.priority&&(cookie+=`; Priority=${opt.priority.charAt(0).toUpperCase()+opt.priority.slice(1)}`),opt.partitioned){if(!opt.secure)throw Error(`Partitioned Cookie must have Secure attributes`);cookie+=`; Partitioned`}return cookie},serialize$1=(name$3,value,opt)=>(value=encodeURIComponent(value),_serialize(name$3,value,opt)),getCookie=(c$3,key,prefix)=>{let cookie=c$3.req.raw.headers.get(`Cookie`);if(typeof key==`string`){if(!cookie)return;let finalKey=key;prefix===`secure`?finalKey=`__Secure-`+key:prefix===`host`&&(finalKey=`__Host-`+key);let obj2=parse$16(cookie,finalKey);return obj2[finalKey]}if(!cookie)return{};let obj=parse$16(cookie);return obj},HTTPException=class extends Error{res;status;constructor(status=500,options$1){super(options$1?.message,{cause:options$1?.cause}),this.res=options$1?.res,this.status=status}getResponse(){if(this.res){let newResponse=new Response(this.res.body,{status:this.status,headers:this.res.headers});return newResponse}return new Response(this.message,{status:this.status})}},bufferToFormData=(arrayBuffer,contentType)=>{let response=new Response(arrayBuffer,{headers:{"Content-Type":contentType}});return response.formData()},jsonRegex=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,multipartRegex=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,urlencodedRegex=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,validator=(target,validationFunc)=>async(c$3,next)=>{let value={},contentType=c$3.req.header(`Content-Type`);switch(target){case`json`:if(!contentType||!jsonRegex.test(contentType))break;try{value=await c$3.req.json()}catch{let message=`Malformed JSON in request body`;throw new HTTPException(400,{message:`Malformed JSON in request body`})}break;case`form`:{if(!contentType||!(multipartRegex.test(contentType)||urlencodedRegex.test(contentType)))break;let formData;if(c$3.req.bodyCache.formData)formData=await c$3.req.bodyCache.formData;else try{let arrayBuffer=await c$3.req.arrayBuffer();formData=await bufferToFormData(arrayBuffer,contentType),c$3.req.bodyCache.formData=formData}catch(e$1){let message=`Malformed FormData request.`;throw message+=e$1 instanceof Error?` ${e$1.message}`:` ${String(e$1)}`,new HTTPException(400,{message})}let form={};formData.forEach((value2,key)=>{key.endsWith(`[]`)?(form[key]??=[]).push(value2):Array.isArray(form[key])?form[key].push(value2):key in form?form[key]=[form[key],value2]:form[key]=value2}),value=form;break}case`query`:value=Object.fromEntries(Object.entries(c$3.req.queries()).map(([k,v$1])=>v$1.length===1?[k,v$1[0]]:[k,v$1]));break;case`param`:value=c$3.req.param();break;case`header`:value=c$3.req.header();break;case`cookie`:value=getCookie(c$3);break}let res=await validationFunc(value,c$3);if(res instanceof Response)return res;c$3.req.addValidatedData(target,res),await next()};const error$21=(c$3,msg)=>c$3.json({error:msg},400),validateStorageKey=c$3=>{let key=c$3.req.param(`key`);return!key||key===``?{key,err:`Key is required`}:key.length>475?{key,err:`Key is too long. Max length is 475 characters.`}:{key}},createRouter=()=>new Hono,kv=createRouter().get(`/:key`,async c$3=>{let{key,err}=validateStorageKey(c$3);if(err)return error$21(c$3,err);let value=await c$3.env.context.store.get(key);return c$3.json({value},200)}).post(`/:key`,validator(`json`,(body,c$3)=>{let value=body.value;return value?typeof value==`string`?value.length>2e4?error$21(c$3,`Value is too long. Max length is 20,000 characters.`):{value}:error$21(c$3,`Value must be a string`):error$21(c$3,`Value is required`)}),async c$3=>{let{key,err}=validateStorageKey(c$3);if(err)return error$21(c$3,err);let{value}=c$3.req.valid(`json`);return await c$3.env.context.store.set(key,value),c$3.body(null,204)}).delete(`/:key`,async c$3=>{let{key,err}=validateStorageKey(c$3);return err?error$21(c$3,err):(await c$3.env.context.store.delete(key),c$3.body(null,204))}).get(`/`,async c$3=>{let{cursor,limit,prefix}=c$3.req.query(),{entries:entries$1,cursor:nextCursor}=await c$3.env.context.store.list(prefix,{cursor:cursor?String(cursor):void 0,limit:limit?Number(limit):100});return c$3.json({entries:entries$1,cursor:nextCursor})}),validateChatKey=c$3=>{let key=c$3.req.param(`key`);return key?key.length>475?{key,err:`Key is too long. Max length is 475 characters.`}:{key}:{key,err:`Key is required`}},chat=createRouter().basePath(`/:key`).post(`/`,async c$3=>{let{key,err}=validateChatKey(c$3);return err?error$21(c$3,err):c$3.json(await c$3.env.context.chat.ensure(key),200)}).post(`/sendMessages`,validator(`json`,(body,c$3)=>({message:body.message,options:body.options})),async c$3=>{let{key,err}=validateChatKey(c$3);if(err)return error$21(c$3,err);let{message,options:options$1}=c$3.req.valid(`json`);try{await c$3.env.context.chat.message(key,message,options$1)}catch(err$1){return error$21(c$3,err$1 instanceof Error?err$1.message:`Unknown error`)}return c$3.body(null,204)}),otlp=createRouter().post(`/v1/traces`,async c$3=>c$3.env.context.otlp.traces(c$3.req.raw)),api$36=new Hono().route(`/kv`,kv).route(`/chat`,chat).route(`/otlp`,otlp),shouldContinueStreaming=lastMessage=>{if(lastMessage.role!==`assistant`)return!1;let lastStepStartIndex=lastMessage.parts.reduce((lastIndex,part,index)=>part.type===`step-start`?index:lastIndex,-1),lastStepToolInvocations=lastMessage.parts.slice(lastStepStartIndex+1).filter(isToolOrDynamicToolUIPart);if(lastStepToolInvocations.length===0)return!1;let hasPendingApprovals=lastStepToolInvocations.some(part=>isToolApprovalOutput(part.output)&&part.output.outcome===`pending`);return hasPendingApprovals?!1:lastStepToolInvocations.every(part=>part.state.startsWith(`output-`))};function filenameReservedRegex(){return/[<>:"/\\|?*\u0000-\u001F]|[. ]$/g}function windowsReservedNameRegex(){return/^(con|prn|aux|nul|com\d|lpt\d)$/i}const MAX_FILENAME_LENGTH=100,reRelativePath=/^\.+(\\|\/)|^\.+$/,reTrailingDotsAndSpaces=/[. ]+$/,reControlChars=/[\p{Control}\p{Format}\p{Zl}\p{Zp}\uFFF0-\uFFFF]/gu,reControlCharsTest=/[\p{Control}\p{Format}\p{Zl}\p{Zp}\uFFF0-\uFFFF]/u,isZeroWidthJoiner=char=>char===``,reRepeatedReservedCharacters=/([<>:"/\\|?*\u0000-\u001F]){2,}/g,reUnicodeWhitespace=/[\t\n\r\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]+/g;let segmenter;function getSegmenter(){return segmenter??=new Intl.Segmenter(void 0,{granularity:`grapheme`}),segmenter}function filenamify(string,options$1={}){if(typeof string!=`string`)throw TypeError(`Expected a string`);let replacement=options$1.replacement??`!`;if(filenameReservedRegex().test(replacement)||[...replacement].some(char=>reControlCharsTest.test(char)&&!isZeroWidthJoiner(char)))throw Error(`Replacement string cannot contain reserved filename characters`);string=string.normalize(`NFC`),string=string.replaceAll(reUnicodeWhitespace,` `),replacement.length>0&&(string=string.replaceAll(reRepeatedReservedCharacters,`$1`)),string=string.replace(reTrailingDotsAndSpaces,``),string=string.replace(reRelativePath,replacement),string=string.replace(filenameReservedRegex(),replacement),string=string.replaceAll(reControlChars,char=>isZeroWidthJoiner(char)?char:replacement),string.length===0&&(string=replacement),string=windowsReservedNameRegex().test(string)?string+replacement:string;let allowedLength=typeof options$1.maxLength==`number`?options$1.maxLength:100;if(string.length>allowedLength){let extensionIndex=string.lastIndexOf(`.`);if(extensionIndex===-1)string=truncateByGraphemeBudget(string,allowedLength);else{let filename=string.slice(0,extensionIndex),extension=string.slice(extensionIndex),baseBudget=Math.max(0,allowedLength-extension.length);string=truncateByGraphemeBudget(filename,baseBudget)+extension}}return string}function truncateByGraphemeBudget(input,budget){if(input.length<=budget)return input;let count$1=0,output=``;for(let{segment}of getSegmenter().segment(input)){let next=count$1+segment.length;if(next>budget)break;output+=segment,count$1=next}return output}const createDiskStore=(dataDirectory,idKey,opts)=>{let indexCache,valueCache=new Map,ensureDir=dir=>{fs$12.mkdirSync(dir,{recursive:!0})},readJSONIfExists=filePath=>{let stat$6=fs$12.statSync(filePath,{throwIfNoEntry:!1});if(stat$6)return JSON.parse(fs$12.readFileSync(filePath,`utf-8`))},fdatasyncAndClose=fd=>{try{fs$12.fdatasyncSync(fd)}catch{}try{fs$12.closeSync(fd)}catch{}},fsyncPath=p=>{try{let fd=fs$12.openSync(p,`r`);try{fs$12.fsyncSync(fd)}finally{fs$12.closeSync(fd)}}catch{}},writeAtomicJSON=(filePath,data$2)=>{let dir=path$8.dirname(filePath);ensureDir(dir);let tmp=path$8.join(dir,`.tmp-`+process.pid+`-`+Math.random().toString(36).slice(2)),json$2=JSON.stringify(data$2,null,2),fd;try{fd=fs$12.openSync(tmp,`w`),fs$12.writeFileSync(fd,json$2,`utf-8`),fdatasyncAndClose(fd),fd=void 0,fs$12.renameSync(tmp,filePath),fsyncPath(filePath),fsyncPath(dir)}catch(err){if(fd!==void 0)try{fs$12.closeSync(fd)}catch{}try{fs$12.rmSync(tmp,{force:!0})}catch{}throw err}},readIndex=()=>{if(indexCache)return indexCache;let indexPath=path$8.join(dataDirectory,`index.json`),read$1=readJSONIfExists(indexPath)??{ids:{}};return read$1.ids||(read$1.ids={}),indexCache=read$1,read$1},writeIndex=index=>{let indexPath=path$8.join(dataDirectory,`index.json`);writeAtomicJSON(indexPath,index),indexCache=index},readValueById=id=>{let cached=valueCache.get(id);if(cached)return cached;let idx=readIndex(),rel=idx.ids[id];if(!rel)return;let filePath=path$8.join(dataDirectory,rel),stat$6=fs$12.statSync(filePath,{throwIfNoEntry:!1});if(!stat$6)return;let value=JSON.parse(fs$12.readFileSync(filePath,`utf-8`));return valueCache.set(id,opts?.hydrate?opts.hydrate(value):value),value},writeValue=(key,value)=>{let current=valueCache.get(key);if(opts?.shouldWriteToDisk&¤t&&!opts.shouldWriteToDisk(current,value)){valueCache.set(key,value);return}let anyValue=value,idRaw=anyValue[idKey],idStr=String(idRaw),fileNameBase=filenamify(idStr,{replacement:`_`}),fileName=fileNameBase+`.json`,idx=readIndex();idx.ids[idStr]=fileName,idx.current=idStr;let valuePath=path$8.join(dataDirectory,fileName);writeAtomicJSON(valuePath,opts?.serialize?.(value)??value),writeIndex(idx),valueCache.set(key,value)};return{get(key){return readValueById(key)},set(key,value){writeValue(key,value)},update(key,value){let current=this.get(key);if(!current)throw Error(`Key ${key} not found`);writeValue(key,{...current,...value})},delete(key){let idx=readIndex(),rel=idx.ids[key];if(rel){let filePath=path$8.join(dataDirectory,rel);try{fs$12.rmSync(filePath,{force:!0}),fsyncPath(dataDirectory)}catch{}delete idx.ids[key],idx.current===key&&(idx.current=void 0),writeIndex(idx)}valueCache.delete(key)},list(){let stat$6=fs$12.statSync(dataDirectory,{throwIfNoEntry:!1});if(!stat$6)return[];let idx=readIndex();return Object.keys(idx.ids)}}};function createDevServer(options$1){options$1.dataDirectory||(options$1.dataDirectory=fs$1.mkdtempSync(tmpdir()));let chats=createDiskStore(join$1(options$1.dataDirectory,`chats`),`id`,{hydrate:chat$1=>({...chat$1,status:`idle`,queuedMessages:[],streamingMessage:void 0}),serialize:chat$1=>(options$1.serializeChat&&(chat$1=options$1.serializeChat(chat$1)),{id:chat$1.id,created_at:chat$1.created_at,updated_at:chat$1.updated_at,messages:chat$1.messages}),shouldWriteToDisk:(previous,next)=>previous.updated_at!==next.updated_at||previous.status!==next.status||previous.messages.length!==next.messages.length}),onChatChangedEmitter=new Emitter$1,originalSet=chats.set;chats.set=(key,value)=>{originalSet.call(chats,key,value),onChatChangedEmitter.emit(value)};let originalUpdate=chats.update;chats.update=(key,value)=>{originalUpdate.call(chats,key,value),onChatChangedEmitter.emit(chats.get(key))};let storage={},storagePath=join$1(options$1.dataDirectory,`storage.json`);fs$1.existsSync(storagePath)&&(storage=JSON.parse(fs$1.readFileSync(storagePath,`utf-8`)));let globalAbortController=new AbortController,chatAbortControllers=new Map,abortChat=id=>{let controller=chatAbortControllers.get(id);controller?.signal.aborted||controller?.abort()},lastDoStreamLoop,convertMessage=(message,id=crypto.randomUUID())=>({created_at:new Date().toISOString(),...message,id,metadata:message.metadata}),doStreamLoop=async(id,messages$1)=>{let chat$1=chats.get(id);if(!chat$1)return;messages$1=messages$1?.filter(m$2=>m$2);let updated=messages$1?[...chat$1.messages,...messages$1.map(m$2=>convertMessage(m$2))]:chat$1.messages;chats.update(id,{status:`streaming`,updated_at:new Date().toISOString(),messages:updated});let controller=new AbortController;chatAbortControllers.set(id,controller);let stream$8;try{stream$8=await options$1.sendMessages({messages:[...updated],chat:{key:id}},AbortSignal.any([globalAbortController.signal,controller.signal]))}catch(error$22){chats.update(id,{status:`error`,error:error$22 instanceof Error?error$22:Error(String(error$22)),streamingMessage:void 0});return}let messageStream=readUIMessageStream({stream:stream$8}),messageId=crypto.randomUUID(),lastMessage;if(chat$1=chats.get(id),!chat$1)return;try{for await(let message of messageStream){if(controller.signal.aborted)break;lastMessage=message,chats.update(id,{streamingMessage:convertMessage(message,messageId)})}}catch(error$22){let silenceAndStore=!1;if(error$22 instanceof Error&&error$22.message.includes(`Controller is already closed`)&&(silenceAndStore=!0),error$22 instanceof Error&&error$22.name===`AbortError`&&(silenceAndStore=!0),silenceAndStore){if(lastMessage){if(chat$1=chats.get(id),!chat$1)return;chats.update(id,{status:`idle`,messages:[...chat$1.messages,convertMessage(lastMessage,messageId)],streamingMessage:void 0});return}throw error$22}}if(chat$1=chats.get(id),!chat$1)return;let updatedMessages=[...chat$1.messages];if(lastMessage&&updatedMessages.push(convertMessage(lastMessage,messageId)),chat$1?.queuedMessages?.length){chats.update(id,{messages:[...chat$1.messages,...chat$1.queuedMessages.map(m$2=>convertMessage(m$2))],queuedMessages:[]}),await doStreamLoop(id);return}if(lastMessage&&shouldContinueStreaming(lastMessage)){chats.update(id,{messages:updatedMessages,streamingMessage:void 0}),await doStreamLoop(id);return}chats.update(id,{status:`idle`,streamingMessage:void 0,messages:updatedMessages})},runtime={chat:{async ensure(key){let chat$1=await chats.get(key),created=!1;return chat$1?await chats.set(key,{...chat$1,updated_at:new Date().toISOString(),status:`idle`}):(await chats.set(key,{id:key,messages:[],created_at:new Date().toISOString(),updated_at:new Date().toISOString(),status:`idle`,streamingMessage:void 0,queuedMessages:[]}),created=!0),{key,created}},async message(key,message,opts){let chat$1=chats.get(key);if(!chat$1)throw Error(`Chat not found`);if(opts?.behavior===`append`){chats.set(key,{...chat$1,messages:[...chat$1.messages,convertMessage(message)]});return}if(chat$1.status===`streaming`){if(opts?.behavior===`enqueue`){chats.set(key,{...chat$1,queuedMessages:[...chat$1.queuedMessages??[],message]});return}abortChat(key),await lastDoStreamLoop}lastDoStreamLoop=doStreamLoop(key,[message])}},store:{get(key){return Promise.resolve(storage[key])},set(key,value){return storage[key]=value,fs$1.writeFileSync(storagePath,JSON.stringify(storage),`utf-8`),Promise.resolve()},delete(key){return delete storage[key],fs$1.writeFileSync(storagePath,JSON.stringify(storage),`utf-8`),Promise.resolve()},list(prefix,options$2){let limit=Math.min(options$2?.limit??100,1e3),cursor=options$2?.cursor,allKeys=Object.keys(storage).filter(key=>key.startsWith(prefix??``)).sort(),startIndex=0;if(cursor){let cursorIndex=allKeys.indexOf(cursor);cursorIndex!==-1&&(startIndex=cursorIndex+1)}let keysToReturn=allKeys.slice(startIndex,startIndex+limit),nextCursor=startIndex+limit<allKeys.length?keysToReturn[keysToReturn.length-1]:void 0;return Promise.resolve({entries:keysToReturn.map(key=>({key})),cursor:nextCursor})}}},server=createServer(createServerAdapter(req$1=>api$36.fetch(req$1,{context:runtime})));return server.listen(options$1.port),{url:`http://127.0.0.1:${server.address().port}`,runtime,onChatChanged:onChatChangedEmitter.event,listChats:()=>chats.list(),getChat:id=>chats.get(id),stopChat:id=>{abortChat(id)},upsertChatMessage:(id,message)=>{let chat$1=chats.get(id);if(!chat$1)throw Error(`Chat not found`);let lastMessage=chat$1.messages.length>0?chat$1.messages.at(-1):void 0;if(lastMessage&&JSON.stringify(lastMessage.parts)===JSON.stringify(message.parts))return;let newMessages=[...chat$1.messages,convertMessage(message)];chats.set(id,{...chat$1,messages:newMessages})},updateChatMessage:(id,message)=>{let chat$1=chats.get(id);if(!chat$1)throw Error(`Chat not found`);let newMessages=[...chat$1.messages];newMessages[newMessages.length-1]=convertMessage(message),chats.set(id,{...chat$1,messages:newMessages})},resetChat:id=>{chats.set(id,{id,messages:[],status:`idle`,queuedMessages:[],streamingMessage:void 0,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}),abortChat(id)},upsertChat:id=>{let existing=chats.get(id);if(existing)return existing;let chat$1={id,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[],status:`idle`,queuedMessages:[],streamingMessage:void 0};return chats.set(id,chat$1),chat$1},dispose:()=>{server.close(),globalAbortController.abort()}}}function lastUIOptions(messages$1){for(let i$4=messages$1.length-1;i$4>=0;i$4--){let message=messages$1[i$4];if(message!==void 0&&message.role===`user`&&!(typeof message.metadata!=`object`||message.metadata===null)&&`options`in message.metadata)return message.metadata.options}}const StreamResponseFormatHeader=`x-blink-stream-response-format`;function useOptions({agent:agent$1,capabilities,messages:messages$1}){let[error$22,setError$1]=useState(void 0),[loading,setLoading]=useState(!0),[schema,setSchema]=useState(void 0),currentSchema=useRef(schema);useEffect(()=>{currentSchema.current=schema},[schema]);let[lastMessageOptions,setLastMessageOptions]=useState(()=>lastUIOptions(messages$1));useEffect(()=>{setLastMessageOptions(prev=>{let newOptions=lastUIOptions(messages$1);return JSON.stringify(newOptions)===JSON.stringify(prev)?prev:newOptions})},[messages$1]);let[options$1,setOptions$1]=useState(void 0),isValidOption=useCallback((id,value)=>{if(!currentSchema.current)return!1;let option$1=currentSchema.current[id];return option$1?option$1.values.some(v$1=>v$1.id===value):!1},[]),updateOptions=useCallback(updates=>{setOptions$1(prev=>{let newOptions={...lastMessageOptions,...prev,...updates};for(let[key,value]of Object.entries(newOptions))isValidOption(key,value)||delete newOptions[key];for(let[key,value]of Object.entries(currentSchema.current??{}))!newOptions[key]&&value.defaultValue!==void 0&&(newOptions[key]=value.defaultValue);return JSON.stringify(newOptions)===JSON.stringify(prev)?prev:newOptions})},[lastMessageOptions,isValidOption]);useEffect(()=>{if(!lastMessageOptions&&!schema){setOptions$1(void 0);return}updateOptions()},[lastMessageOptions,schema,updateOptions]);let lastRequestedOptionsJson=useRef(void 0),lastAgentRef=useRef(void 0);useEffect(()=>{agent$1!==lastAgentRef.current&&(lastAgentRef.current=agent$1,setSchema(void 0),setOptions$1(void 0),setError$1(void 0),setLoading(!0),lastRequestedOptionsJson.current=void 0)},[agent$1]),useEffect(()=>{if(capabilities&&!capabilities.ui||!agent$1){setSchema(void 0),setOptions$1(void 0),setError$1(void 0),lastRequestedOptionsJson.current=void 0;return}let currentOptionsJson=options$1?JSON.stringify(options$1):``;if(lastRequestedOptionsJson.current===currentOptionsJson){setLoading(!1),setError$1(void 0);return}let controller=new AbortController;return setLoading(!0),setError$1(void 0),agent$1.ui(options$1?{selectedOptions:options$1}:{},{signal:controller.signal}).then(newSchema=>{if(!newSchema){setSchema(void 0);return}controller.signal.aborted||(setSchema(prev=>JSON.stringify(prev)===JSON.stringify(newSchema)?prev:newSchema),lastRequestedOptionsJson.current=currentOptionsJson)}).catch(err=>{controller.signal.aborted||setError$1(err instanceof Error?err:Error(String(err)))}).finally(()=>{setLoading(!1)}),()=>{controller.abort()}},[agent$1,capabilities,options$1]);let setOption$1=useCallback((id,value)=>{updateOptions({[id]:value})},[updateOptions]);return{schema,options:options$1,setOption:setOption$1,loading,error:error$22}}function L(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var O$1=L();function H(l$1){O$1=l$1}var E$1={exec:()=>null};function h$2(l$1,e$1=``){let t$1=typeof l$1==`string`?l$1:l$1.source,n$2={replace:(r$2,i$4)=>{let s$3=typeof i$4==`string`?i$4:i$4.source;return s$3=s$3.replace(m$1.caret,`$1`),t$1=t$1.replace(r$2,s$3),n$2},getRegex:()=>new RegExp(t$1,e$1)};return n$2}var m$1={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:l$1=>RegExp(`^( {0,3}${l$1})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}#`),htmlBeginRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}<(?:[a-z].*>|!--)`,`i`)},xe=/^(?:[ \t]*(?:\n|$))+/,be=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Re=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,C=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Oe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,j=/(?:[*+-]|\d{1,9}[.)])/,se=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ie=h$2(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Te=h$2(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),F=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,we=/^[^\n]+/,Q=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ye=h$2(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Q).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Pe=h$2(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,j).getRegex(),v=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,U=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Se=h$2(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,U).replace(`tag`,v).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oe=h$2(F).replace(`hr`,C).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,v).getRegex(),$e=h$2(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,oe).getRegex(),K={blockquote:$e,code:be,def:ye,fences:Re,heading:Oe,hr:C,html:Se,lheading:ie,list:Pe,newline:xe,paragraph:oe,table:E$1,text:we},re=h$2(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,C).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,v).getRegex(),_e={...K,lheading:Te,table:re,paragraph:h$2(F).replace(`hr`,C).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,re).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,v).getRegex()},Le={...K,html:h$2(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,U).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:E$1,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:h$2(F).replace(`hr`,C).replace(`heading`,` *#{1,6} *[^
|
|
248
|
+
`)),curlHandle.enable(CurlFeature.StreamResponse);let signal;if(fetchRequest._signal===null?signal=void 0:fetchRequest._signal&&(signal=fetchRequest._signal),curlHandle.setStreamProgressCallback(function(){return signal?.aborted?process.env.DEBUG?CurlProgressFunc.Continue:1:0}),fetchRequest.bodyType===`String`)curlHandle.setOpt(`POSTFIELDS`,fetchRequest.bodyInit);else{let nodeReadable=fetchRequest.body==null?null:(0,utils_js_1$5.isNodeReadable)(fetchRequest.body)?fetchRequest.body:node_stream_1$3.Readable.from(fetchRequest.body);nodeReadable&&(curlHandle.setOpt(`UPLOAD`,!0),curlHandle.setUploadStream(nodeReadable))}process.env.DEBUG&&curlHandle.setOpt(`VERBOSE`,!0),curlHandle.setOpt(`TRANSFER_ENCODING`,!1),curlHandle.setOpt(`HTTP_TRANSFER_DECODING`,!0),curlHandle.setOpt(`FOLLOWLOCATION`,fetchRequest.redirect===`follow`),curlHandle.setOpt(`MAXREDIRS`,20),curlHandle.setOpt(`ACCEPT_ENCODING`,``),curlHandle.setOpt(`CUSTOMREQUEST`,fetchRequest.method);let headersSerializer=fetchRequest.headersSerializer||utils_js_1$5.defaultHeadersSerializer,size,curlHeaders=headersSerializer(fetchRequest.headers,value=>{size=Number(value)});size!=null&&curlHandle.setOpt(`INFILESIZE`,size),curlHandle.setOpt(`HTTPHEADER`,curlHeaders),curlHandle.enable(CurlFeature.NoHeaderParsing);let deferredPromise=(0,promise_helpers_1$2.createDeferredPromise)(),streamResolved;function onAbort(){if(curlHandle.isOpen)try{curlHandle.pause(CurlPause.Recv)}catch(e$1){deferredPromise.reject(e$1)}}return signal?.addEventListener(`abort`,onAbort,{once:!0}),curlHandle.once(`end`,function(){try{curlHandle.close()}catch(e$1){deferredPromise.reject(e$1)}signal?.removeEventListener(`abort`,onAbort)}),curlHandle.once(`error`,function(error$22){streamResolved&&!streamResolved.closed&&!streamResolved.destroyed?streamResolved.destroy(error$22):(error$22.message===`Operation was aborted by an application callback`&&(error$22.message=`The operation was aborted.`),deferredPromise.reject(error$22));try{curlHandle.close()}catch(e$1){deferredPromise.reject(e$1)}}),curlHandle.once(`stream`,function(stream$8,status,headersBuf){let outputStream=stream$8.pipe(new node_stream_1$3.PassThrough,{end:!0}),headersFlat=headersBuf.toString(`utf8`).split(/\r?\n|\r/g).filter(headerFilter=>headerFilter&&!headerFilter.startsWith(`HTTP/`)?(fetchRequest.redirect===`error`&&headerFilter.toLowerCase().includes(`location`)&&(0,utils_js_1$5.shouldRedirect)(status)&&(stream$8.destroyed||stream$8.resume(),outputStream.destroy(),deferredPromise.reject(Error(`redirect is not allowed`))),!0):!1),headersInit=headersFlat.map(headerFlat=>headerFlat.split(/:\s(.+)/).slice(0,2)),ponyfillResponse=new Response_js_1$3.PonyfillResponse(outputStream,{status,headers:headersInit,url:curlHandle.getInfo(Curl.info.REDIRECT_URL)?.toString()||fetchRequest.url,redirected:Number(curlHandle.getInfo(Curl.info.REDIRECT_COUNT))>0});deferredPromise.resolve(ponyfillResponse),streamResolved=outputStream}),setImmediate(()=>{curlHandle.perform()}),deferredPromise.promise}})),require_URL$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillURL=void 0;let tslib_1=(init_tslib_es6(),__toCommonJS$1(tslib_es6_exports)),node_buffer_1$2=tslib_1.__importDefault(__require$2(`node:buffer`)),node_crypto_1=__require$2(`node:crypto`),NativeURL=globalThis.URL;var URL$10=class extends NativeURL{static blobRegistry=new Map;static createObjectURL(blob){let blobUrl=`blob:whatwgnode:${(0,node_crypto_1.randomUUID)()}`;return this.blobRegistry.set(blobUrl,blob),blobUrl}static revokeObjectURL(url$5){this.blobRegistry.has(url$5)?this.blobRegistry.delete(url$5):NativeURL.revokeObjectURL(url$5)}static getBlobFromURL(url$5){return this.blobRegistry.get(url$5)||node_buffer_1$2.default?.resolveObjectURL?.(url$5)}};exports.PonyfillURL=URL$10})),require_Request=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillRequest=void 0;let node_http_1$18=__require$2(`node:http`),node_https_1$1=__require$2(`node:https`),Body_js_1$1=require_Body(),Headers_js_1$1=require_Headers(),URL_js_1$3=require_URL$2();function isRequest$4(input){return input[Symbol.toStringTag]===`Request`}function isURL$1(obj){return obj?.href!=null}var PonyfillRequest=class extends Body_js_1$1.PonyfillBody{constructor(input,options$1){let _url$1,_parsedUrl,bodyInit=null,requestInit;if(typeof input==`string`?_url$1=input:isURL$1(input)?_parsedUrl=input:isRequest$4(input)&&(input._parsedUrl?_parsedUrl=input._parsedUrl:_url$1=input._url?input._url:input.url,bodyInit=input.body,requestInit=input),options$1!=null&&(bodyInit=options$1.body||null,requestInit=options$1),super(bodyInit,requestInit),this._url=_url$1,this._parsedUrl=_parsedUrl,this.cache=requestInit?.cache||`default`,this.credentials=requestInit?.credentials||`same-origin`,this.headers=requestInit?.headers&&(0,Headers_js_1$1.isHeadersLike)(requestInit.headers)?requestInit.headers:new Headers_js_1$1.PonyfillHeaders(requestInit?.headers),this.integrity=requestInit?.integrity||``,this.keepalive=requestInit?.keepalive==null?!1:requestInit?.keepalive,this.method=requestInit?.method?.toUpperCase()||`GET`,this.mode=requestInit?.mode||`cors`,this.redirect=requestInit?.redirect||`follow`,this.referrer=requestInit?.referrer||`about:client`,this.referrerPolicy=requestInit?.referrerPolicy||`no-referrer`,this.headersSerializer=requestInit?.headersSerializer,this.duplex=requestInit?.duplex||`half`,this.destination=`document`,this.priority=`auto`,this.method!==`GET`&&this.method!==`HEAD`&&this.handleContentLengthHeader(!0),requestInit?.agent!=null){let protocol=_parsedUrl?.protocol||_url$1||this.url;requestInit.agent===!1?this.agent=!1:(protocol.startsWith(`http:`)&&requestInit.agent instanceof node_http_1$18.Agent||protocol.startsWith(`https:`)&&requestInit.agent instanceof node_https_1$1.Agent)&&(this.agent=requestInit.agent)}}headersSerializer;cache;credentials;destination;headers;integrity;keepalive;method;mode;priority;redirect;referrer;referrerPolicy;_url;get signal(){return this._signal||=new AbortController().signal,this._signal}get url(){if(this._url==null)if(this._parsedUrl)this._url=this._parsedUrl.toString();else throw TypeError(`Invalid URL`);return this._url}_parsedUrl;get parsedUrl(){if(this._parsedUrl==null)if(this._url!=null)this._parsedUrl=new URL_js_1$3.PonyfillURL(this._url,`http://localhost`);else throw TypeError(`Invalid URL`);return this._parsedUrl}duplex;agent;clone(){return this}[Symbol.toStringTag]=`Request`};exports.PonyfillRequest=PonyfillRequest})),require_fetchNodeHttp=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchNodeHttp=fetchNodeHttp;let node_http_1$17=__require$2(`node:http`),node_https_1=__require$2(`node:https`),node_stream_1$2=__require$2(`node:stream`),node_zlib_1$2=__require$2(`node:zlib`),promise_helpers_1$1=require_cjs$4(),Request_js_1$2=require_Request(),Response_js_1$2=require_Response(),URL_js_1$2=require_URL$2(),utils_js_1$4=require_utils$85();function getRequestFnForProtocol(url$5){if(url$5.startsWith(`http:`))return node_http_1$17.request;if(url$5.startsWith(`https:`))return node_https_1.request;throw Error(`Unsupported protocol: ${url$5.split(`:`)[0]||url$5}`)}function fetchNodeHttp(fetchRequest){return new Promise((resolve$9,reject)=>{try{let requestFn=getRequestFnForProtocol(fetchRequest.parsedUrl?.protocol||fetchRequest.url),headersSerializer=fetchRequest.headersSerializer||utils_js_1$4.getHeadersObj,nodeHeaders=headersSerializer(fetchRequest.headers);nodeHeaders[`accept-encoding`]==null&&(nodeHeaders[`accept-encoding`]=`gzip, deflate, br`);let signal;fetchRequest._signal==null?signal=void 0:fetchRequest._signal&&(signal=fetchRequest._signal);let nodeRequest;if(nodeRequest=fetchRequest.parsedUrl?requestFn(fetchRequest.parsedUrl,{method:fetchRequest.method,headers:nodeHeaders,signal,agent:fetchRequest.agent}):requestFn(fetchRequest.url,{method:fetchRequest.method,headers:nodeHeaders,signal,agent:fetchRequest.agent}),nodeRequest.once(`error`,reject),nodeRequest.once(`response`,nodeResponse=>{let outputStream,contentEncoding=nodeResponse.headers[`content-encoding`];switch(contentEncoding){case`x-gzip`:case`gzip`:outputStream=(0,node_zlib_1$2.createGunzip)();break;case`x-deflate`:case`deflate`:outputStream=(0,node_zlib_1$2.createInflate)();break;case`x-deflate-raw`:case`deflate-raw`:outputStream=(0,node_zlib_1$2.createInflateRaw)();break;case`br`:outputStream=(0,node_zlib_1$2.createBrotliDecompress)();break}if(nodeResponse.headers.location&&(0,utils_js_1$4.shouldRedirect)(nodeResponse.statusCode)){if(fetchRequest.redirect===`error`){let redirectError=Error(`Redirects are not allowed`);reject(redirectError),nodeResponse.resume();return}if(fetchRequest.redirect===`follow`){let redirectedUrl=new URL_js_1$2.PonyfillURL(nodeResponse.headers.location,fetchRequest.parsedUrl||fetchRequest.url),redirectResponse$=fetchNodeHttp(new Request_js_1$2.PonyfillRequest(redirectedUrl,fetchRequest));resolve$9(redirectResponse$.then(redirectResponse=>(redirectResponse.redirected=!0,redirectResponse))),nodeResponse.resume();return}}outputStream||=new node_stream_1$2.PassThrough,(0,utils_js_1$4.pipeThrough)({src:nodeResponse,dest:outputStream,signal,onError:e$1=>{nodeResponse.destroyed||nodeResponse.destroy(e$1),outputStream.destroyed||outputStream.destroy(e$1),reject(e$1)}});let statusCode=nodeResponse.statusCode||200,statusText=nodeResponse.statusMessage||node_http_1$17.STATUS_CODES[statusCode];statusText==null&&(statusText=``);let ponyfillResponse=new Response_js_1$2.PonyfillResponse(outputStream||nodeResponse,{status:statusCode,statusText,headers:nodeResponse.headers,url:fetchRequest.url,signal});resolve$9(ponyfillResponse)}),fetchRequest._buffer!=null)(0,promise_helpers_1$1.handleMaybePromise)(()=>(0,utils_js_1$4.safeWrite)(fetchRequest._buffer,nodeRequest),()=>(0,utils_js_1$4.endStream)(nodeRequest),reject);else{let nodeReadable=fetchRequest.body==null?null:(0,utils_js_1$4.isNodeReadable)(fetchRequest.body)?fetchRequest.body:node_stream_1$2.Readable.from(fetchRequest.body);nodeReadable?nodeReadable.pipe(nodeRequest):(0,utils_js_1$4.endStream)(nodeRequest)}}catch(e$1){reject(e$1)}})}})),require_fetch$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchPonyfill=fetchPonyfill;let node_buffer_1$1=__require$2(`node:buffer`),node_fs_1=__require$2(`node:fs`),node_url_1=__require$2(`node:url`),fetchCurl_js_1=require_fetchCurl(),fetchNodeHttp_js_1=require_fetchNodeHttp(),Request_js_1$1=require_Request(),Response_js_1$1=require_Response(),URL_js_1$1=require_URL$2(),utils_js_1$3=require_utils$85(),BASE64_SUFFIX=`;base64`;async function getResponseForFile(url$5){let path$40=(0,node_url_1.fileURLToPath)(url$5);try{await node_fs_1.promises.access(path$40,node_fs_1.promises.constants.R_OK);let stats=await node_fs_1.promises.stat(path$40,{bigint:!0}),readable$1=(0,node_fs_1.createReadStream)(path$40);return new Response_js_1$1.PonyfillResponse(readable$1,{status:200,statusText:`OK`,headers:{"content-type":`application/octet-stream`,"last-modified":stats.mtime.toUTCString()}})}catch(err){if(err.code===`ENOENT`)return new Response_js_1$1.PonyfillResponse(null,{status:404,statusText:`Not Found`});if(err.code===`EACCES`)return new Response_js_1$1.PonyfillResponse(null,{status:403,statusText:`Forbidden`});throw err}}function getResponseForDataUri(url$5){let[mimeType=`text/plain`,...datas]=url$5.substring(5).split(`,`),data$2=decodeURIComponent(datas.join(`,`));if(mimeType.endsWith(`;base64`)){let buffer$1=node_buffer_1$1.Buffer.from(data$2,`base64url`),realMimeType=mimeType.slice(0,-7);return new Response_js_1$1.PonyfillResponse(buffer$1,{status:200,statusText:`OK`,headers:{"content-type":realMimeType}})}return new Response_js_1$1.PonyfillResponse(data$2,{status:200,statusText:`OK`,headers:{"content-type":mimeType}})}function getResponseForBlob(url$5){let blob=URL_js_1$1.PonyfillURL.getBlobFromURL(url$5);if(!blob)throw TypeError(`Invalid Blob URL`);return new Response_js_1$1.PonyfillResponse(blob,{status:200,headers:{"content-type":blob.type,"content-length":blob.size.toString()}})}function isURL(obj){return obj!=null&&obj.href!=null}function fetchPonyfill(info$1,init$7){if(typeof info$1==`string`||isURL(info$1)){let ponyfillRequest=new Request_js_1$1.PonyfillRequest(info$1,init$7);return fetchPonyfill(ponyfillRequest)}let fetchRequest=info$1;if(fetchRequest.url.startsWith(`data:`)){let response=getResponseForDataUri(fetchRequest.url);return(0,utils_js_1$3.fakePromise)(response)}if(fetchRequest.url.startsWith(`file:`)){let response=getResponseForFile(fetchRequest.url);return response}if(fetchRequest.url.startsWith(`blob:`)){let response=getResponseForBlob(fetchRequest.url);return(0,utils_js_1$3.fakePromise)(response)}return globalThis.libcurl&&!fetchRequest.agent?(0,fetchCurl_js_1.fetchCurl)(fetchRequest):(0,fetchNodeHttp_js_1.fetchNodeHttp)(fetchRequest)}})),require_TextEncoderDecoder=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillTextDecoder=exports.PonyfillTextEncoder=void 0,exports.PonyfillBtoa=PonyfillBtoa;let node_buffer_1=__require$2(`node:buffer`),utils_js_1$2=require_utils$85();var PonyfillTextEncoder=class{encoding;constructor(encoding=`utf-8`){this.encoding=encoding}encode(input){return node_buffer_1.Buffer.from(input,this.encoding)}encodeInto(source$39,destination){let buffer$1=this.encode(source$39),copied=buffer$1.copy(destination);return{read:copied,written:copied}}};exports.PonyfillTextEncoder=PonyfillTextEncoder;var PonyfillTextDecoder=class{encoding;fatal=!1;ignoreBOM=!1;constructor(encoding=`utf-8`,options$1){this.encoding=encoding,options$1&&(this.fatal=options$1.fatal||!1,this.ignoreBOM=options$1.ignoreBOM||!1)}decode(input){return node_buffer_1.Buffer.isBuffer(input)?input.toString(this.encoding):(0,utils_js_1$2.isArrayBufferView)(input)?node_buffer_1.Buffer.from(input.buffer,input.byteOffset,input.byteLength).toString(this.encoding):node_buffer_1.Buffer.from(input).toString(this.encoding)}};exports.PonyfillTextDecoder=PonyfillTextDecoder;function PonyfillBtoa(input){return node_buffer_1.Buffer.from(input,`binary`).toString(`base64`)}})),require_URLSearchParams=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillURLSearchParams=void 0,exports.PonyfillURLSearchParams=globalThis.URLSearchParams})),require_WritableStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillWritableStream=void 0;let node_events_1$2=__require$2(`node:events`),node_stream_1$1=__require$2(`node:stream`),promise_helpers_1=require_cjs$4(),utils_js_1$1=require_utils$85();var PonyfillWritableStream=class{writable;constructor(underlyingSink){if(underlyingSink instanceof node_stream_1$1.Writable)this.writable=underlyingSink;else if(underlyingSink){let writable$1=new node_stream_1$1.Writable({write(chunk$1,_encoding,callback$1){try{let result=underlyingSink.write?.(chunk$1,controller);result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}catch(err){callback$1(err)}},final(callback$1){let result=underlyingSink.close?.();result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}});this.writable=writable$1;let abortCtrl=new AbortController,controller={signal:abortCtrl.signal,error(e$1){writable$1.destroy(e$1)}};writable$1.once(`error`,err=>abortCtrl.abort(err)),writable$1.once(`close`,()=>abortCtrl.abort())}else this.writable=new node_stream_1$1.Writable}getWriter(){let writable$1=this.writable;return{get closed(){return(0,node_events_1$2.once)(writable$1,`close`)},get desiredSize(){return writable$1.writableLength},get ready(){return(0,node_events_1$2.once)(writable$1,`drain`)},releaseLock(){},write(chunk$1){let promise$1=(0,utils_js_1$1.fakePromise)();return chunk$1==null?promise$1:promise$1.then(()=>(0,utils_js_1$1.safeWrite)(chunk$1,writable$1))},close(){return!writable$1.errored&&writable$1.closed?(0,utils_js_1$1.fakePromise)():writable$1.errored?(0,promise_helpers_1.fakeRejectPromise)(writable$1.errored):(0,utils_js_1$1.fakePromise)().then(()=>(0,utils_js_1$1.endStream)(writable$1))},abort(reason){return writable$1.destroy(reason),(0,node_events_1$2.once)(writable$1,`close`)}}}close(){return!this.writable.errored&&this.writable.closed?(0,utils_js_1$1.fakePromise)():this.writable.errored?(0,promise_helpers_1.fakeRejectPromise)(this.writable.errored):(0,utils_js_1$1.fakePromise)().then(()=>(0,utils_js_1$1.endStream)(this.writable))}abort(reason){return this.writable.destroy(reason),(0,node_events_1$2.once)(this.writable,`close`)}locked=!1};exports.PonyfillWritableStream=PonyfillWritableStream})),require_TransformStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillTransformStream=void 0;let node_stream_1=__require$2(`node:stream`),ReadableStream_js_1$1=require_ReadableStream(),utils_js_1=require_utils$85(),WritableStream_js_1$1=require_WritableStream();var PonyfillTransformStream=class{transform;writable;readable;constructor(transformer){if(transformer instanceof node_stream_1.Transform)this.transform=transformer;else if(transformer){let controller={enqueue(chunk$1){transform.push(chunk$1)},error(reason){transform.destroy(reason)},terminate(){(0,utils_js_1.endStream)(transform)},get desiredSize(){return transform.writableLength}},transform=new node_stream_1.Transform({read(){},write(chunk$1,_encoding,callback$1){try{let result=transformer.transform?.(chunk$1,controller);result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}catch(err){callback$1(err)}},final(callback$1){try{let result=transformer.flush?.(controller);result instanceof Promise?result.then(()=>{callback$1()},err=>{callback$1(err)}):callback$1()}catch(err){callback$1(err)}}});this.transform=transform}else this.transform=new node_stream_1.Transform;this.writable=new WritableStream_js_1$1.PonyfillWritableStream(this.transform),this.readable=new ReadableStream_js_1$1.PonyfillReadableStream(this.transform)}};exports.PonyfillTransformStream=PonyfillTransformStream})),require_CompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillCompressionStream=void 0;let node_zlib_1$1=__require$2(`node:zlib`),TransformStream_js_1$3=require_TransformStream();var PonyfillCompressionStream=class extends TransformStream_js_1$3.PonyfillTransformStream{static supportedFormats=globalThis.process?.version?.startsWith(`v2`)?[`gzip`,`deflate`,`br`]:[`gzip`,`deflate`,`deflate-raw`,`br`];constructor(compressionFormat){switch(compressionFormat){case`x-gzip`:case`gzip`:super((0,node_zlib_1$1.createGzip)());break;case`x-deflate`:case`deflate`:super((0,node_zlib_1$1.createDeflate)());break;case`deflate-raw`:super((0,node_zlib_1$1.createDeflateRaw)());break;case`br`:super((0,node_zlib_1$1.createBrotliCompress)());break;default:throw Error(`Unsupported compression format: ${compressionFormat}`)}}};exports.PonyfillCompressionStream=PonyfillCompressionStream})),require_DecompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillDecompressionStream=void 0;let node_zlib_1=__require$2(`node:zlib`),TransformStream_js_1$2=require_TransformStream();var PonyfillDecompressionStream=class extends TransformStream_js_1$2.PonyfillTransformStream{static supportedFormats=globalThis.process?.version?.startsWith(`v2`)?[`gzip`,`deflate`,`br`]:[`gzip`,`deflate`,`deflate-raw`,`br`];constructor(compressionFormat){switch(compressionFormat){case`x-gzip`:case`gzip`:super((0,node_zlib_1.createGunzip)());break;case`x-deflate`:case`deflate`:super((0,node_zlib_1.createInflate)());break;case`deflate-raw`:super((0,node_zlib_1.createInflateRaw)());break;case`br`:super((0,node_zlib_1.createBrotliDecompress)());break;default:throw TypeError(`Unsupported compression format: '${compressionFormat}'`)}}};exports.PonyfillDecompressionStream=PonyfillDecompressionStream})),require_TextEncoderDecoderStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.PonyfillTextEncoderStream=exports.PonyfillTextDecoderStream=void 0;let TextEncoderDecoder_js_1$1=require_TextEncoderDecoder(),TransformStream_js_1$1=require_TransformStream();var PonyfillTextDecoderStream=class extends TransformStream_js_1$1.PonyfillTransformStream{textDecoder;constructor(encoding,options$1){super({transform:(chunk$1,controller)=>controller.enqueue(this.textDecoder.decode(chunk$1,{stream:!0}))}),this.textDecoder=new TextEncoderDecoder_js_1$1.PonyfillTextDecoder(encoding,options$1)}get encoding(){return this.textDecoder.encoding}get fatal(){return this.textDecoder.fatal}get ignoreBOM(){return this.textDecoder.ignoreBOM}};exports.PonyfillTextDecoderStream=PonyfillTextDecoderStream;var PonyfillTextEncoderStream=class extends TransformStream_js_1$1.PonyfillTransformStream{textEncoder;constructor(encoding){super({transform:(chunk$1,controller)=>controller.enqueue(this.textEncoder.encode(chunk$1))}),this.textEncoder=new TextEncoderDecoder_js_1$1.PonyfillTextEncoder(encoding)}get encoding(){return this.textEncoder.encoding}encode(input){return this.textEncoder.encode(input)}};exports.PonyfillTextEncoderStream=PonyfillTextEncoderStream})),require_cjs$2=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.TextEncoderStream=exports.TextDecoderStream=exports.IteratorObject=exports.DecompressionStream=exports.CompressionStream=exports.TransformStream=exports.WritableStream=exports.URLSearchParams=exports.URL=exports.btoa=exports.TextDecoder=exports.TextEncoder=exports.Blob=exports.FormData=exports.File=exports.ReadableStream=exports.Response=exports.Request=exports.Body=exports.Headers=exports.fetch=void 0;var fetch_js_1=require_fetch$1();Object.defineProperty(exports,`fetch`,{enumerable:!0,get:function(){return fetch_js_1.fetchPonyfill}});var Headers_js_1=require_Headers();Object.defineProperty(exports,`Headers`,{enumerable:!0,get:function(){return Headers_js_1.PonyfillHeaders}});var Body_js_1=require_Body();Object.defineProperty(exports,`Body`,{enumerable:!0,get:function(){return Body_js_1.PonyfillBody}});var Request_js_1=require_Request();Object.defineProperty(exports,`Request`,{enumerable:!0,get:function(){return Request_js_1.PonyfillRequest}});var Response_js_1=require_Response();Object.defineProperty(exports,`Response`,{enumerable:!0,get:function(){return Response_js_1.PonyfillResponse}});var ReadableStream_js_1=require_ReadableStream();Object.defineProperty(exports,`ReadableStream`,{enumerable:!0,get:function(){return ReadableStream_js_1.PonyfillReadableStream}});var File_js_1=require_File();Object.defineProperty(exports,`File`,{enumerable:!0,get:function(){return File_js_1.PonyfillFile}});var FormData_js_1=require_FormData();Object.defineProperty(exports,`FormData`,{enumerable:!0,get:function(){return FormData_js_1.PonyfillFormData}});var Blob_js_1=require_Blob();Object.defineProperty(exports,`Blob`,{enumerable:!0,get:function(){return Blob_js_1.PonyfillBlob}});var TextEncoderDecoder_js_1=require_TextEncoderDecoder();Object.defineProperty(exports,`TextEncoder`,{enumerable:!0,get:function(){return TextEncoderDecoder_js_1.PonyfillTextEncoder}}),Object.defineProperty(exports,`TextDecoder`,{enumerable:!0,get:function(){return TextEncoderDecoder_js_1.PonyfillTextDecoder}}),Object.defineProperty(exports,`btoa`,{enumerable:!0,get:function(){return TextEncoderDecoder_js_1.PonyfillBtoa}});var URL_js_1=require_URL$2();Object.defineProperty(exports,`URL`,{enumerable:!0,get:function(){return URL_js_1.PonyfillURL}});var URLSearchParams_js_1=require_URLSearchParams();Object.defineProperty(exports,`URLSearchParams`,{enumerable:!0,get:function(){return URLSearchParams_js_1.PonyfillURLSearchParams}});var WritableStream_js_1=require_WritableStream();Object.defineProperty(exports,`WritableStream`,{enumerable:!0,get:function(){return WritableStream_js_1.PonyfillWritableStream}});var TransformStream_js_1=require_TransformStream();Object.defineProperty(exports,`TransformStream`,{enumerable:!0,get:function(){return TransformStream_js_1.PonyfillTransformStream}});var CompressionStream_js_1=require_CompressionStream();Object.defineProperty(exports,`CompressionStream`,{enumerable:!0,get:function(){return CompressionStream_js_1.PonyfillCompressionStream}});var DecompressionStream_js_1=require_DecompressionStream();Object.defineProperty(exports,`DecompressionStream`,{enumerable:!0,get:function(){return DecompressionStream_js_1.PonyfillDecompressionStream}});var IteratorObject_js_1=require_IteratorObject();Object.defineProperty(exports,`IteratorObject`,{enumerable:!0,get:function(){return IteratorObject_js_1.PonyfillIteratorObject}});var TextEncoderDecoderStream_js_1=require_TextEncoderDecoderStream();Object.defineProperty(exports,`TextDecoderStream`,{enumerable:!0,get:function(){return TextEncoderDecoderStream_js_1.PonyfillTextDecoderStream}}),Object.defineProperty(exports,`TextEncoderStream`,{enumerable:!0,get:function(){return TextEncoderDecoderStream_js_1.PonyfillTextEncoderStream}})})),require_create_node_ponyfill=__commonJSMin(((exports,module)=>{let shouldSkipPonyfill$1=require_shouldSkipPonyfill(),newNodeFetch;module.exports=function(opts={}){let ponyfills$1={};if(ponyfills$1.URLPattern=globalThis.URLPattern,!ponyfills$1.URLPattern){let urlPatternModule=require_urlpattern_polyfill();ponyfills$1.URLPattern=urlPatternModule.URLPattern}if(opts.skipPonyfill||shouldSkipPonyfill$1())return{fetch:globalThis.fetch,Headers:globalThis.Headers,Request:globalThis.Request,Response:globalThis.Response,FormData:globalThis.FormData,ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,CompressionStream:globalThis.CompressionStream,DecompressionStream:globalThis.DecompressionStream,TextDecoderStream:globalThis.TextDecoderStream,TextEncoderStream:globalThis.TextEncoderStream,Blob:globalThis.Blob,File:globalThis.File,crypto:globalThis.crypto,btoa:globalThis.btoa,TextEncoder:globalThis.TextEncoder,TextDecoder:globalThis.TextDecoder,URLPattern:ponyfills$1.URLPattern,URL:globalThis.URL,URLSearchParams:globalThis.URLSearchParams};if(newNodeFetch||=require_cjs$2(),ponyfills$1.fetch=newNodeFetch.fetch,ponyfills$1.Request=newNodeFetch.Request,ponyfills$1.Response=newNodeFetch.Response,ponyfills$1.Headers=newNodeFetch.Headers,ponyfills$1.FormData=newNodeFetch.FormData,ponyfills$1.ReadableStream=newNodeFetch.ReadableStream,ponyfills$1.URL=newNodeFetch.URL,ponyfills$1.URLSearchParams=newNodeFetch.URLSearchParams,ponyfills$1.WritableStream=newNodeFetch.WritableStream,ponyfills$1.TransformStream=newNodeFetch.TransformStream,ponyfills$1.CompressionStream=newNodeFetch.CompressionStream,ponyfills$1.DecompressionStream=newNodeFetch.DecompressionStream,ponyfills$1.TextDecoderStream=newNodeFetch.TextDecoderStream,ponyfills$1.TextEncoderStream=newNodeFetch.TextEncoderStream,ponyfills$1.Blob=newNodeFetch.Blob,ponyfills$1.File=newNodeFetch.File,ponyfills$1.crypto=globalThis.crypto,ponyfills$1.btoa=newNodeFetch.btoa,ponyfills$1.TextEncoder=newNodeFetch.TextEncoder,ponyfills$1.TextDecoder=newNodeFetch.TextDecoder,opts.formDataLimits&&(ponyfills$1.Body=class extends newNodeFetch.Body{constructor(body,userOpts){super(body,{formDataLimits:opts.formDataLimits,...userOpts})}},ponyfills$1.Request=class extends newNodeFetch.Request{constructor(input,userOpts){super(input,{formDataLimits:opts.formDataLimits,...userOpts})}},ponyfills$1.Response=class extends newNodeFetch.Response{constructor(body,userOpts){super(body,{formDataLimits:opts.formDataLimits,...userOpts})}}),!ponyfills$1.crypto){let cryptoModule=__require$2(`crypto`);ponyfills$1.crypto=cryptoModule.webcrypto}return ponyfills$1}})),require_node_ponyfill$1=__commonJSMin(((exports,module)=>{let createNodePonyfill=require_create_node_ponyfill(),shouldSkipPonyfill=require_shouldSkipPonyfill(),ponyfills=createNodePonyfill();if(!shouldSkipPonyfill())try{let nodelibcurlName=`node-libcurl`;globalThis.libcurl=globalThis.libcurl||__require$2(`node-libcurl`)}catch(e$1){}module.exports.fetch=ponyfills.fetch,module.exports.Headers=ponyfills.Headers,module.exports.Request=ponyfills.Request,module.exports.Response=ponyfills.Response,module.exports.FormData=ponyfills.FormData,module.exports.ReadableStream=ponyfills.ReadableStream,module.exports.WritableStream=ponyfills.WritableStream,module.exports.TransformStream=ponyfills.TransformStream,module.exports.CompressionStream=ponyfills.CompressionStream,module.exports.DecompressionStream=ponyfills.DecompressionStream,module.exports.TextDecoderStream=ponyfills.TextDecoderStream,module.exports.TextEncoderStream=ponyfills.TextEncoderStream,module.exports.Blob=ponyfills.Blob,module.exports.File=ponyfills.File,module.exports.crypto=ponyfills.crypto,module.exports.btoa=ponyfills.btoa,module.exports.TextEncoder=ponyfills.TextEncoder,module.exports.TextDecoder=ponyfills.TextDecoder,module.exports.URLPattern=ponyfills.URLPattern,module.exports.URL=ponyfills.URL,module.exports.URLSearchParams=ponyfills.URLSearchParams,exports.createFetch=createNodePonyfill}));function isAsyncIterable$2(body){return typeof body==`object`&&!!body&&typeof body[Symbol.asyncIterator]==`function`}function getPort$2(nodeRequest){if(nodeRequest.socket?.localPort)return nodeRequest.socket?.localPort;let hostInHeader=nodeRequest.headers?.[`:authority`]||nodeRequest.headers?.host,portInHeader=hostInHeader?.split(`:`)?.[1];return portInHeader||80}function getHostnameWithPort(nodeRequest){if(nodeRequest.headers?.[`:authority`])return nodeRequest.headers?.[`:authority`];if(nodeRequest.headers?.host)return nodeRequest.headers?.host;let port$1=getPort$2(nodeRequest);if(nodeRequest.hostname)return nodeRequest.hostname+`:`+port$1;let localIp=nodeRequest.socket?.localAddress;return localIp&&!localIp?.includes(`::`)&&!localIp?.includes(`ffff`)?`${localIp}:${port$1}`:`localhost`}function buildFullUrl(nodeRequest){let hostnameWithPort=getHostnameWithPort(nodeRequest),protocol=nodeRequest.protocol||(nodeRequest.socket?.encrypted?`https`:`http`),endpoint=nodeRequest.originalUrl||nodeRequest.url||`/graphql`;return`${protocol}://${hostnameWithPort}${endpoint}`}function isRequestBody(body){let stringTag=body[Symbol.toStringTag];return!!(typeof body==`string`||stringTag===`Uint8Array`||stringTag===`Blob`||stringTag===`FormData`||stringTag===`URLSearchParams`||isAsyncIterable$2(body))}function normalizeNodeRequest(nodeRequest,fetchAPI,nodeResponse,__useCustomAbortCtrl){let rawRequest=nodeRequest.raw||nodeRequest.req||nodeRequest,fullUrl=buildFullUrl(rawRequest);if(nodeRequest.query){let url$5=new fetchAPI.URL(fullUrl);for(let key in nodeRequest.query)url$5.searchParams.set(key,nodeRequest.query[key]);fullUrl=url$5.toString()}let normalizedHeaders=nodeRequest.headers;if(nodeRequest.headers?.[`:method`])for(let key in normalizedHeaders={},nodeRequest.headers)key.startsWith(`:`)||(normalizedHeaders[key]=nodeRequest.headers[key]);let controller=__useCustomAbortCtrl?createCustomAbortControllerSignal():new AbortController;if(nodeResponse?.once){let closeEventListener=()=>{controller.signal.aborted||(Object.defineProperty(rawRequest,`aborted`,{value:!0}),controller.abort(nodeResponse.errored??void 0))};nodeResponse.once(`error`,closeEventListener),nodeResponse.once(`close`,closeEventListener),nodeResponse.once(`finish`,()=>{nodeResponse.removeListener(`close`,closeEventListener)})}if(nodeRequest.method===`GET`||nodeRequest.method===`HEAD`)return new fetchAPI.Request(fullUrl,{method:nodeRequest.method,headers:normalizedHeaders,signal:controller.signal});let maybeParsedBody=nodeRequest.body;if(maybeParsedBody!=null&&Object.keys(maybeParsedBody).length>0){if(isRequestBody(maybeParsedBody))return new fetchAPI.Request(fullUrl,{method:nodeRequest.method||`GET`,headers:normalizedHeaders,body:maybeParsedBody,signal:controller.signal});let request$2=new fetchAPI.Request(fullUrl,{method:nodeRequest.method||`GET`,headers:normalizedHeaders,signal:controller.signal});return request$2.headers.get(`content-type`)?.includes(`json`)||request$2.headers.set(`content-type`,`application/json; charset=utf-8`),new Proxy(request$2,{get:(target,prop,receiver)=>{switch(prop){case`json`:return()=>fakePromise(maybeParsedBody);case`text`:return()=>fakePromise(JSON.stringify(maybeParsedBody));default:return globalThis.Bun?Reflect.get(target,prop):Reflect.get(target,prop,receiver)}}})}return new fetchAPI.Request(fullUrl,{method:nodeRequest.method,headers:normalizedHeaders,signal:controller.signal,body:rawRequest,duplex:`half`})}function isReadable$1(stream$8){return stream$8.read!=null}function isNodeRequest(request$2){return isReadable$1(request$2)}function isServerResponse(stream$8){return stream$8!=null&&stream$8.setHeader!=null&&stream$8.end!=null&&stream$8.once!=null&&stream$8.write!=null}function isReadableStream$2(stream$8){return stream$8!=null&&stream$8.getReader!=null}function isFetchEvent(event){return event!=null&&event.request!=null&&event.respondWith!=null}function configureSocket(rawRequest){rawRequest?.socket?.setTimeout?.(0),rawRequest?.socket?.setNoDelay?.(!0),rawRequest?.socket?.setKeepAlive?.(!0)}function endResponse(serverResponse){serverResponse.end(null,null,null)}function sendAsyncIterable(serverResponse,asyncIterable){let closed=!1,closeEventListener=()=>{closed=!0};serverResponse.once(`error`,closeEventListener),serverResponse.once(`close`,closeEventListener),serverResponse.once(`finish`,()=>{serverResponse.removeListener(`close`,closeEventListener),serverResponse.removeListener(`error`,closeEventListener)});let iterator=asyncIterable[Symbol.asyncIterator](),pump$2=()=>iterator.next().then(({done,value})=>{if(!(closed||done))return handleMaybePromise(()=>safeWrite(value,serverResponse),()=>closed?endResponse(serverResponse):pump$2())});return pump$2()}function safeWrite(chunk$1,serverResponse){let result=serverResponse.write(chunk$1);if(!result)return new Promise(resolve$9=>serverResponse.once(`drain`,resolve$9))}function sendNodeResponse(fetchResponse,serverResponse,nodeRequest,__useSingleWriteHead){if(serverResponse.closed||serverResponse.destroyed||serverResponse.writableEnded)return;if(!fetchResponse){serverResponse.statusCode=404,endResponse(serverResponse);return}if(__useSingleWriteHead&&fetchResponse.headers?.headersInit&&!Array.isArray(fetchResponse.headers.headersInit)&&!fetchResponse.headers.headersInit.get&&!fetchResponse.headers._map&&!fetchResponse.headers._setCookies?.length)serverResponse.writeHead(fetchResponse.status,fetchResponse.statusText,fetchResponse.headers.headersInit);else{if(serverResponse.setHeaders)serverResponse.setHeaders(fetchResponse.headers);else{let setCookiesSet=!1;fetchResponse.headers.forEach((value,key)=>{if(key===`set-cookie`){if(setCookiesSet)return;setCookiesSet=!0;let setCookies=fetchResponse.headers.getSetCookie?.();if(setCookies){serverResponse.setHeader(`set-cookie`,setCookies);return}}serverResponse.setHeader(key,value)})}serverResponse.writeHead(fetchResponse.status,fetchResponse.statusText)}if(fetchResponse.bodyType===`String`)return handleMaybePromise(()=>safeWrite(fetchResponse.bodyInit,serverResponse),()=>endResponse(serverResponse));let bufOfRes=fetchResponse._buffer;if(bufOfRes)return handleMaybePromise(()=>safeWrite(bufOfRes,serverResponse),()=>endResponse(serverResponse));let fetchBody=fetchResponse.body;if(fetchBody==null){endResponse(serverResponse);return}if(fetchBody[Symbol.toStringTag]===`Uint8Array`)return handleMaybePromise(()=>safeWrite(fetchBody,serverResponse),()=>endResponse(serverResponse));if(configureSocket(nodeRequest),isReadable$1(fetchBody)){serverResponse.once(`close`,()=>{fetchBody.destroy()}),fetchBody.pipe(serverResponse,{end:!0});return}if(isReadableStream$2(fetchBody))return sendReadableStream(nodeRequest,serverResponse,fetchBody);if(isAsyncIterable$2(fetchBody))return sendAsyncIterable(serverResponse,fetchBody)}function sendReadableStream(nodeRequest,serverResponse,readableStream){let reader=readableStream.getReader();nodeRequest?.once?.(`error`,err=>{reader.cancel(err)});function pump$2(){return reader.read().then(({done,value})=>done?endResponse(serverResponse):handleMaybePromise(()=>safeWrite(value,serverResponse),pump$2))}return pump$2()}function isRequestInit(val){return typeof val==`object`&&!!val&&(`body`in val||`cache`in val||`credentials`in val||`headers`in val||`integrity`in val||`keepalive`in val||`method`in val||`mode`in val||`redirect`in val||`referrer`in val||`referrerPolicy`in val||`signal`in val||`window`in val)}function completeAssign(...args){let[target,...sources]=args.filter(arg=>typeof arg==`object`&&!!arg);return sources.forEach(source$39=>{let descriptors$1=Object.getOwnPropertyNames(source$39).reduce((descriptors$2,key)=>{let descriptor$1=Object.getOwnPropertyDescriptor(source$39,key);return descriptor$1&&(descriptors$2[key]=Object.getOwnPropertyDescriptor(source$39,key)),descriptors$2},{});Object.getOwnPropertySymbols(source$39).forEach(sym=>{let descriptor$1=Object.getOwnPropertyDescriptor(source$39,sym);descriptor$1?.enumerable&&(descriptors$1[sym]=descriptor$1)}),Object.defineProperties(target,descriptors$1)}),target}function handleErrorFromRequestHandler(error$22,ResponseCtor){return new ResponseCtor(error$22.stack||error$22.message||error$22.toString(),{status:error$22.status||500})}function isolateObject(originalCtx,waitUntilFn){return originalCtx==null?waitUntilFn==null?{}:{waitUntil:waitUntilFn}:completeAssign(Object.create(originalCtx),{waitUntil:waitUntilFn},originalCtx)}function handleAbortSignalAndPromiseResponse(response$,abortSignal){if(abortSignal?.aborted)throw abortSignal.reason;if(isPromise$5(response$)&&abortSignal){let deferred$=createDeferredPromise();function abortSignalFetchErrorHandler(){deferred$.reject(abortSignal.reason)}return abortSignal.addEventListener(`abort`,abortSignalFetchErrorHandler,{once:!0}),response$.then(function(res){deferred$.resolve(res)}).catch(function(err){deferred$.reject(err)}).finally(()=>{abortSignal.removeEventListener(`abort`,abortSignalFetchErrorHandler)}),deferred$.promise}return response$}const terminateEvents=[`SIGINT`,`exit`,`SIGTERM`],disposableStacks=new Set;let eventListenerRegistered=!1;function ensureEventListenerForDisposableStacks(){if(!eventListenerRegistered){eventListenerRegistered=!0;for(let event of terminateEvents)globalThis.process.once(event,function(){return Promise.allSettled([...disposableStacks].map(stack=>!stack.disposed&&stack.disposeAsync()))})}}function ensureDisposableStackRegisteredForTerminateEvents(disposableStack){globalThis.process&&(ensureEventListenerForDisposableStacks(),disposableStacks.has(disposableStack)||(disposableStacks.add(disposableStack),disposableStack.defer(()=>{disposableStacks.delete(disposableStack)})))}var CustomAbortControllerSignal=class extends EventTarget{aborted=!1;_onabort=null;_reason;constructor(){super();let nodeEvents=globalThis.process?.getBuiltinModule?.(`node:events`);nodeEvents?.kMaxEventTargetListeners&&(this[nodeEvents.kMaxEventTargetListeners]=0)}throwIfAborted(){if(this._nativeCtrl?.signal?.throwIfAborted)return this._nativeCtrl.signal.throwIfAborted();if(this.aborted)throw this._reason}_nativeCtrl;ensureNativeCtrl(){if(!this._nativeCtrl){let isAborted=this.aborted;this._nativeCtrl=new AbortController,isAborted&&this._nativeCtrl.abort(this._reason)}return this._nativeCtrl}abort(reason){if(this._nativeCtrl?.abort)return this._nativeCtrl?.abort(reason);this._reason=reason||new DOMException(`This operation was aborted`,`AbortError`),this.aborted=!0,this.dispatchEvent(new Event(`abort`))}get signal(){return this._nativeCtrl?.signal?this._nativeCtrl.signal:this}get reason(){return this._nativeCtrl?.signal?this._nativeCtrl.signal.reason:this._reason}get onabort(){return this._onabort,this._onabort}set onabort(value){if(this._nativeCtrl?.signal){this._nativeCtrl.signal.onabort=value;return}this._onabort&&this.removeEventListener(`abort`,this._onabort),this._onabort=value,value&&this.addEventListener(`abort`,value)}};function createCustomAbortControllerSignal(){return globalThis.Bun||globalThis.Deno?new AbortController:new Proxy(new CustomAbortControllerSignal,{get(target,prop,receiver){if(prop.toString().includes(`kDependantSignals`)){let nativeCtrl=target.ensureNativeCtrl();return Reflect.get(nativeCtrl.signal,prop,nativeCtrl.signal)}return Reflect.get(target,prop,receiver)},set(target,prop,value,receiver){if(prop.toString().includes(`kDependantSignals`)){let nativeCtrl=target.ensureNativeCtrl();return Reflect.set(nativeCtrl.signal,prop,value,nativeCtrl.signal)}return Reflect.set(target,prop,value,receiver)},getPrototypeOf(){return AbortSignal.prototype}})}function isUWSResponse(res){return!!res.onData}function getRequestFromUWSRequest({req:req$1,res,fetchAPI,controller}){let method=req$1.getMethod(),duplex$1,chunks=[],pushFns=[chunk$1=>{chunks.push(chunk$1)}],push$2=chunk$1=>{for(let pushFn of pushFns)pushFn(chunk$1)},stopped=!1,stopFns=[()=>{stopped=!0}],stop=()=>{for(let stopFn of stopFns)stopFn()};res.onData(function(ab$1,isLast){push$2(Buffer.from(Buffer.from(ab$1,0,ab$1.byteLength))),isLast&&stop()});let getReadableStream;if(method!==`get`&&method!==`head`){duplex$1=`half`,controller.signal.addEventListener(`abort`,()=>{stop()},{once:!0});let readableStream;getReadableStream=()=>(readableStream||(readableStream=new fetchAPI.ReadableStream({start(streamCtrl){for(let chunk$1 of chunks)streamCtrl.enqueue(chunk$1);if(stopped){streamCtrl.close();return}pushFns.push(chunk$1=>{streamCtrl.enqueue(chunk$1)}),stopFns.push(()=>{if(controller.signal.reason){streamCtrl.error(controller.signal.reason);return}streamCtrl.desiredSize&&streamCtrl.close()})}})),readableStream)}let headers=new fetchAPI.Headers;req$1.forEach((key,value)=>{headers.append(key,value)});let url$5=`http://localhost${req$1.getUrl()}`,query=req$1.getQuery();query&&(url$5+=`?${query}`);let buffer$1;function getBody(){return getReadableStream?stopped?getBufferFromChunks():getReadableStream():null}let request$2=new fetchAPI.Request(url$5,{method,headers,get body(){return getBody()},signal:controller.signal,duplex:duplex$1});function getBufferFromChunks(){return buffer$1||(buffer$1=chunks.length===1?chunks[0]:Buffer.concat(chunks)),buffer$1}function collectBuffer(){return stopped?fakePromise(getBufferFromChunks()):new Promise((resolve$9,reject)=>{try{stopFns.push(()=>{resolve$9(getBufferFromChunks())})}catch(e$1){reject(e$1)}})}return Object.defineProperties(request$2,{body:{get(){return getBody()},configurable:!0,enumerable:!0},json:{value(){return collectBuffer().then(b$2=>b$2.toString(`utf8`)).then(t$1=>JSON.parse(t$1))},configurable:!0,enumerable:!0},text:{value(){return collectBuffer().then(b$2=>b$2.toString(`utf8`))},configurable:!0,enumerable:!0},arrayBuffer:{value(){return collectBuffer()},configurable:!0,enumerable:!0}}),request$2}function createWritableFromUWS(uwsResponse,fetchAPI){return new fetchAPI.WritableStream({write(chunk$1){uwsResponse.cork(()=>{uwsResponse.write(chunk$1)})},close(){uwsResponse.cork(()=>{uwsResponse.end()})}})}function sendResponseToUwsOpts(uwsResponse,fetchResponse,controller,fetchAPI){if(!fetchResponse){uwsResponse.writeStatus(`404 Not Found`),uwsResponse.end();return}let bufferOfRes=fetchResponse._buffer,strBody=fetchResponse.bodyType===`String`?fetchResponse.bodyInit:void 0;if(!controller.signal.aborted&&(uwsResponse.cork(()=>{uwsResponse.writeStatus(`${fetchResponse.status} ${fetchResponse.statusText}`);for(let[key,value]of fetchResponse.headers)if(key!==`content-length`){if(key===`set-cookie`){let setCookies=fetchResponse.headers.getSetCookie?.();if(setCookies){for(let setCookie of setCookies)uwsResponse.writeHeader(key,setCookie);continue}}uwsResponse.writeHeader(key,value)}strBody?uwsResponse.end(strBody):bufferOfRes?uwsResponse.end(bufferOfRes):fetchResponse.body||uwsResponse.end()}),!(strBody||bufferOfRes||!fetchResponse.body)))return controller.signal.addEventListener(`abort`,()=>{fetchResponse.body?.locked||fetchResponse.body?.cancel(controller.signal.reason)},{once:!0}),fetchResponse.body.pipeTo(createWritableFromUWS(uwsResponse,fetchAPI),{signal:controller.signal}).catch(err=>{if(!controller.signal.aborted)throw err})}var import_node_ponyfill$1=__toESM$1(require_node_ponyfill$1(),1);function isRequestAccessible(serverContext){try{return!!serverContext?.request}catch{return!1}}const EMPTY_OBJECT={};function createServerAdapter(serverAdapterBaseObject,options$1){let useSingleWriteHead=options$1?.__useSingleWriteHead==null?!0:options$1.__useSingleWriteHead,fetchAPI={...import_node_ponyfill$1,...options$1?.fetchAPI},useCustomAbortCtrl=options$1?.__useCustomAbortCtrl==null?fetchAPI.Request!==globalThis.Request:options$1.__useCustomAbortCtrl,givenHandleRequest=typeof serverAdapterBaseObject==`function`?serverAdapterBaseObject:serverAdapterBaseObject.handle,onRequestHooks=[],onResponseHooks=[],instrumentation,waitUntilPromises=new Set,_disposableStack;function ensureDisposableStack(){return _disposableStack||(_disposableStack=new AsyncDisposableStack,options$1?.disposeOnProcessTerminate&&ensureDisposableStackRegisteredForTerminateEvents(_disposableStack),_disposableStack.defer(()=>{if(waitUntilPromises.size>0)return Promise.allSettled(waitUntilPromises).then(()=>{waitUntilPromises.clear()},()=>{waitUntilPromises.clear()})})),_disposableStack}function waitUntil(maybePromise){isPromise$5(maybePromise)&&(ensureDisposableStack(),waitUntilPromises.add(maybePromise),maybePromise.then(()=>{waitUntilPromises.delete(maybePromise)},err=>{console.error(`Unexpected error while waiting: ${err.message||err}`),waitUntilPromises.delete(maybePromise)}))}if(options$1?.plugins!=null)for(let plugin of options$1.plugins){plugin.instrumentation&&(instrumentation=instrumentation?chain$1(instrumentation,plugin.instrumentation):plugin.instrumentation),plugin.onRequest&&onRequestHooks.push(plugin.onRequest),plugin.onResponse&&onResponseHooks.push(plugin.onResponse);let disposeFn=plugin[DisposableSymbols.dispose];disposeFn&&ensureDisposableStack().defer(disposeFn);let asyncDisposeFn=plugin[DisposableSymbols.asyncDispose];asyncDisposeFn&&ensureDisposableStack().defer(asyncDisposeFn),plugin.onDispose&&ensureDisposableStack().defer(plugin.onDispose)}let handleRequest=onRequestHooks.length>0||onResponseHooks.length>0?function(request$2,serverContext){let requestHandler=givenHandleRequest,response;if(onRequestHooks.length===0)return handleEarlyResponse();let url$5=request$2.parsedUrl||new Proxy(EMPTY_OBJECT,{get(_target,prop,_receiver){return url$5=new fetchAPI.URL(request$2.url,`http://localhost`),Reflect.get(url$5,prop,url$5)}});function handleResponse(response$1){return onResponseHooks.length===0?response$1:handleMaybePromise(()=>iterateAsync(onResponseHooks,onResponseHook=>onResponseHook({request:request$2,response:response$1,serverContext,setResponse(newResponse){response$1=newResponse},fetchAPI})),()=>response$1)}function handleEarlyResponse(){return response?handleResponse(response):handleMaybePromise(()=>requestHandler(request$2,serverContext),handleResponse)}return handleMaybePromise(()=>iterateAsync(onRequestHooks,(onRequestHook,stopEarly)=>onRequestHook({request:request$2,setRequest(newRequest){request$2=newRequest},serverContext,fetchAPI,url:url$5,requestHandler,setRequestHandler(newRequestHandler){requestHandler=newRequestHandler},endResponse(newResponse){response=newResponse,newResponse&&stopEarly()}})),handleEarlyResponse)}:givenHandleRequest;if(instrumentation?.request){let originalRequestHandler=handleRequest;handleRequest=(request$2,initialContext)=>getInstrumented({request:request$2}).asyncFn(instrumentation.request,originalRequestHandler)(request$2,initialContext)}function handleNodeRequest(nodeRequest,...ctx){let serverContext=ctx.length>1?completeAssign(...ctx):ctx[0]||{};serverContext.waitUntil||(serverContext.waitUntil=waitUntil);let request$2=normalizeNodeRequest(nodeRequest,fetchAPI,void 0,useCustomAbortCtrl);return handleRequest(request$2,serverContext)}function handleNodeRequestAndResponse(nodeRequest,nodeResponseOrContainer,...ctx){let nodeResponse=nodeResponseOrContainer.raw||nodeResponseOrContainer,serverContext=ctx.length>1?completeAssign(...ctx):ctx[0]||{};serverContext.waitUntil||(serverContext.waitUntil=waitUntil);let request$2=normalizeNodeRequest(nodeRequest,fetchAPI,nodeResponse,useCustomAbortCtrl);return handleRequest(request$2,serverContext)}function requestListener(nodeRequest,nodeResponse,...ctx){let defaultServerContext={req:nodeRequest,res:nodeResponse,waitUntil};return unfakePromise(fakePromise().then(()=>handleNodeRequestAndResponse(nodeRequest,nodeResponse,defaultServerContext,...ctx)).catch(err=>handleErrorFromRequestHandler(err,fetchAPI.Response)).then(response=>sendNodeResponse(response,nodeResponse,nodeRequest,useSingleWriteHead)).catch(err=>console.error(`Unexpected error while handling request: ${err.message||err}`)))}function handleUWS(res,req$1,...ctx){let defaultServerContext={res,req:req$1,waitUntil},filteredCtxParts=ctx.filter(partCtx=>partCtx!=null),serverContext=filteredCtxParts.length>0?completeAssign(defaultServerContext,...ctx):defaultServerContext,controller=useCustomAbortCtrl?createCustomAbortControllerSignal():new AbortController,originalResEnd=res.end.bind(res),resEnded=!1;res.end=function(data$2){return resEnded=!0,originalResEnd(data$2)};let originalOnAborted=res.onAborted.bind(res);originalOnAborted(function(){controller.abort()}),res.onAborted=function(cb){controller.signal.addEventListener(`abort`,cb,{once:!0})};let request$2=getRequestFromUWSRequest({req:req$1,res,fetchAPI,controller});return handleMaybePromise(()=>handleMaybePromise(()=>handleRequest(request$2,serverContext),response=>response,err=>handleErrorFromRequestHandler(err,fetchAPI.Response)),response=>{if(!controller.signal.aborted&&!resEnded)return handleMaybePromise(()=>sendResponseToUwsOpts(res,response,controller,fetchAPI),r$2=>r$2,err=>{console.error(`Unexpected error while handling request: ${err.message||err}`)})})}function handleEvent(event,...ctx){if(!event.respondWith||!event.request)throw TypeError(`Expected FetchEvent, got ${event}`);let filteredCtxParts=ctx.filter(partCtx=>partCtx!=null),serverContext=filteredCtxParts.length>0?completeAssign({},event,...filteredCtxParts):isolateObject(event),response$=handleRequest(event.request,serverContext);event.respondWith(response$)}function handleRequestWithWaitUntil(request$2,...ctx){let filteredCtxParts=ctx.filter(partCtx=>partCtx!=null),serverContext=filteredCtxParts.length>1?completeAssign({},...filteredCtxParts):isolateObject(filteredCtxParts[0],filteredCtxParts[0]==null||filteredCtxParts[0].waitUntil==null?waitUntil:void 0);return handleRequest(request$2,serverContext)}let fetchFn=(input,...maybeCtx)=>{if(typeof input==`string`||`href`in input){let[initOrCtx,...restOfCtx]=maybeCtx;if(isRequestInit(initOrCtx)){let request$3=new fetchAPI.Request(input,initOrCtx),res$$1=handleRequestWithWaitUntil(request$3,...restOfCtx),signal=initOrCtx.signal;return signal?handleAbortSignalAndPromiseResponse(res$$1,signal):res$$1}let request$2=new fetchAPI.Request(input);return handleRequestWithWaitUntil(request$2,...maybeCtx)}let res$=handleRequestWithWaitUntil(input,...maybeCtx);return handleAbortSignalAndPromiseResponse(res$,input.signal)},genericRequestHandler=(input,...maybeCtx)=>{let[initOrCtxOrRes,...restOfCtx]=maybeCtx;if(isNodeRequest(input)){if(!isServerResponse(initOrCtxOrRes))throw TypeError(`Expected ServerResponse, got ${initOrCtxOrRes}`);return requestListener(input,initOrCtxOrRes,...restOfCtx)}if(isUWSResponse(input))return handleUWS(input,initOrCtxOrRes,...restOfCtx);if(isServerResponse(initOrCtxOrRes))throw TypeError(`Got Node response without Node request`);return isRequestAccessible(input)?isFetchEvent(input)?handleEvent(input,...maybeCtx):handleRequestWithWaitUntil(input.request,input,...maybeCtx):fetchFn(input,...maybeCtx)},adapterObj={handleRequest:handleRequestWithWaitUntil,fetch:fetchFn,handleNodeRequest,handleNodeRequestAndResponse,requestListener,handleEvent,handleUWS,handle:genericRequestHandler,get disposableStack(){return ensureDisposableStack()},[DisposableSymbols.asyncDispose](){return _disposableStack&&!_disposableStack.disposed?_disposableStack.disposeAsync():fakePromise()},dispose(){return _disposableStack&&!_disposableStack.disposed?_disposableStack.disposeAsync():fakePromise()},waitUntil},serverAdapter=new Proxy(genericRequestHandler,{has:(_$3,prop)=>prop in adapterObj||prop in genericRequestHandler||serverAdapterBaseObject&&prop in serverAdapterBaseObject,get:(_$3,prop)=>{if(globalThis.Deno||prop===Symbol.asyncDispose||prop===Symbol.dispose){let adapterProp$1=Reflect.get(adapterObj,prop,adapterObj);if(adapterProp$1)return adapterProp$1}let adapterProp=adapterObj[prop];if(adapterProp)return adapterProp.bind?adapterProp.bind(adapterObj):adapterProp;let handleProp=genericRequestHandler[prop];if(handleProp)return handleProp.bind?handleProp.bind(genericRequestHandler):handleProp;if(serverAdapterBaseObject){let serverAdapterBaseObjectProp=serverAdapterBaseObject[prop];if(serverAdapterBaseObjectProp)return serverAdapterBaseObjectProp.bind?function(...args){let returnedVal=serverAdapterBaseObject[prop](...args);return returnedVal===serverAdapterBaseObject?serverAdapter:returnedVal}:serverAdapterBaseObjectProp}},apply(_$3,__,args){return genericRequestHandler(...args)}});return serverAdapter}var CustomChatResponseError=class extends Error{constructor(message,response){super(message),this.response=response}};const tools=Object.freeze({withContext(tools$3,context){let withTools={};for(let key of Object.keys(tools$3)){let tool$3=tools$3[key];withTools[key]=tool$3.withContext(context)}return withTools},with(tools$3,context){let withTools={};for(let key of Object.keys(tools$3)){let tool$3=tools$3[key];withTools[key]=tool$3.withContext(context)}return withTools},async withApproval(options$1){let newTools={};for(let[key,tool$3]of Object.entries(options$1.tools)){let originalExecute=tool$3.execute;newTools[key]={...tool$3,execute:async(input,options$2)=>{if(tool$3.autoApprove&&originalExecute){let approved=await tool$3.autoApprove(input);if(approved)return originalExecute(input,options$2)}let output={type:`tool-approval`,outcome:`pending`};return output}}}let lastMessage=options$1.messages[options$1.messages.length-1];if(!lastMessage?.parts)return newTools;let toolsToRun=[];for(let part of lastMessage.parts){if(!isToolUIPart(part))continue;let toolName=getToolName(part),tool$3=options$1.tools[toolName];if(!tool$3||part.state!==`output-available`||!tool$3.execute||!isToolApprovalOutput(part.output))continue;part.output.outcome===`approved`&&toolsToRun.push({toolName:getToolName(part),tool:tool$3,input:part.input,toolCallId:part.toolCallId})}if(toolsToRun.length>0){let stream$8=createUIMessageStream({execute:async({writer})=>{writer.write({type:`start-step`}),await Promise.all(toolsToRun.map(async toRun=>{if(!toRun.tool.execute)throw Error(`Tool does not support execute.`);writer.write({type:`tool-input-available`,toolCallId:toRun.toolCallId,toolName:toRun.toolName,input:toRun.input});try{let result=await toRun.tool.execute(toRun.input,{toolCallId:toRun.toolCallId,messages:convertToModelMessages(options$1.messages,{tools:options$1.tools}),abortSignal:options$1.abortSignal});if(isAsyncIterable$2(result))for await(let chunk$1 of result)writer.write({type:`tool-output-available`,toolCallId:toRun.toolCallId,output:chunk$1,preliminary:!0});writer.write({type:`tool-output-available`,toolCallId:toRun.toolCallId,output:result})}catch(err){writer.write({type:`tool-output-error`,toolCallId:toRun.toolCallId,errorText:err instanceof Error?err.message:String(err)})}})),writer.write({type:`finish`})}});throw new CustomChatResponseError(`Executing tools`,stream$8)}return newTools},prefix(tools$3,prefix){let prefixed={};for(let[key,tool$3]of Object.entries(tools$3))prefixed[`${prefix}${key}`]=tool$3;return prefixed}});function isToolApprovalOutput(output){return typeof output==`object`&&!!output&&`type`in output&&output.type===`tool-approval`}function getDevhookID(directory){let storagePath=join$1(directory,`.blink`,`devhook.txt`);if(mkdirSync(dirname$1(storagePath),{recursive:!0}),existsSync$1(storagePath))return readFileSync$1(storagePath,`utf-8`);let id=crypto.randomUUID();return writeFileSync$1(storagePath,id),id}var compose$1=(middleware,onError$1,onNotFound)=>(context,next)=>{let index=-1;return dispatch(0);async function dispatch(i$4){if(i$4<=index)throw Error(`next() called multiple times`);index=i$4;let res,isError$1=!1,handler;if(middleware[i$4]?(handler=middleware[i$4][0][0],context.req.routeIndex=i$4):handler=i$4===middleware.length&&next||void 0,handler)try{res=await handler(context,()=>dispatch(i$4+1))}catch(err){if(err instanceof Error&&onError$1)context.error=err,res=await onError$1(err,context),isError$1=!0;else throw err}else context.finalized===!1&&onNotFound&&(res=await onNotFound(context));return res&&(context.finalized===!1||isError$1)&&(context.res=res),context}},GET_MATCH_RESULT=Symbol(),parseBody$1=async(request$2,options$1=Object.create(null))=>{let{all:all$2=!1,dot=!1}=options$1,headers=request$2 instanceof HonoRequest?request$2.raw.headers:request$2.headers,contentType=headers.get(`Content-Type`);return contentType?.startsWith(`multipart/form-data`)||contentType?.startsWith(`application/x-www-form-urlencoded`)?parseFormData(request$2,{all:all$2,dot}):{}};async function parseFormData(request$2,options$1){let formData=await request$2.formData();return formData?convertFormDataToBodyData(formData,options$1):{}}function convertFormDataToBodyData(formData,options$1){let form=Object.create(null);return formData.forEach((value,key)=>{let shouldParseAllValues=options$1.all||key.endsWith(`[]`);shouldParseAllValues?handleParsingAllValues(form,key,value):form[key]=value}),options$1.dot&&Object.entries(form).forEach(([key,value])=>{let shouldParseDotValues=key.includes(`.`);shouldParseDotValues&&(handleParsingNestedValues(form,key,value),delete form[key])}),form}var handleParsingAllValues=(form,key,value)=>{form[key]===void 0?key.endsWith(`[]`)?form[key]=[value]:form[key]=value:Array.isArray(form[key])?form[key].push(value):form[key]=[form[key],value]},handleParsingNestedValues=(form,key,value)=>{let nestedForm=form,keys=key.split(`.`);keys.forEach((key2,index)=>{index===keys.length-1?nestedForm[key2]=value:((!nestedForm[key2]||typeof nestedForm[key2]!=`object`||Array.isArray(nestedForm[key2])||nestedForm[key2]instanceof File)&&(nestedForm[key2]=Object.create(null)),nestedForm=nestedForm[key2])})},splitPath=path$40=>{let paths=path$40.split(`/`);return paths[0]===``&&paths.shift(),paths},splitRoutingPath=routePath=>{let{groups,path:path$40}=extractGroupsFromPath(routePath),paths=splitPath(path$40);return replaceGroupMarks(paths,groups)},extractGroupsFromPath=path$40=>{let groups=[];return path$40=path$40.replace(/\{[^}]+\}/g,(match$1,index)=>{let mark=`@${index}`;return groups.push([mark,match$1]),mark}),{groups,path:path$40}},replaceGroupMarks=(paths,groups)=>{for(let i$4=groups.length-1;i$4>=0;i$4--){let[mark]=groups[i$4];for(let j$2=paths.length-1;j$2>=0;j$2--)if(paths[j$2].includes(mark)){paths[j$2]=paths[j$2].replace(mark,groups[i$4][1]);break}}return paths},patternCache={},getPattern=(label,next)=>{if(label===`*`)return`*`;let match$1=label.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(match$1){let cacheKey=`${label}#${next}`;return patternCache[cacheKey]||(match$1[2]?patternCache[cacheKey]=next&&next[0]!==`:`&&next[0]!==`*`?[cacheKey,match$1[1],RegExp(`^${match$1[2]}(?=/${next})`)]:[label,match$1[1],RegExp(`^${match$1[2]}$`)]:patternCache[cacheKey]=[label,match$1[1],!0]),patternCache[cacheKey]}return null},tryDecode=(str$1,decoder$2)=>{try{return decoder$2(str$1)}catch{return str$1.replace(/(?:%[0-9A-Fa-f]{2})+/g,match$1=>{try{return decoder$2(match$1)}catch{return match$1}})}},tryDecodeURI=str$1=>tryDecode(str$1,decodeURI),getPath$1=request$2=>{let url$5=request$2.url,start$1=url$5.indexOf(`/`,url$5.indexOf(`:`)+4),i$4=start$1;for(;i$4<url$5.length;i$4++){let charCode=url$5.charCodeAt(i$4);if(charCode===37){let queryIndex=url$5.indexOf(`?`,i$4),path$40=url$5.slice(start$1,queryIndex===-1?void 0:queryIndex);return tryDecodeURI(path$40.includes(`%25`)?path$40.replace(/%25/g,`%2525`):path$40)}else if(charCode===63)break}return url$5.slice(start$1,i$4)},getPathNoStrict=request$2=>{let result=getPath$1(request$2);return result.length>1&&result.at(-1)===`/`?result.slice(0,-1):result},mergePath$1=(base,sub,...rest)=>(rest.length&&(sub=mergePath$1(sub,...rest)),`${base?.[0]===`/`?``:`/`}${base}${sub===`/`?``:`${base?.at(-1)===`/`?``:`/`}${sub?.[0]===`/`?sub.slice(1):sub}`}`),checkOptionalParameter=path$40=>{if(path$40.charCodeAt(path$40.length-1)!==63||!path$40.includes(`:`))return null;let segments=path$40.split(`/`),results=[],basePath=``;return segments.forEach(segment=>{if(segment!==``&&!/\:/.test(segment))basePath+=`/`+segment;else if(/\:/.test(segment))if(/\?/.test(segment)){results.length===0&&basePath===``?results.push(`/`):results.push(basePath);let optionalSegment=segment.replace(`?`,``);basePath+=`/`+optionalSegment,results.push(basePath)}else basePath+=`/`+segment}),results.filter((v$1,i$4,a$3)=>a$3.indexOf(v$1)===i$4)},_decodeURI=value=>/[%+]/.test(value)?(value.indexOf(`+`)!==-1&&(value=value.replace(/\+/g,` `)),value.indexOf(`%`)===-1?value:tryDecode(value,decodeURIComponent_)):value,_getQueryParam=(url$5,key,multiple)=>{let encoded;if(!multiple&&key&&!/[%+]/.test(key)){let keyIndex2=url$5.indexOf(`?${key}`,8);for(keyIndex2===-1&&(keyIndex2=url$5.indexOf(`&${key}`,8));keyIndex2!==-1;){let trailingKeyCode=url$5.charCodeAt(keyIndex2+key.length+1);if(trailingKeyCode===61){let valueIndex=keyIndex2+key.length+2,endIndex=url$5.indexOf(`&`,valueIndex);return _decodeURI(url$5.slice(valueIndex,endIndex===-1?void 0:endIndex))}else if(trailingKeyCode==38||isNaN(trailingKeyCode))return``;keyIndex2=url$5.indexOf(`&${key}`,keyIndex2+1)}if(encoded=/[%+]/.test(url$5),!encoded)return}let results={};encoded??=/[%+]/.test(url$5);let keyIndex=url$5.indexOf(`?`,8);for(;keyIndex!==-1;){let nextKeyIndex=url$5.indexOf(`&`,keyIndex+1),valueIndex=url$5.indexOf(`=`,keyIndex);valueIndex>nextKeyIndex&&nextKeyIndex!==-1&&(valueIndex=-1);let name$3=url$5.slice(keyIndex+1,valueIndex===-1?nextKeyIndex===-1?void 0:nextKeyIndex:valueIndex);if(encoded&&(name$3=_decodeURI(name$3)),keyIndex=nextKeyIndex,name$3===``)continue;let value;valueIndex===-1?value=``:(value=url$5.slice(valueIndex+1,nextKeyIndex===-1?void 0:nextKeyIndex),encoded&&(value=_decodeURI(value))),multiple?(results[name$3]&&Array.isArray(results[name$3])||(results[name$3]=[]),results[name$3].push(value)):results[name$3]??=value}return key?results[key]:results},getQueryParam=_getQueryParam,getQueryParams=(url$5,key)=>_getQueryParam(url$5,key,!0),decodeURIComponent_=decodeURIComponent,tryDecodeURIComponent=str$1=>tryDecode(str$1,decodeURIComponent_),HonoRequest=class{raw;#validatedData;#matchResult;routeIndex=0;path;bodyCache={};constructor(request$2,path$40=`/`,matchResult=[[]]){this.raw=request$2,this.path=path$40,this.#matchResult=matchResult,this.#validatedData={}}param(key){return key?this.#getDecodedParam(key):this.#getAllDecodedParams()}#getDecodedParam(key){let paramKey=this.#matchResult[0][this.routeIndex][1][key],param=this.#getParamValue(paramKey);return param&&/\%/.test(param)?tryDecodeURIComponent(param):param}#getAllDecodedParams(){let decoded={},keys=Object.keys(this.#matchResult[0][this.routeIndex][1]);for(let key of keys){let value=this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);value!==void 0&&(decoded[key]=/\%/.test(value)?tryDecodeURIComponent(value):value)}return decoded}#getParamValue(paramKey){return this.#matchResult[1]?this.#matchResult[1][paramKey]:paramKey}query(key){return getQueryParam(this.url,key)}queries(key){return getQueryParams(this.url,key)}header(name$3){if(name$3)return this.raw.headers.get(name$3)??void 0;let headerData={};return this.raw.headers.forEach((value,key)=>{headerData[key]=value}),headerData}async parseBody(options$1){return this.bodyCache.parsedBody??=await parseBody$1(this,options$1)}#cachedBody=key=>{let{bodyCache,raw:raw$1}=this,cachedBody=bodyCache[key];if(cachedBody)return cachedBody;let anyCachedKey=Object.keys(bodyCache)[0];return anyCachedKey?bodyCache[anyCachedKey].then(body=>(anyCachedKey===`json`&&(body=JSON.stringify(body)),new Response(body)[key]())):bodyCache[key]=raw$1[key]()};json(){return this.#cachedBody(`text`).then(text=>JSON.parse(text))}text(){return this.#cachedBody(`text`)}arrayBuffer(){return this.#cachedBody(`arrayBuffer`)}blob(){return this.#cachedBody(`blob`)}formData(){return this.#cachedBody(`formData`)}addValidatedData(target,data$2){this.#validatedData[target]=data$2}valid(target){return this.#validatedData[target]}get url(){return this.raw.url}get method(){return this.raw.method}get[GET_MATCH_RESULT](){return this.#matchResult}get matchedRoutes(){return this.#matchResult[0].map(([[,route$1]])=>route$1)}get routePath(){return this.#matchResult[0].map(([[,route$1]])=>route$1)[this.routeIndex].path}},HtmlEscapedCallbackPhase={Stringify:1,BeforeStream:2,Stream:3},raw=(value,callbacks)=>{let escapedString=new String(value);return escapedString.isEscaped=!0,escapedString.callbacks=callbacks,escapedString},resolveCallback=async(str$1,phase,preserveCallbacks,context,buffer$1)=>{typeof str$1==`object`&&!(str$1 instanceof String)&&(str$1 instanceof Promise||(str$1=str$1.toString()),str$1 instanceof Promise&&(str$1=await str$1));let callbacks=str$1.callbacks;if(!callbacks?.length)return Promise.resolve(str$1);buffer$1?buffer$1[0]+=str$1:buffer$1=[str$1];let resStr=Promise.all(callbacks.map(c$3=>c$3({phase,buffer:buffer$1,context}))).then(res=>Promise.all(res.filter(Boolean).map(str2=>resolveCallback(str2,phase,!1,context,buffer$1))).then(()=>buffer$1[0]));return preserveCallbacks?raw(await resStr,callbacks):resStr},TEXT_PLAIN=`text/plain; charset=UTF-8`,setDefaultContentType=(contentType,headers)=>({"Content-Type":contentType,...headers}),Context=class{#rawRequest;#req;env={};#var;finalized=!1;error;#status;#executionCtx;#res;#layout;#renderer;#notFoundHandler;#preparedHeaders;#matchResult;#path;constructor(req$1,options$1){this.#rawRequest=req$1,options$1&&(this.#executionCtx=options$1.executionCtx,this.env=options$1.env,this.#notFoundHandler=options$1.notFoundHandler,this.#path=options$1.path,this.#matchResult=options$1.matchResult)}get req(){return this.#req??=new HonoRequest(this.#rawRequest,this.#path,this.#matchResult),this.#req}get event(){if(this.#executionCtx&&`respondWith`in this.#executionCtx)return this.#executionCtx;throw Error(`This context has no FetchEvent`)}get executionCtx(){if(this.#executionCtx)return this.#executionCtx;throw Error(`This context has no ExecutionContext`)}get res(){return this.#res||=new Response(null,{headers:this.#preparedHeaders??=new Headers})}set res(_res){if(this.#res&&_res){_res=new Response(_res.body,_res);for(let[k,v$1]of this.#res.headers.entries()){if(k===`content-type`)continue;if(k===`set-cookie`){let cookies=this.#res.headers.getSetCookie();_res.headers.delete(`set-cookie`);for(let cookie of cookies)_res.headers.append(`set-cookie`,cookie)}else _res.headers.set(k,v$1)}}this.#res=_res,this.finalized=!0}render=(...args)=>(this.#renderer??=content=>this.html(content),this.#renderer(...args));setLayout=layout=>this.#layout=layout;getLayout=()=>this.#layout;setRenderer=renderer$1=>{this.#renderer=renderer$1};header=(name$3,value,options$1)=>{this.finalized&&(this.#res=new Response(this.#res.body,this.#res));let headers=this.#res?this.#res.headers:this.#preparedHeaders??=new Headers;value===void 0?headers.delete(name$3):options$1?.append?headers.append(name$3,value):headers.set(name$3,value)};status=status=>{this.#status=status};set=(key,value)=>{this.#var??=new Map,this.#var.set(key,value)};get=key=>this.#var?this.#var.get(key):void 0;get var(){return this.#var?Object.fromEntries(this.#var):{}}#newResponse(data$2,arg,headers){let responseHeaders=this.#res?new Headers(this.#res.headers):this.#preparedHeaders??new Headers;if(typeof arg==`object`&&`headers`in arg){let argHeaders=arg.headers instanceof Headers?arg.headers:new Headers(arg.headers);for(let[key,value]of argHeaders)key.toLowerCase()===`set-cookie`?responseHeaders.append(key,value):responseHeaders.set(key,value)}if(headers)for(let[k,v$1]of Object.entries(headers))if(typeof v$1==`string`)responseHeaders.set(k,v$1);else{responseHeaders.delete(k);for(let v2 of v$1)responseHeaders.append(k,v2)}let status=typeof arg==`number`?arg:arg?.status??this.#status;return new Response(data$2,{status,headers:responseHeaders})}newResponse=(...args)=>this.#newResponse(...args);body=(data$2,arg,headers)=>this.#newResponse(data$2,arg,headers);text=(text,arg,headers)=>!this.#preparedHeaders&&!this.#status&&!arg&&!headers&&!this.finalized?new Response(text):this.#newResponse(text,arg,setDefaultContentType(TEXT_PLAIN,headers));json=(object,arg,headers)=>this.#newResponse(JSON.stringify(object),arg,setDefaultContentType(`application/json`,headers));html=(html$1,arg,headers)=>{let res=html2=>this.#newResponse(html2,arg,setDefaultContentType(`text/html; charset=UTF-8`,headers));return typeof html$1==`object`?resolveCallback(html$1,HtmlEscapedCallbackPhase.Stringify,!1,{}).then(res):res(html$1)};redirect=(location,status)=>{let locationString=String(location);return this.header(`Location`,/[^\x00-\xFF]/.test(locationString)?encodeURI(locationString):locationString),this.newResponse(null,status??302)};notFound=()=>(this.#notFoundHandler??=()=>new Response,this.#notFoundHandler(this))},METHOD_NAME_ALL=`ALL`,METHOD_NAME_ALL_LOWERCASE=`all`,METHODS=[`get`,`post`,`put`,`delete`,`options`,`patch`],MESSAGE_MATCHER_IS_ALREADY_BUILT=`Can not add a route since the matcher is already built.`,UnsupportedPathError=class extends Error{},COMPOSED_HANDLER=`__COMPOSED_HANDLER`,notFoundHandler=c$3=>c$3.text(`404 Not Found`,404),errorHandler=(err,c$3)=>{if(`getResponse`in err){let res=err.getResponse();return c$3.newResponse(res.body,res)}return console.error(err),c$3.text(`Internal Server Error`,500)},Hono$1=class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath=`/`;#path=`/`;routes=[];constructor(options$1={}){let allMethods=[...METHODS,METHOD_NAME_ALL_LOWERCASE];allMethods.forEach(method=>{this[method]=(args1,...args)=>(typeof args1==`string`?this.#path=args1:this.#addRoute(method,this.#path,args1),args.forEach(handler=>{this.#addRoute(method,this.#path,handler)}),this)}),this.on=(method,path$40,...handlers)=>{for(let p of[path$40].flat()){this.#path=p;for(let m$2 of[method].flat())handlers.map(handler=>{this.#addRoute(m$2.toUpperCase(),this.#path,handler)})}return this},this.use=(arg1,...handlers)=>(typeof arg1==`string`?this.#path=arg1:(this.#path=`*`,handlers.unshift(arg1)),handlers.forEach(handler=>{this.#addRoute(METHOD_NAME_ALL,this.#path,handler)}),this);let{strict,...optionsWithoutStrict}=options$1;Object.assign(this,optionsWithoutStrict),this.getPath=strict??!0?options$1.getPath??getPath$1:getPathNoStrict}#clone(){let clone$3=new Hono$1({router:this.router,getPath:this.getPath});return clone$3.errorHandler=this.errorHandler,clone$3.#notFoundHandler=this.#notFoundHandler,clone$3.routes=this.routes,clone$3}#notFoundHandler=notFoundHandler;errorHandler=errorHandler;route(path$40,app){let subApp=this.basePath(path$40);return app.routes.map(r$2=>{let handler;app.errorHandler===errorHandler?handler=r$2.handler:(handler=async(c$3,next)=>(await compose$1([],app.errorHandler)(c$3,()=>r$2.handler(c$3,next))).res,handler[COMPOSED_HANDLER]=r$2.handler),subApp.#addRoute(r$2.method,r$2.path,handler)}),this}basePath(path$40){let subApp=this.#clone();return subApp._basePath=mergePath$1(this._basePath,path$40),subApp}onError=handler=>(this.errorHandler=handler,this);notFound=handler=>(this.#notFoundHandler=handler,this);mount(path$40,applicationHandler,options$1){let replaceRequest,optionHandler;options$1&&(typeof options$1==`function`?optionHandler=options$1:(optionHandler=options$1.optionHandler,replaceRequest=options$1.replaceRequest===!1?request$2=>request$2:options$1.replaceRequest));let getOptions$1=optionHandler?c$3=>{let options2=optionHandler(c$3);return Array.isArray(options2)?options2:[options2]}:c$3=>{let executionContext;try{executionContext=c$3.executionCtx}catch{}return[c$3.env,executionContext]};replaceRequest||=(()=>{let mergedPath=mergePath$1(this._basePath,path$40),pathPrefixLength=mergedPath===`/`?0:mergedPath.length;return request$2=>{let url$5=new URL(request$2.url);return url$5.pathname=url$5.pathname.slice(pathPrefixLength)||`/`,new Request(url$5,request$2)}})();let handler=async(c$3,next)=>{let res=await applicationHandler(replaceRequest(c$3.req.raw),...getOptions$1(c$3));if(res)return res;await next()};return this.#addRoute(METHOD_NAME_ALL,mergePath$1(path$40,`*`),handler),this}#addRoute(method,path$40,handler){method=method.toUpperCase(),path$40=mergePath$1(this._basePath,path$40);let r$2={basePath:this._basePath,path:path$40,method,handler};this.router.add(method,path$40,[handler,r$2]),this.routes.push(r$2)}#handleError(err,c$3){if(err instanceof Error)return this.errorHandler(err,c$3);throw err}#dispatch(request$2,executionCtx,env$4,method){if(method===`HEAD`)return(async()=>new Response(null,await this.#dispatch(request$2,executionCtx,env$4,`GET`)))();let path$40=this.getPath(request$2,{env:env$4}),matchResult=this.router.match(method,path$40),c$3=new Context(request$2,{path:path$40,matchResult,env:env$4,executionCtx,notFoundHandler:this.#notFoundHandler});if(matchResult[0].length===1){let res;try{res=matchResult[0][0][0][0](c$3,async()=>{c$3.res=await this.#notFoundHandler(c$3)})}catch(err){return this.#handleError(err,c$3)}return res instanceof Promise?res.then(resolved=>resolved||(c$3.finalized?c$3.res:this.#notFoundHandler(c$3))).catch(err=>this.#handleError(err,c$3)):res??this.#notFoundHandler(c$3)}let composed=compose$1(matchResult[0],this.errorHandler,this.#notFoundHandler);return(async()=>{try{let context=await composed(c$3);if(!context.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return context.res}catch(err){return this.#handleError(err,c$3)}})()}fetch=(request$2,...rest)=>this.#dispatch(request$2,rest[1],rest[0],request$2.method);request=(input,requestInit,Env,executionCtx)=>input instanceof Request?this.fetch(requestInit?new Request(input,requestInit):input,Env,executionCtx):(input=input.toString(),this.fetch(new Request(/^https?:\/\//.test(input)?input:`http://localhost${mergePath$1(`/`,input)}`,requestInit),Env,executionCtx));fire=()=>{addEventListener(`fetch`,event=>{event.respondWith(this.#dispatch(event.request,event,void 0,event.request.method))})}},LABEL_REG_EXP_STR=`[^/]+`,ONLY_WILDCARD_REG_EXP_STR=`.*`,TAIL_WILDCARD_REG_EXP_STR=`(?:|/.*)`,PATH_ERROR=Symbol(),regExpMetaChars=new Set(`.\\+*[^]$()`);function compareKey(a$3,b$2){return a$3.length===1?b$2.length===1?a$3<b$2?-1:1:-1:b$2.length===1||a$3===ONLY_WILDCARD_REG_EXP_STR||a$3===TAIL_WILDCARD_REG_EXP_STR?1:b$2===ONLY_WILDCARD_REG_EXP_STR||b$2===TAIL_WILDCARD_REG_EXP_STR?-1:a$3===LABEL_REG_EXP_STR?1:b$2===LABEL_REG_EXP_STR?-1:a$3.length===b$2.length?a$3<b$2?-1:1:b$2.length-a$3.length}var Node$4=class{#index;#varIndex;#children=Object.create(null);insert(tokens,index,paramMap,context,pathErrorCheckOnly){if(tokens.length===0){if(this.#index!==void 0)throw PATH_ERROR;if(pathErrorCheckOnly)return;this.#index=index;return}let[token$1,...restTokens]=tokens,pattern=token$1===`*`?restTokens.length===0?[``,``,ONLY_WILDCARD_REG_EXP_STR]:[``,``,LABEL_REG_EXP_STR]:token$1===`/*`?[``,``,TAIL_WILDCARD_REG_EXP_STR]:token$1.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),node;if(pattern){let name$3=pattern[1],regexpStr=pattern[2]||LABEL_REG_EXP_STR;if(name$3&&pattern[2]&&(regexpStr===`.*`||(regexpStr=regexpStr.replace(/^\((?!\?:)(?=[^)]+\)$)/,`(?:`),/\((?!\?:)/.test(regexpStr))))throw PATH_ERROR;if(node=this.#children[regexpStr],!node){if(Object.keys(this.#children).some(k=>k!==ONLY_WILDCARD_REG_EXP_STR&&k!==TAIL_WILDCARD_REG_EXP_STR))throw PATH_ERROR;if(pathErrorCheckOnly)return;node=this.#children[regexpStr]=new Node$4,name$3!==``&&(node.#varIndex=context.varIndex++)}!pathErrorCheckOnly&&name$3!==``&¶mMap.push([name$3,node.#varIndex])}else if(node=this.#children[token$1],!node){if(Object.keys(this.#children).some(k=>k.length>1&&k!==ONLY_WILDCARD_REG_EXP_STR&&k!==TAIL_WILDCARD_REG_EXP_STR))throw PATH_ERROR;if(pathErrorCheckOnly)return;node=this.#children[token$1]=new Node$4}node.insert(restTokens,index,paramMap,context,pathErrorCheckOnly)}buildRegExpStr(){let childKeys=Object.keys(this.#children).sort(compareKey),strList=childKeys.map(k=>{let c$3=this.#children[k];return(typeof c$3.#varIndex==`number`?`(${k})@${c$3.#varIndex}`:regExpMetaChars.has(k)?`\\${k}`:k)+c$3.buildRegExpStr()});return typeof this.#index==`number`&&strList.unshift(`#${this.#index}`),strList.length===0?``:strList.length===1?strList[0]:`(?:`+strList.join(`|`)+`)`}},Trie=class{#context={varIndex:0};#root=new Node$4;insert(path$40,index,pathErrorCheckOnly){let paramAssoc=[],groups=[];for(let i$4=0;;){let replaced=!1;if(path$40=path$40.replace(/\{[^}]+\}/g,m$2=>{let mark=`@\\${i$4}`;return groups[i$4]=[mark,m$2],i$4++,replaced=!0,mark}),!replaced)break}let tokens=path$40.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let i$4=groups.length-1;i$4>=0;i$4--){let[mark]=groups[i$4];for(let j$2=tokens.length-1;j$2>=0;j$2--)if(tokens[j$2].indexOf(mark)!==-1){tokens[j$2]=tokens[j$2].replace(mark,groups[i$4][1]);break}}return this.#root.insert(tokens,index,paramAssoc,this.#context,pathErrorCheckOnly),paramAssoc}buildRegExp(){let regexp=this.#root.buildRegExpStr();if(regexp===``)return[/^$/,[],[]];let captureIndex=0,indexReplacementMap=[],paramReplacementMap=[];return regexp=regexp.replace(/#(\d+)|@(\d+)|\.\*\$/g,(_$3,handlerIndex,paramIndex)=>handlerIndex===void 0?(paramIndex===void 0||(paramReplacementMap[Number(paramIndex)]=++captureIndex),``):(indexReplacementMap[++captureIndex]=Number(handlerIndex),`$()`)),[RegExp(`^${regexp}`),indexReplacementMap,paramReplacementMap]}},emptyParam=[],nullMatcher=[/^$/,[],Object.create(null)],wildcardRegExpCache=Object.create(null);function buildWildcardRegExp(path$40){return wildcardRegExpCache[path$40]??=RegExp(path$40===`*`?``:`^${path$40.replace(/\/\*$|([.\\+*[^\]$()])/g,(_$3,metaChar)=>metaChar?`\\${metaChar}`:`(?:|/.*)`)}$`)}function clearWildcardRegExpCache(){wildcardRegExpCache=Object.create(null)}function buildMatcherFromPreprocessedRoutes(routes){let trie=new Trie,handlerData=[];if(routes.length===0)return nullMatcher;let routesWithStaticPathFlag=routes.map(route$1=>[!/\*|\/:/.test(route$1[0]),...route$1]).sort(([isStaticA,pathA],[isStaticB,pathB])=>isStaticA?1:isStaticB?-1:pathA.length-pathB.length),staticMap=Object.create(null);for(let i$4=0,j$2=-1,len$1=routesWithStaticPathFlag.length;i$4<len$1;i$4++){let[pathErrorCheckOnly,path$40,handlers]=routesWithStaticPathFlag[i$4];pathErrorCheckOnly?staticMap[path$40]=[handlers.map(([h$3])=>[h$3,Object.create(null)]),emptyParam]:j$2++;let paramAssoc;try{paramAssoc=trie.insert(path$40,j$2,pathErrorCheckOnly)}catch(e$1){throw e$1===PATH_ERROR?new UnsupportedPathError(path$40):e$1}pathErrorCheckOnly||(handlerData[j$2]=handlers.map(([h$3,paramCount])=>{let paramIndexMap=Object.create(null);for(--paramCount;paramCount>=0;paramCount--){let[key,value]=paramAssoc[paramCount];paramIndexMap[key]=value}return[h$3,paramIndexMap]}))}let[regexp,indexReplacementMap,paramReplacementMap]=trie.buildRegExp();for(let i$4=0,len$1=handlerData.length;i$4<len$1;i$4++)for(let j$2=0,len2=handlerData[i$4].length;j$2<len2;j$2++){let map$2=handlerData[i$4][j$2]?.[1];if(!map$2)continue;let keys=Object.keys(map$2);for(let k=0,len3=keys.length;k<len3;k++)map$2[keys[k]]=paramReplacementMap[map$2[keys[k]]]}let handlerMap=[];for(let i$4 in indexReplacementMap)handlerMap[i$4]=handlerData[indexReplacementMap[i$4]];return[regexp,handlerMap,staticMap]}function findMiddleware(middleware,path$40){if(middleware){for(let k of Object.keys(middleware).sort((a$3,b$2)=>b$2.length-a$3.length))if(buildWildcardRegExp(k).test(path$40))return[...middleware[k]]}}var RegExpRouter=class{name=`RegExpRouter`;#middleware;#routes;constructor(){this.#middleware={[METHOD_NAME_ALL]:Object.create(null)},this.#routes={[METHOD_NAME_ALL]:Object.create(null)}}add(method,path$40,handler){let middleware=this.#middleware,routes=this.#routes;if(!middleware||!routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);middleware[method]||[middleware,routes].forEach(handlerMap=>{handlerMap[method]=Object.create(null),Object.keys(handlerMap[METHOD_NAME_ALL]).forEach(p=>{handlerMap[method][p]=[...handlerMap[METHOD_NAME_ALL][p]]})}),path$40===`/*`&&(path$40=`*`);let paramCount=(path$40.match(/\/:/g)||[]).length;if(/\*$/.test(path$40)){let re$3=buildWildcardRegExp(path$40);method===METHOD_NAME_ALL?Object.keys(middleware).forEach(m$2=>{middleware[m$2][path$40]||=findMiddleware(middleware[m$2],path$40)||findMiddleware(middleware[METHOD_NAME_ALL],path$40)||[]}):middleware[method][path$40]||=findMiddleware(middleware[method],path$40)||findMiddleware(middleware[METHOD_NAME_ALL],path$40)||[],Object.keys(middleware).forEach(m$2=>{(method===METHOD_NAME_ALL||method===m$2)&&Object.keys(middleware[m$2]).forEach(p=>{re$3.test(p)&&middleware[m$2][p].push([handler,paramCount])})}),Object.keys(routes).forEach(m$2=>{(method===METHOD_NAME_ALL||method===m$2)&&Object.keys(routes[m$2]).forEach(p=>re$3.test(p)&&routes[m$2][p].push([handler,paramCount]))});return}let paths=checkOptionalParameter(path$40)||[path$40];for(let i$4=0,len$1=paths.length;i$4<len$1;i$4++){let path2=paths[i$4];Object.keys(routes).forEach(m$2=>{(method===METHOD_NAME_ALL||method===m$2)&&(routes[m$2][path2]||=[...findMiddleware(middleware[m$2],path2)||findMiddleware(middleware[METHOD_NAME_ALL],path2)||[]],routes[m$2][path2].push([handler,paramCount-len$1+i$4+1]))})}}match(method,path$40){clearWildcardRegExpCache();let matchers=this.#buildAllMatchers();return this.match=(method2,path2)=>{let matcher=matchers[method2]||matchers[METHOD_NAME_ALL],staticMatch=matcher[2][path2];if(staticMatch)return staticMatch;let match$1=path2.match(matcher[0]);if(!match$1)return[[],emptyParam];let index=match$1.indexOf(``,1);return[matcher[1][index],match$1]},this.match(method,path$40)}#buildAllMatchers(){let matchers=Object.create(null);return Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach(method=>{matchers[method]||=this.#buildMatcher(method)}),this.#middleware=this.#routes=void 0,matchers}#buildMatcher(method){let routes=[],hasOwnRoute=method===METHOD_NAME_ALL;return[this.#middleware,this.#routes].forEach(r$2=>{let ownRoute=r$2[method]?Object.keys(r$2[method]).map(path$40=>[path$40,r$2[method][path$40]]):[];ownRoute.length===0?method!==METHOD_NAME_ALL&&routes.push(...Object.keys(r$2[METHOD_NAME_ALL]).map(path$40=>[path$40,r$2[METHOD_NAME_ALL][path$40]])):(hasOwnRoute||=!0,routes.push(...ownRoute))}),hasOwnRoute?buildMatcherFromPreprocessedRoutes(routes):null}},SmartRouter=class{name=`SmartRouter`;#routers=[];#routes=[];constructor(init$7){this.#routers=init$7.routers}add(method,path$40,handler){if(!this.#routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);this.#routes.push([method,path$40,handler])}match(method,path$40){if(!this.#routes)throw Error(`Fatal error`);let routers=this.#routers,routes=this.#routes,len$1=routers.length,i$4=0,res;for(;i$4<len$1;i$4++){let router=routers[i$4];try{for(let i2=0,len2=routes.length;i2<len2;i2++)router.add(...routes[i2]);res=router.match(method,path$40)}catch(e$1){if(e$1 instanceof UnsupportedPathError)continue;throw e$1}this.match=router.match.bind(router),this.#routers=[router],this.#routes=void 0;break}if(i$4===len$1)throw Error(`Fatal error`);return this.name=`SmartRouter + ${this.activeRouter.name}`,res}get activeRouter(){if(this.#routes||this.#routers.length!==1)throw Error(`No active router has been determined yet.`);return this.#routers[0]}},emptyParams=Object.create(null),Node$3=class{#methods;#children;#patterns;#order=0;#params=emptyParams;constructor(method,handler,children){if(this.#children=children||Object.create(null),this.#methods=[],method&&handler){let m$2=Object.create(null);m$2[method]={handler,possibleKeys:[],score:0},this.#methods=[m$2]}this.#patterns=[]}insert(method,path$40,handler){this.#order=++this.#order;let curNode=this,parts=splitRoutingPath(path$40),possibleKeys=[];for(let i$4=0,len$1=parts.length;i$4<len$1;i$4++){let p=parts[i$4],nextP=parts[i$4+1],pattern=getPattern(p,nextP),key=Array.isArray(pattern)?pattern[0]:p;if(key in curNode.#children){curNode=curNode.#children[key],pattern&&possibleKeys.push(pattern[1]);continue}curNode.#children[key]=new Node$3,pattern&&(curNode.#patterns.push(pattern),possibleKeys.push(pattern[1])),curNode=curNode.#children[key]}return curNode.#methods.push({[method]:{handler,possibleKeys:possibleKeys.filter((v$1,i$4,a$3)=>a$3.indexOf(v$1)===i$4),score:this.#order}}),curNode}#getHandlerSets(node,method,nodeParams,params){let handlerSets=[];for(let i$4=0,len$1=node.#methods.length;i$4<len$1;i$4++){let m$2=node.#methods[i$4],handlerSet=m$2[method]||m$2[METHOD_NAME_ALL],processedSet={};if(handlerSet!==void 0&&(handlerSet.params=Object.create(null),handlerSets.push(handlerSet),nodeParams!==emptyParams||params&¶ms!==emptyParams))for(let i2=0,len2=handlerSet.possibleKeys.length;i2<len2;i2++){let key=handlerSet.possibleKeys[i2],processed=processedSet[handlerSet.score];handlerSet.params[key]=params?.[key]&&!processed?params[key]:nodeParams[key]??params?.[key],processedSet[handlerSet.score]=!0}}return handlerSets}search(method,path$40){let handlerSets=[];this.#params=emptyParams;let curNode=this,curNodes=[curNode],parts=splitPath(path$40),curNodesQueue=[];for(let i$4=0,len$1=parts.length;i$4<len$1;i$4++){let part=parts[i$4],isLast=i$4===len$1-1,tempNodes=[];for(let j$2=0,len2=curNodes.length;j$2<len2;j$2++){let node=curNodes[j$2],nextNode=node.#children[part];nextNode&&(nextNode.#params=node.#params,isLast?(nextNode.#children[`*`]&&handlerSets.push(...this.#getHandlerSets(nextNode.#children[`*`],method,node.#params)),handlerSets.push(...this.#getHandlerSets(nextNode,method,node.#params))):tempNodes.push(nextNode));for(let k=0,len3=node.#patterns.length;k<len3;k++){let pattern=node.#patterns[k],params=node.#params===emptyParams?{}:{...node.#params};if(pattern===`*`){let astNode=node.#children[`*`];astNode&&(handlerSets.push(...this.#getHandlerSets(astNode,method,node.#params)),astNode.#params=params,tempNodes.push(astNode));continue}let[key,name$3,matcher]=pattern;if(!part&&!(matcher instanceof RegExp))continue;let child=node.#children[key],restPathString=parts.slice(i$4).join(`/`);if(matcher instanceof RegExp){let m$2=matcher.exec(restPathString);if(m$2){if(params[name$3]=m$2[0],handlerSets.push(...this.#getHandlerSets(child,method,node.#params,params)),Object.keys(child.#children).length){child.#params=params;let componentCount=m$2[0].match(/\//)?.length??0,targetCurNodes=curNodesQueue[componentCount]||=[];targetCurNodes.push(child)}continue}}(matcher===!0||matcher.test(part))&&(params[name$3]=part,isLast?(handlerSets.push(...this.#getHandlerSets(child,method,params,node.#params)),child.#children[`*`]&&handlerSets.push(...this.#getHandlerSets(child.#children[`*`],method,params,node.#params))):(child.#params=params,tempNodes.push(child)))}}curNodes=tempNodes.concat(curNodesQueue.shift()??[])}return handlerSets.length>1&&handlerSets.sort((a$3,b$2)=>a$3.score-b$2.score),[handlerSets.map(({handler,params})=>[handler,params])]}},TrieRouter=class{name=`TrieRouter`;#node;constructor(){this.#node=new Node$3}add(method,path$40,handler){let results=checkOptionalParameter(path$40);if(results){for(let i$4=0,len$1=results.length;i$4<len$1;i$4++)this.#node.insert(method,results[i$4],handler);return}this.#node.insert(method,path$40,handler)}match(method,path$40){return this.#node.search(method,path$40)}},Hono=class extends Hono$1{constructor(options$1={}){super(options$1),this.router=options$1.router??new SmartRouter({routers:[new RegExpRouter,new TrieRouter]})}},validCookieNameRegEx=/^[\w!#$%&'*.^`|~+-]+$/,validCookieValueRegEx=/^[ !#-:<-[\]-~]*$/,parse$16=(cookie,name$3)=>{if(name$3&&cookie.indexOf(name$3)===-1)return{};let pairs=cookie.trim().split(`;`),parsedCookie={};for(let pairStr of pairs){pairStr=pairStr.trim();let valueStartPos=pairStr.indexOf(`=`);if(valueStartPos===-1)continue;let cookieName=pairStr.substring(0,valueStartPos).trim();if(name$3&&name$3!==cookieName||!validCookieNameRegEx.test(cookieName))continue;let cookieValue=pairStr.substring(valueStartPos+1).trim();if(cookieValue.startsWith(`"`)&&cookieValue.endsWith(`"`)&&(cookieValue=cookieValue.slice(1,-1)),validCookieValueRegEx.test(cookieValue)&&(parsedCookie[cookieName]=cookieValue.indexOf(`%`)===-1?cookieValue:tryDecode(cookieValue,decodeURIComponent_),name$3))break}return parsedCookie},_serialize=(name$3,value,opt={})=>{let cookie=`${name$3}=${value}`;if(name$3.startsWith(`__Secure-`)&&!opt.secure)throw Error(`__Secure- Cookie must have Secure attributes`);if(name$3.startsWith(`__Host-`)){if(!opt.secure)throw Error(`__Host- Cookie must have Secure attributes`);if(opt.path!==`/`)throw Error(`__Host- Cookie must have Path attributes with "/"`);if(opt.domain)throw Error(`__Host- Cookie must not have Domain attributes`)}if(opt&&typeof opt.maxAge==`number`&&opt.maxAge>=0){if(opt.maxAge>3456e4)throw Error(`Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.`);cookie+=`; Max-Age=${opt.maxAge|0}`}if(opt.domain&&opt.prefix!==`host`&&(cookie+=`; Domain=${opt.domain}`),opt.path&&(cookie+=`; Path=${opt.path}`),opt.expires){if(opt.expires.getTime()-Date.now()>3456e7)throw Error(`Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.`);cookie+=`; Expires=${opt.expires.toUTCString()}`}if(opt.httpOnly&&(cookie+=`; HttpOnly`),opt.secure&&(cookie+=`; Secure`),opt.sameSite&&(cookie+=`; SameSite=${opt.sameSite.charAt(0).toUpperCase()+opt.sameSite.slice(1)}`),opt.priority&&(cookie+=`; Priority=${opt.priority.charAt(0).toUpperCase()+opt.priority.slice(1)}`),opt.partitioned){if(!opt.secure)throw Error(`Partitioned Cookie must have Secure attributes`);cookie+=`; Partitioned`}return cookie},serialize$1=(name$3,value,opt)=>(value=encodeURIComponent(value),_serialize(name$3,value,opt)),getCookie=(c$3,key,prefix)=>{let cookie=c$3.req.raw.headers.get(`Cookie`);if(typeof key==`string`){if(!cookie)return;let finalKey=key;prefix===`secure`?finalKey=`__Secure-`+key:prefix===`host`&&(finalKey=`__Host-`+key);let obj2=parse$16(cookie,finalKey);return obj2[finalKey]}if(!cookie)return{};let obj=parse$16(cookie);return obj},HTTPException=class extends Error{res;status;constructor(status=500,options$1){super(options$1?.message,{cause:options$1?.cause}),this.res=options$1?.res,this.status=status}getResponse(){if(this.res){let newResponse=new Response(this.res.body,{status:this.status,headers:this.res.headers});return newResponse}return new Response(this.message,{status:this.status})}},bufferToFormData=(arrayBuffer,contentType)=>{let response=new Response(arrayBuffer,{headers:{"Content-Type":contentType}});return response.formData()},jsonRegex=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,multipartRegex=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,urlencodedRegex=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,validator=(target,validationFunc)=>async(c$3,next)=>{let value={},contentType=c$3.req.header(`Content-Type`);switch(target){case`json`:if(!contentType||!jsonRegex.test(contentType))break;try{value=await c$3.req.json()}catch{let message=`Malformed JSON in request body`;throw new HTTPException(400,{message:`Malformed JSON in request body`})}break;case`form`:{if(!contentType||!(multipartRegex.test(contentType)||urlencodedRegex.test(contentType)))break;let formData;if(c$3.req.bodyCache.formData)formData=await c$3.req.bodyCache.formData;else try{let arrayBuffer=await c$3.req.arrayBuffer();formData=await bufferToFormData(arrayBuffer,contentType),c$3.req.bodyCache.formData=formData}catch(e$1){let message=`Malformed FormData request.`;throw message+=e$1 instanceof Error?` ${e$1.message}`:` ${String(e$1)}`,new HTTPException(400,{message})}let form={};formData.forEach((value2,key)=>{key.endsWith(`[]`)?(form[key]??=[]).push(value2):Array.isArray(form[key])?form[key].push(value2):key in form?form[key]=[form[key],value2]:form[key]=value2}),value=form;break}case`query`:value=Object.fromEntries(Object.entries(c$3.req.queries()).map(([k,v$1])=>v$1.length===1?[k,v$1[0]]:[k,v$1]));break;case`param`:value=c$3.req.param();break;case`header`:value=c$3.req.header();break;case`cookie`:value=getCookie(c$3);break}let res=await validationFunc(value,c$3);if(res instanceof Response)return res;c$3.req.addValidatedData(target,res),await next()};const error$21=(c$3,msg)=>c$3.json({error:msg},400),validateStorageKey=c$3=>{let key=c$3.req.param(`key`);return!key||key===``?{key,err:`Key is required`}:key.length>475?{key,err:`Key is too long. Max length is 475 characters.`}:{key}},createRouter=()=>new Hono,kv=createRouter().get(`/:key`,async c$3=>{let{key,err}=validateStorageKey(c$3);if(err)return error$21(c$3,err);let value=await c$3.env.context.store.get(key);return c$3.json({value},200)}).post(`/:key`,validator(`json`,(body,c$3)=>{let value=body.value;return value?typeof value==`string`?value.length>2e4?error$21(c$3,`Value is too long. Max length is 20,000 characters.`):{value}:error$21(c$3,`Value must be a string`):error$21(c$3,`Value is required`)}),async c$3=>{let{key,err}=validateStorageKey(c$3);if(err)return error$21(c$3,err);let{value}=c$3.req.valid(`json`);return await c$3.env.context.store.set(key,value),c$3.body(null,204)}).delete(`/:key`,async c$3=>{let{key,err}=validateStorageKey(c$3);return err?error$21(c$3,err):(await c$3.env.context.store.delete(key),c$3.body(null,204))}).get(`/`,async c$3=>{let{cursor,limit,prefix}=c$3.req.query(),{entries:entries$1,cursor:nextCursor}=await c$3.env.context.store.list(prefix,{cursor:cursor?String(cursor):void 0,limit:limit?Number(limit):100});return c$3.json({entries:entries$1,cursor:nextCursor})}),validateChatKey=c$3=>{let key=c$3.req.param(`key`);return key?key.length>475?{key,err:`Key is too long. Max length is 475 characters.`}:{key}:{key,err:`Key is required`}},chat=createRouter().basePath(`/:key`).post(`/`,async c$3=>{let{key,err}=validateChatKey(c$3);return err?error$21(c$3,err):c$3.json(await c$3.env.context.chat.ensure(key),200)}).post(`/sendMessages`,validator(`json`,(body,c$3)=>({message:body.message,options:body.options})),async c$3=>{let{key,err}=validateChatKey(c$3);if(err)return error$21(c$3,err);let{message,options:options$1}=c$3.req.valid(`json`);try{await c$3.env.context.chat.message(key,message,options$1)}catch(err$1){return error$21(c$3,err$1 instanceof Error?err$1.message:`Unknown error`)}return c$3.body(null,204)}),otlp=createRouter().post(`/v1/traces`,async c$3=>c$3.env.context.otlp?c$3.env.context.otlp.traces(c$3.req.raw):c$3.body(null,204)),api$36=new Hono().route(`/kv`,kv).route(`/chat`,chat).route(`/otlp`,otlp),shouldContinueStreaming=lastMessage=>{if(lastMessage.role!==`assistant`)return!1;let lastStepStartIndex=lastMessage.parts.reduce((lastIndex,part,index)=>part.type===`step-start`?index:lastIndex,-1),lastStepToolInvocations=lastMessage.parts.slice(lastStepStartIndex+1).filter(isToolOrDynamicToolUIPart);if(lastStepToolInvocations.length===0)return!1;let hasPendingApprovals=lastStepToolInvocations.some(part=>isToolApprovalOutput(part.output)&&part.output.outcome===`pending`);return hasPendingApprovals?!1:lastStepToolInvocations.every(part=>part.state.startsWith(`output-`))};function filenameReservedRegex(){return/[<>:"/\\|?*\u0000-\u001F]|[. ]$/g}function windowsReservedNameRegex(){return/^(con|prn|aux|nul|com\d|lpt\d)$/i}const MAX_FILENAME_LENGTH=100,reRelativePath=/^\.+(\\|\/)|^\.+$/,reTrailingDotsAndSpaces=/[. ]+$/,reControlChars=/[\p{Control}\p{Format}\p{Zl}\p{Zp}\uFFF0-\uFFFF]/gu,reControlCharsTest=/[\p{Control}\p{Format}\p{Zl}\p{Zp}\uFFF0-\uFFFF]/u,isZeroWidthJoiner=char=>char===``,reRepeatedReservedCharacters=/([<>:"/\\|?*\u0000-\u001F]){2,}/g,reUnicodeWhitespace=/[\t\n\r\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]+/g;let segmenter;function getSegmenter(){return segmenter??=new Intl.Segmenter(void 0,{granularity:`grapheme`}),segmenter}function filenamify(string,options$1={}){if(typeof string!=`string`)throw TypeError(`Expected a string`);let replacement=options$1.replacement??`!`;if(filenameReservedRegex().test(replacement)||[...replacement].some(char=>reControlCharsTest.test(char)&&!isZeroWidthJoiner(char)))throw Error(`Replacement string cannot contain reserved filename characters`);string=string.normalize(`NFC`),string=string.replaceAll(reUnicodeWhitespace,` `),replacement.length>0&&(string=string.replaceAll(reRepeatedReservedCharacters,`$1`)),string=string.replace(reTrailingDotsAndSpaces,``),string=string.replace(reRelativePath,replacement),string=string.replace(filenameReservedRegex(),replacement),string=string.replaceAll(reControlChars,char=>isZeroWidthJoiner(char)?char:replacement),string.length===0&&(string=replacement),string=windowsReservedNameRegex().test(string)?string+replacement:string;let allowedLength=typeof options$1.maxLength==`number`?options$1.maxLength:100;if(string.length>allowedLength){let extensionIndex=string.lastIndexOf(`.`);if(extensionIndex===-1)string=truncateByGraphemeBudget(string,allowedLength);else{let filename=string.slice(0,extensionIndex),extension=string.slice(extensionIndex),baseBudget=Math.max(0,allowedLength-extension.length);string=truncateByGraphemeBudget(filename,baseBudget)+extension}}return string}function truncateByGraphemeBudget(input,budget){if(input.length<=budget)return input;let count$1=0,output=``;for(let{segment}of getSegmenter().segment(input)){let next=count$1+segment.length;if(next>budget)break;output+=segment,count$1=next}return output}const createDiskStore=(dataDirectory,idKey,opts)=>{let indexCache,valueCache=new Map,ensureDir=dir=>{fs$12.mkdirSync(dir,{recursive:!0})},readJSONIfExists=filePath=>{let stat$6=fs$12.statSync(filePath,{throwIfNoEntry:!1});if(stat$6)return JSON.parse(fs$12.readFileSync(filePath,`utf-8`))},fdatasyncAndClose=fd=>{try{fs$12.fdatasyncSync(fd)}catch{}try{fs$12.closeSync(fd)}catch{}},fsyncPath=p=>{try{let fd=fs$12.openSync(p,`r`);try{fs$12.fsyncSync(fd)}finally{fs$12.closeSync(fd)}}catch{}},writeAtomicJSON=(filePath,data$2)=>{let dir=path$8.dirname(filePath);ensureDir(dir);let tmp=path$8.join(dir,`.tmp-`+process.pid+`-`+Math.random().toString(36).slice(2)),json$2=JSON.stringify(data$2,null,2),fd;try{fd=fs$12.openSync(tmp,`w`),fs$12.writeFileSync(fd,json$2,`utf-8`),fdatasyncAndClose(fd),fd=void 0,fs$12.renameSync(tmp,filePath),fsyncPath(filePath),fsyncPath(dir)}catch(err){if(fd!==void 0)try{fs$12.closeSync(fd)}catch{}try{fs$12.rmSync(tmp,{force:!0})}catch{}throw err}},readIndex=()=>{if(indexCache)return indexCache;let indexPath=path$8.join(dataDirectory,`index.json`),read$1=readJSONIfExists(indexPath)??{ids:{}};return read$1.ids||(read$1.ids={}),indexCache=read$1,read$1},writeIndex=index=>{let indexPath=path$8.join(dataDirectory,`index.json`);writeAtomicJSON(indexPath,index),indexCache=index},readValueById=id=>{let cached=valueCache.get(id);if(cached)return cached;let idx=readIndex(),rel=idx.ids[id];if(!rel)return;let filePath=path$8.join(dataDirectory,rel),stat$6=fs$12.statSync(filePath,{throwIfNoEntry:!1});if(!stat$6)return;let value=JSON.parse(fs$12.readFileSync(filePath,`utf-8`));return valueCache.set(id,opts?.hydrate?opts.hydrate(value):value),value},writeValue=(key,value)=>{let current=valueCache.get(key);if(opts?.shouldWriteToDisk&¤t&&!opts.shouldWriteToDisk(current,value)){valueCache.set(key,value);return}let anyValue=value,idRaw=anyValue[idKey],idStr=String(idRaw),fileNameBase=filenamify(idStr,{replacement:`_`}),fileName=fileNameBase+`.json`,idx=readIndex();idx.ids[idStr]=fileName,idx.current=idStr;let valuePath=path$8.join(dataDirectory,fileName);writeAtomicJSON(valuePath,opts?.serialize?.(value)??value),writeIndex(idx),valueCache.set(key,value)};return{get(key){return readValueById(key)},set(key,value){writeValue(key,value)},update(key,value){let current=this.get(key);if(!current)throw Error(`Key ${key} not found`);writeValue(key,{...current,...value})},delete(key){let idx=readIndex(),rel=idx.ids[key];if(rel){let filePath=path$8.join(dataDirectory,rel);try{fs$12.rmSync(filePath,{force:!0}),fsyncPath(dataDirectory)}catch{}delete idx.ids[key],idx.current===key&&(idx.current=void 0),writeIndex(idx)}valueCache.delete(key)},list(){let stat$6=fs$12.statSync(dataDirectory,{throwIfNoEntry:!1});if(!stat$6)return[];let idx=readIndex();return Object.keys(idx.ids)}}};function createDevServer(options$1){options$1.dataDirectory||(options$1.dataDirectory=fs$1.mkdtempSync(tmpdir()));let chats=createDiskStore(join$1(options$1.dataDirectory,`chats`),`id`,{hydrate:chat$1=>({...chat$1,status:`idle`,queuedMessages:[],streamingMessage:void 0}),serialize:chat$1=>(options$1.serializeChat&&(chat$1=options$1.serializeChat(chat$1)),{id:chat$1.id,created_at:chat$1.created_at,updated_at:chat$1.updated_at,messages:chat$1.messages}),shouldWriteToDisk:(previous,next)=>previous.updated_at!==next.updated_at||previous.status!==next.status||previous.messages.length!==next.messages.length}),onChatChangedEmitter=new Emitter$1,originalSet=chats.set;chats.set=(key,value)=>{originalSet.call(chats,key,value),onChatChangedEmitter.emit(value)};let originalUpdate=chats.update;chats.update=(key,value)=>{originalUpdate.call(chats,key,value),onChatChangedEmitter.emit(chats.get(key))};let storage={},storagePath=join$1(options$1.dataDirectory,`storage.json`);fs$1.existsSync(storagePath)&&(storage=JSON.parse(fs$1.readFileSync(storagePath,`utf-8`)));let globalAbortController=new AbortController,chatAbortControllers=new Map,abortChat=id=>{let controller=chatAbortControllers.get(id);controller?.signal.aborted||controller?.abort()},lastDoStreamLoop,convertMessage=(message,id=crypto.randomUUID())=>({created_at:new Date().toISOString(),...message,id,metadata:message.metadata}),doStreamLoop=async(id,messages$1)=>{let chat$1=chats.get(id);if(!chat$1)return;messages$1=messages$1?.filter(m$2=>m$2);let updated=messages$1?[...chat$1.messages,...messages$1.map(m$2=>convertMessage(m$2))]:chat$1.messages;chats.update(id,{status:`streaming`,updated_at:new Date().toISOString(),messages:updated});let controller=new AbortController;chatAbortControllers.set(id,controller);let stream$8;try{stream$8=await options$1.sendMessages({messages:[...updated],chat:{key:id}},AbortSignal.any([globalAbortController.signal,controller.signal]))}catch(error$22){chats.update(id,{status:`error`,error:error$22 instanceof Error?error$22:Error(String(error$22)),streamingMessage:void 0});return}let messageStream=readUIMessageStream({stream:stream$8}),messageId=crypto.randomUUID(),lastMessage;if(chat$1=chats.get(id),!chat$1)return;try{for await(let message of messageStream){if(controller.signal.aborted)break;lastMessage=message,chats.update(id,{streamingMessage:convertMessage(message,messageId)})}}catch(error$22){let silenceAndStore=!1;if(error$22 instanceof Error&&error$22.message.includes(`Controller is already closed`)&&(silenceAndStore=!0),error$22 instanceof Error&&error$22.name===`AbortError`&&(silenceAndStore=!0),silenceAndStore){if(lastMessage){if(chat$1=chats.get(id),!chat$1)return;chats.update(id,{status:`idle`,messages:[...chat$1.messages,convertMessage(lastMessage,messageId)],streamingMessage:void 0});return}throw error$22}}if(chat$1=chats.get(id),!chat$1)return;let updatedMessages=[...chat$1.messages];if(lastMessage&&updatedMessages.push(convertMessage(lastMessage,messageId)),chat$1?.queuedMessages?.length){chats.update(id,{messages:[...chat$1.messages,...chat$1.queuedMessages.map(m$2=>convertMessage(m$2))],queuedMessages:[]}),await doStreamLoop(id);return}if(lastMessage&&shouldContinueStreaming(lastMessage)){chats.update(id,{messages:updatedMessages,streamingMessage:void 0}),await doStreamLoop(id);return}chats.update(id,{status:`idle`,streamingMessage:void 0,messages:updatedMessages})},runtime={chat:{async ensure(key){let chat$1=await chats.get(key),created=!1;return chat$1?await chats.set(key,{...chat$1,updated_at:new Date().toISOString(),status:`idle`}):(await chats.set(key,{id:key,messages:[],created_at:new Date().toISOString(),updated_at:new Date().toISOString(),status:`idle`,streamingMessage:void 0,queuedMessages:[]}),created=!0),{key,created}},async message(key,message,opts){let chat$1=chats.get(key);if(!chat$1)throw Error(`Chat not found`);if(opts?.behavior===`append`){chats.set(key,{...chat$1,messages:[...chat$1.messages,convertMessage(message)]});return}if(chat$1.status===`streaming`){if(opts?.behavior===`enqueue`){chats.set(key,{...chat$1,queuedMessages:[...chat$1.queuedMessages??[],message]});return}abortChat(key),await lastDoStreamLoop}lastDoStreamLoop=doStreamLoop(key,[message])}},store:{get(key){return Promise.resolve(storage[key])},set(key,value){return storage[key]=value,fs$1.writeFileSync(storagePath,JSON.stringify(storage),`utf-8`),Promise.resolve()},delete(key){return delete storage[key],fs$1.writeFileSync(storagePath,JSON.stringify(storage),`utf-8`),Promise.resolve()},list(prefix,options$2){let limit=Math.min(options$2?.limit??100,1e3),cursor=options$2?.cursor,allKeys=Object.keys(storage).filter(key=>key.startsWith(prefix??``)).sort(),startIndex=0;if(cursor){let cursorIndex=allKeys.indexOf(cursor);cursorIndex!==-1&&(startIndex=cursorIndex+1)}let keysToReturn=allKeys.slice(startIndex,startIndex+limit),nextCursor=startIndex+limit<allKeys.length?keysToReturn[keysToReturn.length-1]:void 0;return Promise.resolve({entries:keysToReturn.map(key=>({key})),cursor:nextCursor})}}},server=createServer(createServerAdapter(req$1=>api$36.fetch(req$1,{context:runtime})));return server.listen(options$1.port),{url:`http://127.0.0.1:${server.address().port}`,runtime,onChatChanged:onChatChangedEmitter.event,listChats:()=>chats.list(),getChat:id=>chats.get(id),stopChat:id=>{abortChat(id)},upsertChatMessage:(id,message)=>{let chat$1=chats.get(id);if(!chat$1)throw Error(`Chat not found`);let lastMessage=chat$1.messages.length>0?chat$1.messages.at(-1):void 0;if(lastMessage&&JSON.stringify(lastMessage.parts)===JSON.stringify(message.parts))return;let newMessages=[...chat$1.messages,convertMessage(message)];chats.set(id,{...chat$1,messages:newMessages})},updateChatMessage:(id,message)=>{let chat$1=chats.get(id);if(!chat$1)throw Error(`Chat not found`);let newMessages=[...chat$1.messages];newMessages[newMessages.length-1]=convertMessage(message),chats.set(id,{...chat$1,messages:newMessages})},resetChat:id=>{chats.set(id,{id,messages:[],status:`idle`,queuedMessages:[],streamingMessage:void 0,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}),abortChat(id)},upsertChat:id=>{let existing=chats.get(id);if(existing)return existing;let chat$1={id,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[],status:`idle`,queuedMessages:[],streamingMessage:void 0};return chats.set(id,chat$1),chat$1},dispose:()=>{server.close(),globalAbortController.abort()}}}function lastUIOptions(messages$1){for(let i$4=messages$1.length-1;i$4>=0;i$4--){let message=messages$1[i$4];if(message!==void 0&&message.role===`user`&&!(typeof message.metadata!=`object`||message.metadata===null)&&`options`in message.metadata)return message.metadata.options}}const StreamResponseFormatHeader=`x-blink-stream-response-format`;function useOptions({agent:agent$1,capabilities,messages:messages$1}){let[error$22,setError$1]=useState(void 0),[loading,setLoading]=useState(!0),[schema,setSchema]=useState(void 0),currentSchema=useRef(schema);useEffect(()=>{currentSchema.current=schema},[schema]);let[lastMessageOptions,setLastMessageOptions]=useState(()=>lastUIOptions(messages$1));useEffect(()=>{setLastMessageOptions(prev=>{let newOptions=lastUIOptions(messages$1);return JSON.stringify(newOptions)===JSON.stringify(prev)?prev:newOptions})},[messages$1]);let[options$1,setOptions$1]=useState(void 0),isValidOption=useCallback((id,value)=>{if(!currentSchema.current)return!1;let option$1=currentSchema.current[id];return option$1?option$1.values.some(v$1=>v$1.id===value):!1},[]),updateOptions=useCallback(updates=>{setOptions$1(prev=>{let newOptions={...lastMessageOptions,...prev,...updates};for(let[key,value]of Object.entries(newOptions))isValidOption(key,value)||delete newOptions[key];for(let[key,value]of Object.entries(currentSchema.current??{}))!newOptions[key]&&value.defaultValue!==void 0&&(newOptions[key]=value.defaultValue);return JSON.stringify(newOptions)===JSON.stringify(prev)?prev:newOptions})},[lastMessageOptions,isValidOption]);useEffect(()=>{if(!lastMessageOptions&&!schema){setOptions$1(void 0);return}updateOptions()},[lastMessageOptions,schema,updateOptions]);let lastRequestedOptionsJson=useRef(void 0),lastAgentRef=useRef(void 0);useEffect(()=>{agent$1!==lastAgentRef.current&&(lastAgentRef.current=agent$1,setSchema(void 0),setOptions$1(void 0),setError$1(void 0),setLoading(!0),lastRequestedOptionsJson.current=void 0)},[agent$1]),useEffect(()=>{if(capabilities&&!capabilities.ui||!agent$1){setSchema(void 0),setOptions$1(void 0),setError$1(void 0),lastRequestedOptionsJson.current=void 0;return}let currentOptionsJson=options$1?JSON.stringify(options$1):``;if(lastRequestedOptionsJson.current===currentOptionsJson){setLoading(!1),setError$1(void 0);return}let controller=new AbortController;return setLoading(!0),setError$1(void 0),agent$1.ui(options$1?{selectedOptions:options$1}:{},{signal:controller.signal}).then(newSchema=>{if(!newSchema){setSchema(void 0);return}controller.signal.aborted||(setSchema(prev=>JSON.stringify(prev)===JSON.stringify(newSchema)?prev:newSchema),lastRequestedOptionsJson.current=currentOptionsJson)}).catch(err=>{controller.signal.aborted||setError$1(err instanceof Error?err:Error(String(err)))}).finally(()=>{setLoading(!1)}),()=>{controller.abort()}},[agent$1,capabilities,options$1]);let setOption$1=useCallback((id,value)=>{updateOptions({[id]:value})},[updateOptions]);return{schema,options:options$1,setOption:setOption$1,loading,error:error$22}}function L(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var O$1=L();function H(l$1){O$1=l$1}var E$1={exec:()=>null};function h$2(l$1,e$1=``){let t$1=typeof l$1==`string`?l$1:l$1.source,n$2={replace:(r$2,i$4)=>{let s$3=typeof i$4==`string`?i$4:i$4.source;return s$3=s$3.replace(m$1.caret,`$1`),t$1=t$1.replace(r$2,s$3),n$2},getRegex:()=>new RegExp(t$1,e$1)};return n$2}var m$1={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:l$1=>RegExp(`^( {0,3}${l$1})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}#`),htmlBeginRegex:l$1=>RegExp(`^ {0,${Math.min(3,l$1-1)}}<(?:[a-z].*>|!--)`,`i`)},xe=/^(?:[ \t]*(?:\n|$))+/,be=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Re=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,C=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Oe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,j=/(?:[*+-]|\d{1,9}[.)])/,se=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ie=h$2(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Te=h$2(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),F=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,we=/^[^\n]+/,Q=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ye=h$2(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Q).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Pe=h$2(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,j).getRegex(),v=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,U=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Se=h$2(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,U).replace(`tag`,v).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oe=h$2(F).replace(`hr`,C).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,v).getRegex(),$e=h$2(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,oe).getRegex(),K={blockquote:$e,code:be,def:ye,fences:Re,heading:Oe,hr:C,html:Se,lheading:ie,list:Pe,newline:xe,paragraph:oe,table:E$1,text:we},re=h$2(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,C).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,v).getRegex(),_e={...K,lheading:Te,table:re,paragraph:h$2(F).replace(`hr`,C).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,re).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,v).getRegex()},Le={...K,html:h$2(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,U).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:E$1,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:h$2(F).replace(`hr`,C).replace(`heading`,` *#{1,6} *[^
|
|
249
249
|
]`).replace(`lheading`,ie).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},Me=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ze=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ae=/^( {2,}|\\)\n(?!\s*$)/,Ae=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,D=/[\p{P}\p{S}]/u,W=/[\s\p{P}\p{S}]/u,le=/[^\s\p{P}\p{S}]/u,Ee=h$2(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,W).getRegex(),ue=/(?!~)[\p{P}\p{S}]/u,Ce=/(?!~)[\s\p{P}\p{S}]/u,Ie=/(?:[^\s\p{P}\p{S}]|~)/u,Be=/\[[^\[\]]*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)|`[^`]*?`|<(?! )[^<>]*?>/g,pe=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,qe=h$2(pe,`u`).replace(/punct/g,D).getRegex(),ve=h$2(pe,`u`).replace(/punct/g,ue).getRegex(),ce=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,De=h$2(ce,`gu`).replace(/notPunctSpace/g,le).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Ze=h$2(ce,`gu`).replace(/notPunctSpace/g,Ie).replace(/punctSpace/g,Ce).replace(/punct/g,ue).getRegex(),Ge=h$2(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,le).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),He=h$2(/\\(punct)/,`gu`).replace(/punct/g,D).getRegex(),Ne=h$2(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),je=h$2(U).replace(`(?:-->|$)`,`-->`).getRegex(),Fe=h$2(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,je).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),q$1=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,Qe=h$2(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace(`label`,q$1).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),he=h$2(/^!?\[(label)\]\[(ref)\]/).replace(`label`,q$1).replace(`ref`,Q).getRegex(),de=h$2(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Q).getRegex(),Ue=h$2(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,he).replace(`nolink`,de).getRegex(),X={_backpedal:E$1,anyPunctuation:He,autolink:Ne,blockSkip:Be,br:ae,code:ze,del:E$1,emStrongLDelim:qe,emStrongRDelimAst:De,emStrongRDelimUnd:Ge,escape:Me,link:Qe,nolink:de,punctuation:Ee,reflink:he,reflinkSearch:Ue,tag:Fe,text:Ae,url:E$1},Ke={...X,link:h$2(/^!?\[(label)\]\((.*?)\)/).replace(`label`,q$1).getRegex(),reflink:h$2(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,q$1).getRegex()},N={...X,emStrongRDelimAst:Ze,emStrongLDelim:ve,url:h$2(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,`i`).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},We={...N,br:h$2(ae).replace(`{2,}`,`*`).getRegex(),text:h$2(N.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},I$1={normal:K,gfm:_e,pedantic:Le},M={normal:X,gfm:N,breaks:We,pedantic:Ke},Xe={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},ke=l$1=>Xe[l$1];function w$1(l$1,e$1){if(e$1){if(m$1.escapeTest.test(l$1))return l$1.replace(m$1.escapeReplace,ke)}else if(m$1.escapeTestNoEncode.test(l$1))return l$1.replace(m$1.escapeReplaceNoEncode,ke);return l$1}function J(l$1){try{l$1=encodeURI(l$1).replace(m$1.percentDecode,`%`)}catch{return null}return l$1}function V$1(l$1,e$1){let t$1=l$1.replace(m$1.findPipe,(i$4,s$3,o$2)=>{let a$3=!1,u$17=s$3;for(;--u$17>=0&&o$2[u$17]===`\\`;)a$3=!a$3;return a$3?`|`:` |`}),n$2=t$1.split(m$1.splitPipe),r$2=0;if(n$2[0].trim()||n$2.shift(),n$2.length>0&&!n$2.at(-1)?.trim()&&n$2.pop(),e$1)if(n$2.length>e$1)n$2.splice(e$1);else for(;n$2.length<e$1;)n$2.push(``);for(;r$2<n$2.length;r$2++)n$2[r$2]=n$2[r$2].trim().replace(m$1.slashPipe,`|`);return n$2}function z$3(l$1,e$1,t$1){let n$2=l$1.length;if(n$2===0)return``;let r$2=0;for(;r$2<n$2;){let i$4=l$1.charAt(n$2-r$2-1);if(i$4===e$1&&!t$1)r$2++;else if(i$4!==e$1&&t$1)r$2++;else break}return l$1.slice(0,n$2-r$2)}function ge(l$1,e$1){if(l$1.indexOf(e$1[1])===-1)return-1;let t$1=0;for(let n$2=0;n$2<l$1.length;n$2++)if(l$1[n$2]===`\\`)n$2++;else if(l$1[n$2]===e$1[0])t$1++;else if(l$1[n$2]===e$1[1]&&(t$1--,t$1<0))return n$2;return t$1>0?-2:-1}function fe(l$1,e$1,t$1,n$2,r$2){let i$4=e$1.href,s$3=e$1.title||null,o$2=l$1[1].replace(r$2.other.outputLinkReplace,`$1`);n$2.state.inLink=!0;let a$3={type:l$1[0].charAt(0)===`!`?`image`:`link`,raw:t$1,href:i$4,title:s$3,text:o$2,tokens:n$2.inlineTokens(o$2)};return n$2.state.inLink=!1,a$3}function Je(l$1,e$1,t$1){let n$2=l$1.match(t$1.other.indentCodeCompensation);if(n$2===null)return e$1;let r$2=n$2[1];return e$1.split(`
|
|
250
250
|
`).map(i$4=>{let s$3=i$4.match(t$1.other.beginningSpace);if(s$3===null)return i$4;let[o$2]=s$3;return o$2.length>=r$2.length?i$4.slice(r$2.length):i$4}).join(`
|
|
251
251
|
`)}var y$2=class{options;rules;lexer;constructor(e$1){this.options=e$1||O$1}space(e$1){let t$1=this.rules.block.newline.exec(e$1);if(t$1&&t$1[0].length>0)return{type:`space`,raw:t$1[0]}}code(e$1){let t$1=this.rules.block.code.exec(e$1);if(t$1){let n$2=t$1[0].replace(this.rules.other.codeRemoveIndent,``);return{type:`code`,raw:t$1[0],codeBlockStyle:`indented`,text:this.options.pedantic?n$2:z$3(n$2,`
|
|
@@ -1476,7 +1476,13 @@ The structure MUST be as follows:
|
|
|
1476
1476
|
**Decision Rules (apply in order):**
|
|
1477
1477
|
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.
|
|
1478
1478
|
2. **Question to User:** If your last response ends with a direct question specifically addressed *to the user*, then the **'user'** should speak next.
|
|
1479
|
-
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$22){return console.warn(`Failed to talk to Gemini endpoint when seeing if conversation should continue.`,error$22),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(err){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$4,j$2,tmp;for(i$4=0;i$4<str2Len;++i$4)prevRow[i$4]=i$4,str2Char[i$4]=str2.charCodeAt(i$4);prevRow[str2Len]=str2Len;var strCmp;if(useCollator)for(i$4=0;i$4<str1Len;++i$4){for(nextCol=i$4+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=collator.compare(str1.charAt(i$4),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$4=0;i$4<str1Len;++i$4){for(nextCol=i$4+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=str1.charCodeAt(i$4)===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$1(require_levenshtein(),1),ChatRecordingService=class{conversationFile=null;cachedLastConvData=null;sessionId;projectHash;queuedThoughts=[];queuedTokens=null;config;constructor(config){this.config=config,this.sessionId=config.getSessionId(),this.projectHash=getProjectHash(config.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$22){throw console.error(`Error initializing chat recording service:`,error$22),error$22}}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$22){throw console.error(`Error saving message:`,error$22),error$22}}recordThought(thought){if(this.conversationFile)try{this.queuedThoughts.push({...thought,timestamp:new Date().toISOString()})}catch(error$22){throw console.error(`Error saving thought:`,error$22),error$22}}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$22){throw console.error(`Error updating message tokens:`,error$22),error$22}}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,this.queuedTokens=null),conversation.messages.push(newMsg)}else{lastMsg.toolCalls||(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$22){throw console.error(`Error adding tool call to message:`,error$22),error$22}}readConversation(){try{return this.cachedLastConvData=fs.readFileSync(this.conversationFile,`utf8`),JSON.parse(this.cachedLastConvData)}catch(error$22){if(error$22.code!==`ENOENT`)throw console.error(`Error reading conversation file:`,error$22),error$22;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$22){throw console.error(`Error writing conversation file:`,error$22),error$22}}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$22){throw console.error(`Error deleting session:`,error$22),error$22}}},TelemetryTarget;(function(TelemetryTarget$1){TelemetryTarget$1.GCP=`gcp`,TelemetryTarget$1.LOCAL=`local`})(TelemetryTarget||(TelemetryTarget={}));const DEFAULT_TELEMETRY_TARGET=TelemetryTarget.LOCAL,DEFAULT_OTLP_ENDPOINT=`http://localhost:4317`;async function handleFallback(config,failedModel,authType,error$22){if(authType!==AuthType.LOGIN_WITH_GOOGLE)return null;let fallbackModel=DEFAULT_GEMINI_FLASH_MODEL;if(failedModel===fallbackModel)return null;let fallbackModelHandler=config.fallbackModelHandler;if(typeof fallbackModelHandler!=`function`)return null;try{let intent=await fallbackModelHandler(failedModel,fallbackModel,error$22);switch(intent){case`retry`:return activateFallbackMode(config,authType),!0;case`stop`:return activateFallbackMode(config,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,authType){config.isInFallbackMode()||(config.setFallbackMode(!0),authType&&logFlashFallback(config,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||(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$4=0;for(;i$4<length;)if(comprehensiveHistory[i$4].role===`user`)curatedHistory.push(comprehensiveHistory[i$4]),i$4++;else{let modelOutput=[],isValid=!0;for(;i$4<length&&comprehensiveHistory[i$4].role===`model`;)modelOutput.push(comprehensiveHistory[i$4]),isValid&&!isValidContent(comprehensiveHistory[i$4])&&(isValid=!1),i$4++;isValid&&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,generationConfig={},history=[]){this.config=config,this.generationConfig=generationConfig,this.history=history,validateHistory(history),this.chatRecordingService=new ChatRecordingService(config),this.chatRecordingService.initialize()}setSystemInstruction(sysInstr){this.generationConfig.systemInstruction=sysInstr}async sendMessageStream(params,prompt_id){await this.sendPromise;let streamDoneResolver,streamDonePromise=new Promise(resolve$9=>{streamDoneResolver=resolve$9});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$8=await self$1.makeApiCallAndProcessStream(requestContents,params,prompt_id,userContent);for await(let chunk$1 of stream$8)yield{type:StreamEventType.CHUNK,value:chunk$1};lastError=null;break}catch(error$22){lastError=error$22;let isContentError=error$22 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$22)=>currentAttemptModel?await handleFallback(this.config,currentAttemptModel,authType,error$22):null,streamResponse=await retryWithBackoff(apiCall,{shouldRetry:error$22=>{if(error$22 instanceof Error&&error$22.message){if(isSchemaDepthError(error$22.message))return!1;if(error$22.message.includes(`429`)||error$22.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=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$3){this.generationConfig.tools=tools$3}async maybeIncludeSchemaDepthContext(error$22){if(isSchemaDepthError(error$22.message)||isInvalidArgumentError(error$22.message)){let tools$3=this.config.getToolRegistry().getAllTools(),cyclicSchemaTools=[];for(let tool$3 of tools$3)(tool$3.schema.parametersJsonSchema&&hasCycleInSchema(tool$3.schema.parametersJsonSchema)||tool$3.schema.parameters&&hasCycleInSchema(tool$3.schema.parameters))&&cyclicSchemaTools.push(tool$3.displayName);if(cyclicSchemaTools.length>0){let extraDetails=`
|
|
1479
|
+
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$22){return console.warn(`Failed to talk to Gemini endpoint when seeing if conversation should continue.`,error$22),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(err){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$4,j$2,tmp;for(i$4=0;i$4<str2Len;++i$4)prevRow[i$4]=i$4,str2Char[i$4]=str2.charCodeAt(i$4);prevRow[str2Len]=str2Len;var strCmp;if(useCollator)for(i$4=0;i$4<str1Len;++i$4){for(nextCol=i$4+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=collator.compare(str1.charAt(i$4),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$4=0;i$4<str1Len;++i$4){for(nextCol=i$4+1,j$2=0;j$2<str2Len;++j$2)curCol=nextCol,strCmp=str1.charCodeAt(i$4)===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$1(require_levenshtein(),1),ChatRecordingService=class{conversationFile=null;cachedLastConvData=null;sessionId;projectHash;queuedThoughts=[];queuedTokens=null;config;constructor(config){this.config=config,this.sessionId=config.getSessionId(),this.projectHash=getProjectHash(config.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$22){throw console.error(`Error initializing chat recording service:`,error$22),error$22}}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$22){throw console.error(`Error saving message:`,error$22),error$22}}recordThought(thought){if(this.conversationFile)try{this.queuedThoughts.push({...thought,timestamp:new Date().toISOString()})}catch(error$22){throw console.error(`Error saving thought:`,error$22),error$22}}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$22){throw console.error(`Error updating message tokens:`,error$22),error$22}}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,this.queuedTokens=null),conversation.messages.push(newMsg)}else{lastMsg.toolCalls||(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$22){throw console.error(`Error adding tool call to message:`,error$22),error$22}}readConversation(){try{return this.cachedLastConvData=fs.readFileSync(this.conversationFile,`utf8`),JSON.parse(this.cachedLastConvData)}catch(error$22){if(error$22.code!==`ENOENT`)throw console.error(`Error reading conversation file:`,error$22),error$22;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$22){throw console.error(`Error writing conversation file:`,error$22),error$22}}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$22){throw console.error(`Error deleting session:`,error$22),error$22}}};init_esm$10();
|
|
1480
|
+
/**
|
|
1481
|
+
* @license
|
|
1482
|
+
* Copyright 2025 Google LLC
|
|
1483
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
1484
|
+
*/
|
|
1485
|
+
var TelemetryTarget;(function(TelemetryTarget$1){TelemetryTarget$1.GCP=`gcp`,TelemetryTarget$1.LOCAL=`local`})(TelemetryTarget||(TelemetryTarget={}));const DEFAULT_TELEMETRY_TARGET=TelemetryTarget.LOCAL,DEFAULT_OTLP_ENDPOINT=`http://localhost:4317`;async function handleFallback(config,failedModel,authType,error$22){if(authType!==AuthType.LOGIN_WITH_GOOGLE)return null;let fallbackModel=DEFAULT_GEMINI_FLASH_MODEL;if(failedModel===fallbackModel)return null;let fallbackModelHandler=config.fallbackModelHandler;if(typeof fallbackModelHandler!=`function`)return null;try{let intent=await fallbackModelHandler(failedModel,fallbackModel,error$22);switch(intent){case`retry`:return activateFallbackMode(config,authType),!0;case`stop`:return activateFallbackMode(config,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,authType){config.isInFallbackMode()||(config.setFallbackMode(!0),authType&&logFlashFallback(config,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||(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$4=0;for(;i$4<length;)if(comprehensiveHistory[i$4].role===`user`)curatedHistory.push(comprehensiveHistory[i$4]),i$4++;else{let modelOutput=[],isValid=!0;for(;i$4<length&&comprehensiveHistory[i$4].role===`model`;)modelOutput.push(comprehensiveHistory[i$4]),isValid&&!isValidContent(comprehensiveHistory[i$4])&&(isValid=!1),i$4++;isValid&&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,generationConfig={},history=[]){this.config=config,this.generationConfig=generationConfig,this.history=history,validateHistory(history),this.chatRecordingService=new ChatRecordingService(config),this.chatRecordingService.initialize()}setSystemInstruction(sysInstr){this.generationConfig.systemInstruction=sysInstr}async sendMessageStream(params,prompt_id){await this.sendPromise;let streamDoneResolver,streamDonePromise=new Promise(resolve$9=>{streamDoneResolver=resolve$9});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$8=await self$1.makeApiCallAndProcessStream(requestContents,params,prompt_id,userContent);for await(let chunk$1 of stream$8)yield{type:StreamEventType.CHUNK,value:chunk$1};lastError=null;break}catch(error$22){lastError=error$22;let isContentError=error$22 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$22)=>currentAttemptModel?await handleFallback(this.config,currentAttemptModel,authType,error$22):null,streamResponse=await retryWithBackoff(apiCall,{shouldRetry:error$22=>{if(error$22 instanceof Error&&error$22.message){if(isSchemaDepthError(error$22.message))return!1;if(error$22.message.includes(`429`)||error$22.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=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$3){this.generationConfig.tools=tools$3}async maybeIncludeSchemaDepthContext(error$22){if(isSchemaDepthError(error$22.message)||isInvalidArgumentError(error$22.message)){let tools$3=this.config.getToolRegistry().getAllTools(),cyclicSchemaTools=[];for(let tool$3 of tools$3)(tool$3.schema.parametersJsonSchema&&hasCycleInSchema(tool$3.schema.parametersJsonSchema)||tool$3.schema.parameters&&hasCycleInSchema(tool$3.schema.parameters))&&cyclicSchemaTools.push(tool$3.displayName);if(cyclicSchemaTools.length>0){let extraDetails=`
|
|
1480
1486
|
|
|
1481
1487
|
This error was probably caused by cyclic schema references in one of the following tools, try disabling them with excludeTools:
|
|
1482
1488
|
|
|
@@ -1795,7 +1801,7 @@ ${user}:`]}}function getResponseMetadata2({id,model:model$1,created}){return{id:
|
|
|
1795
1801
|
|
|
1796
1802
|
Authenticate with "blink login".
|
|
1797
1803
|
|
|
1798
|
-
Feel free to use other providers like OpenAI, Anthropic, or Google.`);let baseURL=process.env.INTERNAL_BLINK_API_SERVER_URL??`https://blink.so`,gatewayURL=new URL(`/api/ai-gateway/v1`,baseURL);return createOpenAICompatible({name:`Blink Gateway`,baseURL:gatewayURL.toString(),apiKey:token$1})(model$1)};function
|
|
1804
|
+
Feel free to use other providers like OpenAI, Anthropic, or Google.`);let baseURL=process.env.INTERNAL_BLINK_API_SERVER_URL??`https://blink.so`,gatewayURL=new URL(`/api/ai-gateway/v1`,baseURL);return createOpenAICompatible({name:`Blink Gateway`,baseURL:gatewayURL.toString(),apiKey:token$1})(model$1)};function createGithubApp(manifest,organization,onComplete){let serverUrl,server=http.createServer(createServerAdapter(async req$1=>{let url$5=new URL(req$1.url,serverUrl);if(url$5.pathname!==`/`)return new Response(`Not found`,{status:404});let code$1=url$5.searchParams.get(`code`);if(code$1)try{let res=await fetch(`https://api.github.com/app-manifests/${code$1}/conversions`,{method:`POST`,headers:{Accept:`application/vnd.github+json`,"User-Agent":`blink.so`,"X-GitHub-Api-Version":`2022-11-28`}});if(!res.ok){let errorText=await res.text();throw Error(`GitHub API error: ${res.status} ${res.statusText}${errorText?` - ${errorText}`:``}`)}let data$2=await res.json();return await onComplete?.(null,data$2),new Response(`GitHub App created successfully! Return to your terminal to continue.`,{headers:{"Content-Type":`text/plain`}})}catch(error$22){let err=error$22 instanceof Error?error$22:Error(String(error$22));try{await onComplete?.(err,null)}catch(error$23){err=error$23 instanceof Error?error$23:Error(String(error$23))}let errorMessage=err.message;return new Response(`Error: ${errorMessage}\n\nReturn to your terminal for more details.`,{status:500,headers:{"Content-Type":`text/plain`}})}finally{server.close()}let manifestWithRedirect={...manifest,redirect_url:serverUrl},baseUrl=organization?`https://github.com/organizations/${organization}/settings/apps/new`:`https://github.com/settings/apps/new`,html$1=`<!DOCTYPE html>
|
|
1799
1805
|
<html>
|
|
1800
1806
|
<body>
|
|
1801
1807
|
<form id="f" method="POST" action="${baseUrl}">
|
|
@@ -1849,18 +1855,30 @@ You assist developers with:
|
|
|
1849
1855
|
Be concise, direct, and to the point.
|
|
1850
1856
|
Avoid whitespace before messages, after messages, and between lines - the user is reading this in a terminal, there is not much space.
|
|
1851
1857
|
NO emojis unless the User explicitly asks for them.
|
|
1852
|
-
If a task appears incomplete or ambiguous, **pause and ask the User** rather than guessing or marking "done".
|
|
1853
|
-
Prefer accuracy over reassurance; confirm facts with tool calls instead of assuming the User is right.
|
|
1854
|
-
If you face an architectural, tooling, or package-manager choice, **ask the User's preference first**.
|
|
1855
|
-
Default to the project's existing package manager / tooling; never substitute without confirmation.
|
|
1856
1858
|
You MUST avoid text before/after your response, such as "The answer is" or "Short answer:", "Here is the content of the file..." or "Based on the information provided, the answer is..." or "Here is what I will do next...".
|
|
1857
1859
|
Mimic the style of the User's messages.
|
|
1858
1860
|
Do not remind the User you are happy to help.
|
|
1859
|
-
Do not inherently assume the User is correct; they may be making assumptions.
|
|
1860
|
-
If you are not confident in your answer, DO NOT provide an answer. Use your tools to collect more information, or ask the User for help.
|
|
1861
1861
|
Do not act with sycophantic flattery or over-the-top enthusiasm.
|
|
1862
1862
|
NEVER create SETUP.md files or README.md files - ALWAYS guide the user through the setup process.
|
|
1863
1863
|
|
|
1864
|
+
**Critical: Understand Before Acting**
|
|
1865
|
+
|
|
1866
|
+
Before implementing any feature or integration:
|
|
1867
|
+
1. **Research what's actually possible** - Use web search and investigate APIs/SDKs to understand capabilities and limitations
|
|
1868
|
+
2. **Ask clarifying questions** - Ensure you understand what the user actually wants to achieve
|
|
1869
|
+
3. **Validate your approach** - If you're uncertain whether a particular API/SDK supports the user's use case, research first or ask
|
|
1870
|
+
|
|
1871
|
+
Examples of when to stop and ask:
|
|
1872
|
+
• User says "make me a Zoom bot" - Does this mean webhook-based notifications, or joining meetings with real-time transcription? Research Zoom's capabilities first, then ask what they want.
|
|
1873
|
+
• User says "add GitHub integration" - Do they want webhooks for real-time notifications, or just querying? Ask their use case.
|
|
1874
|
+
• User says "connect to my database" - Which database? What operations? Ask specifics.
|
|
1875
|
+
|
|
1876
|
+
**Prefer accuracy over speed.** Taking 30 seconds to ask a clarifying question is better than implementing the wrong thing.
|
|
1877
|
+
|
|
1878
|
+
Do not inherently assume the User is correct; they may be making assumptions about what's possible.
|
|
1879
|
+
If you face an architectural, tooling, or package-manager choice, **ask the User's preference first**.
|
|
1880
|
+
Default to the project's existing package manager / tooling; never substitute without confirmation.
|
|
1881
|
+
|
|
1864
1882
|
Here are examples to demonstrate appropriate communication style and level of verbosity:
|
|
1865
1883
|
|
|
1866
1884
|
<example>
|
|
@@ -2132,6 +2150,26 @@ if (slackbot.isOAuthRequest(request)) {
|
|
|
2132
2150
|
if (slackbot.isWebhook(request)) {
|
|
2133
2151
|
return slackbot.handleWebhook(request, context);
|
|
2134
2152
|
}
|
|
2153
|
+
|
|
2154
|
+
// Custom Tools
|
|
2155
|
+
tools: {
|
|
2156
|
+
my_custom_slack_tool: tool({
|
|
2157
|
+
// ...
|
|
2158
|
+
execute: async ({}) => {
|
|
2159
|
+
// Metadata for the last Slack message. If the chat isn't from Slack, this will be undefined.
|
|
2160
|
+
const metadata = await slackbot.findLastMessageMetadata(messages);
|
|
2161
|
+
if (!metadata) {
|
|
2162
|
+
throw new Error("This chat isn't from Slack!");
|
|
2163
|
+
}
|
|
2164
|
+
// Create a Slack API client for the last Slack message (this has thread and team context).
|
|
2165
|
+
const api = await slackbot.createClient(metadata);
|
|
2166
|
+
await api.chat.postMessage({
|
|
2167
|
+
channel: metadata.channel,
|
|
2168
|
+
text: "Hello, world!",
|
|
2169
|
+
});
|
|
2170
|
+
},
|
|
2171
|
+
}),
|
|
2172
|
+
}
|
|
2135
2173
|
\`\`\`
|
|
2136
2174
|
|
|
2137
2175
|
Requires env vars: \`SLACK_CLIENT_ID\`, \`SLACK_CLIENT_SECRET\`, \`SLACK_SIGNING_SECRET\`
|
|
@@ -2229,11 +2267,11 @@ Match the user's package manager (inferred from lock files or \`process.argv\`):
|
|
|
2229
2267
|
</capabilities>
|
|
2230
2268
|
|
|
2231
2269
|
<communication_style>
|
|
2232
|
-
• Be
|
|
2233
|
-
• Be
|
|
2234
|
-
• Be
|
|
2235
|
-
•
|
|
2236
|
-
•
|
|
2270
|
+
• Be thorough: Research capabilities, read files, verify assumptions before acting
|
|
2271
|
+
• Be accurate: Understand requirements fully before implementing
|
|
2272
|
+
• Be concise: Communicate clearly without unnecessary preambles or verbosity
|
|
2273
|
+
• When uncertain: Ask clarifying questions rather than guessing
|
|
2274
|
+
• When clear: Implement directly without asking for permission on obvious next steps
|
|
2237
2275
|
</communication_style>
|
|
2238
2276
|
|
|
2239
2277
|
<common_tasks>
|
|
@@ -2250,16 +2288,15 @@ Debugging Issues:
|
|
|
2250
2288
|
• Read the agent code
|
|
2251
2289
|
• Identify the issue from error messages or test behavior
|
|
2252
2290
|
• Fix the code
|
|
2253
|
-
•
|
|
2291
|
+
• Briefly explain what was wrong
|
|
2254
2292
|
|
|
2255
2293
|
Adding Features:
|
|
2256
2294
|
|
|
2257
|
-
•
|
|
2258
|
-
•
|
|
2259
|
-
•
|
|
2260
|
-
•
|
|
2261
|
-
•
|
|
2262
|
-
• Suggest testing approach
|
|
2295
|
+
• **First**: Ask clarifying questions to understand the actual use case
|
|
2296
|
+
• **Research**: Investigate which APIs/SDKs support the requirements (use web search if needed)
|
|
2297
|
+
• **Validate**: Confirm your approach will work before starting implementation
|
|
2298
|
+
• **Then**: Install dependencies, modify agent code, update environment variables
|
|
2299
|
+
• **Finally**: Suggest how the user can test the new feature
|
|
2263
2300
|
|
|
2264
2301
|
Fixing Errors:
|
|
2265
2302
|
|
|
@@ -2281,4 +2318,4 @@ Fixing Errors:
|
|
|
2281
2318
|
|
|
2282
2319
|
---
|
|
2283
2320
|
|
|
2284
|
-
Remember: You are here to make building Blink agents fast, easy, and delightful. Be the expert pair programmer the user needs.`;function useEditAgent(options$1){let[client,setClient]=useState(void 0),[error$22,setError$1]=useState(void 0),editAgentRef=useRef(void 0);return useEffect(()=>{let controller=new AbortController;return(async()=>{editAgentRef.current=createEditAgent({directory:options$1.directory});let port$1=await getRandomPort(),server=editAgentRef.current.agent.serve({port:port$1,host:`127.0.0.1`,apiUrl:options$1.apiServerUrl});controller.signal.addEventListener(`abort`,()=>{try{server.close()}catch{}});let editClient=new Client({baseUrl:`http://127.0.0.1:${port$1}`});for(;!controller.signal.aborted;){try{await editClient.health();break}catch(err){}await new Promise(resolve$9=>setTimeout(resolve$9,100))}if(controller.signal.aborted)throw controller.signal.reason;setClient(editClient)})().catch(err=>{setError$1(err instanceof Error?err:Error(String(err)))}),()=>controller.abort()},[options$1.directory,options$1.apiServerUrl]),useMemo(()=>({client,error:error$22,setUserAgentUrl:url$5=>{editAgentRef.current?.setUserAgentUrl(url$5)}}),[client,error$22])}async function getRandomPort(){let server=createServer();return new Promise((resolve$9,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$9(port$1)}).on(`error`,err=>{reject(err)})}).finally(()=>{server.close()})}function useServerChat(server,id){let[chat$1,setChat]=useState(()=>server.upsertChat(id));return useEffect(()=>{setChat(server.upsertChat(id));let disposable=server.onChatChanged(chat$2=>{if(chat$2.id===id)return setChat(chat$2)});return()=>disposable.dispose()},[server,id]),chat$1}function useTerminalSize(){let{stdout:stdout$1}=use_stdout_default(),[size,setSize]=useState({columns:process.stdout.columns,rows:process.stdout.rows});return useEffect(()=>{if(!stdout$1||!stdout$1.isTTY)return;let handleResize=()=>{setSize({columns:stdout$1.columns,rows:stdout$1.rows})};return process.stdout.on(`resize`,handleResize),()=>{process.stdout.off(`resize`,handleResize)}},[stdout$1]),{columns:size.columns,rows:size.rows?size.rows-1:void 0}}async function start(element){let instance$1=render_default(element,{exitOnCtrlC:!1});await instance$1.waitUntilExit()}const colors={run:`#1f86ed`,edit:`#e8900e`};function startDev({directory}){return start(jsx(Root,{directory}))}const Root=({directory})=>{let size=useTerminalSize(),[mode,setMode]=useState(`run`),modeRef=useRef(`run`);useEffect(()=>{modeRef.current=mode},[mode]);let{error:buildError,status:buildStatus,result:buildResult,entry:entrypoint}=useBundler(directory),dotenv=useDotenv(directory),env$4=useMemo(()=>{let blinkToken=getAuthToken();return blinkToken?{...dotenv,BLINK_TOKEN:blinkToken}:dotenv},[dotenv]),server=useMemo(()=>createDevServer({port:0,dataDirectory:join$1(directory,`.blink`,`data`),sendMessages:async(request$2,signal)=>{if(!currentAgentRef.current)throw Error(`The agent has not been compiled yet.`);if(!currentChatIDRef.current)throw Error(`No chat selected.`);let messages$1=request$2.messages;return await currentAgentRef.current.chat({messages:messages$1.filter(m$2=>m$2.metadata?.ephemeral!==!0),chat:{key:currentChatIDRef.current}},{signal})},serializeChat:chat$2=>({...chat$2,messages:chat$2.messages.filter(m$2=>m$2.metadata?.ephemeral!==!0)})}),[]),{agent:agent$1,logs:logs$1,error:agentError,capabilities}=useAgent({buildResult,env:env$4,apiServerUrl:server.url}),{client:editAgent,error:editAgentError,setUserAgentUrl}=useEditAgent({directory,apiServerUrl:server.url}),currentAgentRef=useRef(void 0);useEffect(()=>{agent$1&&setUserAgentUrl(agent$1.baseUrl),mode===`run`?agent$1?currentAgentRef.current=agent$1:(currentAgentRef.current=void 0,server.stopChat(chat$1.id)):mode===`edit`&&(editAgent?currentAgentRef.current=editAgent:(currentAgentRef.current=void 0,server.stopChat(chat$1.id)))},[agent$1,editAgent,mode]);let devhookID=useMemo(()=>getDevhookID(directory),[directory]),devhook=useDevhook({id:devhookID,disabled:!capabilities?.request,onRequest:async request$2=>{if(!agent$1)throw Error(`No agent`);let requestURL=new URL(request$2.url),agentURL=new URL(agent$1.baseUrl);agentURL.pathname=requestURL.pathname,agentURL.search=requestURL.search;let response=await fetch(agentURL.toString(),request$2);return server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`webhook`,ephemeral:!0},parts:[{type:`text`,text:`method=${request$2.method} status=${response.status}`}]}),response}}),[chatID,setChatID]=useState(`default`),currentChatIDRef=useRef(void 0);useEffect(()=>{currentChatIDRef.current=chatID},[chatID]);let chat$1=useServerChat(server,chatID),[chatIDs,setChatIDs]=useState(()=>server.listChats()),currentChatIDsRef=useRef(chatIDs);useEffect(()=>{currentChatIDsRef.current=chatIDs},[chatIDs]),useEffect(()=>{let disposable=server.onChatChanged(chat$2=>{!currentChatIDsRef.current.includes(chat$2.id)&¤tChatIDRef.current&&(setChatID(chat$2.id),server.upsertChatMessage(chat$2.id,{role:`assistant`,metadata:{type:`chat-created`,ephemeral:!0},parts:[{type:`text`,text:`This chat has just been created: ${chat$2.id}. We automatically switched you to it!`}]})),setChatIDs(prev=>{let newChats=[...prev];return newChats.includes(chat$2.id)?prev:(newChats.push(chat$2.id),newChats)})});return()=>{disposable.dispose()}},[server]);let{exit}=use_app_default(),[exitArmed,setExitArmed]=useState(!1),exitTimerRef=useRef(void 0);useEffect(()=>()=>{exitTimerRef.current&&clearTimeout(exitTimerRef.current)},[]),use_input_default((input,key)=>{if(key.ctrl&&input.toLowerCase()===`c`){if(exitArmed){exit();return}setExitArmed(!0),exitTimerRef.current&&clearTimeout(exitTimerRef.current),exitTimerRef.current=setTimeout(()=>setExitArmed(!1),2e3)}});let lastReportedKeys=useRef(void 0);useEffect(()=>{let keys=Object.keys(env$4);if(keys.length===lastReportedKeys.current||lastReportedKeys.current===void 0)return;lastReportedKeys.current=keys.length;let keysText=keys.map(key=>source_default.dim(key)).join(`, `);keysText.length===0&&(keysText=source_default.dim(`(none)`));let text=`Loaded .env.local: `+keysText;server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`info`,ephemeral:!0},parts:[{type:`text`,text}]})},[env$4]);let lastModeRef=useRef(mode),lastBuildStatusRef=useRef(buildStatus),lastAgentRef=useRef(agent$1),lastEditAgentRef=useRef(editAgent);useEffect(()=>{!capabilities?.request||devhook.status!==`connected`||server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`info`,ephemeral:!0},parts:[{type:`text`,text:`Send webhooks from anywhere: https://${devhook.id}.dev.blink.host`}]})},[capabilities?.request,devhook.status]);let lastLogsLength=useRef(0);useEffect(()=>{if(logs$1.length===lastLogsLength.current)return;let currentLength=lastLogsLength.current;for(let log$9 of logs$1.slice(currentLength))server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`runtime-log`,level:log$9.level,ephemeral:!0},parts:[{type:`text`,text:log$9.message}]});lastLogsLength.current=logs$1.length},[logs$1]);let keymaps=useMemo(()=>({"⏎":`send`,"Ctrl+E":`toggle mode`,"Ctrl+C":`quit`,"[Escape]":`stop streaming`}),[]),keybindSuggestion=useMemo(()=>{if(exitArmed)return`Ctrl+C again to quit`;if(chat$1.status===`streaming`)return`Press [Escape] to stop the agent!`},[exitArmed,chat$1.status]),needsApproval=useMemo(()=>{let lastMessage=chat$1.messages.findLast(message=>!(message.role!==`assistant`||message.metadata&&message.metadata.ephemeral));if(!lastMessage||lastMessage.role!==`assistant`)return;let parts=lastMessage.parts.filter(isToolOrDynamicToolUIPart);if(parts.length===0)return;let should=parts.some(part=>isToolApprovalOutput(part.output)&&part.output.outcome===`pending`);if(should)return lastMessage},[chat$1.messages]),{write:write$1}=use_stdout_default(),[epoch,setEpoch]=useState(0),resetTerminal=useCallback(()=>{write$1(`\x1Bc`),write$1(`\x1B[?25l`),setEpoch(prev=>prev+1)},[write$1]),refreshMessages=useCallback(()=>{setEpoch(prev=>prev+1)},[]),lastChatIDRef=useRef(void 0);useEffect(()=>{lastChatIDRef.current!==chat$1.id&&(lastChatIDRef.current&&resetTerminal(),lastChatIDRef.current=chat$1.id)},[chat$1.id,resetTerminal]);let initialSizeRef=useRef(size);useEffect(()=>{(initialSizeRef.current.columns!==size.columns||initialSizeRef.current.rows!==size.rows)&&(resetTerminal(),initialSizeRef.current=size)},[size.columns,size.rows]);let{schema:optionsSchema,options:selectedOptions,error:optionsError,setOption:setOption$1}=useOptions({agent:currentAgentRef.current,capabilities,messages:chat$1.messages}),optionCommand=useMemo(()=>{if(optionsSchema)return{name:`option`,description:`Adjust your agent's options.`,action:()=>{},completion:async()=>Object.keys(optionsSchema),subcommands:Object.entries(optionsSchema).map(([key,value])=>({name:key,description:value.label??``,action:args=>{setOption$1(key,args)},completion:async partialArg=>value.values.map(v$1=>v$1.id)}))}},[optionsSchema]);return useEffect(()=>{if(buildError||agentError||chat$1.error||optionsError||editAgentError){let errors=[];buildError&&errors.push({type:`text`,text:`${buildError.message}`+(buildError.file?` (${buildError.file})`:``)}),agentError&&mode===`run`&&errors.push({type:`text`,text:agentError.message}),editAgentError&&mode===`edit`&&errors.push({type:`text`,text:`Edit agent error: ${editAgentError.message}`}),chat$1.error&&errors.push({type:`text`,text:`Chat error: ${chat$1.error.message}, ${chat$1.error.stack}`}),optionsError&&errors.push({type:`text`,text:`Options error: ${optionsError.message}`}),server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`error`,ephemeral:!0},parts:errors});return}if(mode===`run`&&(buildStatus===`building`||!agent$1)){(lastBuildStatusRef.current!==buildStatus||lastAgentRef.current!==agent$1||lastModeRef.current!==mode)&&server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`info`,ephemeral:!0},parts:[{type:`text`,text:`Compiling...`}]}),lastModeRef.current=mode,lastBuildStatusRef.current=buildStatus,lastAgentRef.current=agent$1;return}if(mode===`run`&&buildStatus===`success`&&agent$1){(lastBuildStatusRef.current!==buildStatus||lastAgentRef.current!==agent$1||lastModeRef.current!==mode)&&(lastModeRef.current===`edit`?server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`mode-change`,mode:`run`,ephemeral:!0},parts:[{type:`text`,text:`entering run mode`}]}):server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`success`,ephemeral:!0},parts:[{type:`text`,text:`Compiled in 100ms`}]})),lastModeRef.current=mode,lastBuildStatusRef.current=buildStatus,lastAgentRef.current=agent$1;return}if(mode===`edit`&&editAgent){(lastModeRef.current!==mode||lastEditAgentRef.current!==editAgent)&&server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`mode-change`,mode:`edit`,ephemeral:!0},parts:[{type:`text`,text:`entering edit mode`}]}),lastModeRef.current=mode,lastEditAgentRef.current=editAgent;return}lastModeRef.current=mode,lastBuildStatusRef.current=buildStatus,lastAgentRef.current=agent$1,lastEditAgentRef.current=editAgent},[buildError,chat$1.error,agentError,editAgentError,buildStatus,agent$1,editAgent,mode,optionsError]),jsxs(Fragment,{children:[jsx(Keybinds,{resetChat:()=>{server.resetChat(chat$1.id),resetTerminal()},stopStreaming:()=>{server.stopChat(chat$1.id)},toggleMode:()=>{server.stopChat(chat$1.id),setMode(prev=>prev===`run`?`edit`:`run`)}}),chat$1.error?jsx(Box_default,{marginTop:1,children:jsx(Text,{color:`red`,children:chat$1.error.message})}):null,jsxs(Box_default,{flexDirection:`column`,children:[jsx(Static,{items:[{},...chat$1.messages],children:(message,index)=>index===0?jsxs(Box_default,{flexDirection:`column`,marginBottom:1,children:[jsxs(Box_default,{children:[jsx(Text,{bold:!0,children:`blink■`}),jsx(Text,{color:`gray`,children:` agent development`})]}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsxs(Text,{color:`gray`,children:[`Edit `,entrypoint,` to hot-reload your agent.`]}),jsxs(Text,{color:`gray`,children:[`Run `,jsx(Text,{color:`blue`,children:`blink deploy`}),` to use your agent in the cloud.`]})]})]},`banner`):jsx(Message,{message,previousMessage:index>1?chat$1.messages.at(index-2):void 0,nextMessage:index<chat$1.messages.length-2?chat$1.messages.at(index+2):void 0,maxWidth:size.columns-2},message.id)},`messages-${chat$1.id}-${epoch}`),chat$1.streamingMessage?jsx(Message,{message:chat$1.streamingMessage,nextMessage:void 0,previousMessage:chat$1.messages.length>0?chat$1.messages.at(chat$1.messages.length-1):void 0,streaming:!0,maxWidth:size.columns-2},chat$1.streamingMessage.id):null,chat$1.status===`streaming`&&!chat$1.streamingMessage?jsx(AssistantWaitingPlaceholder,{maxWidth:size.columns-2}):null]}),jsx(Box_default,{flexDirection:`column`,marginTop:1,children:needsApproval?jsx(ApprovalInput,{onConfirm:approved=>{server.updateChatMessage(chat$1.id,{...needsApproval,parts:needsApproval.parts.map(part=>isToolUIPart(part)&&isToolApprovalOutput(part.output)?{...part,state:`output-available`,output:{...part.output,outcome:approved?`approved`:`rejected`},errorText:void 0}:part)}),refreshMessages(),server.runtime.chat.message(chat$1.id,void 0,{behavior:`interrupt`})},onCancel:()=>{}}):jsx(text_input_default,{borderColor:colors[mode],slashCommands:[{name:`help`,description:`Show help information`,action:()=>{console.log(``),console.log(source_default.bold(`How to Build Your Agent`)),console.log(``),console.log(`Blink has two modes that work together to help you build and test agents:`),console.log(``),console.log(source_default.hex(colors.edit).bold(` Edit Mode`)+` - AI helps you build your agent`),console.log(` • Describe the agent you want to build`),console.log(` • The AI will modify your agent code based on your instructions`),console.log(` • Changes are written to ${relative$1(process.cwd(),entrypoint)} and auto-reload`),console.log(``),console.log(source_default.blue.bold(` Run Mode`)+` - Use your agent`),console.log(` • Chat with your agent to see how it behaves`),console.log(` • Discover what works and what needs improvement`),console.log(``),console.log(source_default.bold(`The Development Loop:`)),console.log(` 1. Start in `+source_default.hex(colors.edit)(`Edit mode`)+` (Ctrl+E or /edit) and describe what your agent should do`),console.log(` Example: "Add a tool that can search the web"`),console.log(``),console.log(` 2. Switch to `+source_default.blue(`Run mode`)+` (Ctrl+E or /run) to use your agent`),console.log(` Try it out and see if it does what you expect`),console.log(``),console.log(` 3. Toggle back to `+source_default.hex(colors.edit)(`Edit mode`)+` to refine based on what you learned`),console.log(` The edit AI can see the entire chat history, including your conversations!`),console.log(` Example: "The search tool failed when I asked about X"`),console.log(``),console.log(` 4. Repeat until your agent works perfectly`),console.log(``),console.log(` 5. Deploy with `+source_default.bold(`blink deploy`)+` when ready`),console.log(``),console.log(source_default.dim(`Tip: Use /reset to start fresh, /new to create separate test chats`))}},{name:`reset`,altNames:[`clear`],description:`Reset the chat`,action:()=>{server.resetChat(chat$1.id),resetTerminal()}},{name:`switch`,description:`Switch to a different chat`,action:args=>{setChatID(args)},completion:async partialArg=>{let chats=server.listChats();return chats.map(chat$2=>chat$2)}},{name:`new`,description:`Create a new chat`,action:args=>{setChatID(args)}},{name:`edit`,description:`Switch to Edit mode (AI helps build your agent)`,action:()=>{server.stopChat(chat$1.id),setMode(`edit`)}},{name:`run`,description:`Switch to Run mode (use your agent)`,action:()=>{server.stopChat(chat$1.id),setMode(`run`)}},...optionCommand?[optionCommand]:[]],onSubmit:value=>(server.runtime.chat.message(chat$1.id,{role:`user`,parts:[{type:`text`,text:value}],metadata:{options:selectedOptions}},{behavior:`interrupt`}),!0),onLayoutChange:()=>{}})}),jsx(Box_default,{children:keybindSuggestion?jsxs(Fragment,{children:[jsx(Box_default,{marginLeft:2,gap:3,children:jsxs(Text,{color:`gray`,children:[`mode: `,jsx(Text,{color:colors[mode],children:mode})]})}),jsx(Spacer,{}),jsx(Text,{color:`yellow`,children:keybindSuggestion+` `})]}):jsxs(Fragment,{children:[jsxs(Box_default,{marginLeft:2,gap:3,children:[jsxs(Text,{color:`gray`,children:[`mode: `,jsx(Text,{color:colors[mode],children:mode})]}),jsxs(Text,{color:`gray`,children:[`chat: `,jsx(Text,{children:chat$1.id})]})]}),jsx(Spacer,{}),jsx(Box_default,{gap:3,marginRight:2,children:Object.entries(keymaps).map(([key,value])=>jsx(Text,{children:source_default.gray.dim(key+` `+value)},key))})]})}),optionsSchema&&selectedOptions?keybindSuggestion?jsx(Box_default,{height:1}):jsxs(Box_default,{marginLeft:2,justifyContent:`space-between`,flexDirection:`row`,children:[jsxs(Box_default,{flexDirection:`row`,gap:1,children:[jsx(Text,{color:`gray`,wrap:`truncate-end`,children:`options:`}),jsx(Box_default,{flexDirection:`row`,gap:1,children:Object.entries(selectedOptions).map(([key,value])=>{let option$1=optionsSchema[key];return option$1?jsxs(Box_default,{flexDirection:`row`,flexWrap:`wrap`,children:[jsxs(Text,{color:`gray`,wrap:`truncate-end`,children:[key,`=`]}),jsx(Text,{color:`gray`,wrap:`truncate-end`,children:value})]},key):null})})]}),jsx(Box_default,{marginRight:2,children:jsxs(Text,{color:`gray`,children:[`Set with `,jsx(Text,{color:`blue`,children:`/option`})]})})]}):null]})},ApprovalInput=({onConfirm,onCancel})=>{let[selected,setSelected]=useState(`yes`),handleConfirm=React.useCallback(approved=>{onConfirm(approved)},[onConfirm]),handleCancel=React.useCallback(()=>{onCancel()},[onCancel]);return use_input_default((input,key)=>{let lower=input.toLowerCase();if(key.escape){handleCancel();return}if(lower===`y`){handleConfirm(!0);return}if(lower===`n`){handleConfirm(!1);return}if(key.leftArrow||key.rightArrow||key.tab){setSelected(prev=>prev===`yes`?`no`:`yes`);return}key.return&&handleConfirm(selected===`yes`)}),jsxs(Box_default,{gap:2,flexDirection:`row`,children:[jsx(Text,{children:`Approve?`}),jsx(Box_default,{children:jsxs(Text,{children:[`[`,jsx(Text,{color:selected===`yes`?`green`:`gray`,bold:selected===`yes`,children:`Yes`}),`/`,jsx(Text,{color:selected===`no`?`red`:`gray`,bold:selected===`no`,children:`No`}),`]`]})}),jsx(Text,{color:`gray`,children:`(y/n, ←/→ then ⏎)`})]})},Keybinds=({resetChat,stopStreaming,toggleMode})=>(use_input_default((input,key)=>{key.ctrl&&input===`r`&&resetChat(),key.ctrl&&input===`e`&&toggleMode(),key.escape&&stopStreaming()}),null),MessageComponent=({message,previousMessage,maxWidth,streaming})=>{let prefix,contentColor,marginTop=previousMessage?1:0;switch(message.role){case`system`:prefix=jsx(Text,{children:`t `}),contentColor=`gray`;break;case`user`:prefix=jsx(Text,{color:`magenta`,bold:!0,children:`▎`}),contentColor=`gray`;break;case`assistant`:prefix=jsx(Text,{color:`white`,children:`> `}),contentColor=`white`;break}if(message.metadata?.type===`build-log`){let color=`gray`;switch(message.metadata.level){case`success`:color=`green`;break;case`info`:color=`gray`;break;case`error`:color=`red`;break}prefix=jsx(Text,{color,children:`⚙ `}),contentColor=`gray`,previousMessage?.metadata?.type===`build-log`&&(marginTop=0)}if(message.metadata?.type===`runtime-log`){let color=`white`;switch(message.metadata.level){case`log`:color=`white`;break;case`error`:color=`red`;break}prefix=jsx(Text,{color,children:`@ `}),previousMessage?.metadata?.type===`runtime-log`&&(marginTop=0)}if(message.metadata?.type===`webhook`&&(prefix=jsx(Text,{color:`blue`,children:`↩ `}),contentColor=`gray`,previousMessage?.metadata?.type===`webhook`&&(marginTop=0)),message.metadata?.type===`mode-change`){let modeColor=colors[message.metadata.mode],char=message.metadata.mode===`edit`?`✎`:`⟳`;prefix=jsxs(Text,{color:modeColor,bold:!0,children:[char,` `]}),contentColor=modeColor,marginTop=1}let content=jsx(Box_default,{gap:1,flexDirection:`column`,width:maxWidth,children:message.parts.map((part,index)=>{if(part.type===`text`)return jsx(markdown_default,{id:message.id,maxWidth,streaming,children:part.text},index);if(part.type===`reasoning`)return jsxs(Text,{color:`gray`,children:[`Reasoning: `,part.text]},index);if(isToolOrDynamicToolUIPart(part))return jsx(ToolCall,{part,maxWidth,streaming},index)}).filter(Boolean)});return jsxs(Box_default,{marginTop,flexDirection:`row`,children:[jsx(Box_default,{children:jsx(Text,{color:contentColor,children:prefix})}),content]})},Message=React.memo(MessageComponent,(prev,next)=>prev.maxWidth===next.maxWidth?!!(prev.nextMessage&&next.nextMessage&&prev.nextMessage.id===next.nextMessage.id):!1),AssistantWaitingPlaceholder=({maxWidth})=>jsxs(Box_default,{marginTop:1,flexDirection:`row`,children:[jsx(Box_default,{children:jsx(Text,{color:`white`,children:null})}),jsx(Box_default,{width:maxWidth,children:jsxs(Text,{color:`gray`,children:[jsx(build_default,{}),` Waiting for response...`]})})]}),ToolCall=({part,maxWidth,streaming})=>{let name$3=getToolOrDynamicToolName(part),input=useMemo(()=>{let labels={};return typeof part.input!=`object`||part.input===null||Object.entries(part.input).forEach(([key,value])=>{labels[key]=JSON.stringify(value)}),labels},[part]),state=useMemo(()=>{switch(part.state){case`input-available`:case`input-streaming`:return streaming?`streaming`:`error`;case`output-available`:return isToolApprovalOutput(part.output)&&part.output.outcome===`pending`?`pending-approval`:`done`;case`output-error`:return`error`}},[part,streaming]),output=useMemo(()=>{if(isToolApprovalOutput(part.output))return{state:part.output.outcome};if(!part.output)return;if(typeof part.output==`string`)return part.output;let labels={};return Array.isArray(part.output)?part.output.forEach((item,index)=>{labels[`${index}`]=JSON.stringify(item)}):typeof part.output==`object`&&Object.entries(part.output).forEach(([key,value])=>{labels[key]=JSON.stringify(value)}),labels},[part,state]),error$22=useMemo(()=>{if(part.state===`output-error`)return part.errorText},[part]),icon=useMemo(()=>{switch(state){case`done`:case`error`:return`⚒`;case`pending-approval`:return`⧗`}return jsx(build_default,{type:`dots`})},[state]);return jsxs(Box_default,{flexDirection:`column`,children:[jsxs(Box_default,{gap:1,children:[jsx(Text,{color:state===`error`?`red`:`gray`,bold:!0,children:icon}),jsx(Text,{children:name$3})]}),jsxs(Box_default,{marginLeft:2,flexDirection:`column`,overflowX:`hidden`,width:maxWidth?maxWidth-4:void 0,gap:0,children:[jsx(Text,{color:`gray`,bold:!0,children:`Input:`}),Object.entries(input).map(([key,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-2-key.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key)),output&&jsxs(Fragment,{children:[jsx(Text,{color:`gray`,bold:!0,children:`Output:`}),typeof output==`string`?jsx(Box_default,{marginLeft:2,children:jsx(Text,{children:output})}):jsx(Box_default,{flexDirection:`column`,children:Object.entries(output).map(([key,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-key.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key))})]}),error$22&&jsxs(Fragment,{children:[jsx(Text,{color:`gray`,bold:!0,children:`Error:`}),jsx(Text,{color:`red`,children:error$22})]})]})]})};async function dev(directory){directory||(directory=process.cwd());let exitWithDump=error$22=>{writeFileSync$1(`error.dump`,inspect$1(error$22,{depth:null})),process.exit(1)};process.addListener(`uncaughtException`,error$22=>{exitWithDump(error$22)}),process.addListener(`unhandledRejection`,error$22=>{exitWithDump(error$22)});let token$1=await getAuthToken();token$1&&(process.env.BLINK_TOKEN=token$1);try{await startDev({directory})}catch(err){console.error(err),process.exit(1)}finally{process.exit(0)}}export{dev as default};
|
|
2321
|
+
Remember: You are here to make building Blink agents fast, easy, and delightful. Be the expert pair programmer the user needs.`;function useEditAgent(options$1){let[client,setClient]=useState(void 0),[error$22,setError$1]=useState(void 0),editAgentRef=useRef(void 0);return useEffect(()=>{let controller=new AbortController;return(async()=>{editAgentRef.current=createEditAgent({directory:options$1.directory});let port$1=await getRandomPort(),server=editAgentRef.current.agent.serve({port:port$1,host:`127.0.0.1`,apiUrl:options$1.apiServerUrl});controller.signal.addEventListener(`abort`,()=>{try{server.close()}catch{}});let editClient=new Client({baseUrl:`http://127.0.0.1:${port$1}`});for(;!controller.signal.aborted;){try{await editClient.health();break}catch(err){}await new Promise(resolve$9=>setTimeout(resolve$9,100))}if(controller.signal.aborted)throw controller.signal.reason;setClient(editClient)})().catch(err=>{setError$1(err instanceof Error?err:Error(String(err)))}),()=>controller.abort()},[options$1.directory,options$1.apiServerUrl]),useMemo(()=>({client,error:error$22,setUserAgentUrl:url$5=>{editAgentRef.current?.setUserAgentUrl(url$5)}}),[client,error$22])}async function getRandomPort(){let server=createServer();return new Promise((resolve$9,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$9(port$1)}).on(`error`,err=>{reject(err)})}).finally(()=>{server.close()})}function useServerChat(server,id){let[chat$1,setChat]=useState(()=>server.upsertChat(id));return useEffect(()=>{setChat(server.upsertChat(id));let disposable=server.onChatChanged(chat$2=>{if(chat$2.id===id)return setChat(chat$2)});return()=>disposable.dispose()},[server,id]),chat$1}function useTerminalSize(){let{stdout:stdout$1}=use_stdout_default(),[size,setSize]=useState({columns:process.stdout.columns,rows:process.stdout.rows});return useEffect(()=>{if(!stdout$1||!stdout$1.isTTY)return;let handleResize=()=>{setSize({columns:stdout$1.columns,rows:stdout$1.rows})};return process.stdout.on(`resize`,handleResize),()=>{process.stdout.off(`resize`,handleResize)}},[stdout$1]),{columns:size.columns,rows:size.rows?size.rows-1:void 0}}async function start(element){let instance$1=render_default(element,{exitOnCtrlC:!1});await instance$1.waitUntilExit()}const colors={run:`#1f86ed`,edit:`#e8900e`};function startDev({directory}){return start(jsx(Root,{directory}))}const Root=({directory})=>{let size=useTerminalSize(),[mode,setMode]=useState(`run`),modeRef=useRef(`run`);useEffect(()=>{modeRef.current=mode},[mode]);let{error:buildError,status:buildStatus,result:buildResult,entry:entrypoint}=useBundler(directory),dotenv=useDotenv(directory),env$4=useMemo(()=>{let blinkToken=getAuthToken();return blinkToken?{...dotenv,BLINK_TOKEN:blinkToken}:dotenv},[dotenv]),server=useMemo(()=>createDevServer({port:0,dataDirectory:join$1(directory,`.blink`,`data`),sendMessages:async(request$2,signal)=>{if(!currentAgentRef.current)throw Error(`The agent has not been compiled yet.`);if(!currentChatIDRef.current)throw Error(`No chat selected.`);let messages$1=request$2.messages;return await currentAgentRef.current.chat({messages:modeRef.current===`run`?messages$1.filter(m$2=>m$2.metadata?.ephemeral!==!0):messages$1,chat:{key:currentChatIDRef.current}},{signal})},serializeChat:chat$2=>({...chat$2,messages:modeRef.current===`run`?chat$2.messages.filter(m$2=>m$2.metadata?.ephemeral!==!0):chat$2.messages})}),[]),{agent:agent$1,logs:logs$1,error:agentError,capabilities}=useAgent({buildResult,env:env$4,apiServerUrl:server.url}),{client:editAgent,error:editAgentError,setUserAgentUrl}=useEditAgent({directory,apiServerUrl:server.url}),currentAgentRef=useRef(void 0);useEffect(()=>{agent$1&&setUserAgentUrl(agent$1.baseUrl),mode===`run`?agent$1?currentAgentRef.current=agent$1:(currentAgentRef.current=void 0,server.stopChat(chat$1.id)):mode===`edit`&&(editAgent?currentAgentRef.current=editAgent:(currentAgentRef.current=void 0,server.stopChat(chat$1.id)))},[agent$1,editAgent,mode]);let devhookID=useMemo(()=>getDevhookID(directory),[directory]),devhook=useDevhook({id:devhookID,disabled:!capabilities?.request,onRequest:async request$2=>{if(!agent$1)throw Error(`No agent`);let requestURL=new URL(request$2.url),agentURL=new URL(agent$1.baseUrl);agentURL.pathname=requestURL.pathname,agentURL.search=requestURL.search;let response=await fetch(agentURL.toString(),request$2);return server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`webhook`,ephemeral:!0},parts:[{type:`text`,text:`method=${request$2.method} status=${response.status}`}]}),response}}),[chatID,setChatID]=useState(`default`),currentChatIDRef=useRef(void 0);useEffect(()=>{currentChatIDRef.current=chatID},[chatID]);let chat$1=useServerChat(server,chatID),[chatIDs,setChatIDs]=useState(()=>server.listChats()),currentChatIDsRef=useRef(chatIDs);useEffect(()=>{currentChatIDsRef.current=chatIDs},[chatIDs]),useEffect(()=>{let disposable=server.onChatChanged(chat$2=>{!currentChatIDsRef.current.includes(chat$2.id)&¤tChatIDRef.current&&(setChatID(chat$2.id),server.upsertChatMessage(chat$2.id,{role:`assistant`,metadata:{type:`chat-created`,ephemeral:!0},parts:[{type:`text`,text:`This chat has just been created: ${chat$2.id}. We automatically switched you to it!`}]})),setChatIDs(prev=>{let newChats=[...prev];return newChats.includes(chat$2.id)?prev:(newChats.push(chat$2.id),newChats)})});return()=>{disposable.dispose()}},[server]);let{exit}=use_app_default(),[exitArmed,setExitArmed]=useState(!1),exitTimerRef=useRef(void 0);useEffect(()=>()=>{exitTimerRef.current&&clearTimeout(exitTimerRef.current)},[]),use_input_default((input,key)=>{if(key.ctrl&&input.toLowerCase()===`c`){if(exitArmed){exit();return}setExitArmed(!0),exitTimerRef.current&&clearTimeout(exitTimerRef.current),exitTimerRef.current=setTimeout(()=>setExitArmed(!1),2e3)}});let lastReportedKeys=useRef(void 0);useEffect(()=>{let keys=Object.keys(env$4);if(keys.length===lastReportedKeys.current||lastReportedKeys.current===void 0)return;lastReportedKeys.current=keys.length;let keysText=keys.map(key=>source_default.dim(key)).join(`, `);keysText.length===0&&(keysText=source_default.dim(`(none)`));let text=`Loaded .env.local: `+keysText;server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`info`,ephemeral:!0},parts:[{type:`text`,text}]})},[env$4]);let lastModeRef=useRef(mode),lastBuildStatusRef=useRef(buildStatus),lastAgentRef=useRef(agent$1),lastEditAgentRef=useRef(editAgent);useEffect(()=>{!capabilities?.request||devhook.status!==`connected`||server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`info`,ephemeral:!0},parts:[{type:`text`,text:`Send webhooks from anywhere: https://${devhook.id}.dev.blink.host`}]})},[capabilities?.request,devhook.status]);let lastLogsLength=useRef(0);useEffect(()=>{if(logs$1.length===lastLogsLength.current)return;let currentLength=lastLogsLength.current;for(let log$9 of logs$1.slice(currentLength))server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`runtime-log`,level:log$9.level,ephemeral:!0},parts:[{type:`text`,text:log$9.message}]});lastLogsLength.current=logs$1.length},[logs$1]);let keymaps=useMemo(()=>({"⏎":`send`,"Ctrl+E":`toggle mode`,"Ctrl+C":`quit`,"[Escape]":`stop streaming`}),[]),keybindSuggestion=useMemo(()=>{if(exitArmed)return`Ctrl+C again to quit`;if(chat$1.status===`streaming`)return`Press [Escape] to stop the agent!`},[exitArmed,chat$1.status]),needsApproval=useMemo(()=>{let lastMessage=chat$1.messages.findLast(message=>!(message.role!==`assistant`||message.metadata&&message.metadata.ephemeral));if(!lastMessage||lastMessage.role!==`assistant`)return;let parts=lastMessage.parts.filter(isToolOrDynamicToolUIPart);if(parts.length===0)return;let should=parts.some(part=>isToolApprovalOutput(part.output)&&part.output.outcome===`pending`);if(should)return lastMessage},[chat$1.messages]),{write:write$1}=use_stdout_default(),[epoch,setEpoch]=useState(0),resetTerminal=useCallback(()=>{write$1(`\x1Bc`),write$1(`\x1B[?25l`),setEpoch(prev=>prev+1)},[write$1]),refreshMessages=useCallback(()=>{setEpoch(prev=>prev+1)},[]),lastChatIDRef=useRef(void 0);useEffect(()=>{lastChatIDRef.current!==chat$1.id&&(lastChatIDRef.current&&resetTerminal(),lastChatIDRef.current=chat$1.id)},[chat$1.id,resetTerminal]);let initialSizeRef=useRef(size);useEffect(()=>{(initialSizeRef.current.columns!==size.columns||initialSizeRef.current.rows!==size.rows)&&(resetTerminal(),initialSizeRef.current=size)},[size.columns,size.rows]);let{schema:optionsSchema,options:selectedOptions,error:optionsError,setOption:setOption$1}=useOptions({agent:currentAgentRef.current,capabilities,messages:chat$1.messages}),optionCommand=useMemo(()=>{if(optionsSchema)return{name:`option`,description:`Adjust your agent's options.`,action:()=>{},completion:async()=>Object.keys(optionsSchema),subcommands:Object.entries(optionsSchema).map(([key,value])=>({name:key,description:value.label??``,action:args=>{setOption$1(key,args)},completion:async partialArg=>value.values.map(v$1=>v$1.id)}))}},[optionsSchema]);return useEffect(()=>{if(buildError||agentError||chat$1.error||optionsError||editAgentError){let errors=[];buildError&&errors.push({type:`text`,text:`${buildError.message}`+(buildError.file?` (${buildError.file})`:``)}),agentError&&mode===`run`&&errors.push({type:`text`,text:agentError.message}),editAgentError&&mode===`edit`&&errors.push({type:`text`,text:`Edit agent error: ${editAgentError.message}`}),chat$1.error&&errors.push({type:`text`,text:`Chat error: ${chat$1.error.message}, ${chat$1.error.stack}`}),optionsError&&errors.push({type:`text`,text:`Options error: ${optionsError.message}`}),server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`error`,ephemeral:!0},parts:errors});return}if(mode===`run`&&(buildStatus===`building`||!agent$1)){(lastBuildStatusRef.current!==buildStatus||lastAgentRef.current!==agent$1||lastModeRef.current!==mode)&&server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`info`,ephemeral:!0},parts:[{type:`text`,text:`Compiling...`}]}),lastModeRef.current=mode,lastBuildStatusRef.current=buildStatus,lastAgentRef.current=agent$1;return}if(mode===`run`&&buildStatus===`success`&&agent$1){(lastBuildStatusRef.current!==buildStatus||lastAgentRef.current!==agent$1||lastModeRef.current!==mode)&&(lastModeRef.current===`edit`?server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`mode-change`,mode:`run`,ephemeral:!0},parts:[{type:`text`,text:`entering run mode`}]}):server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`build-log`,level:`success`,ephemeral:!0},parts:[{type:`text`,text:`Compiled in 100ms`}]})),lastModeRef.current=mode,lastBuildStatusRef.current=buildStatus,lastAgentRef.current=agent$1;return}if(mode===`edit`&&editAgent){(lastModeRef.current!==mode||lastEditAgentRef.current!==editAgent)&&server.upsertChatMessage(chat$1.id,{role:`assistant`,metadata:{type:`mode-change`,mode:`edit`,ephemeral:!0},parts:[{type:`text`,text:`entering edit mode`}]}),lastModeRef.current=mode,lastEditAgentRef.current=editAgent;return}lastModeRef.current=mode,lastBuildStatusRef.current=buildStatus,lastAgentRef.current=agent$1,lastEditAgentRef.current=editAgent},[buildError,chat$1.error,agentError,editAgentError,buildStatus,agent$1,editAgent,mode,optionsError]),jsxs(Fragment,{children:[jsx(Keybinds,{resetChat:()=>{server.resetChat(chat$1.id),resetTerminal()},stopStreaming:()=>{server.stopChat(chat$1.id)},toggleMode:()=>{server.stopChat(chat$1.id),setMode(prev=>prev===`run`?`edit`:`run`)}}),chat$1.error?jsx(Box_default,{marginTop:1,children:jsx(Text,{color:`red`,children:chat$1.error.message})}):null,jsxs(Box_default,{flexDirection:`column`,children:[jsx(Static,{items:[{},...chat$1.messages],children:(message,index)=>index===0?jsxs(Box_default,{flexDirection:`column`,marginBottom:1,children:[jsxs(Box_default,{children:[jsx(Text,{bold:!0,children:`blink■`}),jsx(Text,{color:`gray`,children:` agent development`})]}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsxs(Text,{color:`gray`,children:[`Edit `,entrypoint,` to hot-reload your agent.`]}),jsxs(Text,{color:`gray`,children:[`Run `,jsx(Text,{color:`blue`,children:`blink deploy`}),` to use your agent in the cloud.`]})]})]},`banner`):jsx(Message,{message,previousMessage:index>1?chat$1.messages.at(index-2):void 0,nextMessage:index<chat$1.messages.length-2?chat$1.messages.at(index+2):void 0,maxWidth:size.columns-2},message.id)},`messages-${chat$1.id}-${epoch}`),chat$1.streamingMessage?jsx(Message,{message:chat$1.streamingMessage,nextMessage:void 0,previousMessage:chat$1.messages.length>0?chat$1.messages.at(chat$1.messages.length-1):void 0,streaming:!0,maxWidth:size.columns-2},chat$1.streamingMessage.id):null,chat$1.status===`streaming`&&!chat$1.streamingMessage?jsx(AssistantWaitingPlaceholder,{maxWidth:size.columns-2}):null]}),jsx(Box_default,{flexDirection:`column`,marginTop:1,children:needsApproval?jsx(ApprovalInput,{onConfirm:approved=>{server.updateChatMessage(chat$1.id,{...needsApproval,parts:needsApproval.parts.map(part=>isToolUIPart(part)&&isToolApprovalOutput(part.output)?{...part,state:`output-available`,output:{...part.output,outcome:approved?`approved`:`rejected`},errorText:void 0}:part)}),refreshMessages(),server.runtime.chat.message(chat$1.id,void 0,{behavior:`interrupt`})},onCancel:()=>{}}):jsx(text_input_default,{borderColor:colors[mode],slashCommands:[{name:`help`,description:`Show help information`,action:()=>{console.log(``),console.log(source_default.bold(`How to Build Your Agent`)),console.log(``),console.log(`Blink has two modes that work together to help you build and test agents:`),console.log(``),console.log(source_default.hex(colors.edit).bold(` Edit Mode`)+` - AI helps you build your agent`),console.log(` • Describe the agent you want to build`),console.log(` • The AI will modify your agent code based on your instructions`),console.log(` • Changes are written to ${relative$1(process.cwd(),entrypoint)} and auto-reload`),console.log(``),console.log(source_default.blue.bold(` Run Mode`)+` - Use your agent`),console.log(` • Chat with your agent to see how it behaves`),console.log(` • Discover what works and what needs improvement`),console.log(``),console.log(source_default.bold(`The Development Loop:`)),console.log(` 1. Start in `+source_default.hex(colors.edit)(`Edit mode`)+` (Ctrl+E or /edit) and describe what your agent should do`),console.log(` Example: "Add a tool that can search the web"`),console.log(``),console.log(` 2. Switch to `+source_default.blue(`Run mode`)+` (Ctrl+E or /run) to use your agent`),console.log(` Try it out and see if it does what you expect`),console.log(``),console.log(` 3. Toggle back to `+source_default.hex(colors.edit)(`Edit mode`)+` to refine based on what you learned`),console.log(` The edit AI can see the entire chat history, including your conversations!`),console.log(` Example: "The search tool failed when I asked about X"`),console.log(``),console.log(` 4. Repeat until your agent works perfectly`),console.log(``),console.log(` 5. Deploy with `+source_default.bold(`blink deploy`)+` when ready`),console.log(``),console.log(source_default.dim(`Tip: Use /reset to start fresh, /new to create separate test chats`))}},{name:`reset`,altNames:[`clear`],description:`Reset the chat`,action:()=>{server.resetChat(chat$1.id),resetTerminal()}},{name:`switch`,description:`Switch to a different chat`,action:args=>{setChatID(args)},completion:async partialArg=>{let chats=server.listChats();return chats.map(chat$2=>chat$2)}},{name:`new`,description:`Create a new chat`,action:args=>{setChatID(args)}},{name:`edit`,description:`Switch to Edit mode (AI helps build your agent)`,action:()=>{server.stopChat(chat$1.id),setMode(`edit`)}},{name:`run`,description:`Switch to Run mode (use your agent)`,action:()=>{server.stopChat(chat$1.id),setMode(`run`)}},...optionCommand?[optionCommand]:[]],onSubmit:value=>(server.runtime.chat.message(chat$1.id,{role:`user`,parts:[{type:`text`,text:value}],metadata:{options:selectedOptions}},{behavior:`interrupt`}),!0),onLayoutChange:()=>{}})}),jsx(Box_default,{children:keybindSuggestion?jsxs(Fragment,{children:[jsx(Box_default,{marginLeft:2,gap:3,children:jsxs(Text,{color:`gray`,children:[`mode: `,jsx(Text,{color:colors[mode],children:mode})]})}),jsx(Spacer,{}),jsx(Text,{color:`yellow`,children:keybindSuggestion+` `})]}):jsxs(Fragment,{children:[jsxs(Box_default,{marginLeft:2,gap:3,children:[jsxs(Text,{color:`gray`,children:[`mode: `,jsx(Text,{color:colors[mode],children:mode})]}),jsxs(Text,{color:`gray`,children:[`chat: `,jsx(Text,{children:chat$1.id})]})]}),jsx(Spacer,{}),jsx(Box_default,{gap:3,marginRight:2,children:Object.entries(keymaps).map(([key,value])=>jsx(Text,{children:source_default.gray.dim(key+` `+value)},key))})]})}),optionsSchema&&selectedOptions?keybindSuggestion?jsx(Box_default,{height:1}):jsxs(Box_default,{marginLeft:2,justifyContent:`space-between`,flexDirection:`row`,children:[jsxs(Box_default,{flexDirection:`row`,gap:1,children:[jsx(Text,{color:`gray`,wrap:`truncate-end`,children:`options:`}),jsx(Box_default,{flexDirection:`row`,gap:1,children:Object.entries(selectedOptions).map(([key,value])=>{let option$1=optionsSchema[key];return option$1?jsxs(Box_default,{flexDirection:`row`,flexWrap:`wrap`,children:[jsxs(Text,{color:`gray`,wrap:`truncate-end`,children:[key,`=`]}),jsx(Text,{color:`gray`,wrap:`truncate-end`,children:value})]},key):null})})]}),jsx(Box_default,{marginRight:2,children:jsxs(Text,{color:`gray`,children:[`Set with `,jsx(Text,{color:`blue`,children:`/option`})]})})]}):null]})},ApprovalInput=({onConfirm,onCancel})=>{let[selected,setSelected]=useState(`yes`),handleConfirm=React.useCallback(approved=>{onConfirm(approved)},[onConfirm]),handleCancel=React.useCallback(()=>{onCancel()},[onCancel]);return use_input_default((input,key)=>{let lower=input.toLowerCase();if(key.escape){handleCancel();return}if(lower===`y`){handleConfirm(!0);return}if(lower===`n`){handleConfirm(!1);return}if(key.leftArrow||key.rightArrow||key.tab){setSelected(prev=>prev===`yes`?`no`:`yes`);return}key.return&&handleConfirm(selected===`yes`)}),jsxs(Box_default,{gap:2,flexDirection:`row`,children:[jsx(Text,{children:`Approve?`}),jsx(Box_default,{children:jsxs(Text,{children:[`[`,jsx(Text,{color:selected===`yes`?`green`:`gray`,bold:selected===`yes`,children:`Yes`}),`/`,jsx(Text,{color:selected===`no`?`red`:`gray`,bold:selected===`no`,children:`No`}),`]`]})}),jsx(Text,{color:`gray`,children:`(y/n, ←/→ then ⏎)`})]})},Keybinds=({resetChat,stopStreaming,toggleMode})=>(use_input_default((input,key)=>{key.ctrl&&input===`r`&&resetChat(),key.ctrl&&input===`e`&&toggleMode(),key.escape&&stopStreaming()}),null),MessageComponent=({message,previousMessage,maxWidth,streaming})=>{let prefix,contentColor,marginTop=previousMessage?1:0;switch(message.role){case`system`:prefix=jsx(Text,{children:`t `}),contentColor=`gray`;break;case`user`:prefix=jsx(Text,{color:`magenta`,bold:!0,children:`▎`}),contentColor=`gray`;break;case`assistant`:prefix=jsx(Text,{color:`white`,children:`> `}),contentColor=`white`;break}if(message.metadata?.type===`build-log`){let color=`gray`;switch(message.metadata.level){case`success`:color=`green`;break;case`info`:color=`gray`;break;case`error`:color=`red`;break}prefix=jsx(Text,{color,children:`⚙ `}),contentColor=`gray`,previousMessage?.metadata?.type===`build-log`&&(marginTop=0)}if(message.metadata?.type===`runtime-log`){let color=`white`;switch(message.metadata.level){case`log`:color=`white`;break;case`error`:color=`red`;break}prefix=jsx(Text,{color,children:`@ `}),previousMessage?.metadata?.type===`runtime-log`&&(marginTop=0)}if(message.metadata?.type===`webhook`&&(prefix=jsx(Text,{color:`blue`,children:`↩ `}),contentColor=`gray`,previousMessage?.metadata?.type===`webhook`&&(marginTop=0)),message.metadata?.type===`mode-change`){let modeColor=colors[message.metadata.mode],char=message.metadata.mode===`edit`?`✎`:`⟳`;prefix=jsxs(Text,{color:modeColor,bold:!0,children:[char,` `]}),contentColor=modeColor,marginTop=1}let content=jsx(Box_default,{gap:1,flexDirection:`column`,width:maxWidth,children:message.parts.map((part,index)=>{if(part.type===`text`)return jsx(markdown_default,{id:message.id,maxWidth,streaming,children:part.text},index);if(part.type===`reasoning`)return jsxs(Text,{color:`gray`,children:[`Reasoning: `,part.text]},index);if(isToolOrDynamicToolUIPart(part))return jsx(ToolCall,{part,maxWidth,streaming},index)}).filter(Boolean)});return jsxs(Box_default,{marginTop,flexDirection:`row`,children:[jsx(Box_default,{children:jsx(Text,{color:contentColor,children:prefix})}),content]})},Message=React.memo(MessageComponent,(prev,next)=>prev.maxWidth===next.maxWidth?!!(prev.nextMessage&&next.nextMessage&&prev.nextMessage.id===next.nextMessage.id):!1),AssistantWaitingPlaceholder=({maxWidth})=>jsxs(Box_default,{marginTop:1,flexDirection:`row`,children:[jsx(Box_default,{children:jsx(Text,{color:`white`,children:null})}),jsx(Box_default,{width:maxWidth,children:jsxs(Text,{color:`gray`,children:[jsx(build_default,{}),` Waiting for response...`]})})]}),ToolCall=({part,maxWidth,streaming})=>{let name$3=getToolOrDynamicToolName(part),input=useMemo(()=>{let labels={};return typeof part.input!=`object`||part.input===null||Object.entries(part.input).forEach(([key,value])=>{labels[key]=JSON.stringify(value)}),labels},[part]),state=useMemo(()=>{switch(part.state){case`input-available`:case`input-streaming`:return streaming?`streaming`:`error`;case`output-available`:return isToolApprovalOutput(part.output)&&part.output.outcome===`pending`?`pending-approval`:`done`;case`output-error`:return`error`}},[part,streaming]),output=useMemo(()=>{if(isToolApprovalOutput(part.output))return{state:part.output.outcome};if(!part.output)return;if(typeof part.output==`string`)return part.output;let labels={};return Array.isArray(part.output)?part.output.forEach((item,index)=>{labels[`${index}`]=JSON.stringify(item)}):typeof part.output==`object`&&Object.entries(part.output).forEach(([key,value])=>{labels[key]=JSON.stringify(value)}),labels},[part,state]),error$22=useMemo(()=>{if(part.state===`output-error`)return part.errorText},[part]),icon=useMemo(()=>{switch(state){case`done`:case`error`:return`⚒`;case`pending-approval`:return`⧗`}return jsx(build_default,{type:`dots`})},[state]);return jsxs(Box_default,{flexDirection:`column`,children:[jsxs(Box_default,{gap:1,children:[jsx(Text,{color:state===`error`?`red`:`gray`,bold:!0,children:icon}),jsx(Text,{children:name$3})]}),jsxs(Box_default,{marginLeft:2,flexDirection:`column`,overflowX:`hidden`,width:maxWidth?maxWidth-4:void 0,gap:0,children:[jsx(Text,{color:`gray`,bold:!0,children:`Input:`}),Object.entries(input).map(([key,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-2-key.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key)),output&&jsxs(Fragment,{children:[jsx(Text,{color:`gray`,bold:!0,children:`Output:`}),typeof output==`string`?jsx(Box_default,{marginLeft:2,children:jsx(Text,{children:output})}):jsx(Box_default,{flexDirection:`column`,children:Object.entries(output).map(([key,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-key.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key))})]}),error$22&&jsxs(Fragment,{children:[jsx(Text,{color:`gray`,bold:!0,children:`Error:`}),jsx(Text,{color:`red`,children:error$22})]})]})]})};async function dev(directory){directory||(directory=process.cwd());let exitWithDump=error$22=>{writeFileSync$1(`error.dump`,inspect$1(error$22,{depth:null})),process.exit(1)};process.addListener(`uncaughtException`,error$22=>{exitWithDump(error$22)}),process.addListener(`unhandledRejection`,error$22=>{exitWithDump(error$22)});let token$1=await getAuthToken();token$1&&(process.env.BLINK_TOKEN=token$1);try{await startDev({directory})}catch(err){console.error(err),process.exit(1)}finally{process.exit(0)}}export{dev as default};
|