blink 1.1.21 → 1.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/{auth-BilZuH-1.js → auth-DbpOUCTO.js} +1 -1
- package/dist/cli/{chat-manager-DfVg04yc.js → chat-manager-GWR_v50X.js} +1 -1
- package/dist/cli/{dev-DRWR8F1H.js → dev-DwwSnzeH.js} +9 -9
- package/dist/cli/index.js +9 -9
- package/dist/cli/{init-BuMKmaaZ.js → init-em410TZP.js} +8 -8
- package/dist/cli/{init-templates-B9PG-9Ei.js → init-templates-By3gx42M.js} +4 -2
- package/dist/cli/login-BDP8JC4X.js +1 -0
- package/dist/cli/{run-DF1dwAY_.js → run-CZZ6WAdr.js} +1 -1
- package/dist/node/react/index.node.cjs +6 -4
- package/dist/node/react/index.node.d.cts +9 -2
- package/dist/node/react/index.node.d.ts +9 -2
- package/dist/node/react/index.node.js +6 -4
- package/package.json +1 -1
- package/dist/cli/login-Bbj133_1.js +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{__commonJSMin,__esmMin,__export as __export$5,__require as __require$1,__toCommonJS as __toCommonJS$4,__toDynamicImportESM,__toESM}from"./chunk-D9KrCrVq.js";import{import_websocket}from"./wrapper-B0SBsJWP.js";import{findNearestEntry,migrateDataToBlink,require_main as require_main$1,resolveConfig}from"./util-k3x8m_i5.js";import{Client as Client$2}from"./dist-Ceoe3h7v.js";import{deleteAuthToken,getAuthToken,setAuthToken}from"./auth-BilZuH-1.js";import{openUrl,open_default,source_default}from"./util-CUfifM0g.js";import{require_ignore}from"./ignore-NA4V6Pjc.js";import{createDevhookID,createSlackApp,createSlackAppSchema,getDevhookID,hasDevhook}from"./create-slack-app-CyVPwWsG.js";import{DiagConsoleLogger,DiagLogLevel,SpanStatusCode,ValueType,diag,esm_exports as esm_exports$11,init_esm as init_esm$10,metrics,trace as trace$11}from"./esm-C_RXU0lI.js";import{require_token_error}from"./token-error-COQY18OP.js";import{require_undici as require_undici$1}from"./undici-CRntNDHY.js";import{APICallError,APIServerURLEnvironmentVariable,ChatManager,Client as Client$3,CustomChatResponseError,EmptyResponseBodyError,EventSourceParserStream,InvalidArgumentError,JSONParseError,NoSuchModelError,TypeValidationError,checkOptionalParameter,completeAssign,convertMessage,createAnthropic,createCustomAbortControllerSignal,createDiskStore,createOpenAI,createParser,decodeURIComponent_,ensureDisposableStackRegisteredForTerminateEvents,fakePromise,getLockInfo,getPath as getPath$1,getPathNoStrict,getPattern,getQueryParam,getQueryParams,handleAbortSignalAndPromiseResponse,handleErrorFromRequestHandler,handleMaybePromise,hc,isFetchEvent,isNodeRequest,isPromise as isPromise$1,isRequestInit,isServerResponse,isStoredMessageMetadata,isToolApprovalOutput,isolateObject,iterateAsync,lastUIOptions,lock,mergePath,normalizeNodeRequest,parse as parse$17,sendNodeResponse,splitPath,splitRoutingPath,tools as tools$1,tryDecode,unfakePromise}from"./chat-manager-DfVg04yc.js";import{templates}from"./init-templates-B9PG-9Ei.js";import{errorMonitor}from"events";import*as https$5 from"https";import*as http$7 from"http";import http,{createServer}from"http";import crypto$1 from"crypto";import{Readable}from"stream";import*as zlib$2 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$2 from"node:path";import path,{basename,dirname,join,posix,win32}from"node:path";import*as fs$4 from"node:fs";import fs,{appendFileSync,createReadStream,createWriteStream,promises,readFileSync,statSync,writeFileSync}from"node:fs";import*as process$1 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 as resolve$1,sep}from"path";import*as nativeFs from"fs";import fs$1,{createWriteStream as createWriteStream$1,existsSync as existsSync$1,lstatSync,mkdirSync as mkdirSync$1,readFileSync as readFileSync$1,readdir,readdirSync,readlinkSync,realpathSync,watch,writeFile,writeFileSync as writeFileSync$1}from"fs";import{createRequire}from"module";import*as fs$37 from"fs/promises";import{readFile,writeFile as writeFile$1}from"fs/promises";import{z}from"zod";import*as z4 from"zod/v4";import{z as z$2}from"zod/v4";import{ZodFirstPartyTypeKind}from"zod/v3";import*as fs$3 from"node:fs/promises";import fs$2,{lstat,readdir as readdir$2,readlink,realpath}from"node:fs/promises";import os from"os";import*as os$2 from"node:os";import os$1,{EOL,constants as constants$1,platform as platform$1}from"node:os";import tty from"node:tty";import util,{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$5 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,getToolOrDynamicToolName,isToolOrDynamicToolUIPart,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"@blink-sdk/compute-protocol/client";import{createInMemoryClientServer}from"@blink-sdk/compute-protocol/transport";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)};return debounced.cancel=_debounced.cancel,debounced.flush=()=>(_debounced.flush(),result),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=`;`,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$7=0;i$7<count$1;i$7++)clear$1+=eraseLine+(i$7<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`,clearViewport=`${eraseScreen}[H`,clearTerminal=isWindows$2?`${eraseScreen}[0f`:`${eraseScreen}[3J[H`,enterAlternativeScreen=`\x1B[?1049h`,exitAlternativeScreen=`\x1B[?1049l`,link$3=(text,url$3)=>[`\x1B]`,`8`,`;`,`;`,url$3,`\x07`,text,`\x1B]`,`8`,`;`,`;`,`\x07`].join(``),check$1=key$1=>key$1 in env&&env[key$1]!==`0`&&env[key$1]!==`false`;var is_in_ci_default=check$1(`CI`)||check$1(`CONTINUOUS_INTEGRATION`);const getAllProperties=object=>{let properties$1=new Set;do for(let key$1 of Reflect.ownKeys(object))properties$1.add([object,key$1]);while((object=Reflect.getPrototypeOf(object))&&object!==Object.prototype);return properties$1};function autoBind(self$1,{include,exclude}={}){let filter$3=key$1=>{let match$1=pattern=>typeof pattern==`string`?key$1===pattern:pattern.test(key$1);return include?include.some(match$1):exclude?!exclude.some(match$1):!0};for(let[object,key$1]of getAllProperties(self$1.constructor.prototype)){if(key$1===`constructor`||!filter$3(key$1))continue;let descriptor$1=Reflect.getOwnPropertyDescriptor(object,key$1);descriptor$1&&typeof descriptor$1.value==`function`&&(self$1[key$1]=self$1[key$1].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$13=global.process;let processOk$1=function(process$14){return process$14&&typeof process$14==`object`&&typeof process$14.removeListener==`function`&&typeof process$14.emit==`function`&&typeof process$14.reallyExit==`function`&&typeof process$14.listeners==`function`&&typeof process$14.kill==`function`&&typeof process$14.pid==`number`&&typeof process$14.on==`function`};if(!processOk$1(process$13))module.exports=function(){return function(){}};else{var assert$2=__require$1(`assert`),signals$1=require_signals(),isWin$2=/^win/i.test(process$13.platform),EE=__require$1(`events`);typeof EE!=`function`&&(EE=EE.EventEmitter);var emitter;process$13.__signal_exit_emitter__?emitter=process$13.__signal_exit_emitter__:(emitter=process$13.__signal_exit_emitter__=new EE,emitter.count=0,emitter.emitted={}),emitter.infinite||=(emitter.setMaxListeners(1/0),!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$6();var ev=`exit`;return opts&&opts.alwaysLast&&(ev=`afterexit`),emitter.on(ev,cb),function(){emitter.removeListener(ev,cb),emitter.listeners(`exit`).length===0&&emitter.listeners(`afterexit`).length===0&&unload$1()}};var unload$1=function(){!loaded||!processOk$1(global.process)||(loaded=!1,signals$1.forEach(function(sig){try{process$13.removeListener(sig,sigListeners[sig])}catch{}}),process$13.emit=originalProcessEmit,process$13.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(){processOk$1(global.process)&&process$13.listeners(sig).length===emitter.count&&(unload$1(),emit(`exit`,null,sig),emit(`afterexit`,null,sig),isWin$2&&sig===`SIGHUP`&&(sig=`SIGINT`),process$13.kill(process$13.pid,sig))}}),module.exports.signals=function(){return signals$1};var loaded=!1,load$6=function(){loaded||!processOk$1(global.process)||(loaded=!0,emitter.count+=1,signals$1=signals$1.filter(function(sig){try{return process$13.on(sig,sigListeners[sig]),!0}catch{return!1}}),process$13.emit=processEmit,process$13.reallyExit=processReallyExit)};module.exports.load=load$6;var originalProcessReallyExit=process$13.reallyExit,processReallyExit=function(code$1){processOk$1(global.process)&&(process$13.exitCode=code$1||0,emit(`exit`,process$13.exitCode,null),emit(`afterexit`,process$13.exitCode,null),originalProcessReallyExit.call(process$13,process$13.exitCode))},originalProcessEmit=process$13.emit,processEmit=function(ev,arg){if(ev===`exit`&&processOk$1(global.process)){arg!==void 0&&(process$13.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit(`exit`,process$13.exitCode,null),emit(`afterexit`,process$13.exitCode,null),ret}else return originalProcessEmit.apply(this,arguments)}}})),import_signal_exit$1=__toESM(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={};var dist_default$1=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={}}},require_react_reconciler_constants_production=__commonJSMin((exports=>{exports.DefaultEventPriority=32,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$13=__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(require_constants$13(),1),yoga_wasm_base64_esm_default=(()=>{var _scriptDir=import.meta.url;return(function(loadYoga$1){loadYoga$1||={};var h$3;h$3||=loadYoga$1===void 0?{}:loadYoga$1;var aa,ca;h$3.ready=new Promise(function(a$2,b$2){aa=a$2,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$2,b$2,c$3){c$3=b$2+c$3;for(var d$3=``;!(b$2>=c$3);){var e$1=a$2[b$2++];if(!e$1)break;if(e$1&128){var f=a$2[b$2++]&63;if((e$1&224)==192)d$3+=String.fromCharCode((e$1&31)<<6|f);else{var g=a$2[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$2[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$2=fa.buffer;ia=a$2,h$3.HEAP8=ja=new Int8Array(a$2),h$3.HEAP16=C$2=new Int16Array(a$2),h$3.HEAP32=D$1=new Int32Array(a$2),h$3.HEAPU8=A=new Uint8Array(a$2),h$3.HEAPU16=ka=new Uint16Array(a$2),h$3.HEAPU32=E$2=new Uint32Array(a$2),h$3.HEAPF32=la=new Float32Array(a$2),h$3.HEAPF64=ma=new Float64Array(a$2)}var oa,pa=[],qa=[],ra=[];function sa(){var a$2=h$3.preRun.shift();pa.unshift(a$2)}var F$2=0,ta=null,G$2=null;function x$1(a$2){throw h$3.onAbort&&h$3.onAbort(a$2),a$2=`Aborted(`+a$2+`)`,v$1(a$2),ha=!0,a$2=new WebAssembly.RuntimeError(a$2+`. Build with -sASSERTIONS for more info.`),ca(a$2),a$2}function ua(a$2){return a$2.startsWith(`data:application/octet-stream;base64,`)}var H=`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/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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`;if(!ua(H)){var va=H;H=h$3.locateFile?h$3.locateFile(va,q$3):q$3+va}function wa(){var a$2=H;try{if(a$2==H&&w$3)return new Uint8Array(w$3);if(ua(a$2))try{var b$2=xa(a$2.slice(37)),c$3=new Uint8Array(b$2.length);for(a$2=0;a$2<b$2.length;++a$2)c$3[a$2]=b$2.charCodeAt(a$2);var d$3=c$3}catch{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,{credentials:`same-origin`}).then(function(a$2){if(!a$2.ok)throw`failed to load wasm binary file at '`+H+`'`;return a$2.arrayBuffer()}).catch(function(){return wa()})}function za(a$2){for(;0<a$2.length;)a$2.shift()(h$3)}function Aa(a$2){if(a$2===void 0)return`_unknown`;a$2=a$2.replace(/[^a-zA-Z0-9_]/g,`$`);var b$2=a$2.charCodeAt(0);return 48<=b$2&&57>=b$2?`_`+a$2:a$2}function Ba(a$2,b$2){return a$2=Aa(a$2),function(){return b$2.apply(this,arguments)}}var J$2=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ca=[];function Da(a$2){var b$2=Error,c$3=Ba(a$2,function(d$3){this.name=a$2,this.message=d$3,d$3=Error(d$3).stack,d$3!==void 0&&(this.stack=this.toString()+`
|
|
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$2){throw new K$2(a$2)}var M$2=a$2=>(a$2||L$2(`Cannot use deleted val. handle = `+a$2),J$2[a$2].value),Ea=a$2=>{switch(a$2){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$2},b$2}},Fa=void 0,Ga=void 0;function N$1(a$2){for(var b$2=``;A[a$2];)b$2+=Ga[A[a$2++]];return b$2}var O$3=[];function Ha(){for(;O$3.length;){var a$2=O$3.pop();a$2.M.$=!1,a$2.delete()}}var P$2=void 0,Q$2={};function Ia(a$2,b$2){for(b$2===void 0&&L$2(`ptr should not be undefined`);a$2.R;)b$2=a$2.ba(b$2),a$2=a$2.R;return b$2}var R$2={};function Ja(a$2){a$2=Ka(a$2);var b$2=N$1(a$2);return S$1(a$2),b$2}function La(a$2,b$2){var c$3=R$2[a$2];return c$3===void 0&&L$2(b$2+` has unknown type `+Ja(a$2)),c$3}function Ma(){}var Na=!1;function Oa(a$2){--a$2.count.value,a$2.count.value===0&&(a$2.T?a$2.U.W(a$2.T):a$2.P.N.W(a$2.O))}function Pa(a$2,b$2,c$3){return b$2===c$3?a$2:c$3.R===void 0?null:(a$2=Pa(a$2,b$2,c$3.R),a$2===null?null:c$3.na(a$2))}var Qa={};function Ra(a$2,b$2){return b$2=Ia(a$2,b$2),Q$2[b$2]}var Sa=void 0;function Ta(a$2){throw new Sa(a$2)}function Ua(a$2,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$2,{M:{value:b$2}}))}function T$1(a$2){return typeof FinalizationRegistry>`u`?(T$1=b$2=>b$2,a$2):(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$2))}var Va={};function Wa(a$2){for(;a$2.length;){var b$2=a$2.pop();a$2.pop()(b$2)}}function Xa(a$2){return this.fromWireType(D$1[a$2>>2])}var U$2={},Ya={};function V$3(a$2,b$2,c$3){function d$3(k){k=c$3(k),k.length!==a$2.length&&Ta(`Mismatched type converter count`);for(var m$2=0;m$2<a$2.length;++m$2)W$2(a$2[m$2],k[m$2])}a$2.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$2){switch(a$2){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError(`Unknown type size: `+a$2)}}function W$2(a$2,b$2,c$3={}){if(!(`argPackAdvance`in b$2))throw TypeError(`registerType registeredInstance requires argPackAdvance`);var d$3=b$2.name;if(a$2||L$2(`type "`+d$3+`" must have a positive integer typeid pointer`),R$2.hasOwnProperty(a$2)){if(c$3.ua)return;L$2(`Cannot register type '`+d$3+`' twice`)}R$2[a$2]=b$2,delete Ya[a$2],U$2.hasOwnProperty(a$2)&&(b$2=U$2[a$2],delete U$2[a$2],b$2.forEach(e$1=>e$1()))}function $a(a$2){L$2(a$2.M.P.N.name+` instance already deleted`)}function X$2(){}function ab$1(a$2,b$2,c$3){if(a$2[b$2].S===void 0){var d$3=a$2[b$2];a$2[b$2]=function(){return a$2[b$2].S.hasOwnProperty(arguments.length)||L$2(`Function '`+c$3+`' called with an invalid number of arguments (`+arguments.length+`) - expects one of (`+a$2[b$2].S+`)!`),a$2[b$2].S[arguments.length].apply(this,arguments)},a$2[b$2].S=[],a$2[b$2].S[d$3.Z]=d$3}}function bb(a$2,b$2){h$3.hasOwnProperty(a$2)?(L$2(`Cannot register public name '`+a$2+`' twice`),ab$1(h$3,a$2,a$2),h$3.hasOwnProperty(void 0)&&L$2(`Cannot register multiple overloads of a function with the same number of arguments (undefined)!`),h$3[a$2].S[void 0]=b$2):h$3[a$2]=b$2}function cb(a$2,b$2,c$3,d$3,e$1,f,g,k){this.name=a$2,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$2,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$2=b$2.ba(a$2),b$2=b$2.R;return a$2}function eb(a$2,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$2,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$2!==null&&a$2.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$2!==null&&a$2.push(this.W,c$3)}break;default:L$2(`Unsupporting sharing policy`)}return c$3}function hb(a$2,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$2,b$2,c$3,d$3){this.name=a$2,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$2,b$2){h$3.hasOwnProperty(a$2)||Ta(`Replacing nonexistant public symbol`),h$3[a$2]=b$2,h$3[a$2].Z=void 0}function jb(a$2,b$2){var c$3=[];return function(){if(c$3.length=0,Object.assign(c$3,arguments),a$2.includes(`j`)){var d$3=h$3[`dynCall_`+a$2];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$2,b$2){a$2=N$1(a$2);var c$3=a$2.includes(`j`)?jb(a$2,b$2):oa.get(b$2);return typeof c$3!=`function`&&L$2(`unknown function pointer with signature `+a$2+`: `+b$2),c$3}var mb=void 0;function nb(a$2,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$2+`: `+d$3.map(Ja).join([`, `]))}function ob(a$2,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$2+` 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$2,b$2){for(var c$3=[],d$3=0;d$3<a$2;d$3++)c$3.push(E$2[b$2+4*d$3>>2]);return c$3}function qb(a$2){4<a$2&&--J$2[a$2].ga===0&&(J$2[a$2]=void 0,Ca.push(a$2))}function fb(a$2){if(a$2===null)return`null`;var b$2=typeof a$2;return b$2===`object`||b$2===`array`||b$2===`function`?a$2.toString():``+a$2}function rb(a$2,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$2)}}function sb(a$2,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$2)}}function tb(a$2,b$2){for(var c$3=``,d$3=0;!(d$3>=b$2/2);++d$3){var e$1=C$2[a$2+2*d$3>>1];if(e$1==0)break;c$3+=String.fromCharCode(e$1)}return c$3}function ub(a$2,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$2.length?c$3/2:a$2.length;for(var e$1=0;e$1<c$3;++e$1)C$2[b$2>>1]=a$2.charCodeAt(e$1),b$2+=2;return C$2[b$2>>1]=0,b$2-d$3}function vb(a$2){return 2*a$2.length}function wb(a$2,b$2){for(var c$3=0,d$3=``;!(c$3>=b$2/4);){var e$1=D$1[a$2+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$2,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$2.length;++e$1){var f=a$2.charCodeAt(e$1);if(55296<=f&&57343>=f){var g=a$2.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$2){for(var b$2=0,c$3=0;c$3<a$2.length;++c$3){var d$3=a$2.charCodeAt(c$3);55296<=d$3&&57343>=d$3&&++c$3,b$2+=4}return b$2}var zb={};function Ab(a$2){var b$2=zb[a$2];return b$2===void 0?N$1(a$2):b$2}var Bb=[];function Cb(a$2){var b$2=Bb.length;return Bb.push(a$2),b$2}function Db(a$2,b$2){for(var c$3=Array(a$2),d$3=0;d$3<a$2;++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$2=0,b$2=5;b$2<J$2.length;++b$2)J$2[b$2]!==void 0&&++a$2;return a$2},h$3.get_first_emval=function(){for(var a$2=5;a$2<J$2.length;++a$2)if(J$2[a$2]!==void 0)return J$2[a$2];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$2=[],b$2;for(b$2 in Q$2)Q$2.hasOwnProperty(b$2)&&a$2.push(Q$2[b$2]);return a$2},h$3.flushPendingDeletes=Ha,h$3.setDelayFunction=function(a$2){P$2=a$2,O$3.length&&P$2&&P$2(Ha)},Sa=h$3.InternalError=Da(`InternalError`),X$2.prototype.isAliasOf=function(a$2){if(!(this instanceof X$2&&a$2 instanceof X$2))return!1;var b$2=this.M.P.N,c$3=this.M.O,d$3=a$2.M.P.N;for(a$2=a$2.M.O;b$2.R;)c$3=b$2.ba(c$3),b$2=b$2.R;for(;d$3.R;)a$2=d$3.ba(a$2),d$3=d$3.R;return b$2===d$3&&c$3===a$2},X$2.prototype.clone=function(){if(this.M.O||$a(this),this.M.aa)return this.M.count.value+=1,this;var a$2=T$1,b$2=Object,c$3=b$2.create,d$3=Object.getPrototypeOf(this),e$1=this.M;return a$2=a$2(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$2.M.count.value+=1,a$2.M.$=!1,a$2},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$2){return this.ka&&(a$2=this.ka(a$2)),a$2},Y$1.prototype.ha=function(a$2){this.W&&this.W(a$2)},Y$1.prototype.argPackAdvance=8,Y$1.prototype.readValueFromPointer=Xa,Y$1.prototype.deleteObject=function(a$2){a$2!==null&&a$2.delete()},Y$1.prototype.fromWireType=function(a$2){function b$2(){return this.da?Ua(this.N.X,{P:this.wa,O:c$3,U:this,T:a$2}):Ua(this.N.X,{P:this,O:a$2})}var c$3=this.qa(a$2);if(!c$3)return this.ha(a$2),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$2,d$3.clone()):(d$3=d$3.clone(),this.ha(a$2),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$2}):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$2){var b$2=``,c$3=0;a$2=a$2.replace(/[^A-Za-z0-9\+\/=]/g,``);do{var d$3=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.charAt(c$3++)),e$1=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.charAt(c$3++)),f=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.charAt(c$3++)),g=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.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$2.length);return b$2},Jb={l:function(a$2,b$2,c$3,d$3){x$1(`Assertion failed: `+(a$2?z$5(A,a$2):``)+`, 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$2,b$2,c$3){a$2=N$1(a$2),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$2=Ba(a$2,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$2.prototype=Object.create(f),c$3)a$2.prototype[m$2]=c$3[m$2];return Ea(a$2)},j:function(a$2){var b$2=Va[a$2];delete Va[a$2];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$2],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$2,b$2,c$3,d$3,e$1){var f=Za(c$3);b$2=N$1(b$2),W$2(a$2,{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$2,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&&=Z(g,k),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$2,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$2]={pointerType:B$1,la:lb},ib(u$17,t$1),[y$3,B$1,lb]})},d:function(a$2,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$2],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$2,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$2],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$2,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$2],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$2,b$2){b$2=N$1(b$2),W$2(a$2,{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$2,b$2,c$3){c$3=Za(c$3),b$2=N$1(b$2),W$2(a$2,{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$2,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$2,{name:b$2,fromWireType:f,toWireType:c$3,argPackAdvance:8,readValueFromPointer:sb(b$2,e$1,d$3!==0),V:null})},b:function(a$2,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$2,{name:c$3,fromWireType:d$3,argPackAdvance:8,readValueFromPointer:d$3},{ua:!0})},o:function(a$2,b$2){b$2=N$1(b$2);var c$3=b$2===`std::string`;W$2(a$2,{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$2,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$2,{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$2,b$2,c$3,d$3,e$1,f){Va[a$2]={name:N$1(b$2),fa:Z(c$3,d$3),W:Z(e$1,f),ia:[]}},h:function(a$2,b$2,c$3,d$3,e$1,f,g,k,m$2,l$1){Va[a$2].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$2,b$2){b$2=N$1(b$2),W$2(a$2,{va:!0,name:b$2,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(a$2,b$2,c$3,d$3,e$1){a$2=Bb[a$2],b$2=M$2(b$2),c$3=Ab(c$3);var f=[];return E$2[d$3>>2]=Ea(f),a$2(b$2,c$3,f,e$1)},t:function(a$2,b$2,c$3,d$3){a$2=Bb[a$2],b$2=M$2(b$2),c$3=Ab(c$3),a$2(b$2,c$3,null,d$3)},g:qb,m:function(a$2,b$2){var c$3=Db(a$2,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$2-1);return e$1=Cb((g,k,m$2,l$1)=>{for(var n$2=0,p=0;p<a$2-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$2-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$2){4<a$2&&(J$2[a$2].ga+=1)},r:function(a$2){var b$2=M$2(a$2);Wa(b$2),qb(a$2)},c:function(){x$1(``)},x:function(a$2,b$2,c$3){A.copyWithin(a$2,b$2,b$2+c$3)},w:function(a$2){var b$2=A.length;if(a$2>>>=0,2147483648<a$2)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$2+100663296);var e$1=Math;d$3=Math.max(a$2,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{}f=void 0}if(f)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(a$2,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$2];l$1===0||l$1===10?((a$2===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$2(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$2&&(e$1=G$2,G$2=null,e$1()))}function b$2(e$1){a$2(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$2)}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)||typeof fetch!=`function`?c$3(b$2):fetch(H,{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$2=function Lb(){Kb||Mb(),Kb||(G$2=Lb)};function Mb(){function a$2(){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$2()},1)):a$2())}}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})})();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}({});var YGEnums_default={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};function wrapAssembly(lib){function patch$2(prototype,name$2,fn){let original=prototype[name$2];prototype[name$2]=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}}var src_default=wrapAssembly(await yoga_wasm_base64_esm_default());function ansiRegex({onlyFirst=!1}={}){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(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<=94198||x$1>=94208&&x$1<=101589||x$1>=101631&&x$1<=101662||x$1>=101760&&x$1<=101874||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<=128728||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<=129674||x$1>=129678&&x$1<=129734||x$1===129736||x$1>=129741&&x$1<=129756||x$1>=129759&&x$1<=129770||x$1>=129775&&x$1<=129784||x$1>=131072&&x$1<=196605||x$1>=196608&&x$1<=262141}function validate$6(codePoint){if(!Number.isSafeInteger(codePoint))throw TypeError(`Expected a code point, got \`${typeof codePoint}\`.`)}function eastAsianWidth(codePoint,{ambiguousAsWide=!1}={}){return validate$6(codePoint),isFullWidth(codePoint)||isWide(codePoint)||ambiguousAsWide&&isAmbiguous(codePoint)?2:1}var import_emoji_regex=__toESM(__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}))(),1);const segmenter=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(string)),string.length===0)return 0;let width=0,eastAsianWidthOptions={ambiguousAsWide:!ambiguousIsNarrow};for(let{segment:character}of segmenter.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)){if((0,import_emoji_regex.default)().test(character)){width+=2;continue}width+=eastAsianWidth(codePoint,eastAsianWidthOptions)}}return width}const ANSI_BACKGROUND_OFFSET$2=10,wrapAnsi16$3=(offset=0)=>code$1=>`\u001B[${code$1+offset}m`,wrapAnsi256$3=(offset=0)=>code$1=>`\u001B[${38+offset};5;${code$1}m`,wrapAnsi16m$3=(offset=0)=>(red$1,green$1,blue$1)=>`\u001B[${38+offset};2;${red$1};${green$1};${blue$1}m`,styles$8={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$2=Object.keys(styles$8.modifier),foregroundColorNames$2=Object.keys(styles$8.color),backgroundColorNames$2=Object.keys(styles$8.bgColor),colorNames$2=[...foregroundColorNames$2,...backgroundColorNames$2];function assembleStyles$3(){let codes$1=new Map;for(let[groupName,group]of Object.entries(styles$8)){for(let[styleName,style]of Object.entries(group))styles$8[styleName]={open:`\u001B[${style[0]}m`,close:`\u001B[${style[1]}m`},group[styleName]=styles$8[styleName],codes$1.set(style[0],style[1]);Object.defineProperty(styles$8,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles$8,`codes`,{value:codes$1,enumerable:!1}),styles$8.color.close=`\x1B[39m`,styles$8.bgColor.close=`\x1B[49m`,styles$8.color.ansi=wrapAnsi16$3(),styles$8.color.ansi256=wrapAnsi256$3(),styles$8.color.ansi16m=wrapAnsi16m$3(),styles$8.bgColor.ansi=wrapAnsi16$3(10),styles$8.bgColor.ansi256=wrapAnsi256$3(10),styles$8.bgColor.ansi16m=wrapAnsi16m$3(10),Object.defineProperties(styles$8,{rgbToAnsi256:{value(red$1,green$1,blue$1){return 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$8.rgbToAnsi256(...styles$8.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$8.ansi256ToAnsi(styles$8.rgbToAnsi256(red$1,green$1,blue$1)),enumerable:!1},hexToAnsi:{value:hex=>styles$8.ansi256ToAnsi(styles$8.hexToAnsi256(hex)),enumerable:!1}}),styles$8}var ansi_styles_default$1=assembleStyles$3();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$3=>`${ESCAPES$4.values().next().value}${ANSI_ESCAPE_LINK}${url$3}`,wordLengths=string=>string.split(` `).map(character=>stringWidth(character)),wrapWord=(rows,word,columns)=>{let characters=[...word],isInsideEscape=!1,isInsideLinkEscape=!1,visible=stringWidth(stripAnsi(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,isInsideLinkEscape=characters.slice(index+1,index+1+4).join(``)===ANSI_ESCAPE_LINK),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);Math.floor((lengths[index]-1)/columns)<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(`
|
|
1
|
+
import{__commonJSMin,__esmMin,__export as __export$5,__require as __require$1,__toCommonJS as __toCommonJS$4,__toDynamicImportESM,__toESM}from"./chunk-D9KrCrVq.js";import{import_websocket}from"./wrapper-B0SBsJWP.js";import{findNearestEntry,migrateDataToBlink,require_main as require_main$1,resolveConfig}from"./util-k3x8m_i5.js";import{Client as Client$2}from"./dist-Ceoe3h7v.js";import{deleteAuthToken,getAuthToken,setAuthToken}from"./auth-DbpOUCTO.js";import{openUrl,open_default,source_default}from"./util-CUfifM0g.js";import{require_ignore}from"./ignore-NA4V6Pjc.js";import{createDevhookID,createSlackApp,createSlackAppSchema,getDevhookID,hasDevhook}from"./create-slack-app-CyVPwWsG.js";import{DiagConsoleLogger,DiagLogLevel,SpanStatusCode,ValueType,diag,esm_exports as esm_exports$11,init_esm as init_esm$10,metrics,trace as trace$11}from"./esm-C_RXU0lI.js";import{require_token_error}from"./token-error-COQY18OP.js";import{require_undici as require_undici$1}from"./undici-CRntNDHY.js";import{APICallError,APIServerURLEnvironmentVariable,ChatManager,Client as Client$3,CustomChatResponseError,EmptyResponseBodyError,EventSourceParserStream,InvalidArgumentError,JSONParseError,NoSuchModelError,TypeValidationError,checkOptionalParameter,completeAssign,convertMessage,createAnthropic,createCustomAbortControllerSignal,createDiskStore,createOpenAI,createParser,decodeURIComponent_,ensureDisposableStackRegisteredForTerminateEvents,fakePromise,getLockInfo,getPath as getPath$1,getPathNoStrict,getPattern,getQueryParam,getQueryParams,handleAbortSignalAndPromiseResponse,handleErrorFromRequestHandler,handleMaybePromise,hc,isFetchEvent,isNodeRequest,isPromise as isPromise$1,isRequestInit,isServerResponse,isStoredMessageMetadata,isToolApprovalOutput,isolateObject,iterateAsync,lastUIOptions,lock,mergePath,normalizeNodeRequest,parse as parse$17,sendNodeResponse,splitPath,splitRoutingPath,tools as tools$1,tryDecode,unfakePromise}from"./chat-manager-GWR_v50X.js";import{templates}from"./init-templates-By3gx42M.js";import{errorMonitor}from"events";import*as https$5 from"https";import*as http$7 from"http";import http,{createServer}from"http";import crypto$1 from"crypto";import{Readable}from"stream";import*as zlib$2 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$2 from"node:path";import path,{basename,dirname,join,posix,win32}from"node:path";import*as fs$4 from"node:fs";import fs,{appendFileSync,createReadStream,createWriteStream,promises,readFileSync,statSync,writeFileSync}from"node:fs";import*as process$1 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 as resolve$1,sep}from"path";import*as nativeFs from"fs";import fs$1,{createWriteStream as createWriteStream$1,existsSync as existsSync$1,lstatSync,mkdirSync as mkdirSync$1,readFileSync as readFileSync$1,readdir,readdirSync,readlinkSync,realpathSync,watch,writeFile,writeFileSync as writeFileSync$1}from"fs";import{createRequire}from"module";import*as fs$37 from"fs/promises";import{readFile,writeFile as writeFile$1}from"fs/promises";import{z}from"zod";import*as z4 from"zod/v4";import{z as z$2}from"zod/v4";import{ZodFirstPartyTypeKind}from"zod/v3";import*as fs$3 from"node:fs/promises";import fs$2,{lstat,readdir as readdir$2,readlink,realpath}from"node:fs/promises";import os from"os";import*as os$2 from"node:os";import os$1,{EOL,constants as constants$1,platform as platform$1}from"node:os";import tty from"node:tty";import util,{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$5 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,getToolOrDynamicToolName,isToolOrDynamicToolUIPart,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"@blink-sdk/compute-protocol/client";import{createInMemoryClientServer}from"@blink-sdk/compute-protocol/transport";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)};return debounced.cancel=_debounced.cancel,debounced.flush=()=>(_debounced.flush(),result),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=`;`,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$7=0;i$7<count$1;i$7++)clear$1+=eraseLine+(i$7<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`,clearViewport=`${eraseScreen}[H`,clearTerminal=isWindows$2?`${eraseScreen}[0f`:`${eraseScreen}[3J[H`,enterAlternativeScreen=`\x1B[?1049h`,exitAlternativeScreen=`\x1B[?1049l`,link$3=(text,url$3)=>[`\x1B]`,`8`,`;`,`;`,url$3,`\x07`,text,`\x1B]`,`8`,`;`,`;`,`\x07`].join(``),check$1=key$1=>key$1 in env&&env[key$1]!==`0`&&env[key$1]!==`false`;var is_in_ci_default=check$1(`CI`)||check$1(`CONTINUOUS_INTEGRATION`);const getAllProperties=object=>{let properties$1=new Set;do for(let key$1 of Reflect.ownKeys(object))properties$1.add([object,key$1]);while((object=Reflect.getPrototypeOf(object))&&object!==Object.prototype);return properties$1};function autoBind(self$1,{include,exclude}={}){let filter$3=key$1=>{let match$1=pattern=>typeof pattern==`string`?key$1===pattern:pattern.test(key$1);return include?include.some(match$1):exclude?!exclude.some(match$1):!0};for(let[object,key$1]of getAllProperties(self$1.constructor.prototype)){if(key$1===`constructor`||!filter$3(key$1))continue;let descriptor$1=Reflect.getOwnPropertyDescriptor(object,key$1);descriptor$1&&typeof descriptor$1.value==`function`&&(self$1[key$1]=self$1[key$1].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$13=global.process;let processOk$1=function(process$14){return process$14&&typeof process$14==`object`&&typeof process$14.removeListener==`function`&&typeof process$14.emit==`function`&&typeof process$14.reallyExit==`function`&&typeof process$14.listeners==`function`&&typeof process$14.kill==`function`&&typeof process$14.pid==`number`&&typeof process$14.on==`function`};if(!processOk$1(process$13))module.exports=function(){return function(){}};else{var assert$2=__require$1(`assert`),signals$1=require_signals(),isWin$2=/^win/i.test(process$13.platform),EE=__require$1(`events`);typeof EE!=`function`&&(EE=EE.EventEmitter);var emitter;process$13.__signal_exit_emitter__?emitter=process$13.__signal_exit_emitter__:(emitter=process$13.__signal_exit_emitter__=new EE,emitter.count=0,emitter.emitted={}),emitter.infinite||=(emitter.setMaxListeners(1/0),!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$6();var ev=`exit`;return opts&&opts.alwaysLast&&(ev=`afterexit`),emitter.on(ev,cb),function(){emitter.removeListener(ev,cb),emitter.listeners(`exit`).length===0&&emitter.listeners(`afterexit`).length===0&&unload$1()}};var unload$1=function(){!loaded||!processOk$1(global.process)||(loaded=!1,signals$1.forEach(function(sig){try{process$13.removeListener(sig,sigListeners[sig])}catch{}}),process$13.emit=originalProcessEmit,process$13.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(){processOk$1(global.process)&&process$13.listeners(sig).length===emitter.count&&(unload$1(),emit(`exit`,null,sig),emit(`afterexit`,null,sig),isWin$2&&sig===`SIGHUP`&&(sig=`SIGINT`),process$13.kill(process$13.pid,sig))}}),module.exports.signals=function(){return signals$1};var loaded=!1,load$6=function(){loaded||!processOk$1(global.process)||(loaded=!0,emitter.count+=1,signals$1=signals$1.filter(function(sig){try{return process$13.on(sig,sigListeners[sig]),!0}catch{return!1}}),process$13.emit=processEmit,process$13.reallyExit=processReallyExit)};module.exports.load=load$6;var originalProcessReallyExit=process$13.reallyExit,processReallyExit=function(code$1){processOk$1(global.process)&&(process$13.exitCode=code$1||0,emit(`exit`,process$13.exitCode,null),emit(`afterexit`,process$13.exitCode,null),originalProcessReallyExit.call(process$13,process$13.exitCode))},originalProcessEmit=process$13.emit,processEmit=function(ev,arg){if(ev===`exit`&&processOk$1(global.process)){arg!==void 0&&(process$13.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit(`exit`,process$13.exitCode,null),emit(`afterexit`,process$13.exitCode,null),ret}else return originalProcessEmit.apply(this,arguments)}}})),import_signal_exit$1=__toESM(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={};var dist_default$1=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={}}},require_react_reconciler_constants_production=__commonJSMin((exports=>{exports.DefaultEventPriority=32,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$13=__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(require_constants$13(),1),yoga_wasm_base64_esm_default=(()=>{var _scriptDir=import.meta.url;return(function(loadYoga$1){loadYoga$1||={};var h$3;h$3||=loadYoga$1===void 0?{}:loadYoga$1;var aa,ca;h$3.ready=new Promise(function(a$2,b$2){aa=a$2,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$2,b$2,c$3){c$3=b$2+c$3;for(var d$3=``;!(b$2>=c$3);){var e$1=a$2[b$2++];if(!e$1)break;if(e$1&128){var f=a$2[b$2++]&63;if((e$1&224)==192)d$3+=String.fromCharCode((e$1&31)<<6|f);else{var g=a$2[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$2[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$2=fa.buffer;ia=a$2,h$3.HEAP8=ja=new Int8Array(a$2),h$3.HEAP16=C$2=new Int16Array(a$2),h$3.HEAP32=D$1=new Int32Array(a$2),h$3.HEAPU8=A=new Uint8Array(a$2),h$3.HEAPU16=ka=new Uint16Array(a$2),h$3.HEAPU32=E$2=new Uint32Array(a$2),h$3.HEAPF32=la=new Float32Array(a$2),h$3.HEAPF64=ma=new Float64Array(a$2)}var oa,pa=[],qa=[],ra=[];function sa(){var a$2=h$3.preRun.shift();pa.unshift(a$2)}var F$2=0,ta=null,G$2=null;function x$1(a$2){throw h$3.onAbort&&h$3.onAbort(a$2),a$2=`Aborted(`+a$2+`)`,v$1(a$2),ha=!0,a$2=new WebAssembly.RuntimeError(a$2+`. Build with -sASSERTIONS for more info.`),ca(a$2),a$2}function ua(a$2){return a$2.startsWith(`data:application/octet-stream;base64,`)}var H=`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/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAEBAQBAQEICAEBAQEBAQEBCAgBAQEAAg4CAgUBAR4DBAcBcAHUAdQBBQcBAYACgIACBg0CfwFBkMQEC38BQQALByQIAUUCAAFGAG0BRwCwAQFIAK8BAUkAYQFKAQABSwAjAUwApgEJjQMBAEEBC9MBqwGqAaUB5QHiAZwB0AFazwHOAVlZWpsBmgGZAc0BzAHLAcoBWpgByQFZWVqbAZoBmQHIAccBxgGjAZcBpAGWAaMBvQKVAbwCxQG7Ajq6Ajq5ApQBuAI+twI+xAFqwwFqwgFqaWjBAcABvwGhAZcBtgK+AbUClgGhAbQCmAGzAjqxAjqwAr0BrwKuAq0CrAKrAqoCqAKnAqYCpQKkAqMCogKhArwBoAKfAp4CnQKcApsCmgKZApgClwKWApUClAKTApICkQKQAo8CjgKyAo0CjAKLAooCiAKHAqkChQI+hAK7AYMCggKBAoAC/gH9AfwB+QG6AfgBuQH3AfYB9QH0AfMB8gHxAYYC8AHvAbgB+wH6Ae4B7QG3AesBlQHqATrpAT7oAT7nAZQB0QE67AE+iQLmATrkAeMBOuEB4AHfAT7eAd0B3AG2AdsB2gHZAdgB1wHWAdUBtQHUAdMB0gH/AWloaWiPAZABsgGxAZEBhQGSAbQBswGRAa4BrQGsAakBqAGnAYUBCtj+A6ACMwEBfyAAQQEgABshAAJAA0AgABBhIgENAUGIxAAoAgAiAQRAIAERCQAMAQsLEAIACyABC+0BAgJ9A39DAADAfyEEAkACQAJAAkAgAkEHcSIGDgUCAQEBAAELQQMhBQwBCyAGQQFrQQJPDQEgAkHw/wNxQQR2IQcCfSACQQhxBEAgASAHEJ4BvgwBC0EAIAdB/w9xIgFrIAEgAsFBAEgbsgshAyAGQQFGBEAgAyADXA0BQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgEbIQQgAUUhBQwBCyADIANcDQBBAEECIANDAACAf1sgA0MAAID/W3IiARshBUMAAMB/IAMgARshBAsgACAFOgAEIAAgBDgCAA8LQfQNQakYQTpB+RYQCwALZwIBfQF/QwAAwH8hAgJAAkACQCABQQdxDgQCAAABAAtBxBJBqRhByQBBuhIQCwALIAFB8P8DcUEEdiEDIAFBCHEEQCAAIAMQngG+DwtBACADQf8PcSIAayAAIAHBQQBIG7IhAgsgAgt4AgF/AX0jAEEQayIEJAAgBEEIaiAAQQMgAkECR0EBdCABQf4BcUECRxsgAhAoQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAAAgBSAFWxsLeAIBfwF9IwBBEGsiBCQAIARBCGogAEEBIAJBAkZBAXQgAUH+AXFBAkcbIAIQKEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAIAUgBVsbC8wCAQV/IAAEQCAAQQRrIgEoAgAiBSEDIAEhAiAAQQhrKAIAIgAgAEF+cSIERwRAIAEgBGsiAigCBCIAIAIoAgg2AgggAigCCCAANgIEIAQgBWohAwsgASAFaiIEKAIAIgEgASAEakEEaygCAEcEQCAEKAIEIgAgBCgCCDYCCCAEKAIIIAA2AgQgASADaiEDCyACIAM2AgAgA0F8cSACakEEayADQQFyNgIAIAICfyACKAIAQQhrIgFB/wBNBEAgAUEDdkEBawwBCyABQR0gAWciAGt2QQRzIABBAnRrQe4AaiABQf8fTQ0AGkE/IAFBHiAAa3ZBAnMgAEEBdGtBxwBqIgAgAEE/TxsLIgFBBHQiAEHgMmo2AgQgAiAAQegyaiIAKAIANgIIIAAgAjYCACACKAIIIAI2AgRB6DpB6DopAwBCASABrYaENwMACwsOAEHYMigCABEJABBYAAunAQIBfQJ/IABBFGoiByACIAFBAkkiCCAEIAUQNSEGAkAgByACIAggBCAFEC0iBEMAAAAAYCADIARecQ0AIAZDAAAAAGBFBEAgAyEEDAELIAYgAyADIAZdGyEECyAAQRRqIgAgASACIAUQOCAAIAEgAhAwkiAAIAEgAiAFEDcgACABIAIQL5KSIgMgBCADIAReGyADIAQgBCAEXBsgBCAEWyADIANbcRsLvwEBA38gAC0AAEEgcUUEQAJAIAEhAwJAIAIgACIBKAIQIgAEfyAABSABEJ0BDQEgASgCEAsgASgCFCIFa0sEQCABIAMgAiABKAIkEQYAGgwCCwJAIAEoAlBBAEgNACACIQADQCAAIgRFDQEgAyAEQQFrIgBqLQAAQQpHDQALIAEgAyAEIAEoAiQRBgAgBEkNASADIARqIQMgAiAEayECIAEoAhQhBQsgBSADIAIQKxogASABKAIUIAJqNgIUCwsLCwYAIAAQIwtQAAJAAkACQAJAAkAgAg4EBAABAgMLIAAgASABQQxqEEMPCyAAIAEgAUEMaiADEEQPCyAAIAEgAUEMahBCDwsQJAALIAAgASABQQxqIAMQRQttAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiARsQKhogAUUEQANAIAAgBUGAAhAmIANBgAJrIgNB/wFLDQALCyAAIAUgAxAmCyAFQYACaiQAC/ICAgJ/AX4CQCACRQ0AIAAgAToAACAAIAJqIgNBAWsgAToAACACQQNJDQAgACABOgACIAAgAToAASADQQNrIAE6AAAgA0ECayABOgAAIAJBB0kNACAAIAE6AAMgA0EEayABOgAAIAJBCUkNACAAQQAgAGtBA3EiBGoiAyABQf8BcUGBgoQIbCIBNgIAIAMgAiAEa0F8cSIEaiICQQRrIAE2AgAgBEEJSQ0AIAMgATYCCCADIAE2AgQgAkEIayABNgIAIAJBDGsgATYCACAEQRlJDQAgAyABNgIYIAMgATYCFCADIAE2AhAgAyABNgIMIAJBEGsgATYCACACQRRrIAE2AgAgAkEYayABNgIAIAJBHGsgATYCACAEIANBBHFBGHIiBGsiAkEgSQ0AIAGtQoGAgIAQfiEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkEgayICQR9LDQALCyAAC4AEAQN/IAJBgARPBEAgACABIAIQFyAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAtIAQF/IwBBEGsiBCQAIAQgAzYCDAJAIABFBEBBAEEAIAEgAiAEKAIMEHEMAQsgACgC9AMgACABIAIgBCgCDBBxCyAEQRBqJAALkwECAX0BfyMAQRBrIgYkACAGQQhqIABB6ABqIAAgAkEBdGovAWIQH0MAAMB/IQUCQAJAAkAgBi0ADEEBaw4CAAECCyAGKgIIIQUMAQsgBioCCCADlEMK1yM8lCEFCyAALQADQRB0QYCAwABxBEAgBSAAIAEgAiAEEFQiA0MAAAAAIAMgA1sbkiEFCyAGQRBqJAAgBQu1AQECfyAAKAIEQQFqIgEgACgCACICKALsAyACKALoAyICa0ECdU8EQANAIAAoAggiAUUEQCAAQQA2AgggAEIANwIADwsgACABKAIENgIAIAAgASgCCDYCBCAAIAEoAgA2AgggARAjIAAoAgRBAWoiASAAKAIAIgIoAuwDIAIoAugDIgJrQQJ1Tw0ACwsgACABNgIEIAIgAUECdGooAgAtABdBEHRBgIAwcUGAgCBGBEAgABB9CwuBAQIBfwF9IwBBEGsiAyQAIANBCGogAEEDIAJBAkdBAXQgAUH+AXFBAkcbIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC4EBAgF/AX0jAEEQayIDJAAgA0EIaiAAQQEgAkECRkEBdCABQf4BcUECRxsgAhBTQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIQwAAAACUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsLeAICfQF/IAAgAkEDdGoiByoC+AMhBkMAAMB/IQUCQAJAAkAgBy0A/ANBAWsOAgABAgsgBiEFDAELIAYgA5RDCtcjPJQhBQsgAC0AF0EQdEGAgMAAcQR9IAUgAEEUaiABIAIgBBBUIgNDAAAAACADIANbG5IFIAULC1EBAX8CQCABKALoAyICIAEoAuwDRwRAIABCADcCBCAAIAE2AgAgAigCAC0AF0EQdEGAgDBxQYCAIEcNASAAEH0PCyAAQgA3AgAgAEEANgIICwvoAgECfwJAIAAgAUYNACABIAAgAmoiBGtBACACQQF0a00EQCAAIAEgAhArDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkEBayECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkEBayICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQQRrIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkEBayICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AA0AgAyABKAIANgIAIAFBBGohASADQQRqIQMgAkEEayICQQNLDQALCyACRQ0AA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAAC5QCAgF8AX8CQCAAIAGiIgAQbCIERAAAAAAAAPA/oCAEIAREAAAAAAAAAABjGyIEIARiIgUgBJlELUMc6+I2Gj9jRXJFBEAgACAEoSEADAELIAUgBEQAAAAAAADwv6CZRC1DHOviNho/Y0VyRQRAIAAgBKFEAAAAAAAA8D+gIQAMAQsgACAEoSEAIAIEQCAARAAAAAAAAPA/oCEADAELIAMNACAAAnxEAAAAAAAAAAAgBQ0AGkQAAAAAAADwPyAERAAAAAAAAOA/ZA0AGkQAAAAAAADwP0QAAAAAAAAAACAERAAAAAAAAOC/oJlELUMc6+I2Gj9jGwugIQALIAAgAGIgASABYnIEQEMAAMB/DwsgACABo7YLkwECAX0BfyMAQRBrIgYkACAGQQhqIABB6ABqIAAgAkEBdGovAV4QH0MAAMB/IQUCQAJAAkAgBi0ADEEBaw4CAAECCyAGKgIIIQUMAQsgBioCCCADlEMK1yM8lCEFCyAALQADQRB0QYCAwABxBEAgBSAAIAEgAiAEEFQiA0MAAAAAIAMgA1sbkiEFCyAGQRBqJAAgBQtQAAJAAkACQAJAAkAgAg4EBAABAgMLIAAgASABQR5qEEMPCyAAIAEgAUEeaiADEEQPCyAAIAEgAUEeahBCDwsQJAALIAAgASABQR5qIAMQRQt+AgF/AX0jAEEQayIEJAAgBEEIaiAAQQMgAkECR0EBdCABQf4BcUECRxsgAhBQQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAACXQwAAAAAgBSAFWxsLfgIBfwF9IwBBEGsiBCQAIARBCGogAEEBIAJBAkZBAXQgAUH+AXFBAkcbIAIQUEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAl0MAAAAAIAUgBVsbC08AAkACQAJAIANB/wFxIgMOBAACAgECCyABIAEvAABB+P8DcTsAAA8LIAEgAS8AAEH4/wNxQQRyOwAADwsgACABIAJBAUECIANBAUYbEEwLNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEBAAtiAgJ9An8CQCAAKALkA0UNACAAQfwAaiIDIABBGmoiBC8BABAgIgIgAlwEQCADIABBGGoiBC8BABAgIgIgAlwNASADIAAvARgQIEMAAAAAXkUNAQsgAyAELwEAECAhAQsgAQtfAQN/IAEEQEEMEB4iAyABKQIENwIEIAMhAiABKAIAIgEEQCADIQQDQEEMEB4iAiABKQIENwIEIAQgAjYCACACIQQgASgCACIBDQALCyACIAAoAgA2AgAgACADNgIACwvXawMtfxx9AX4CfwJAIAAtAABBBHEEQCAAKAKgASAMRw0BCyAAKAKkASAAKAL0AygCDEcNAEEAIAAtAKgBIANGDQEaCyAAQoCAgPyLgIDAv383AoADIABCgYCAgBA3AvgCIABCgICA/IuAgMC/fzcC8AIgAEEANgKsAUEBCyErAkACQAJAAkAgACgCCARAIABBFGoiDkECQQEgBhAiIT4gDkECQQEgBhAhITwgDkEAQQEgBhAiITsgDkEAQQEgBhAhIUAgBCABIAUgAiAAKAL4AiAAQfACaiIOKgIAIAAoAvwCIAAqAvQCIAAqAoADIAAqAoQDID4gPJIiPiA7IECSIjwgACgC9AMiEBB7DQEgACgCrAEiEUUNAyAAQbABaiETA0AgBCABIAUgAiATIB1BGGxqIg4oAgggDioCACAOKAIMIA4qAgQgDioCECAOKgIUID4gPCAQEHsNAiAdQQFqIh0gEUcNAAsMAgsgCEUEQCAAKAKsASITRQ0CIABBsAFqIRADQAJAAkAgECAdQRhsIhFqIg4qAgAiPiA+XCABIAFcckUEQCA+IAGTi0MXt9E4XQ0BDAILIAEgAVsgPiA+W3INAQsCQCAQIBFqIhEqAgQiPiA+XCACIAJcckUEQCA+IAKTi0MXt9E4XQ0BDAILIAIgAlsgPiA+W3INAQsgESgCCCAERw0AIBEoAgwgBUYNAwsgEyAdQQFqIh1HDQALDAILAkAgAEHwAmoiDioCACI+ID5cIAEgAVxyRQRAID4gAZOLQxe30ThdDQEMBAsgASABWyA+ID5bcg0DCyAOQQAgACgC/AIgBUYbQQAgACgC+AIgBEYbQQACfyACIAJcIg4gACoC9AIiPiA+XHJFBEAgPiACk4tDF7fROF0MAQtBACA+ID5bDQAaIA4LGyEOCyAORSArcgRAIA4hHQwCCyAAIA4qAhA4ApQDIAAgDioCFDgCmAMgCkEMQRAgCBtqIgMgAygCAEEBajYCACAOIR0MAgtBACEdCyAGIUAgByFHIAtBAWohIiMAQaABayINJAACQAJAIARBAUYgASABW3JFBEAgDUGqCzYCICAAQQVB2CUgDUEgahAsDAELIAVBAUYgAiACW3JFBEAgDUHZCjYCECAAQQVB2CUgDUEQahAsDAELIApBAEEEIAgbaiILIAsoAgBBAWo2AgAgACAALQCIA0H8AXEgAC0AFEEDcSILIANBASADGyIsIAsbIg9BA3FyOgCIAyAAQawDaiIQIA9BAUdBA3QiC2ogAEEUaiIUQQNBAiAPQQJGGyIRIA8gQBAiIgY4AgAgECAPQQFGQQN0Ig5qIBQgESAPIEAQISIHOAIAIAAgFEEAIA8gQBAiIjw4ArADIAAgFEEAIA8gQBAhIjs4ArgDIABBvANqIhAgC2ogFCARIA8QMDgCACAOIBBqIBQgESAPEC84AgAgACAUQQAgDxAwOALAAyAAIBRBACAPEC84AsgDIAsgAEHMA2oiC2ogFCARIA8gQBA4OAIAIAsgDmogFCARIA8gQBA3OAIAIAAgFEEAIA8gQBA4OALQAyAAIBRBACAPIEAQNyI6OALYAyAGIAeSIT4gPCA7kiE8AkACQCAAKAIIIgsEQEMAAMB/IAEgPpMgBEEBRhshBkMAAMB/IAIgPJMgBUEBRhshPiAAAn0gBCAFckUEQCAAIABBAiAPIAYgQCBAECU4ApQDIABBACAPID4gRyBAECUMAQsgBEEDTyAFQQNPcg0EIA1BiAFqIAAgBiAGIAAqAswDIAAqAtQDkiAAKgK8A5IgACoCxAOSIjyTIgdDAAAAACAHQwAAAABeGyAGIAZcG0GBgAggBEEDdEH4//8HcXZB/wFxID4gPiAAKgLQAyA6kiAAKgLAA5IgACoCyAOSIjuTIgdDAAAAACAHQwAAAABeGyA+ID5cG0GBgAggBUEDdEH4//8HcXZB/wFxIAsREAAgDSoCjAEiPUMAAAAAYCANKgKIASIHQwAAAABgcUUEQCANID27OQMIIA0gB7s5AwAgAEEBQdwdIA0QLCANKgKMASIHQwAAAAAgB0MAAAAAXhshPSANKgKIASIHQwAAAAAgB0MAAAAAXhshBwsgCiAKKAIUQQFqNgIUIAogCUECdGoiCSAJKAIYQQFqNgIYIAAgAEECIA8gPCAHkiAGIARBAWtBAkkbIEAgQBAlOAKUAyAAQQAgDyA7ID2SID4gBUEBa0ECSRsgRyBAECULOAKYAwwBCwJAIAAoAuADRQRAIAAoAuwDIAAoAugDa0ECdSELDAELIA1BiAFqIAAQMgJAIA0oAogBRQRAQQAhCyANKAKMAUUNAQsgDUGAAWohEEEAIQsDQCANQQA2AoABIA0gDSkDiAE3A3ggECANKAKQARA8IA1BiAFqEC4gDSgCgAEiCQRAA0AgCSgCACEOIAkQJyAOIgkNAAsLIAtBAWohCyANQQA2AoABIA0oAowBIA0oAogBcg0ACwsgDSgCkAEiCUUNAANAIAkoAgAhDiAJECcgDiIJDQALCyALRQRAIAAgAEECIA8gBEEBa0EBSwR9IAEgPpMFIAAqAswDIAAqAtQDkiAAKgK8A5IgACoCxAOSCyBAIEAQJTgClAMgACAAQQAgDyAFQQFrQQFLBH0gAiA8kwUgACoC0AMgACoC2AOSIAAqAsADkiAAKgLIA5ILIEcgQBAlOAKYAwwBCwJAIAgNACAFQQJGIAIgPJMiBiAGW3EgBkMAAAAAX3EgBCAFckUgBEECRiABID6TIgdDAAAAAF9xcnJFDQAgACAAQQIgD0MAAAAAQwAAAAAgByAHQwAAAABdGyAHIARBAkYbIAcgB1wbIEAgQBAlOAKUAyAAIABBACAPQwAAAABDAAAAACAGIAZDAAAAAF0bIAYgBUECRhsgBiAGXBsgRyBAECU4ApgDDAELIAAQTyAAIAAtAIgDQfsBcToAiAMgABBeQQMhEyAALQAUQQJ2QQNxIQkCQAJAIA9BAkcNAAJAIAlBAmsOAgIAAQtBAiETDAELIAkhEwsgAC8AFSEnIBQgEyAPIEAQOCEGIBQgEyAPEDAhByAUIBMgDyBAEDchOyAUIBMgDxAvITpBACEQIBQgEUEAIBNBAkkbIhYgDyBAEDghPyAUIBYgDxAwIT0gFCAWIA8gQBA3IUEgFCAWIA8QLyFEIBQgFiAPIEAQYCFCIBQgFiAPEEshQyAAIA9BACABID6TIlAgBiAHkiA7IDqSkiJKID8gPZIgQSBEkpIiRiATQQFLIhkbIEAgQBB6ITsgACAPQQEgAiA8kyJRIEYgSiAZGyBHIEAQeiFFAkACQCAEIAUgGRsiHA0AIA1BiAFqIAAQMgJAAkAgDSgCiAEiDiANKAKMASIJckUNAANAIA4oAuwDIA4oAugDIg5rQQJ1IAlNDQQCQCAOIAlBAnRqKAIAIgkQeUUNACAQDQIgCRA7IgYgBlsgBotDF7fROF1xDQIgCRBAIgYgBlwEQCAJIRAMAQsgCSEQIAaLQxe30ThdDQILIA1BiAFqEC4gDSgCjAEiCSANKAKIASIOcg0ACwwBC0EAIRALIA0oApABIglFDQADQCAJKAIAIQ4gCRAnIA4iCQ0ACwsgDUGIAWogABAyIA0oAowBIQkCQCANKAKIASIORQRAQwAAAAAhPSAJRQ0BCyBFIEVcIiMgBUEAR3IhKCA7IDtcIiQgBEEAR3IhKUMAAAAAIT0DQCAOKALsAyAOKALoAyIOa0ECdSAJTQ0CIA4gCUECdGooAgAiDhB4AkAgDi8AFSAOLQAXQRB0ciIJQYCAMHFBgIAQRgRAIA4QdyAOIA4tAAAiCUEBciIOQfsBcSAOIAlBBHEbOgAADAELIAgEfyAOIA4tABRBA3EiCSAPIAkbIDsgRRB2IA4vABUgDi0AF0EQdHIFIAkLQYDgAHFBgMAARg0AIA5BFGohEQJAIA4gEEYEQCAQQQA2ApwBIBAgDDYCmAFDAAAAACEHDAELIBQtAABBAnZBA3EhCQJAAkAgD0ECRw0AQQMhEgJAIAlBAmsOAgIAAQtBAiESDAELIAkhEgsgDUGAgID+BzYCaCANQYCAgP4HNgJQIA1B+ABqIA5B/ABqIhcgDi8BHhAfIDsgRSASQQFLIh4bIT4CQAJAAkACQCANLQB8IgkOBAABAQABCwJAIBcgDi8BGBAgIgYgBlwNACAXIA4vARgQIEMAAAAAXkUNACAOKAL0Ay0ACEEBcSIJDQBDAADAf0MAAAAAIAkbIQcMAgtDAADAfyEGDAILIA0qAnghB0MAAMB/IQYCQCAJQQFrDgIBAAILIAcgPpRDCtcjPJQhBgwBCyAHIQYLIA4tABdBEHRBgIDAAHEEQCAGIBEgD0GBAiASQQN0dkEBcSA7EFQiBkMAAAAAIAYgBlsbkiEGCyAOKgL4AyEHQQAhH0EAIRgCQAJAAkAgDi0A/ANBAWsOAgEAAgsgOyAHlEMK1yM8lCEHCyAHIAdcDQAgB0MAAAAAYCEYCyAOKgKABCEHAkACQAJAIA4tAIQEQQFrDgIBAAILIEUgB5RDCtcjPJQhBwsgByAHXA0AIAdDAAAAAGAhHwsCQCAOAn0gBiAGXCIJID4gPlxyRQRAIA4qApwBIgcgB1sEQCAOKAL0Ay0AEEEBcUUNAyAOKAKYASAMRg0DCyARIBIgDyA7EDggESASIA8QMJIgESASIA8gOxA3IBEgEiAPEC+SkiIHIAYgBiAHXRsgByAGIAkbIAYgBlsgByAHW3EbDAELIBggHnEEQCARQQIgDyA7EDggEUECIA8QMJIgEUECIA8gOxA3IBFBAiAPEC+SkiIHIA4gD0EAIDsgOxAxIgYgBiAHXRsgByAGIAYgBlwbIAYgBlsgByAHW3EbDAELIB4gH0VyRQRAIBFBACAPIDsQOCARQQAgDxAwkiARQQAgDyA7EDcgEUEAIA8QL5KSIgcgDiAPQQEgRSA7EDEiBiAGIAddGyAHIAYgBiAGXBsgBiAGWyAHIAdbcRsMAQtBASEaIA1BATYCZCANQQE2AnggEUECQQEgOxAiIBFBAkEBIDsQIZIhPiARQQBBASA7ECIhPCARQQBBASA7ECEhOkMAAMB/IQdBASEVQwAAwH8hBiAYBEAgDiAPQQAgOyA7EDEhBiANQQA2AnggDSA+IAaSIgY4AmhBACEVCyA8IDqSITwgHwRAIA4gD0EBIEUgOxAxIQcgDUEANgJkIA0gPCAHkiIHOAJQQQAhGgsCQAJAAkAgAC0AF0EQdEGAgAxxQYCACEYiCSASQQJJIiBxRQRAIAkgJHINAiAGIAZcDQEMAgsgJCAGIAZbcg0CC0ECIRUgDUECNgJ4IA0gOzgCaCA7IQYLAkAgIEEBIAkbBEAgCSAjcg0CIAcgB1wNAQwCCyAjIAcgB1tyDQELQQIhGiANQQI2AmQgDSBFOAJQIEUhBwsCQCAXIA4vAXoQICI6IDpcDQACfyAVIB5yRQRAIBcgDi8BehAgIQcgDUEANgJkIA0gPCAGID6TIAeVkjgCUEEADAELIBogIHINASAXIA4vAXoQICEGIA1BADYCeCANIAYgByA8k5QgPpI4AmhBAAshGkEAIRULIA4vABZBD3EiCUUEQCAALQAVQQR2IQkLAkAgFUUgCUEFRiAeciAYIClyIAlBBEdycnINACANQQA2AnggDSA7OAJoIBcgDi8BehAgIgYgBlwNAEEAIRogFyAOLwF6ECAhBiANQQA2AmQgDSA7ID6TIAaVOAJQCyAOLwAWQQ9xIhhFBEAgAC0AFUEEdiEYCwJAICAgKHIgH3IgGEEFRnIgGkUgGEEER3JyDQAgDUEANgJkIA0gRTgCUCAXIA4vAXoQICIGIAZcDQAgFyAOLwF6ECAhBiANQQA2AnggDSAGIEUgPJOUOAJoCyAOIA9BAiA7IDsgDUH4AGogDUHoAGoQPyAOIA9BACBFIDsgDUHkAGogDUHQAGoQPyAOIA0qAmggDSoCUCAPIA0oAnggDSgCZCA7IEVBAEEFIAogIiAMED0aIA4gEkECdEH8JWooAgBBAnRqKgKUAyEGIBEgEiAPIDsQOCARIBIgDxAwkiARIBIgDyA7EDcgESASIA8QL5KSIgcgBiAGIAddGyAHIAYgBiAGXBsgBiAGWyAHIAdbcRsLIgc4ApwBCyAOIAw2ApgBCyA9IAcgESATQQEgOxAiIBEgE0EBIDsQIZKSkiE9CyANQYgBahAuIA0oAowBIgkgDSgCiAEiDnINAAsLIA0oApABIgkEQANAIAkoAgAhDiAJECcgDiIJDQALCyA7IEUgGRshByA9QwAAAACSIQYgC0ECTwRAIBQgEyAHEE0gC0EBa7OUIAaSIQYLIEIgQ5IhPiAFIAQgGRshGiBHIEAgGRshTSBAIEcgGRshSSANQdAAaiAAEDJBACAcIAYgB14iCxsgHCAcQQJGGyAcICdBgIADcSIfGyEeIBQgFiBFIDsgGRsiRBBNIU8gDSgCVCIRIA0oAlAiCXIEQEEBQQIgRCBEXCIpGyEtIAtFIBxBAUZyIS4gE0ECSSEZIABB8gBqIS8gAEH8AGohMCATQQJ0IgtB7CVqITEgC0HcJWohMiAWQQJ0Ig5B7CVqIRwgDkHcJWohICALQfwlaiEkIA5B/CVqISMgGkEARyIzIAhyITQgGkUiNSAIQQFzcSE2IBogH3JFITcgDUHwAGohOCANQYABaiEnQYECIBNBA3R2Qf8BcSEoIBpBAWtBAkkhOQNAIA1BADYCgAEgDUIANwN4AkAgACgC7AMiCyAAKALoAyIORg0AIAsgDmsiC0EASA0DIA1BiAFqIAtBAnVBACAnEEohECANKAKMASANKAJ8IA0oAngiC2siDmsgCyAOEDMhDiANIA0oAngiCzYCjAEgDSAONgJ4IA0pA5ABIVYgDSANKAJ8Ig42ApABIA0oAoABIRIgDSBWNwJ8IA0gEjYClAEgECALNgIAIAsgDkcEQCANIA4gCyAOa0EDakF8cWo2ApABCyALRQ0AIAsQJwsgFC0AACIOQQJ2QQNxIQsCQAJAIA5BA3EiDiAsIA4bIhJBAkcNAEEDIRACQCALQQJrDgICAAELQQIhEAwBCyALIRALIAAvABUhCyAUIBAgBxBNIT8CQCAJIBFyRQRAQwAAAAAhQ0EAIRFDAAAAACFCQwAAAAAhQUEAIRUMAQsgC0GAgANxISUgEEECSSEYIBBBAnQiC0HsJWohISALQdwlaiEqQQAhFUMAAAAAIUEgESEOQwAAAAAhQkMAAAAAIUNBACEXQwAAAAAhPQNAIAkoAuwDIAkoAugDIglrQQJ1IA5NDQQCQCAJIA5BAnRqKAIAIgkvABUgCS0AF0EQdHIiC0GAgDBxQYCAEEYgC0GA4ABxQYDAAEZyDQAgDUGIAWoiESAJQRRqIgsgKigCACADECggDS0AjAEhJiARIAsgISgCACADECggDS0AjAEhESAJIBs2AtwDIBUgJkEDRmohFSARQQNGIREgCyAQQQEgOxAiIUsgCyAQQQEgOxAhIU4gCSAXIAkgFxsiF0YhJiAJKgKcASE8IAsgEiAYIEkgQBA1IToCQCALIBIgGCBJIEAQLSIGQwAAAABgIAYgPF1xDQAgOkMAAAAAYEUEQCA8IQYMAQsgOiA8IDogPF4bIQYLIBEgFWohFQJAICVFQwAAAAAgPyAmGyI8IEsgTpIiOiA9IAaSkpIgB15Fcg0AIA0oAnggDSgCfEYNACAOIREMAwsgCRB5BEAgQiAJEDuSIUIgQyAJEEAgCSoCnAGUkyFDCyBBIDwgOiAGkpIiBpIhQSA9IAaSIT0gDSgCfCILIA0oAoABRwRAIAsgCTYCACANIAtBBGo2AnwMAQsgCyANKAJ4ayILQQJ1IhFBAWoiDkGAgICABE8NBSANQYgBakH/////AyALQQF1IiYgDiAOICZJGyALQfz///8HTxsgESAnEEohDiANKAKQASAJNgIAIA0gDSgCkAFBBGo2ApABIA0oAowBIA0oAnwgDSgCeCIJayILayAJIAsQMyELIA0gDSgCeCIJNgKMASANIAs2AnggDSkDkAEhViANIA0oAnwiCzYCkAEgDSgCgAEhESANIFY3AnwgDSARNgKUASAOIAk2AgAgCSALRwRAIA0gCyAJIAtrQQNqQXxxajYCkAELIAlFDQAgCRAnCyANQQA2AnAgDSANKQNQNwNoIDggDSgCWBA8IA1B0ABqEC4gDSgCcCIJBEADQCAJKAIAIQsgCRAnIAsiCQ0ACwtBACERIA1BADYCcCANKAJUIg4gDSgCUCIJcg0ACwtDAACAPyBCIEJDAACAP10bIEIgQkMAAAAAXhshPCANKAJ8IRcgDSgCeCEJAn0CQAJ9AkACQAJAIB5FDQAgFCAPQQAgQCBAEDUhBiAUIA9BACBAIEAQLSE6IBQgD0EBIEcgQBA1IT8gFCAPQQEgRyBAEC0hPSAGID8gE0EBSyILGyBKkyIGIAZbIAYgQV5xDQEgOiA9IAsbIEqTIgYgBlsgBiBBXXENASAAKAL0Ay0AFEEBcQ0AIEEgPEMAAAAAWw0DGiAAEDsiBiAGXA0CIEEgABA7QwAAAABbDQMaDAILIAchBgsgBiAGWw0CIAYhBwsgBwshBiBBjEMAAAAAIEFDAAAAAF0bIT8gBgwBCyAGIEGTIT8gBgshByA2RQRAAkAgCSAXRgRAQwAAAAAhQQwBC0MAAIA/IEMgQ0MAAIA/XRsgQyBDQwAAAABeGyE9QwAAAAAhQSAJIQ4DQCAOKAIAIgsqApwBITogC0EUaiIQIA8gGSBJIEAQNSFCAkAgECAPIBkgSSBAEC0iBkMAAAAAYCAGIDpdcQ0AIEJDAAAAAGBFBEAgOiEGDAELIEIgOiA6IEJdGyEGCwJAID9DAAAAAF0EQCAGIAsQQIyUIjpDAAAAAF4gOkMAAAAAXXJFDQEgCyATIA8gPyA9lSA6lCAGkiJCIAcgOxAlITogQiBCXCA6IDpcciA6IEJbcg0BIEEgOiAGk5IhQSALEEAgCyoCnAGUID2SIT0MAQsgP0MAAAAAXkUNACALEDsiQkMAAAAAXiBCQwAAAABdckUNACALIBMgDyA/IDyVIEKUIAaSIkMgByA7ECUhOiBDIENcIDogOlxyIDogQ1tyDQAgPCBCkyE8IEEgOiAGk5IhQQsgDkEEaiIOIBdHDQALID8gQZMiQiA9lSFLIEIgPJUhTiAALwAVQYCAA3FFIC5yISVDAAAAACFBIAkhCwNAIAsoAgAiDioCnAEhPCAOQRRqIhggDyAZIEkgQBA1IToCQCAYIA8gGSBJIEAQLSIGQwAAAABgIAYgPF1xDQAgOkMAAAAAYEUEQCA8IQYMAQsgOiA8IDogPF4bIQYLAn0gDiATIA8CfSBCQwAAAABdBEAgBiAGIA4QQIyUIjxDAAAAAFsNAhogBiA8kiA9QwAAAABbDQEaIEsgPJQgBpIMAQsgBiBCQwAAAABeRQ0BGiAGIA4QOyI8QwAAAABeIDxDAAAAAF1yRQ0BGiBOIDyUIAaSCyAHIDsQJQshQyAYIBNBASA7ECIhPCAYIBNBASA7ECEhOiAYIBZBASA7ECIhUiAYIBZBASA7ECEhUyANIEMgPCA6kiJUkiJVOAJoIA1BADYCYCBSIFOSITwCQCAOQfwAaiIQIA4vAXoQICI6IDpbBEAgECAOLwF6ECAhOiANQQA2AmQgDSA8IFUgVJMiPCA6lCA8IDqVIBkbkjgCeAwBCyAjKAIAIRACQCApDQAgDiAQQQN0aiIhKgL4AyE6QQAhEgJAAkACQCAhLQD8A0EBaw4CAQACCyBEIDqUQwrXIzyUIToLIDogOlwNACA6QwAAAABgIRILICUgNSASQQFzcXFFDQAgDi8AFkEPcSISBH8gEgUgAC0AFUEEdgtBBEcNACANQYgBaiAYICAoAgAgDxAoIA0tAIwBQQNGDQAgDUGIAWogGCAcKAIAIA8QKCANLQCMAUEDRg0AIA1BADYCZCANIEQ4AngMAQsgDkH4A2oiEiAQQQN0aiIQKgIAIToCQAJAAkACQCAQLQAEQQFrDgIBAAILIEQgOpRDCtcjPJQhOgsgOkMAAAAAYA0BCyANIC02AmQgDSBEOAJ4DAELAkACfwJAAkACQCAWQQJrDgICAAELIDwgDiAPQQAgRCA7EDGSITpBAAwCC0EBIRAgDSA8IA4gD0EBIEQgOxAxkiI6OAJ4IBNBAU0NDAwCCyA8IA4gD0EAIEQgOxAxkiE6QQALIRAgDSA6OAJ4CyANIDMgEiAQQQN0ajEABEIghkKAgICAIFFxIDogOlxyNgJkCyAOIA8gEyAHIDsgDUHgAGogDUHoAGoQPyAOIA8gFiBEIDsgDUHkAGogDUH4AGoQPyAOICMoAgBBA3RqIhAqAvgDIToCQAJAAkACQCAQLQD8A0EBaw4CAQACCyBEIDqUQwrXIzyUIToLQQEhECA6QwAAAABgDQELQQEhECAOLwAWQQ9xIhIEfyASBSAALQAVQQR2C0EERw0AIA1BiAFqIBggICgCACAPECggDS0AjAFBA0YNACANQYgBaiAYIBwoAgAgDxAoIA0tAIwBQQNGIRALIA4gDSoCaCI8IA0qAngiOiATQQFLIhIbIDogPCASGyAALQCIA0EDcSANKAJgIhggDSgCZCIhIBIbICEgGCASGyA7IEUgCCAQcSIQQQRBByAQGyAKICIgDBA9GiBBIEMgBpOSIUEgAAJ/IAAtAIgDIhBBBHFFBEBBACAOLQCIA0EEcUUNARoLQQQLIBBB+wFxcjoAiAMgC0EEaiILIBdHDQALCyA/IEGTIT8LIAAgAC0AiAMiC0H7AXFBBCA/QwAAAABdQQJ0IAtBBHFBAnYbcjoAiAMgFCATIA8gQBBgIBQgEyAPEEuSITogFCATIA8gQBB/IBQgEyAPEFKSIUsgFCATIAcQTSFCAn8CQAJ9ID9DAAAAAF5FIB5BAkdyRQRAIA1BiAFqIDAgLyAkKAIAQQF0ai8BABAfAkAgDS0AjAEEQCAUIA8gKCBJIEAQNSIGIAZbDQELQwAAAAAMAgtDAAAAACAUIA8gKCBJIEAQNSA6kyBLkyAHID+TkyI/QwAAAABeRQ0BGgsgP0MAAAAAYEUNASA/CyE8IBQtAABBBHZBB3EMAQsgPyE8IBQtAABBBHZBB3EiC0EAIAtBA2tBA08bCyELQwAAAAAhBgJAAkAgFQ0AQwAAAAAhPQJAAkACQAJAAkAgC0EBaw4FAAECBAMGCyA8QwAAAD+UIT0MBQsgPCE9DAQLIBcgCWsiC0EFSQ0CIEIgPCALQQJ1QQFrs5WSIUIMAgsgQiA8IBcgCWtBAnVBAWqzlSI9kiFCDAILIDxDAAAAP5QgFyAJa0ECdbOVIj0gPZIgQpIhQgwBC0MAAAAAIT0LIDogPZIhPSAAEHwhEgJAIAkgF0YiGARAQwAAAAAhP0MAAAAAIToMAQsgF0EEayElIDwgFbOVIU4gMigCACEhQwAAAAAhOkMAAAAAIT8gCSELA0AgDUGIAWogCygCACIOQRRqIhAgISAPECggPUMAAACAIE5DAAAAgCA8QwAAAABeGyJBIA0tAIwBQQNHG5IhPSAIBEACfwJAAkACQAJAIBNBAWsOAwECAwALQQEhFSAOQaADagwDC0EDIRUgDkGoA2oMAgtBACEVIA5BnANqDAELQQIhFSAOQaQDagshKiAOIBVBAnRqICoqAgAgPZI4ApwDCyAlKAIAIRUgDUGIAWogECAxKAIAIA8QKCA9QwAAAIAgQiAOIBVGG5JDAAAAgCBBIA0tAIwBQQNHG5IhPQJAIDRFBEAgPSAQIBNBASA7ECIgECATQQEgOxAhkiAOKgKcAZKSIT0gRCEGDAELIA4gEyA7EF0gPZIhPSASBEAgDhBOIUEgEEEAIA8gOxBBIUMgDioCmAMgEEEAQQEgOxAiIBBBAEEBIDsQIZKSIEEgQ5IiQZMiQyA/ID8gQ10bIEMgPyA/ID9cGyA/ID9bIEMgQ1txGyE/IEEgOiA6IEFdGyBBIDogOiA6XBsgOiA6WyBBIEFbcRshOgwBCyAOIBYgOxBdIkEgBiAGIEFdGyBBIAYgBiAGXBsgBiAGWyBBIEFbcRshBgsgC0EEaiILIBdHDQALCyA/IDqSIAYgEhshQQJ9IDkEQCAAIBYgDyBGIEGSIE0gQBAlIEaTDAELIEQgQSA3GyFBIEQLIT8gH0UEQCAAIBYgDyBGIEGSIE0gQBAlIEaTIUELIEsgPZIhPAJAIAhFDQAgCSELIBgNAANAIAsoAgAiFS8AFkEPcSIORQRAIAAtABVBBHYhDgsCQAJAAkACQCAOQQRrDgIAAQILIA1BiAFqIBVBFGoiECAgKAIAIA8QKEEEIQ4gDS0AjAFBA0YNASANQYgBaiAQIBwoAgAgDxAoIA0tAIwBQQNGDQEgFSAjKAIAQQN0aiIOKgL4AyE9AkACQAJAIA4tAPwDQQFrDgIBAAILIEQgPZRDCtcjPJQhPQsgPiEGID1DAAAAAGANAwsgFSAkKAIAQQJ0aioClAMhBiANIBVB/ABqIg4gFS8BehAgIjogOlsEfSAQIBZBASA7ECIgECAWQQEgOxAhkiAGIA4gFS8BehAgIjqUIAYgOpUgGRuSBSBBCzgCeCANIAYgECATQQEgOxAiIBAgE0EBIDsQIZKSOAKIASANQQA2AmggDUEANgJkIBUgDyATIAcgOyANQegAaiANQYgBahA/IBUgDyAWIEQgOyANQeQAaiANQfgAahA/IA0qAngiOiANKgKIASI9IBNBAUsiGCIOGyEGIB9BAEcgAC8AFUEPcUEER3EiECAZcSA9IDogDhsiOiA6XHIhDiAVIDogBiAPIA4gECAYcSAGIAZcciA7IEVBAUECIAogIiAMED0aID4hBgwCC0EFQQEgFC0AAEEIcRshDgsgFSAWIDsQXSEGIA1BiAFqIBVBFGoiECAgKAIAIhggDxAoID8gBpMhOgJAIA0tAIwBQQNHBEAgHCgCACESDAELIA1BiAFqIBAgHCgCACISIA8QKCANLQCMAUEDRw0AID4gOkMAAAA/lCIGQwAAAAAgBkMAAAAAXhuSIQYMAQsgDUGIAWogECASIA8QKCA+IQYgDS0AjAFBA0YNACANQYgBaiAQIBggDxAoIA0tAIwBQQNGBEAgPiA6QwAAAAAgOkMAAAAAXhuSIQYMAQsCQAJAIA5BAWsOAgIAAQsgPiA6QwAAAD+UkiEGDAELID4gOpIhBgsCfwJAAkACQAJAIBZBAWsOAwECAwALQQEhECAVQaADagwDC0EDIRAgFUGoA2oMAgtBACEQIBVBnANqDAELQQIhECAVQaQDagshDiAVIBBBAnRqIAYgTCAOKgIAkpI4ApwDIAtBBGoiCyAXRw0ACwsgCQRAIAkQJwsgPCBIIDwgSF4bIDwgSCBIIEhcGyBIIEhbIDwgPFtxGyFIIEwgT0MAAAAAIBsbIEGSkiFMIBtBAWohGyANKAJQIgkgEXINAAsLAkAgCEUNACAfRQRAIAAQfEUNAQsgACAWIA8CfSBGIESSIBpFDQAaIAAgFkECdEH8JWooAgBBA3RqIgkqAvgDIQYCQAJAAkAgCS0A/ANBAWsOAgEAAgsgTSAGlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgD0GBAiAWQQN0dkEBcSBNIEAQMQwBCyBGIEySCyBHIEAQJSEGQwAAAAAhPCAALwAVQQ9xIQkCQAJAAkACQAJAAkACQAJAAkAgBiBGkyBMkyIGQwAAAABgRQRAQwAAAAAhQyAJQQJrDgICAQcLQwAAAAAhQyAJQQJrDgcBAAUGBAIDBgsgPiAGkiE+DAULID4gBkMAAAA/lJIhPgwECyAGIBuzIjqVITwgPiAGIDogOpKVkiE+DAMLID4gBiAbQQFqs5UiPJIhPgwCCyAbQQJJBEAMAgsgDUGIAWogABAyIAYgG0EBa7OVITwMAgsgBiAbs5UhQwsgDUGIAWogABAyIBtFDQELIBZBAnQiCUHcJWohECAJQfwlaiERIA1BOGohGCANQcgAaiEZIA1B8ABqIRUgDUGQAWohHCANQYABaiEfQQAhEgNAIA1BADYCgAEgDSANKQOIATcDeCAfIA0oApABEDwgDUEANgJwIA0gDSkDeCJWNwNoIBUgDSgCgAEiCxA8IA0oAmwhCQJAAkAgDSgCaCIOBEBDAAAAACE6QwAAAAAhP0MAAAAAIQYMAQtDAAAAACE6QwAAAAAhP0MAAAAAIQYgCUUNAQsDQCAOKALsAyAOKALoAyIOa0ECdSAJTQ0FAkAgDiAJQQJ0aigCACIJLwAVIAktABdBEHRyIhdBgIAwcUGAgBBGIBdBgOAAcUGAwABGcg0AIAkoAtwDIBJHDQIgCUEUaiEOIAkgESgCAEECdGoqApQDIj1DAAAAAGAEfyA9IA4gFkEBIDsQIiAOIBZBASA7ECGSkiI9IAYgBiA9XRsgPSAGIAYgBlwbIAYgBlsgPSA9W3EbIQYgCS0AFgUgF0EIdgtBD3EiFwR/IBcFIAAtABVBBHYLQQVHDQAgFC0AAEEIcUUNACAJEE4gDkEAIA8gOxBBkiI9ID8gPSA/XhsgPSA/ID8gP1wbID8gP1sgPSA9W3EbIj8gCSoCmAMgDkEAQQEgOxAiIA5BAEEBIDsQIZKSID2TIj0gOiA6ID1dGyA9IDogOiA6XBsgOiA6WyA9ID1bcRsiOpIiPSAGIAYgPV0bID0gBiAGIAZcGyAGIAZbID0gPVtxGyEGCyANQQA2AkggDSANKQNoNwNAIBkgDSgCcBA8IA1B6ABqEC4gDSgCSCIJBEADQCAJKAIAIQ4gCRAnIA4iCQ0ACwsgDUEANgJIIA0oAmwiCSANKAJoIg5yDQALCyANIA0pA2g3A4gBIBwgDSgCcBB1IA0gVjcDaCAVIAsQdSA+IE9DAAAAACASG5IhPiBDIAaSIT0gDSgCbCEJAkAgDSgCaCIOIA0oAogBRgRAIAkgDSgCjAFGDQELID4gP5IhQiA+ID2SIUsgPCA9kiEGA0AgDigC7AMgDigC6AMiDmtBAnUgCU0NBQJAIA4gCUECdGooAgAiCS8AFSAJLQAXQRB0ciIXQYCAMHFBgIAQRiAXQYDgAHFBgMAARnINACAJQRRqIQ4CQAJAAkACQAJAAkAgF0EIdkEPcSIXBH8gFwUgAC0AFUEEdgtBAWsOBQEDAgQABgsgFC0AAEEIcQ0ECyAOIBYgDyA7EFEhOiAJIBAoAgBBAnRqID4gOpI4ApwDDAQLIA4gFiAPIDsQYiE/AkACQAJAAkAgFkECaw4CAgABCyAJKgKUAyE6QQIhDgwCC0EBIQ4gCSoCmAMhOgJAIBYOAgIADwtBAyEODAELIAkqApQDITpBACEOCyAJIA5BAnRqIEsgP5MgOpM4ApwDDAMLAkACQAJAAkAgFkECaw4CAgABCyAJKgKUAyE/QQIhDgwCC0EBIQ4gCSoCmAMhPwJAIBYOAgIADgtBAyEODAELIAkqApQDIT9BACEOCyAJIA5BAnRqID4gPSA/k0MAAAA/lJI4ApwDDAILIA4gFiAPIDsQQSE6IAkgECgCAEECdGogPiA6kjgCnAMgCSARKAIAQQN0aiIXKgL4AyE/AkACQAJAIBctAPwDQQFrDgIBAAILIEQgP5RDCtcjPJQhPwsgP0MAAAAAYA0CCwJAAkACfSATQQFNBEAgCSoCmAMgDiAWQQEgOxAiIA4gFkEBIDsQIZKSITogBgwBCyAGITogCSoClAMgDiATQQEgOxAiIA4gE0EBIDsQIZKSCyI/ID9cIAkqApQDIkEgQVxyRQRAID8gQZOLQxe30ThdDQEMAgsgPyA/WyBBIEFbcg0BCyAJKgKYAyJBIEFcIg4gOiA6XHJFBEAgOiBBk4tDF7fROF1FDQEMAwsgOiA6Ww0AIA4NAgsgCSA/IDogD0EAQQAgOyBFQQFBAyAKICIgDBA9GgwBCyAJIEIgCRBOkyAOQQAgDyBEEFGSOAKgAwsgDUEANgI4IA0gDSkDaDcDMCAYIA0oAnAQPCANQegAahAuIA0oAjgiCQRAA0AgCSgCACEOIAkQJyAOIgkNAAsLIA1BADYCOCANKAJsIQkgDSgCaCIOIA0oAogBRw0AIAkgDSgCjAFHDQALCyANKAJwIgkEQANAIAkoAgAhDiAJECcgDiIJDQALCyALBEADQCALKAIAIQkgCxAnIAkiCw0ACwsgPCA+kiA9kiE+IBJBAWoiEiAbRw0ACwsgDSgCkAEiCUUNAANAIAkoAgAhCyAJECcgCyIJDQALCyAAQZQDaiIQIABBAiAPIFAgQCBAECU4AgAgAEGYA2oiESAAQQAgDyBRIEcgQBAlOAIAAkAgEEGBAiATQQN0dkEBcUECdGoCfQJAIB5BAUcEQCAALQAXQQNxIglBAkYgHkECR3INAQsgACATIA8gSCBJIEAQJQwBCyAeQQJHIAlBAkdyDQEgSiAAIA8gEyBIIEkgQBB0Ij4gSiAHkiIGIAYgPl4bID4gBiAGIAZcGyAGIAZbID4gPltxGyIGIAYgSl0bIEogBiAGIAZcGyAGIAZbIEogSltxGws4AgALAkAgEEGBAiAWQQN0dkEBcUECdGoCfQJAIBpBAUcEQCAaQQJHIgkgAC0AF0EDcSILQQJGcg0BCyAAIBYgDyBGIEySIE0gQBAlDAELIAkgC0ECR3INASBGIAAgDyAWIEYgTJIgTSBAEHQiByBGIESSIgYgBiAHXhsgByAGIAYgBlwbIAYgBlsgByAHW3EbIgYgBiBGXRsgRiAGIAYgBlwbIAYgBlsgRiBGW3EbCzgCAAsCQCAIRQ0AAkAgAC8AFUGAgANxQYCAAkcNACANQYgBaiAAEDIDQCANKAKMASIJIA0oAogBIgtyRQRAIA0oApABIglFDQIDQCAJKAIAIQsgCRAnIAsiCQ0ACwwCCyALKALsAyALKALoAyILa0ECdSAJTQ0DIAsgCUECdGooAgAiCS8AFUGA4ABxQYDAAEcEQCAJAn8CQAJAAkAgFkECaw4CAAECCyAJQZQDaiEOIBAqAgAgCSoCnAOTIQZBAAwCCyAJQZQDaiEOIBAqAgAgCSoCpAOTIQZBAgwBCyARKgIAIQYCQAJAIBYOAgABCgsgCUGYA2ohDiAGIAkqAqADkyEGQQEMAQsgCUGYA2ohDiAGIAkqAqgDkyEGQQMLQQJ0aiAGIA4qAgCTOAKcAwsgDUGIAWoQLgwACwALAkAgEyAWckEBcUUNACAWQQFxIRQgE0EBcSEVIA1BiAFqIAAQMgNAIA0oAowBIgkgDSgCiAEiC3JFBEAgDSgCkAEiCUUNAgNAIAkoAgAhCyAJECcgCyIJDQALDAILIAsoAuwDIAsoAugDIgtrQQJ1IAlNDQMCQCALIAlBAnRqKAIAIgkvABUgCS0AF0EQdHIiC0GAgDBxQYCAEEYgC0GA4ABxQYDAAEZyDQAgFQRAAn8CfwJAAkACQCATQQFrDgMAAQINCyAJQZgDaiEOIAlBqANqIQtBASESIBEMAwsgCUGUA2ohDkECIRIgCUGcA2oMAQsgCUGUA2ohDkEAIRIgCUGkA2oLIQsgEAshGyAJIBJBAnRqIBsqAgAgDioCAJMgCyoCAJM4ApwDCyAURQ0AAn8CfwJAAkACQCAWQQFrDgMAAQIMCyAJQZgDaiELIAlBqANqIRJBASEXIBEMAwsgCUGUA2ohCyAJQZwDaiESQQIMAQsgCUGUA2ohCyAJQaQDaiESQQALIRcgEAshDiAJIBdBAnRqIA4qAgAgCyoCAJMgEioCAJM4ApwDCyANQYgBahAuDAALAAsgAC8AFUGA4ABxICJBAUZyRQRAIAAtAABBCHFFDQELIAAgACAeIAQgE0EBSxsgDyAKICIgDEMAAAAAQwAAAAAgOyBFEH4aCyANKAJYIglFDQIDQCAJKAIAIQsgCRAnIAsiCQ0ACwwCCxACAAsgABBeCyANQaABaiQADAELECQACyAAIAM6AKgBIAAgACgC9AMoAgw2AqQBIB0NACAKIAooAggiAyAAKAKsASIOQQFqIgkgAyAJSxs2AgggDkEIRgRAIABBADYCrAFBACEOCyAIBH8gAEHwAmoFIAAgDkEBajYCrAEgACAOQRhsakGwAWoLIgMgBTYCDCADIAQ2AgggAyACOAIEIAMgATgCACADIAAqApQDOAIQIAMgACoCmAM4AhRBACEdCyAIBEAgACAAKQKUAzcCjAMgACAALQAAIgNBAXIiBEH7AXEgBCADQQRxGzoAAAsgACAMNgKgASArIB1Fcgs1AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhACABIAJBAXEEfyABKAIAIABqKAIABSAACxECAAt9ACAAQRRqIgAgAUGBAiACQQN0dkH/AXEgAyAEEC0gACACQQEgBBAiIAAgAkEBIAQQIZKSIQQCQAJAAkACQCAFKAIADgMAAQADCyAGKgIAIgMgAyAEIAMgBF0bIAQgBFwbIQQMAQsgBCAEXA0BIAVBAjYCAAsgBiAEOAIACwuMAQIBfwF9IAAoAuQDRQRAQwAAAAAPCyAAQfwAaiIBIAAvARwQICICIAJbBEAgASAALwEcECAPCwJAIAAoAvQDLQAIQQFxDQAgASAALwEYECAiAiACXA0AIAEgAC8BGBAgQwAAAABdRQ0AIAEgAC8BGBAgjA8LQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsLcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEChDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwtHAQF/IAIvAAYiA0EHcQRAIAAgAUHoAGogAxAfDwsgAUHoAGohASACLwAOIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHwtHAQF/IAIvAAIiA0EHcQRAIAAgAUHoAGogAxAfDwsgAUHoAGohASACLwAOIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHwt7AAJAAkACQAJAIANBAWsOAgABAgsgAi8ACiIDQQdxRQ0BDAILIAIvAAgiA0EHcUUNAAwBCyACLwAEIgNBB3EEQAwBCyABQegAaiEBIAIvAAwiA0EHcQRAIAAgASADEB8PCyAAIAEgAi8AEBAfDwsgACABQegAaiADEB8LewACQAJAAkACQCADQQFrDgIAAQILIAIvAAgiA0EHcUUNAQwCCyACLwAKIgNBB3FFDQAMAQsgAi8AACIDQQdxBEAMAQsgAUHoAGohASACLwAMIgNBB3EEQCAAIAEgAxAfDwsgACABIAIvABAQHw8LIAAgAUHoAGogAxAfC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQe4AaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAuFAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgAEIKgCIFQvYBfiAAfKdBMHI6AAAgAEL/////nwFWIQIgBSEAIAINAAsLIAWnIgIEQANAIAFBAWsiASACQQpuIgNB9gFsIAJqQTByOgAAIAJBCUshBCADIQIgBA0ACwsgAQs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEHBOyAAQeI7QfooQb8BIAJB4jtB/ihBwAEgAxAHCw8AIAAgASACQQFBAhCLAQteAQF/IABBADYCDCAAIAM2AhACQCABBEAgAUGAgICABE8NASABQQJ0EB4hBAsgACAENgIAIAAgBCACQQJ0aiICNgIIIAAgBCABQQJ0ajYCDCAAIAI2AgQgAA8LEFgAC3kCAX8BfSMAQRBrIgMkACADQQhqIAAgAUECdEHcJWooAgAgAhBTQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIQwAAAACUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsLnAoBC38jAEEQayIIJAAgASABLwAAQXhxIANyIgM7AAACQAJAAkACQAJAAkACQAJAAkACQCADQQhxBEAgA0H//wNxIgZBBHYhBCAGQT9NBH8gACAEQQJ0akEEagUgBEEEayIEIAAoAhgiACgCBCAAKAIAIgBrQQJ1Tw0CIAAgBEECdGoLIAI4AgAMCgsCfyACi0MAAABPXQRAIAKoDAELQYCAgIB4CyIEQf8PakH+H0sgBLIgAlxyRQRAIANBD3FBACAEa0GAEHIgBCACQwAAAABdG0EEdHIhAwwKCyAAIAAvAQAiC0EBajsBACALQYAgTw0DIAtBA00EQCAAIAtBAnRqIAI4AgQMCQsgACgCGCIDRQRAQRgQHiIDQgA3AgAgA0IANwIQIANCADcCCCAAIAM2AhgLAkAgAygCBCIEIAMoAghHBEAgBCACOAIAIAMgBEEEajYCBAwBCyAEIAMoAgAiB2siBEECdSIJQQFqIgZBgICAgARPDQECf0H/////AyAEQQF1IgUgBiAFIAZLGyAEQfz///8HTxsiBkUEQEEAIQUgCQwBCyAGQYCAgIAETw0GIAZBAnQQHiEFIAMoAgQgAygCACIHayIEQQJ1CyEKIAUgCUECdGoiCSACOAIAIAkgCkECdGsgByAEEDMhByADIAUgBkECdGo2AgggAyAJQQRqNgIEIAMoAgAhBCADIAc2AgAgBEUNACAEECMLIAAoAhgiBigCECIDIAYoAhQiAEEFdEcNByADQQFqQQBIDQAgA0H+////A0sNASADIABBBnQiACADQWBxQSBqIgQgACAESxsiAE8NByAAQQBODQILEAIAC0H/////ByEAIANB/////wdPDQULIAhBADYCCCAIQgA3AwAgCCAAEJ8BIAYoAgwhBCAIIAgoAgQiByAGKAIQIgBBH3FqIABBYHFqIgM2AgQgB0UEQCADQQFrIQUMAwsgA0EBayIFIAdBAWtzQR9LDQIgCCgCACEKDAMLQZUlQeEXQSJB3BcQCwALEFgACyAIKAIAIgogBUEFdkEAIANBIU8bQQJ0akEANgIACyAKIAdBA3ZB/P///wFxaiEDAkAgB0EfcSIHRQRAIABBAEwNASAAQSBtIQUgAEEfakE/TwRAIAMgBCAFQQJ0EDMaCyAAIAVBBXRrIgBBAEwNASADIAVBAnQiBWoiAyADKAIAQX9BICAAa3YiAEF/c3EgBCAFaigCACAAcXI2AgAMAQsgAEEATA0AQX8gB3QhDEEgIAdrIQkgAEEgTgRAIAxBf3MhDSADKAIAIQUDQCADIAUgDXEgBCgCACIFIAd0cjYCACADIAMoAgQgDHEgBSAJdnIiBTYCBCAEQQRqIQQgA0EEaiEDIABBP0shDiAAQSBrIQAgDg0ACyAAQQBMDQELIAMgAygCAEF/IAkgCSAAIAAgCUobIgVrdiAMcUF/c3EgBCgCAEF/QSAgAGt2cSIEIAd0cjYCACAAIAVrIgBBAEwNACADIAUgB2pBA3ZB/P///wFxaiIDIAMoAgBBf0EgIABrdkF/c3EgBCAFdnI2AgALIAYoAgwhACAGIAo2AgwgBiAIKAIEIgM2AhAgBiAIKAIINgIUIABFDQAgABAjIAYoAhAhAwsgBiADQQFqNgIQIAYoAgwgA0EDdkH8////AXFqIgAgACgCAEF+IAN3cTYCACABLwAAIQMLIANBB3EgC0EEdHJBCHIhAwsgASADOwAAIAhBEGokAAuPAQIBfwF9IwBBEGsiAyQAIANBCGogAEHoAGogAEHUAEHWACABQf4BcUECRhtqLwEAIgEgAC8BWCABQQdxGxAfQwAAwH8hBAJAAkACQCADLQAMQQFrDgIAAQILIAMqAgghBAwBCyADKgIIIAKUQwrXIzyUIQQLIANBEGokACAEQwAAAACXQwAAAAAgBCAEWxsL2AICBH8BfSMAQSBrIgMkAAJAIAAoAgwiAQRAIAAgACoClAMgACoCmAMgAREnACIFIAVbDQEgA0GqHjYCACAAQQVB2CUgAxAsECQACyADQRBqIAAQMgJAIAMoAhAiAiADKAIUIgFyRQ0AAkADQCABIAIoAuwDIAIoAugDIgJrQQJ1SQRAIAIgAUECdGooAgAiASgC3AMNAyABLwAVIAEtABdBEHRyIgJBgOAAcUGAwABHBEAgAkEIdkEPcSICBH8gAgUgAC0AFUEEdgtBBUYEQCAALQAUQQhxDQQLIAEtAABBAnENAyAEIAEgBBshBAsgA0EQahAuIAMoAhQiASADKAIQIgJyDQEMAwsLEAIACyABIQQLIAMoAhgiAQRAA0AgASgCACECIAEQIyACIgENAAsLIARFBEAgACoCmAMhBQwBCyAEEE4gBCoCoAOSIQULIANBIGokACAFC6EDAQh/AkAgACgC6AMiBSAAKALsAyIHRwRAA0AgACAFKAIAIgIoAuQDRwRAAkAgACgC9AMoAgAiAQRAIAIgACAGIAERBgAiAQ0BC0GIBBAeIgEgAigCEDYCECABIAIpAgg3AgggASACKQIANwIAIAFBFGogAkEUakHoABArGiABQgA3AoABIAFB/ABqIgNBADsBACABQgA3AogBIAFCADcCkAEgAyACQfwAahCgASABQZgBaiACQZgBakHQAhArGiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/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/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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`;if(!ua(H)){var va=H;H=h$3.locateFile?h$3.locateFile(va,q$3):q$3+va}function wa(){var a$2=H;try{if(a$2==H&&w$3)return new Uint8Array(w$3);if(ua(a$2))try{var b$2=xa(a$2.slice(37)),c$3=new Uint8Array(b$2.length);for(a$2=0;a$2<b$2.length;++a$2)c$3[a$2]=b$2.charCodeAt(a$2);var d$3=c$3}catch{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,{credentials:`same-origin`}).then(function(a$2){if(!a$2.ok)throw`failed to load wasm binary file at '`+H+`'`;return a$2.arrayBuffer()}).catch(function(){return wa()})}function za(a$2){for(;0<a$2.length;)a$2.shift()(h$3)}function Aa(a$2){if(a$2===void 0)return`_unknown`;a$2=a$2.replace(/[^a-zA-Z0-9_]/g,`$`);var b$2=a$2.charCodeAt(0);return 48<=b$2&&57>=b$2?`_`+a$2:a$2}function Ba(a$2,b$2){return a$2=Aa(a$2),function(){return b$2.apply(this,arguments)}}var J$2=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ca=[];function Da(a$2){var b$2=Error,c$3=Ba(a$2,function(d$3){this.name=a$2,this.message=d$3,d$3=Error(d$3).stack,d$3!==void 0&&(this.stack=this.toString()+`
|
|
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$2){throw new K$2(a$2)}var M$2=a$2=>(a$2||L$2(`Cannot use deleted val. handle = `+a$2),J$2[a$2].value),Ea=a$2=>{switch(a$2){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$2},b$2}},Fa=void 0,Ga=void 0;function N$1(a$2){for(var b$2=``;A[a$2];)b$2+=Ga[A[a$2++]];return b$2}var O$3=[];function Ha(){for(;O$3.length;){var a$2=O$3.pop();a$2.M.$=!1,a$2.delete()}}var P$2=void 0,Q$2={};function Ia(a$2,b$2){for(b$2===void 0&&L$2(`ptr should not be undefined`);a$2.R;)b$2=a$2.ba(b$2),a$2=a$2.R;return b$2}var R$2={};function Ja(a$2){a$2=Ka(a$2);var b$2=N$1(a$2);return S$1(a$2),b$2}function La(a$2,b$2){var c$3=R$2[a$2];return c$3===void 0&&L$2(b$2+` has unknown type `+Ja(a$2)),c$3}function Ma(){}var Na=!1;function Oa(a$2){--a$2.count.value,a$2.count.value===0&&(a$2.T?a$2.U.W(a$2.T):a$2.P.N.W(a$2.O))}function Pa(a$2,b$2,c$3){return b$2===c$3?a$2:c$3.R===void 0?null:(a$2=Pa(a$2,b$2,c$3.R),a$2===null?null:c$3.na(a$2))}var Qa={};function Ra(a$2,b$2){return b$2=Ia(a$2,b$2),Q$2[b$2]}var Sa=void 0;function Ta(a$2){throw new Sa(a$2)}function Ua(a$2,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$2,{M:{value:b$2}}))}function T$1(a$2){return typeof FinalizationRegistry>`u`?(T$1=b$2=>b$2,a$2):(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$2))}var Va={};function Wa(a$2){for(;a$2.length;){var b$2=a$2.pop();a$2.pop()(b$2)}}function Xa(a$2){return this.fromWireType(D$1[a$2>>2])}var U$2={},Ya={};function V$3(a$2,b$2,c$3){function d$3(k){k=c$3(k),k.length!==a$2.length&&Ta(`Mismatched type converter count`);for(var m$2=0;m$2<a$2.length;++m$2)W$2(a$2[m$2],k[m$2])}a$2.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$2){switch(a$2){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError(`Unknown type size: `+a$2)}}function W$2(a$2,b$2,c$3={}){if(!(`argPackAdvance`in b$2))throw TypeError(`registerType registeredInstance requires argPackAdvance`);var d$3=b$2.name;if(a$2||L$2(`type "`+d$3+`" must have a positive integer typeid pointer`),R$2.hasOwnProperty(a$2)){if(c$3.ua)return;L$2(`Cannot register type '`+d$3+`' twice`)}R$2[a$2]=b$2,delete Ya[a$2],U$2.hasOwnProperty(a$2)&&(b$2=U$2[a$2],delete U$2[a$2],b$2.forEach(e$1=>e$1()))}function $a(a$2){L$2(a$2.M.P.N.name+` instance already deleted`)}function X$2(){}function ab$1(a$2,b$2,c$3){if(a$2[b$2].S===void 0){var d$3=a$2[b$2];a$2[b$2]=function(){return a$2[b$2].S.hasOwnProperty(arguments.length)||L$2(`Function '`+c$3+`' called with an invalid number of arguments (`+arguments.length+`) - expects one of (`+a$2[b$2].S+`)!`),a$2[b$2].S[arguments.length].apply(this,arguments)},a$2[b$2].S=[],a$2[b$2].S[d$3.Z]=d$3}}function bb(a$2,b$2){h$3.hasOwnProperty(a$2)?(L$2(`Cannot register public name '`+a$2+`' twice`),ab$1(h$3,a$2,a$2),h$3.hasOwnProperty(void 0)&&L$2(`Cannot register multiple overloads of a function with the same number of arguments (undefined)!`),h$3[a$2].S[void 0]=b$2):h$3[a$2]=b$2}function cb(a$2,b$2,c$3,d$3,e$1,f,g,k){this.name=a$2,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$2,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$2=b$2.ba(a$2),b$2=b$2.R;return a$2}function eb(a$2,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$2,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$2!==null&&a$2.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$2!==null&&a$2.push(this.W,c$3)}break;default:L$2(`Unsupporting sharing policy`)}return c$3}function hb(a$2,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$2,b$2,c$3,d$3){this.name=a$2,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$2,b$2){h$3.hasOwnProperty(a$2)||Ta(`Replacing nonexistant public symbol`),h$3[a$2]=b$2,h$3[a$2].Z=void 0}function jb(a$2,b$2){var c$3=[];return function(){if(c$3.length=0,Object.assign(c$3,arguments),a$2.includes(`j`)){var d$3=h$3[`dynCall_`+a$2];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$2,b$2){a$2=N$1(a$2);var c$3=a$2.includes(`j`)?jb(a$2,b$2):oa.get(b$2);return typeof c$3!=`function`&&L$2(`unknown function pointer with signature `+a$2+`: `+b$2),c$3}var mb=void 0;function nb(a$2,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$2+`: `+d$3.map(Ja).join([`, `]))}function ob(a$2,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$2+` 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$2,b$2){for(var c$3=[],d$3=0;d$3<a$2;d$3++)c$3.push(E$2[b$2+4*d$3>>2]);return c$3}function qb(a$2){4<a$2&&--J$2[a$2].ga===0&&(J$2[a$2]=void 0,Ca.push(a$2))}function fb(a$2){if(a$2===null)return`null`;var b$2=typeof a$2;return b$2===`object`||b$2===`array`||b$2===`function`?a$2.toString():``+a$2}function rb(a$2,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$2)}}function sb(a$2,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$2)}}function tb(a$2,b$2){for(var c$3=``,d$3=0;!(d$3>=b$2/2);++d$3){var e$1=C$2[a$2+2*d$3>>1];if(e$1==0)break;c$3+=String.fromCharCode(e$1)}return c$3}function ub(a$2,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$2.length?c$3/2:a$2.length;for(var e$1=0;e$1<c$3;++e$1)C$2[b$2>>1]=a$2.charCodeAt(e$1),b$2+=2;return C$2[b$2>>1]=0,b$2-d$3}function vb(a$2){return 2*a$2.length}function wb(a$2,b$2){for(var c$3=0,d$3=``;!(c$3>=b$2/4);){var e$1=D$1[a$2+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$2,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$2.length;++e$1){var f=a$2.charCodeAt(e$1);if(55296<=f&&57343>=f){var g=a$2.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$2){for(var b$2=0,c$3=0;c$3<a$2.length;++c$3){var d$3=a$2.charCodeAt(c$3);55296<=d$3&&57343>=d$3&&++c$3,b$2+=4}return b$2}var zb={};function Ab(a$2){var b$2=zb[a$2];return b$2===void 0?N$1(a$2):b$2}var Bb=[];function Cb(a$2){var b$2=Bb.length;return Bb.push(a$2),b$2}function Db(a$2,b$2){for(var c$3=Array(a$2),d$3=0;d$3<a$2;++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$2=0,b$2=5;b$2<J$2.length;++b$2)J$2[b$2]!==void 0&&++a$2;return a$2},h$3.get_first_emval=function(){for(var a$2=5;a$2<J$2.length;++a$2)if(J$2[a$2]!==void 0)return J$2[a$2];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$2=[],b$2;for(b$2 in Q$2)Q$2.hasOwnProperty(b$2)&&a$2.push(Q$2[b$2]);return a$2},h$3.flushPendingDeletes=Ha,h$3.setDelayFunction=function(a$2){P$2=a$2,O$3.length&&P$2&&P$2(Ha)},Sa=h$3.InternalError=Da(`InternalError`),X$2.prototype.isAliasOf=function(a$2){if(!(this instanceof X$2&&a$2 instanceof X$2))return!1;var b$2=this.M.P.N,c$3=this.M.O,d$3=a$2.M.P.N;for(a$2=a$2.M.O;b$2.R;)c$3=b$2.ba(c$3),b$2=b$2.R;for(;d$3.R;)a$2=d$3.ba(a$2),d$3=d$3.R;return b$2===d$3&&c$3===a$2},X$2.prototype.clone=function(){if(this.M.O||$a(this),this.M.aa)return this.M.count.value+=1,this;var a$2=T$1,b$2=Object,c$3=b$2.create,d$3=Object.getPrototypeOf(this),e$1=this.M;return a$2=a$2(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$2.M.count.value+=1,a$2.M.$=!1,a$2},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$2){return this.ka&&(a$2=this.ka(a$2)),a$2},Y$1.prototype.ha=function(a$2){this.W&&this.W(a$2)},Y$1.prototype.argPackAdvance=8,Y$1.prototype.readValueFromPointer=Xa,Y$1.prototype.deleteObject=function(a$2){a$2!==null&&a$2.delete()},Y$1.prototype.fromWireType=function(a$2){function b$2(){return this.da?Ua(this.N.X,{P:this.wa,O:c$3,U:this,T:a$2}):Ua(this.N.X,{P:this,O:a$2})}var c$3=this.qa(a$2);if(!c$3)return this.ha(a$2),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$2,d$3.clone()):(d$3=d$3.clone(),this.ha(a$2),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$2}):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$2){var b$2=``,c$3=0;a$2=a$2.replace(/[^A-Za-z0-9\+\/=]/g,``);do{var d$3=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.charAt(c$3++)),e$1=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.charAt(c$3++)),f=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.charAt(c$3++)),g=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(a$2.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$2.length);return b$2},Jb={l:function(a$2,b$2,c$3,d$3){x$1(`Assertion failed: `+(a$2?z$5(A,a$2):``)+`, 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$2,b$2,c$3){a$2=N$1(a$2),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$2=Ba(a$2,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$2.prototype=Object.create(f),c$3)a$2.prototype[m$2]=c$3[m$2];return Ea(a$2)},j:function(a$2){var b$2=Va[a$2];delete Va[a$2];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$2],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$2,b$2,c$3,d$3,e$1){var f=Za(c$3);b$2=N$1(b$2),W$2(a$2,{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$2,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&&=Z(g,k),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$2,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$2]={pointerType:B$1,la:lb},ib(u$17,t$1),[y$3,B$1,lb]})},d:function(a$2,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$2],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$2,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$2],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$2,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$2],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$2,b$2){b$2=N$1(b$2),W$2(a$2,{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$2,b$2,c$3){c$3=Za(c$3),b$2=N$1(b$2),W$2(a$2,{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$2,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$2,{name:b$2,fromWireType:f,toWireType:c$3,argPackAdvance:8,readValueFromPointer:sb(b$2,e$1,d$3!==0),V:null})},b:function(a$2,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$2,{name:c$3,fromWireType:d$3,argPackAdvance:8,readValueFromPointer:d$3},{ua:!0})},o:function(a$2,b$2){b$2=N$1(b$2);var c$3=b$2===`std::string`;W$2(a$2,{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$2,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$2,{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$2,b$2,c$3,d$3,e$1,f){Va[a$2]={name:N$1(b$2),fa:Z(c$3,d$3),W:Z(e$1,f),ia:[]}},h:function(a$2,b$2,c$3,d$3,e$1,f,g,k,m$2,l$1){Va[a$2].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$2,b$2){b$2=N$1(b$2),W$2(a$2,{va:!0,name:b$2,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(a$2,b$2,c$3,d$3,e$1){a$2=Bb[a$2],b$2=M$2(b$2),c$3=Ab(c$3);var f=[];return E$2[d$3>>2]=Ea(f),a$2(b$2,c$3,f,e$1)},t:function(a$2,b$2,c$3,d$3){a$2=Bb[a$2],b$2=M$2(b$2),c$3=Ab(c$3),a$2(b$2,c$3,null,d$3)},g:qb,m:function(a$2,b$2){var c$3=Db(a$2,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$2-1);return e$1=Cb((g,k,m$2,l$1)=>{for(var n$2=0,p=0;p<a$2-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$2-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$2){4<a$2&&(J$2[a$2].ga+=1)},r:function(a$2){var b$2=M$2(a$2);Wa(b$2),qb(a$2)},c:function(){x$1(``)},x:function(a$2,b$2,c$3){A.copyWithin(a$2,b$2,b$2+c$3)},w:function(a$2){var b$2=A.length;if(a$2>>>=0,2147483648<a$2)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$2+100663296);var e$1=Math;d$3=Math.max(a$2,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{}f=void 0}if(f)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(a$2,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$2];l$1===0||l$1===10?((a$2===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$2(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$2&&(e$1=G$2,G$2=null,e$1()))}function b$2(e$1){a$2(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$2)}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)||typeof fetch!=`function`?c$3(b$2):fetch(H,{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$2=function Lb(){Kb||Mb(),Kb||(G$2=Lb)};function Mb(){function a$2(){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$2()},1)):a$2())}}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})})();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}({});var YGEnums_default={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};function wrapAssembly(lib){function patch$2(prototype,name$2,fn){let original=prototype[name$2];prototype[name$2]=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}}var src_default=wrapAssembly(await yoga_wasm_base64_esm_default());function ansiRegex({onlyFirst=!1}={}){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(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<=94198||x$1>=94208&&x$1<=101589||x$1>=101631&&x$1<=101662||x$1>=101760&&x$1<=101874||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<=128728||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<=129674||x$1>=129678&&x$1<=129734||x$1===129736||x$1>=129741&&x$1<=129756||x$1>=129759&&x$1<=129770||x$1>=129775&&x$1<=129784||x$1>=131072&&x$1<=196605||x$1>=196608&&x$1<=262141}function validate$6(codePoint){if(!Number.isSafeInteger(codePoint))throw TypeError(`Expected a code point, got \`${typeof codePoint}\`.`)}function eastAsianWidth(codePoint,{ambiguousAsWide=!1}={}){return validate$6(codePoint),isFullWidth(codePoint)||isWide(codePoint)||ambiguousAsWide&&isAmbiguous(codePoint)?2:1}var import_emoji_regex=__toESM(__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}))(),1);const segmenter=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(string)),string.length===0)return 0;let width=0,eastAsianWidthOptions={ambiguousAsWide:!ambiguousIsNarrow};for(let{segment:character}of segmenter.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)){if((0,import_emoji_regex.default)().test(character)){width+=2;continue}width+=eastAsianWidth(codePoint,eastAsianWidthOptions)}}return width}const ANSI_BACKGROUND_OFFSET$2=10,wrapAnsi16$3=(offset=0)=>code$1=>`\u001B[${code$1+offset}m`,wrapAnsi256$3=(offset=0)=>code$1=>`\u001B[${38+offset};5;${code$1}m`,wrapAnsi16m$3=(offset=0)=>(red$1,green$1,blue$1)=>`\u001B[${38+offset};2;${red$1};${green$1};${blue$1}m`,styles$8={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$2=Object.keys(styles$8.modifier),foregroundColorNames$2=Object.keys(styles$8.color),backgroundColorNames$2=Object.keys(styles$8.bgColor),colorNames$2=[...foregroundColorNames$2,...backgroundColorNames$2];function assembleStyles$3(){let codes$1=new Map;for(let[groupName,group]of Object.entries(styles$8)){for(let[styleName,style]of Object.entries(group))styles$8[styleName]={open:`\u001B[${style[0]}m`,close:`\u001B[${style[1]}m`},group[styleName]=styles$8[styleName],codes$1.set(style[0],style[1]);Object.defineProperty(styles$8,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles$8,`codes`,{value:codes$1,enumerable:!1}),styles$8.color.close=`\x1B[39m`,styles$8.bgColor.close=`\x1B[49m`,styles$8.color.ansi=wrapAnsi16$3(),styles$8.color.ansi256=wrapAnsi256$3(),styles$8.color.ansi16m=wrapAnsi16m$3(),styles$8.bgColor.ansi=wrapAnsi16$3(10),styles$8.bgColor.ansi256=wrapAnsi256$3(10),styles$8.bgColor.ansi16m=wrapAnsi16m$3(10),Object.defineProperties(styles$8,{rgbToAnsi256:{value(red$1,green$1,blue$1){return 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$8.rgbToAnsi256(...styles$8.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$8.ansi256ToAnsi(styles$8.rgbToAnsi256(red$1,green$1,blue$1)),enumerable:!1},hexToAnsi:{value:hex=>styles$8.ansi256ToAnsi(styles$8.hexToAnsi256(hex)),enumerable:!1}}),styles$8}var ansi_styles_default$1=assembleStyles$3();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$3=>`${ESCAPES$4.values().next().value}${ANSI_ESCAPE_LINK}${url$3}`,wordLengths=string=>string.split(` `).map(character=>stringWidth(character)),wrapWord=(rows,word,columns)=>{let characters=[...word],isInsideEscape=!1,isInsideLinkEscape=!1,visible=stringWidth(stripAnsi(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,isInsideLinkEscape=characters.slice(index+1,index+1+4).join(``)===ANSI_ESCAPE_LINK),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$2=(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);Math.floor((lengths[index]-1)/columns)<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$1.codes.get(Number(escapeCode));pre[index+1]===`
|
|
4
4
|
`?(escapeUrl&&(returnValue+=wrapAnsiHyperlink(``)),escapeCode&&code$1&&(returnValue+=wrapAnsiCode(code$1))):character===`
|
|
5
5
|
`&&(escapeCode&&code$1&&(returnValue+=wrapAnsiCode(escapeCode)),escapeUrl&&(returnValue+=wrapAnsiHyperlink(escapeUrl))),preStringIndex+=character.length}return returnValue};function wrapAnsi(string,columns,options$1){return String(string).normalize().replaceAll(`\r
|
|
6
6
|
`,`
|
|
7
7
|
`).split(`
|
|
8
|
-
`).map(line$1=>exec$
|
|
8
|
+
`).map(line$1=>exec$2(line$1,columns,options$1)).join(`
|
|
9
9
|
`)}var require_scheduler_production=__commonJSMin((exports=>{function push$1(heap,node){var index=heap.length;heap.push(node);a:for(;0<index;){var parentIndex=index-1>>>1,parent$1=heap[parentIndex];if(0<compare$1(parent$1,node))heap[parentIndex]=node,heap[index]=parent$1,index=parentIndex;else break a}}function peek(heap){return heap.length===0?null:heap[0]}function pop$1(heap){if(heap.length===0)return null;var first$1=heap[0],last$1=heap.pop();if(last$1!==first$1){heap[0]=last$1;a:for(var index=0,length=heap.length,halfLength=length>>>1;index<halfLength;){var leftIndex=2*(index+1)-1,left$2=heap[leftIndex],rightIndex=leftIndex+1,right$2=heap[rightIndex];if(0>compare$1(left$2,last$1))rightIndex<length&&0>compare$1(right$2,left$2)?(heap[index]=right$2,heap[rightIndex]=last$1,index=rightIndex):(heap[index]=left$2,heap[leftIndex]=last$1,index=leftIndex);else if(rightIndex<length&&0>compare$1(right$2,last$1))heap[index]=right$2,heap[rightIndex]=last$1,index=rightIndex;else break a}}return first$1}function compare$1(a$2,b$2){var diff$2=a$2.sortIndex-b$2.sortIndex;return diff$2===0?a$2.id-b$2.id:diff$2}if(exports.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var localPerformance=performance;exports.unstable_now=function(){return localPerformance.now()}}else{var localDate=Date,initialTime=localDate.now();exports.unstable_now=function(){return localDate.now()-initialTime}}var taskQueue=[],timerQueue=[],taskIdCounter=1,currentTask=null,currentPriorityLevel=3,isPerformingWork=!1,isHostCallbackScheduled=!1,isHostTimeoutScheduled=!1,needsPaint=!1,localSetTimeout=typeof setTimeout==`function`?setTimeout:null,localClearTimeout=typeof clearTimeout==`function`?clearTimeout:null,localSetImmediate=typeof setImmediate<`u`?setImmediate:null;function advanceTimers(currentTime){for(var timer$1=peek(timerQueue);timer$1!==null;){if(timer$1.callback===null)pop$1(timerQueue);else if(timer$1.startTime<=currentTime)pop$1(timerQueue),timer$1.sortIndex=timer$1.expirationTime,push$1(taskQueue,timer$1);else break;timer$1=peek(timerQueue)}}function handleTimeout(currentTime){if(isHostTimeoutScheduled=!1,advanceTimers(currentTime),!isHostCallbackScheduled)if(peek(taskQueue)!==null)isHostCallbackScheduled=!0,isMessageLoopRunning||(isMessageLoopRunning=!0,schedulePerformWorkUntilDeadline());else{var firstTimer=peek(timerQueue);firstTimer!==null&&requestHostTimeout(handleTimeout,firstTimer.startTime-currentTime)}}var isMessageLoopRunning=!1,taskTimeoutID=-1,frameInterval=5,startTime=-1;function shouldYieldToHost(){return needsPaint?!0:!(exports.unstable_now()-startTime<frameInterval)}function performWorkUntilDeadline(){if(needsPaint=!1,isMessageLoopRunning){var currentTime=exports.unstable_now();startTime=currentTime;var hasMoreWork=!0;try{a:{isHostCallbackScheduled=!1,isHostTimeoutScheduled&&(isHostTimeoutScheduled=!1,localClearTimeout(taskTimeoutID),taskTimeoutID=-1),isPerformingWork=!0;var previousPriorityLevel=currentPriorityLevel;try{b:{for(advanceTimers(currentTime),currentTask=peek(taskQueue);currentTask!==null&&!(currentTask.expirationTime>currentTime&&shouldYieldToHost());){var callback$1=currentTask.callback;if(typeof callback$1==`function`){currentTask.callback=null,currentPriorityLevel=currentTask.priorityLevel;var continuationCallback=callback$1(currentTask.expirationTime<=currentTime);if(currentTime=exports.unstable_now(),typeof continuationCallback==`function`){currentTask.callback=continuationCallback,advanceTimers(currentTime),hasMoreWork=!0;break b}currentTask===peek(taskQueue)&&pop$1(taskQueue),advanceTimers(currentTime)}else pop$1(taskQueue);currentTask=peek(taskQueue)}if(currentTask!==null)hasMoreWork=!0;else{var firstTimer=peek(timerQueue);firstTimer!==null&&requestHostTimeout(handleTimeout,firstTimer.startTime-currentTime),hasMoreWork=!1}}break a}finally{currentTask=null,currentPriorityLevel=previousPriorityLevel,isPerformingWork=!1}hasMoreWork=void 0}}finally{hasMoreWork?schedulePerformWorkUntilDeadline():isMessageLoopRunning=!1}}}var schedulePerformWorkUntilDeadline;if(typeof localSetImmediate==`function`)schedulePerformWorkUntilDeadline=function(){localSetImmediate(performWorkUntilDeadline)};else if(typeof MessageChannel<`u`){var channel=new MessageChannel,port=channel.port2;channel.port1.onmessage=performWorkUntilDeadline,schedulePerformWorkUntilDeadline=function(){port.postMessage(null)}}else schedulePerformWorkUntilDeadline=function(){localSetTimeout(performWorkUntilDeadline,0)};function requestHostTimeout(callback$1,ms){taskTimeoutID=localSetTimeout(function(){callback$1(exports.unstable_now())},ms)}exports.unstable_IdlePriority=5,exports.unstable_ImmediatePriority=1,exports.unstable_LowPriority=4,exports.unstable_NormalPriority=3,exports.unstable_Profiling=null,exports.unstable_UserBlockingPriority=2,exports.unstable_cancelCallback=function(task){task.callback=null},exports.unstable_forceFrameRate=function(fps){0>fps||125<fps?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):frameInterval=0<fps?Math.floor(1e3/fps):5},exports.unstable_getCurrentPriorityLevel=function(){return currentPriorityLevel},exports.unstable_next=function(eventHandler){switch(currentPriorityLevel){case 1:case 2:case 3:var priorityLevel=3;break;default:priorityLevel=currentPriorityLevel}var previousPriorityLevel=currentPriorityLevel;currentPriorityLevel=priorityLevel;try{return eventHandler()}finally{currentPriorityLevel=previousPriorityLevel}},exports.unstable_requestPaint=function(){needsPaint=!0},exports.unstable_runWithPriority=function(priorityLevel,eventHandler){switch(priorityLevel){case 1:case 2:case 3:case 4:case 5:break;default:priorityLevel=3}var previousPriorityLevel=currentPriorityLevel;currentPriorityLevel=priorityLevel;try{return eventHandler()}finally{currentPriorityLevel=previousPriorityLevel}},exports.unstable_scheduleCallback=function(priorityLevel,callback$1,options$1){var currentTime=exports.unstable_now();switch(typeof options$1==`object`&&options$1?(options$1=options$1.delay,options$1=typeof options$1==`number`&&0<options$1?currentTime+options$1:currentTime):options$1=currentTime,priorityLevel){case 1:var timeout=-1;break;case 2:timeout=250;break;case 5:timeout=1073741823;break;case 4:timeout=1e4;break;default:timeout=5e3}return timeout=options$1+timeout,priorityLevel={id:taskIdCounter++,callback:callback$1,priorityLevel,startTime:options$1,expirationTime:timeout,sortIndex:-1},options$1>currentTime?(priorityLevel.sortIndex=options$1,push$1(timerQueue,priorityLevel),peek(taskQueue)===null&&priorityLevel===peek(timerQueue)&&(isHostTimeoutScheduled?(localClearTimeout(taskTimeoutID),taskTimeoutID=-1):isHostTimeoutScheduled=!0,requestHostTimeout(handleTimeout,options$1-currentTime))):(priorityLevel.sortIndex=timeout,push$1(taskQueue,priorityLevel),isHostCallbackScheduled||isPerformingWork||(isHostCallbackScheduled=!0,isMessageLoopRunning||(isMessageLoopRunning=!0,schedulePerformWorkUntilDeadline()))),priorityLevel},exports.unstable_shouldYield=shouldYieldToHost,exports.unstable_wrapCallback=function(callback$1){var parentPriorityLevel=currentPriorityLevel;return function(){var previousPriorityLevel=currentPriorityLevel;currentPriorityLevel=parentPriorityLevel;try{return callback$1.apply(this,arguments)}finally{currentPriorityLevel=previousPriorityLevel}}}})),require_scheduler_development=__commonJSMin((exports=>{process.env.NODE_ENV!==`production`&&(function(){function performWorkUntilDeadline$1(){if(needsPaint$1=!1,isMessageLoopRunning$1){var currentTime=exports.unstable_now();startTime$1=currentTime;var hasMoreWork=!0;try{a:{isHostCallbackScheduled$1=!1,isHostTimeoutScheduled$1&&(isHostTimeoutScheduled$1=!1,localClearTimeout$1(taskTimeoutID$1),taskTimeoutID$1=-1),isPerformingWork$1=!0;var previousPriorityLevel=currentPriorityLevel$1;try{b:{for(advanceTimers$1(currentTime),currentTask$1=peek$1(taskQueue$1);currentTask$1!==null&&!(currentTask$1.expirationTime>currentTime&&shouldYieldToHost$1());){var callback$1=currentTask$1.callback;if(typeof callback$1==`function`){currentTask$1.callback=null,currentPriorityLevel$1=currentTask$1.priorityLevel;var continuationCallback=callback$1(currentTask$1.expirationTime<=currentTime);if(currentTime=exports.unstable_now(),typeof continuationCallback==`function`){currentTask$1.callback=continuationCallback,advanceTimers$1(currentTime),hasMoreWork=!0;break b}currentTask$1===peek$1(taskQueue$1)&&pop$2(taskQueue$1),advanceTimers$1(currentTime)}else pop$2(taskQueue$1);currentTask$1=peek$1(taskQueue$1)}if(currentTask$1!==null)hasMoreWork=!0;else{var firstTimer=peek$1(timerQueue$1);firstTimer!==null&&requestHostTimeout$1(handleTimeout$1,firstTimer.startTime-currentTime),hasMoreWork=!1}}break a}finally{currentTask$1=null,currentPriorityLevel$1=previousPriorityLevel,isPerformingWork$1=!1}hasMoreWork=void 0}}finally{hasMoreWork?schedulePerformWorkUntilDeadline$1():isMessageLoopRunning$1=!1}}}function push$2(heap,node){var index=heap.length;heap.push(node);a:for(;0<index;){var parentIndex=index-1>>>1,parent$1=heap[parentIndex];if(0<compare$2(parent$1,node))heap[parentIndex]=node,heap[index]=parent$1,index=parentIndex;else break a}}function peek$1(heap){return heap.length===0?null:heap[0]}function pop$2(heap){if(heap.length===0)return null;var first$1=heap[0],last$1=heap.pop();if(last$1!==first$1){heap[0]=last$1;a:for(var index=0,length=heap.length,halfLength=length>>>1;index<halfLength;){var leftIndex=2*(index+1)-1,left$2=heap[leftIndex],rightIndex=leftIndex+1,right$2=heap[rightIndex];if(0>compare$2(left$2,last$1))rightIndex<length&&0>compare$2(right$2,left$2)?(heap[index]=right$2,heap[rightIndex]=last$1,index=rightIndex):(heap[index]=left$2,heap[leftIndex]=last$1,index=leftIndex);else if(rightIndex<length&&0>compare$2(right$2,last$1))heap[index]=right$2,heap[rightIndex]=last$1,index=rightIndex;else break a}}return first$1}function compare$2(a$2,b$2){var diff$2=a$2.sortIndex-b$2.sortIndex;return diff$2===0?a$2.id-b$2.id:diff$2}function advanceTimers$1(currentTime){for(var timer$1=peek$1(timerQueue$1);timer$1!==null;){if(timer$1.callback===null)pop$2(timerQueue$1);else if(timer$1.startTime<=currentTime)pop$2(timerQueue$1),timer$1.sortIndex=timer$1.expirationTime,push$2(taskQueue$1,timer$1);else break;timer$1=peek$1(timerQueue$1)}}function handleTimeout$1(currentTime){if(isHostTimeoutScheduled$1=!1,advanceTimers$1(currentTime),!isHostCallbackScheduled$1)if(peek$1(taskQueue$1)!==null)isHostCallbackScheduled$1=!0,isMessageLoopRunning$1||(isMessageLoopRunning$1=!0,schedulePerformWorkUntilDeadline$1());else{var firstTimer=peek$1(timerQueue$1);firstTimer!==null&&requestHostTimeout$1(handleTimeout$1,firstTimer.startTime-currentTime)}}function shouldYieldToHost$1(){return needsPaint$1?!0:!(exports.unstable_now()-startTime$1<frameInterval$1)}function requestHostTimeout$1(callback$1,ms){taskTimeoutID$1=localSetTimeout$1(function(){callback$1(exports.unstable_now())},ms)}if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()),exports.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var localPerformance$1=performance;exports.unstable_now=function(){return localPerformance$1.now()}}else{var localDate$1=Date,initialTime$1=localDate$1.now();exports.unstable_now=function(){return localDate$1.now()-initialTime$1}}var taskQueue$1=[],timerQueue$1=[],taskIdCounter$1=1,currentTask$1=null,currentPriorityLevel$1=3,isPerformingWork$1=!1,isHostCallbackScheduled$1=!1,isHostTimeoutScheduled$1=!1,needsPaint$1=!1,localSetTimeout$1=typeof setTimeout==`function`?setTimeout:null,localClearTimeout$1=typeof clearTimeout==`function`?clearTimeout:null,localSetImmediate$1=typeof setImmediate<`u`?setImmediate:null,isMessageLoopRunning$1=!1,taskTimeoutID$1=-1,frameInterval$1=5,startTime$1=-1;if(typeof localSetImmediate$1==`function`)var schedulePerformWorkUntilDeadline$1=function(){localSetImmediate$1(performWorkUntilDeadline$1)};else if(typeof MessageChannel<`u`){var channel$1=new MessageChannel,port$1=channel$1.port2;channel$1.port1.onmessage=performWorkUntilDeadline$1,schedulePerformWorkUntilDeadline$1=function(){port$1.postMessage(null)}}else schedulePerformWorkUntilDeadline$1=function(){localSetTimeout$1(performWorkUntilDeadline$1,0)};exports.unstable_IdlePriority=5,exports.unstable_ImmediatePriority=1,exports.unstable_LowPriority=4,exports.unstable_NormalPriority=3,exports.unstable_Profiling=null,exports.unstable_UserBlockingPriority=2,exports.unstable_cancelCallback=function(task){task.callback=null},exports.unstable_forceFrameRate=function(fps){0>fps||125<fps?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):frameInterval$1=0<fps?Math.floor(1e3/fps):5},exports.unstable_getCurrentPriorityLevel=function(){return currentPriorityLevel$1},exports.unstable_next=function(eventHandler){switch(currentPriorityLevel$1){case 1:case 2:case 3:var priorityLevel=3;break;default:priorityLevel=currentPriorityLevel$1}var previousPriorityLevel=currentPriorityLevel$1;currentPriorityLevel$1=priorityLevel;try{return eventHandler()}finally{currentPriorityLevel$1=previousPriorityLevel}},exports.unstable_requestPaint=function(){needsPaint$1=!0},exports.unstable_runWithPriority=function(priorityLevel,eventHandler){switch(priorityLevel){case 1:case 2:case 3:case 4:case 5:break;default:priorityLevel=3}var previousPriorityLevel=currentPriorityLevel$1;currentPriorityLevel$1=priorityLevel;try{return eventHandler()}finally{currentPriorityLevel$1=previousPriorityLevel}},exports.unstable_scheduleCallback=function(priorityLevel,callback$1,options$1){var currentTime=exports.unstable_now();switch(typeof options$1==`object`&&options$1?(options$1=options$1.delay,options$1=typeof options$1==`number`&&0<options$1?currentTime+options$1:currentTime):options$1=currentTime,priorityLevel){case 1:var timeout=-1;break;case 2:timeout=250;break;case 5:timeout=1073741823;break;case 4:timeout=1e4;break;default:timeout=5e3}return timeout=options$1+timeout,priorityLevel={id:taskIdCounter$1++,callback:callback$1,priorityLevel,startTime:options$1,expirationTime:timeout,sortIndex:-1},options$1>currentTime?(priorityLevel.sortIndex=options$1,push$2(timerQueue$1,priorityLevel),peek$1(taskQueue$1)===null&&priorityLevel===peek$1(timerQueue$1)&&(isHostTimeoutScheduled$1?(localClearTimeout$1(taskTimeoutID$1),taskTimeoutID$1=-1):isHostTimeoutScheduled$1=!0,requestHostTimeout$1(handleTimeout$1,options$1-currentTime))):(priorityLevel.sortIndex=timeout,push$2(taskQueue$1,priorityLevel),isHostCallbackScheduled$1||isPerformingWork$1||(isHostCallbackScheduled$1=!0,isMessageLoopRunning$1||(isMessageLoopRunning$1=!0,schedulePerformWorkUntilDeadline$1()))),priorityLevel},exports.unstable_shouldYield=shouldYieldToHost$1,exports.unstable_wrapCallback=function(callback$1){var parentPriorityLevel=currentPriorityLevel$1;return function(){var previousPriorityLevel=currentPriorityLevel$1;currentPriorityLevel$1=parentPriorityLevel;try{return callback$1.apply(this,arguments)}finally{currentPriorityLevel$1=previousPriorityLevel}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),require_scheduler=__commonJSMin(((exports,module)=>{process.env.NODE_ENV===`production`?module.exports=require_scheduler_production():module.exports=require_scheduler_development()})),require_react_reconciler_production=__commonJSMin(((exports,module)=>{module.exports=function($$$config){function createFiber(tag$2,pendingProps,key$1,mode){return new FiberNode(tag$2,pendingProps,key$1,mode)}function noop$12(){}function formatProdErrorMessage(code$1){var url$3=`https://react.dev/errors/`+code$1;if(1<arguments.length){url$3+=`?args[]=`+encodeURIComponent(arguments[1]);for(var i$7=2;i$7<arguments.length;i$7++)url$3+=`&args[]=`+encodeURIComponent(arguments[i$7])}return`Minified React error #`+code$1+`; visit `+url$3+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function getNearestMountedFiber(fiber){var node=fiber,nearestMounted=fiber;if(fiber.alternate)for(;node.return;)node=node.return;else{fiber=node;do node=fiber,node.flags&4098&&(nearestMounted=node.return),fiber=node.return;while(fiber)}return node.tag===3?nearestMounted:null}function assertIsMounted(fiber){if(getNearestMountedFiber(fiber)!==fiber)throw Error(formatProdErrorMessage(188))}function findCurrentFiberUsingSlowPath(fiber){var alternate=fiber.alternate;if(!alternate){if(alternate=getNearestMountedFiber(fiber),alternate===null)throw Error(formatProdErrorMessage(188));return alternate===fiber?fiber:null}for(var a$2=fiber,b$2=alternate;;){var parentA=a$2.return;if(parentA===null)break;var parentB=parentA.alternate;if(parentB===null){if(b$2=parentA.return,b$2!==null){a$2=b$2;continue}break}if(parentA.child===parentB.child){for(parentB=parentA.child;parentB;){if(parentB===a$2)return assertIsMounted(parentA),fiber;if(parentB===b$2)return assertIsMounted(parentA),alternate;parentB=parentB.sibling}throw Error(formatProdErrorMessage(188))}if(a$2.return!==b$2.return)a$2=parentA,b$2=parentB;else{for(var didFindChild=!1,child$0=parentA.child;child$0;){if(child$0===a$2){didFindChild=!0,a$2=parentA,b$2=parentB;break}if(child$0===b$2){didFindChild=!0,b$2=parentA,a$2=parentB;break}child$0=child$0.sibling}if(!didFindChild){for(child$0=parentB.child;child$0;){if(child$0===a$2){didFindChild=!0,a$2=parentB,b$2=parentA;break}if(child$0===b$2){didFindChild=!0,b$2=parentB,a$2=parentA;break}child$0=child$0.sibling}if(!didFindChild)throw Error(formatProdErrorMessage(189))}}if(a$2.alternate!==b$2)throw Error(formatProdErrorMessage(190))}if(a$2.tag!==3)throw Error(formatProdErrorMessage(188));return a$2.stateNode.current===a$2?fiber:alternate}function findCurrentHostFiberImpl(node){var tag$2=node.tag;if(tag$2===5||tag$2===26||tag$2===27||tag$2===6)return node;for(node=node.child;node!==null;){if(tag$2=findCurrentHostFiberImpl(node),tag$2!==null)return tag$2;node=node.sibling}return null}function findCurrentHostFiberWithNoPortalsImpl(node){var tag$2=node.tag;if(tag$2===5||tag$2===26||tag$2===27||tag$2===6)return node;for(node=node.child;node!==null;){if(node.tag!==4&&(tag$2=findCurrentHostFiberWithNoPortalsImpl(node),tag$2!==null))return tag$2;node=node.sibling}return null}function getIteratorFn(maybeIterable){return typeof maybeIterable!=`object`||!maybeIterable?null:(maybeIterable=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||maybeIterable[`@@iterator`],typeof maybeIterable==`function`?maybeIterable:null)}function getComponentNameFromType(type){if(type==null)return null;if(typeof type==`function`)return type.$$typeof===REACT_CLIENT_REFERENCE?null:type.displayName||type.name||null;if(typeof type==`string`)return type;switch(type){case REACT_FRAGMENT_TYPE:return`Fragment`;case REACT_PROFILER_TYPE:return`Profiler`;case REACT_STRICT_MODE_TYPE:return`StrictMode`;case REACT_SUSPENSE_TYPE:return`Suspense`;case REACT_SUSPENSE_LIST_TYPE:return`SuspenseList`;case REACT_ACTIVITY_TYPE:return`Activity`}if(typeof type==`object`)switch(type.$$typeof){case REACT_PORTAL_TYPE:return`Portal`;case REACT_CONTEXT_TYPE:return(type.displayName||`Context`)+`.Provider`;case REACT_CONSUMER_TYPE:return(type._context.displayName||`Context`)+`.Consumer`;case REACT_FORWARD_REF_TYPE:var innerType=type.render;return type=type.displayName,type||=(type=innerType.displayName||innerType.name||``,type===``?`ForwardRef`:`ForwardRef(`+type+`)`),type;case REACT_MEMO_TYPE:return innerType=type.displayName||null,innerType===null?getComponentNameFromType(type.type)||`Memo`:innerType;case REACT_LAZY_TYPE:innerType=type._payload,type=type._init;try{return getComponentNameFromType(type(innerType))}catch{}}return null}function createCursor(defaultValue){return{current:defaultValue}}function pop$2(cursor){0>index$jscomp$0||(cursor.current=valueStack[index$jscomp$0],valueStack[index$jscomp$0]=null,index$jscomp$0--)}function push$2(cursor,value){index$jscomp$0++,valueStack[index$jscomp$0]=cursor.current,cursor.current=value}function clz32Fallback(x$1){return x$1>>>=0,x$1===0?32:31-(log$1$1(x$1)/LN2|0)|0}function getHighestPriorityLanes(lanes){var pendingSyncLanes=lanes&42;if(pendingSyncLanes!==0)return pendingSyncLanes;switch(lanes&-lanes){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return lanes&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return lanes&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return lanes}}function getNextLanes(root$31,wipLanes,rootHasPendingCommit){var pendingLanes=root$31.pendingLanes;if(pendingLanes===0)return 0;var nextLanes=0,suspendedLanes=root$31.suspendedLanes,pingedLanes=root$31.pingedLanes;root$31=root$31.warmLanes;var nonIdlePendingLanes=pendingLanes&134217727;return nonIdlePendingLanes===0?(nonIdlePendingLanes=pendingLanes&~suspendedLanes,nonIdlePendingLanes===0?pingedLanes===0?rootHasPendingCommit||(rootHasPendingCommit=pendingLanes&~root$31,rootHasPendingCommit!==0&&(nextLanes=getHighestPriorityLanes(rootHasPendingCommit))):nextLanes=getHighestPriorityLanes(pingedLanes):nextLanes=getHighestPriorityLanes(nonIdlePendingLanes)):(pendingLanes=nonIdlePendingLanes&~suspendedLanes,pendingLanes===0?(pingedLanes&=nonIdlePendingLanes,pingedLanes===0?rootHasPendingCommit||(rootHasPendingCommit=nonIdlePendingLanes&~root$31,rootHasPendingCommit!==0&&(nextLanes=getHighestPriorityLanes(rootHasPendingCommit))):nextLanes=getHighestPriorityLanes(pingedLanes)):nextLanes=getHighestPriorityLanes(pendingLanes)),nextLanes===0?0:wipLanes!==0&&wipLanes!==nextLanes&&(wipLanes&suspendedLanes)===0&&(suspendedLanes=nextLanes&-nextLanes,rootHasPendingCommit=wipLanes&-wipLanes,suspendedLanes>=rootHasPendingCommit||suspendedLanes===32&&rootHasPendingCommit&4194048)?wipLanes:nextLanes}function checkIfRootIsPrerendering(root$31,renderLanes$1){return(root$31.pendingLanes&~(root$31.suspendedLanes&~root$31.pingedLanes)&renderLanes$1)===0}function computeExpirationTime(lane,currentTime){switch(lane){case 1:case 2:case 4:case 8:case 64:return currentTime+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return currentTime+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function claimNextTransitionLane(){var lane=nextTransitionLane;return nextTransitionLane<<=1,!(nextTransitionLane&4194048)&&(nextTransitionLane=256),lane}function claimNextRetryLane(){var lane=nextRetryLane;return nextRetryLane<<=1,!(nextRetryLane&62914560)&&(nextRetryLane=4194304),lane}function createLaneMap(initial){for(var laneMap=[],i$7=0;31>i$7;i$7++)laneMap.push(initial);return laneMap}function markRootUpdated$1(root$31,updateLane){root$31.pendingLanes|=updateLane,updateLane!==268435456&&(root$31.suspendedLanes=0,root$31.pingedLanes=0,root$31.warmLanes=0)}function markRootFinished(root$31,finishedLanes,remainingLanes,spawnedLane,updatedLanes,suspendedRetryLanes){var previouslyPendingLanes=root$31.pendingLanes;root$31.pendingLanes=remainingLanes,root$31.suspendedLanes=0,root$31.pingedLanes=0,root$31.warmLanes=0,root$31.expiredLanes&=remainingLanes,root$31.entangledLanes&=remainingLanes,root$31.errorRecoveryDisabledLanes&=remainingLanes,root$31.shellSuspendCounter=0;var entanglements=root$31.entanglements,expirationTimes=root$31.expirationTimes,hiddenUpdates=root$31.hiddenUpdates;for(remainingLanes=previouslyPendingLanes&~remainingLanes;0<remainingLanes;){var index$5=31-clz32(remainingLanes),lane=1<<index$5;entanglements[index$5]=0,expirationTimes[index$5]=-1;var hiddenUpdatesForLane=hiddenUpdates[index$5];if(hiddenUpdatesForLane!==null)for(hiddenUpdates[index$5]=null,index$5=0;index$5<hiddenUpdatesForLane.length;index$5++){var update=hiddenUpdatesForLane[index$5];update!==null&&(update.lane&=-536870913)}remainingLanes&=~lane}spawnedLane!==0&&markSpawnedDeferredLane(root$31,spawnedLane,0),suspendedRetryLanes!==0&&updatedLanes===0&&root$31.tag!==0&&(root$31.suspendedLanes|=suspendedRetryLanes&~(previouslyPendingLanes&~finishedLanes))}function markSpawnedDeferredLane(root$31,spawnedLane,entangledLanes){root$31.pendingLanes|=spawnedLane,root$31.suspendedLanes&=~spawnedLane;var spawnedLaneIndex=31-clz32(spawnedLane);root$31.entangledLanes|=spawnedLane,root$31.entanglements[spawnedLaneIndex]=root$31.entanglements[spawnedLaneIndex]|1073741824|entangledLanes&4194090}function markRootEntangled(root$31,entangledLanes){var rootEntangledLanes=root$31.entangledLanes|=entangledLanes;for(root$31=root$31.entanglements;rootEntangledLanes;){var index$6=31-clz32(rootEntangledLanes),lane=1<<index$6;lane&entangledLanes|root$31[index$6]&entangledLanes&&(root$31[index$6]|=entangledLanes),rootEntangledLanes&=~lane}}function getBumpedLaneForHydrationByLane(lane){switch(lane){case 2:lane=1;break;case 8:lane=4;break;case 32:lane=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:lane=128;break;case 268435456:lane=134217728;break;default:lane=0}return lane}function lanesToEventPriority(lanes){return lanes&=-lanes,2<lanes?8<lanes?lanes&134217727?32:268435456:8:2}function setIsStrictModeForDevtools(newIsStrictMode){if(typeof log$5==`function`&&unstable_setDisableYieldValue(newIsStrictMode),injectedHook&&typeof injectedHook.setStrictMode==`function`)try{injectedHook.setStrictMode(rendererID,newIsStrictMode)}catch{}}function describeBuiltInComponentFrame(name$2){if(prefix===void 0)try{throw Error()}catch(x$1){var match$1=x$1.stack.trim().match(/\n( *(at )?)/);prefix=match$1&&match$1[1]||``,suffix=-1<x$1.stack.indexOf(`
|
|
10
10
|
at`)?` (<anonymous>)`:-1<x$1.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
11
11
|
`+prefix+name$2+suffix}function describeNativeComponentFrame(fn,construct){if(!fn||reentry$1)return``;reentry$1=!0;var previousPrepareStackTrace=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var RunInRootFrame={DetermineComponentFrameRoot:function(){try{if(construct){var Fake=function(){throw Error()};if(Object.defineProperty(Fake.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(Fake,[])}catch(x$1){var control=x$1}Reflect.construct(fn,[],Fake)}else{try{Fake.call()}catch(x$8){control=x$8}fn.call(Fake.prototype)}}else{try{throw Error()}catch(x$9){control=x$9}(Fake=fn())&&typeof Fake.catch==`function`&&Fake.catch(function(){})}}catch(sample){if(sample&&control&&typeof sample.stack==`string`)return[sample.stack,control.stack]}return[null,null]}};RunInRootFrame.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var namePropDescriptor=Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot,`name`);namePropDescriptor&&namePropDescriptor.configurable&&Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot,`name`,{value:`DetermineComponentFrameRoot`});var _RunInRootFrame$Deter=RunInRootFrame.DetermineComponentFrameRoot(),sampleStack=_RunInRootFrame$Deter[0],controlStack=_RunInRootFrame$Deter[1];if(sampleStack&&controlStack){var sampleLines=sampleStack.split(`
|
|
@@ -248,7 +248,7 @@ Read about how to prevent this error on https://github.com/vadimdemedes/ink/#isr
|
|
|
248
248
|
--`+boundary),this._bparser.on(`info`,function(isMatch,data$2,start,end){self$1._oninfo(isMatch,data$2,start,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,end){let buf,self$1=this,i$7=0,r$2,shouldWriteMore=!0;if(!this._part&&this._justMatched&&data$2){for(;this._dashes<2&&start+i$7<end;)if(data$2[start+i$7]===45)++i$7,++this._dashes;else{this._dashes&&(buf=B_ONEDASH),this._dashes=0;break}if(this._dashes===2&&(start+i$7<end&&this.listenerCount(`trailer`)!==0&&this.emit(`trailer`,data$2.slice(start+i$7,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&&=!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<end&&!this._ignoreData&&(this._isPreamble||!this._inHeader?(buf&&(shouldWriteMore=this._part.push(buf)),shouldWriteMore=this._part.push(data$2.slice(start,end)),shouldWriteMore||(this._pause=!0)):!this._isPreamble&&this._inHeader&&(buf&&this._hparser.push(buf),r$2=this._hparser.push(data$2.slice(start,end)),!this._inHeader&&r$2!==void 0&&r$2<end&&this._oninfo(!1,data$2,start+r$2,end))),isMatch&&(this._hparser.reset(),this._isPreamble?this._isPreamble=!1:start!==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":`
|
|
249
249
|
`,"%0A":`
|
|
250
250
|
`,"%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$7=0;i$7<len$1;++i$7){let char=str$1[i$7];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$7+1<len$1&&str$1[i$7+1]!==`;`;)++i$7;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&&=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$38){if(typeof path$38!=`string`)return``;for(var i$7=path$38.length-1;i$7>=0;--i$7)switch(path$38.charCodeAt(i$7)){case 47:case 92:return path$38=path$38.slice(i$7+1),path$38===`..`||path$38===`.`?``:path$38}return path$38===`..`||path$38===`.`?``:path$38}})),require_multipart=__commonJSMin(((exports,module)=>{let{Readable:Readable$5}=__require$1(`node:stream`),{inherits:inherits$1}=__require$1(`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$7,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$7=0,len$1=parsedConType.length;i$7<len$1;++i$7)if(Array.isArray(parsedConType[i$7])&&RE_BOUNDARY.test(parsedConType[i$7][0])){boundary=parsedConType[i$7][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$7=0,len$1=parsed.length;i$7<len$1;++i$7)if(RE_CHARSET$1.test(parsed[i$7][0])){charset=parsed[i$7][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$7=0,len$1=parsed.length;i$7<len$1;++i$7)RE_NAME.test(parsed[i$7][0])?fieldname=parsed[i$7][1]:RE_FILENAME.test(parsed[i$7][0])&&(filename=parsed[i$7][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$2=``,truncated=!1;curField=part,onData=function(data$2){if((nsize+=data$2.length)>fieldSizeLimit){let extralen=fieldSizeLimit-(nsize-data$2.length);buffer$2+=data$2.toString(`binary`,0,extralen),truncated=!0,part.removeAllListeners(`data`)}else buffer$2+=data$2.toString(`binary`)},onEnd=function(){curField=void 0,buffer$2.length&&(buffer$2=decodeText$1(buffer$2,`binary`,charset)),boy.emit(`field`,fieldname,buffer$2,!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$7=0,p=0,len$1=str$1.length;for(;i$7<len$1;++i$7)this.buffer===void 0?str$1[i$7]===`%`&&(i$7>p&&(res+=str$1.substring(p,i$7),p=i$7),this.buffer=``,++p):HEX[str$1.charCodeAt(i$7)]?(this.buffer+=str$1[i$7],++p,this.buffer.length===2&&(res+=String.fromCharCode(parseInt(this.buffer,16)),this.buffer=void 0)):(res+=`%`+this.buffer,this.buffer=void 0,--i$7);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$7=0,len$1=parsedConType.length;i$7<len$1;++i$7)if(Array.isArray(parsedConType[i$7])&&RE_CHARSET.test(parsedConType[i$7][0])){charset=parsedConType[i$7][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$7,p=0,len$1=data$2.length;for(;p<len$1;)if(this._state===`key`){for(idxeq=idxamp=void 0,i$7=p;i$7<len$1;++i$7){if(this._checkingBytes||++p,data$2[i$7]===61){idxeq=i$7;break}else if(data$2[i$7]===38){idxamp=i$7;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$1,keyTrunc=this._keyTrunc;if(key$1=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$1.length&&this.boy.emit(`field`,decodeText(key$1,`binary`,this.charset),``,keyTrunc,!1),p=idxamp+1,this._fields===this.fieldsLimit)return cb()}else this._hitLimit?(i$7>p&&(this._key+=this.decoder.write(data$2.toString(`binary`,p,i$7))),p=i$7,(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$7=p;i$7<len$1;++i$7){if(this._checkingBytes||++p,data$2[i$7]===38){idxamp=i$7;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$7>p&&(this._val+=this.decoder.write(data$2.toString(`binary`,p,i$7))),p=i$7,(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$1(`node:stream`).Writable,{inherits}=__require$1(`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$58=__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;let node_events_1$3=__require$1(`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$1)=>{onContentLength&&key$1===`content-length`&&onContentLength(value),headerArray.push(`${key$1}: ${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(chunk$1,stream$8){if(!stream$8.write(chunk$1))return(0,node_events_1$3.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});let node_buffer_1$6=__require$1(`node:buffer`),node_events_1$2=__require$1(`node:events`),node_stream_1$5=__require$1(`node:stream`),promises_1=__require$1(`node:stream/promises`),promise_helpers_1$5=require_cjs$4(),utils_js_1$11=require_utils$58();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$3){chunks.length>0&&this._flush(),readable$1.destroy(error$3)},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}exports.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$2.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$2.once)(thisReadable,`end`),(0,node_events_1$2.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`};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.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$1(`node:buffer`),ReadableStream_js_1$4=require_ReadableStream(),utils_js_1$10=require_utils$58();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}exports.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$7)=>{if(hasBufferMethod(blobPart)){jobs.push(blobPart.buffer().then(buf=>{bufferChunks[i$7]=buf}));return}else if(hasArrayBufferMethod(blobPart)){jobs.push(blobPart.arrayBuffer().then(arrayBuf=>{bufferChunks[i$7]=node_buffer_1$5.Buffer.from(arrayBuf,void 0,blobPart.size)}));return}else if(hasBytesMethod(blobPart)){jobs.push(blobPart.bytes().then(bytes=>{bufferChunks[i$7]=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];return typeof blobPart==`string`?(this._text=blobPart,(0,utils_js_1$10.fakePromise)(this._text)):hasTextMethod(blobPart)?blobPart.text().then(text=>(this._text=text,this._text)):(this._text=getBlobPartAsBuffer(blobPart).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`)}}})),require_File=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let Blob_js_1$2=require_Blob();exports.PonyfillFile=class extends Blob_js_1$2.PonyfillBlob{name;lastModified;constructor(fileBits,name$2,options$1){super(fileBits,options$1),this.name=name$2,this.lastModified=options$1?.lastModified||Date.now()}webkitRelativePath=``}})),tslib_es6_exports=__export$5({__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$7=0,p=Object.getOwnPropertySymbols(s$3);i$7<p.length;i$7++)e$1.indexOf(p[i$7])<0&&Object.prototype.propertyIsEnumerable.call(s$3,p[i$7])&&(t$1[p[i$7]]=s$3[p[i$7]]);return t$1}function __decorate(decorators,target,key$1,desc){var c$3=arguments.length,r$2=c$3<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key$1):desc,d$3;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)r$2=Reflect.decorate(decorators,target,key$1,desc);else for(var i$7=decorators.length-1;i$7>=0;i$7--)(d$3=decorators[i$7])&&(r$2=(c$3<3?d$3(r$2):c$3>3?d$3(target,key$1,r$2):d$3(target,key$1))||r$2);return c$3>3&&r$2&&Object.defineProperty(target,key$1,r$2),r$2}function __param(paramIndex,decorator){return function(target,key$1){decorator(target,key$1,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$1=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$7=decorators.length-1;i$7>=0;i$7--){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$7])(kind===`accessor`?{get:descriptor$1.get,set:descriptor$1.set}:descriptor$1[key$1],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$1]=_$3)}target&&Object.defineProperty(target,contextIn.name,descriptor$1),done=!0}function __runInitializers$1(thisArg,initializers,value){for(var useValue=arguments.length>2,i$7=0;i$7<initializers.length;i$7++)value=useValue?initializers[i$7].call(thisArg,value):initializers[i$7].call(thisArg);return useValue?value:void 0}function __propKey(x$1){return typeof x$1==`symbol`?x$1:`${x$1}`}function __setFunctionName(f,name$2,prefix){return typeof name$2==`symbol`&&(name$2=name$2.description?`[${name$2.description}]`:``),Object.defineProperty(f,`name`,{configurable:!0,value:prefix?`${prefix} ${name$2}`:name$2})}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$11){resolve$11(value)})}return new(P$2||=Promise)(function(resolve$11,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$11(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$7=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$7>=o$2.length&&(o$2=void 0),{value:o$2&&o$2[i$7++],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$7=m$2.call(o$2),r$2,ar=[],e$1;try{for(;(n$2===void 0||n$2-- >0)&&!(r$2=i$7.next()).done;)ar.push(r$2.value)}catch(error$3){e$1={error:error$3}}finally{try{r$2&&!r$2.done&&(m$2=i$7.return)&&m$2.call(i$7)}finally{if(e$1)throw e$1.error}}return ar}function __spread(){for(var ar=[],i$7=0;i$7<arguments.length;i$7++)ar=ar.concat(__read(arguments[i$7]));return ar}function __spreadArrays(){for(var s$3=0,i$7=0,il=arguments.length;i$7<il;i$7++)s$3+=arguments[i$7].length;for(var r$2=Array(s$3),k=0,i$7=0;i$7<il;i$7++)for(var a$2=arguments[i$7],j$2=0,jl=a$2.length;j$2<jl;j$2++,k++)r$2[k]=a$2[j$2];return r$2}function __spreadArray(to,from,pack){if(pack||arguments.length===2)for(var i$7=0,l$1=from.length,ar;i$7<l$1;i$7++)(ar||!(i$7 in from))&&(ar||=Array.prototype.slice.call(from,0,i$7),ar[i$7]=from[i$7]);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$7,q$3=[];return i$7=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$7[Symbol.asyncIterator]=function(){return this},i$7;function awaitReturn(f){return function(v$1){return Promise.resolve(v$1).then(f,reject)}}function verb(n$2,f){g[n$2]&&(i$7[n$2]=function(v$1){return new Promise(function(a$2,b$2){q$3.push([n$2,v$1,a$2,b$2])>1||resume$1(n$2,v$1)})},f&&(i$7[n$2]=f(i$7[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$7,p;return i$7={},verb(`next`),verb(`throw`,function(e$1){throw e$1}),verb(`return`),i$7[Symbol.iterator]=function(){return this},i$7;function verb(n$2,f){i$7[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$7;return m$2?m$2.call(o$2):(o$2=typeof __values$1==`function`?__values$1(o$2):o$2[Symbol.iterator](),i$7={},verb(`next`),verb(`throw`),verb(`return`),i$7[Symbol.asyncIterator]=function(){return this},i$7);function verb(n$2){i$7[n$2]=o$2[n$2]&&function(v$1){return new Promise(function(resolve$11,reject){v$1=o$2[n$2](v$1),settle(resolve$11,reject,v$1.done,v$1.value)})}}function settle(resolve$11,reject,d$3,v$1){Promise.resolve(v$1).then(function(v$2){resolve$11({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$7=0;i$7<k.length;i$7++)k[i$7]!==`default`&&__createBinding$10(result,mod$1,k[i$7]);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$8,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$8.stack.push({value,dispose,async:async$1})}else async$1&&env$8.stack.push({async:!0});return value}function __disposeResources(env$8){function fail(e$1){env$8.error=env$8.hasError?new _SuppressedError(e$1,env$8.error,`An error was suppressed during disposal.`):e$1,env$8.hasError=!0}var r$2,s$3=0;function next(){for(;r$2=env$8.stack.pop();)try{if(!r$2.async&&s$3===1)return s$3=0,env$8.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$8.hasError?Promise.reject(env$8.error):Promise.resolve();if(env$8.hasError)throw env$8.error}return next()}function __rewriteRelativeImportExtension(path$38,preserveJsx){return typeof path$38==`string`&&/^\.\.?\//.test(path$38)?path$38.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$38}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$7=1,n$2=arguments.length;i$7<n$2;i$7++)for(var p in s$3=arguments[i$7],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$3,suppressed,message){var e$1=Error(message);return e$1.name=`SuppressedError`,e$1.error=error$3,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=class extends Error{error;suppressed;constructor(error$3,suppressed,message){super(message),this.error=error$3,this.suppressed=suppressed,this.name=`SuppressedError`,Error.captureStackTrace(this,this.constructor)}}})),require_symbols=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!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$57=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.isSyncDisposable=isSyncDisposable,exports.isAsyncDisposable=isAsyncDisposable;let symbols_js_1$2=require_symbols();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});let promise_helpers_1$4=require_cjs$4(),SupressedError_js_1$2=require_SupressedError(),symbols_js_1$1=require_symbols(),utils_js_1$9=require_utils$57(),SuppressedError$2=globalThis.SuppressedError||SupressedError_js_1$2.PonyfillSuppressedError;exports.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$3=>(this._error=this._error?new SuppressedError$2(error$3,this._error):error$3,this._iterateCallbacks()))}[symbols_js_1$1.DisposableSymbols.asyncDispose](){let res$=this._iterateCallbacks();if(res$?.then)return res$.then(()=>{if(this._error){let error$3=this._error;throw this._error=void 0,error$3}});if(this._error){let error$3=this._error;throw this._error=void 0,error$3}}[Symbol.toStringTag]=`AsyncDisposableStack`}})),require_DisposableStack=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let SupressedError_js_1$1=require_SupressedError(),symbols_js_1=require_symbols(),utils_js_1$8=require_utils$57(),SuppressedError$1=globalThis.SuppressedError||SupressedError_js_1$1.PonyfillSuppressedError;exports.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$3){this._error=this._error?new SuppressedError$1(error$3,this._error):error$3}return this._iterateCallbacks()}}[symbols_js_1.DisposableSymbols.dispose](){if(this._iterateCallbacks(),this._error){let error$3=this._error;throw this._error=void 0,error$3}}[Symbol.toStringTag]=`DisposableStack`}})),require_cjs$3=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.SuppressedError=exports.AsyncDisposableStack=exports.DisposableStack=void 0;let tslib_1=(init_tslib_es6(),__toCommonJS$4(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.__exportStar(require_symbols(),exports)})),require_IteratorObject=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_util_1$1=__require$1(`node:util`),disposablestack_1=require_cjs$3(),utils_js_1$7=require_utils$58();exports.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$1)=>{let inspectedValue=(0,node_util_1$1.inspect)(value);record[key$1]=inspectedValue.includes(`,`)?inspectedValue.split(`,`).map(el=>el.trim()):inspectedValue}),`${this[Symbol.toStringTag]} ${(0,node_util_1$1.inspect)(record)}`}}})),require_FormData=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.getStreamFromFormData=getStreamFromFormData;let node_buffer_1$4=__require$1(`node:buffer`),IteratorObject_js_1$2=require_IteratorObject(),ReadableStream_js_1$3=require_ReadableStream();exports.PonyfillFormData=class{map=new Map;append(name$2,value,fileName){let values=this.map.get(name$2);values||(values=[],this.map.set(name$2,values));let entry=isBlob$3(value)?getNormalizedFile(name$2,value,fileName):value;values.push(entry)}delete(name$2){this.map.delete(name$2)}get(name$2){let values=this.map.get(name$2);return values?values[0]:null}getAll(name$2){return this.map.get(name$2)||[]}has(name$2){return this.map.has(name$2)}set(name$2,value,fileName){let entry=isBlob$3(value)?getNormalizedFile(name$2,value,fileName):value;this.map.set(name$2,[entry])}[Symbol.iterator](){return this._entries()}*_entries(){for(let[key$1,values]of this.map)for(let value of values)yield[key$1,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$1,value]of this)callback$1(value,key$1,this)}};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$1,blobOrString]=value;if(typeof blobOrString==`string`)controller.enqueue(node_buffer_1$4.Buffer.from(`Content-Disposition: form-data; name="${key$1}"\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$1}"${filenamePart}\r\n`)),controller.enqueue(node_buffer_1$4.Buffer.from(`Content-Type: ${blobOrString.type||`application/octet-stream`}\r\n\r\n`)),currentAsyncIterator=blobOrString.stream()[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$2,blob,fileName){return Object.defineProperty(blob,`name`,{configurable:!0,enumerable:!0,value:fileName||blob.name||name$2}),blob}function isBlob$3(value){return value?.arrayBuffer!=null}})),require_Body=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_buffer_1$3=__require$1(`node:buffer`),node_stream_1$4=__require$1(`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$58();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||={}),exports.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$2}=processBodyInit(bodyInit);this._bodyFactory=bodyFactory,this.contentType=contentType,this.contentLength=contentLength,this.bodyType=bodyType,this._buffer=buffer$2,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$11,reject)=>{_body.readable.on(`data`,chunk$1=>{chunks.push(chunk$1)}),_body.readable.once(`error`,reject),_body.readable.once(`end`,()=>{resolve$11(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);if(this._formData=new FormData_js_1$1.PonyfillFormData,this.generateBody()==null)return(0,utils_js_1$6.fakePromise)(this._formData);let formDataLimits={...this.options.formDataLimits,...opts?.formDataLimits};return new Promise((resolve$11,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(),null),err?reject(err):resolve$11(this._formData))};stream$8.on(`error`,complete),bb.on(`field`,(name$2,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$2,value)}),bb.on(`file`,(name$2,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$2,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$2=>(this._text=buffer$2.toString(`utf-8`),this._text))}};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$2=bodyInit;return{bodyType:BodyInitType.Buffer,contentType:null,contentLength:bodyInit.length,buffer:bodyInit,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(buffer$2);return new ReadableStream_js_1$2.PonyfillReadableStream(readable$1)}}}if((0,utils_js_1$6.isArrayBufferView)(bodyInit)){let buffer$2=node_buffer_1$3.Buffer.from(bodyInit.buffer,bodyInit.byteOffset,bodyInit.byteLength);return{bodyType:BodyInitType.Buffer,contentLength:bodyInit.byteLength,contentType:null,buffer:buffer$2,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(buffer$2);return new ReadableStream_js_1$2.PonyfillReadableStream(readable$1)}}}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$2=node_buffer_1$3.Buffer.from(bodyInit,void 0,bodyInit.byteLength);return{bodyType:BodyInitType.Buffer,contentType:null,contentLength,buffer:buffer$2,bodyFactory(){let readable$1=node_stream_1$4.Readable.from(buffer$2);return new ReadableStream_js_1$2.PonyfillReadableStream(readable$1)}}}if(bodyInit instanceof node_stream_1$4.Readable)return{bodyType:BodyInitType.Readable,contentType:null,contentLength:null,bodyFactory(){return new ReadableStream_js_1$2.PonyfillReadableStream(bodyInit)}};if(isURLSearchParams$1(bodyInit))return{bodyType:BodyInitType.String,contentType:`application/x-www-form-urlencoded;charset=UTF-8`,contentLength:null,bodyFactory(){return new ReadableStream_js_1$2.PonyfillReadableStream(node_stream_1$4.Readable.from(bodyInit.toString()))}};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.isHeadersLike=isHeadersLike;let node_util_1=__require$1(`node:util`),IteratorObject_js_1$1=require_IteratorObject();function isHeadersLike(headers){return headers?.get&&headers?.forEach}exports.PonyfillHeaders=class{headersInit;_map;objectNormalizedKeysOfHeadersInit=[];objectOriginalKeysOfHeadersInit=[];_setCookies;constructor(headersInit){this.headersInit=headersInit}_get(key$1){let normalized$1=key$1.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$1]||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$1,value]of this.headersInit){let normalizedKey=key$1.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$1)=>{if(key$1===`set-cookie`){this._setCookies||=[],this._setCookies.push(value);return}this._map.set(key$1,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$2,value){let key$1=name$2.toLowerCase();if(key$1===`set-cookie`){this._setCookies||=[],this._setCookies.push(value);return}let existingValue=this.getMap().get(key$1),finalValue=existingValue?`${existingValue}, ${value}`:value;this.getMap().set(key$1,finalValue)}get(name$2){let value=this._get(name$2);return value==null?null:value.toString()}has(name$2){return name$2.toLowerCase()===`set-cookie`?!!this._setCookies?.length:!!this._get(name$2)}set(name$2,value){let key$1=name$2.toLowerCase();if(key$1===`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$1);found?found[1]=value:this.headersInit.push([key$1,value]);return}else if(isHeadersLike(this.headersInit)){this.headersInit.set(key$1,value);return}else{this.headersInit[key$1]=value;return}this.getMap().set(key$1,value)}delete(name$2){let key$1=name$2.toLowerCase();if(key$1===`set-cookie`){this._setCookies=[];return}this.getMap().delete(key$1)}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$1,value])=>{callback$1(value,key$1,this)});return}if(isHeadersLike(this.headersInit)){this.headersInit.forEach(callback$1);return}Object.entries(this.headersInit).forEach(([key$1,value])=>{value!=null&&callback$1(value,key$1,this)})}return}this.getMap().forEach((value,key$1)=>{callback$1(value,key$1,this)})}*_keys(){if(this._setCookies?.length&&(yield`set-cookie`),!this._map&&this.headersInit){if(Array.isArray(this.headersInit)){yield*this.headersInit.map(([key$1])=>key$1)[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$1)=>{key$1===`set-cookie`?record[`set-cookie`]=this._setCookies||[]:record[key$1]=value?.includes(`,`)?value.split(`,`).map(el=>el.trim()):value}),`Headers ${(0,node_util_1.inspect)(record)}`}}})),require_Response=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_http_1$10=__require$1(`node:http`),Body_js_1$2=require_Body(),Headers_js_1$2=require_Headers(),JSON_CONTENT_TYPE=`application/json; charset=utf-8`;exports.PonyfillResponse=class PonyfillResponse extends Body_js_1$2.PonyfillBody{headers;constructor(body,init$3){super(body||null,init$3),this.headers=init$3?.headers&&(0,Headers_js_1$2.isHeadersLike)(init$3.headers)?init$3.headers:new Headers_js_1$2.PonyfillHeaders(init$3?.headers),this.status=init$3?.status||200,this.statusText=init$3?.statusText||node_http_1$10.STATUS_CODES[this.status]||`OK`,this.url=init$3?.url||``,this.redirected=init$3?.redirected||!1,this.type=init$3?.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$3,status=302){if(status<300||status>399)throw RangeError(`Invalid status code`);return new PonyfillResponse(null,{headers:{location:url$3},status})}static json(data$2,init$3){let bodyInit=JSON.stringify(data$2);if(!init$3)init$3={headers:{"content-type":JSON_CONTENT_TYPE,"content-length":Buffer.byteLength(bodyInit).toString()}};else if(!init$3.headers)init$3.headers={"content-type":JSON_CONTENT_TYPE,"content-length":Buffer.byteLength(bodyInit).toString()};else if((0,Headers_js_1$2.isHeadersLike)(init$3.headers))init$3.headers.has(`content-type`)||init$3.headers.set(`content-type`,JSON_CONTENT_TYPE),init$3.headers.has(`content-length`)||init$3.headers.set(`content-length`,Buffer.byteLength(bodyInit).toString());else if(Array.isArray(init$3.headers)){let contentTypeExists=!1,contentLengthExists=!1;for(let[key$1]of init$3.headers){if(contentLengthExists&&contentTypeExists)break;!contentTypeExists&&key$1.toLowerCase()===`content-type`?contentTypeExists=!0:!contentLengthExists&&key$1.toLowerCase()===`content-length`&&(contentLengthExists=!0)}contentTypeExists||init$3.headers.push([`content-type`,JSON_CONTENT_TYPE]),contentLengthExists||init$3.headers.push([`content-length`,Buffer.byteLength(bodyInit).toString()])}else typeof init$3.headers==`object`&&(init$3.headers?.[`content-type`]??(init$3.headers[`content-type`]=JSON_CONTENT_TYPE),init$3.headers?.[`content-length`]??(init$3.headers[`content-length`]=Buffer.byteLength(bodyInit).toString()));return new PonyfillResponse(bodyInit,init$3)}[Symbol.toStringTag]=`Response`}})),require_fetchCurl=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchCurl=fetchCurl;let node_stream_1$3=__require$1(`node:stream`),node_tls_1=__require$1(`node:tls`),promise_helpers_1$2=require_cjs$4(),Response_js_1$3=require_Response(),utils_js_1$5=require_utils$58();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(`
|
|
251
|
-
`)),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$3){streamResolved&&!streamResolved.closed&&!streamResolved.destroyed?streamResolved.destroy(error$3):(error$3.message===`Operation was aborted by an application callback`&&(error$3.message=`The operation was aborted.`),deferredPromise.reject(error$3));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}),headersInit=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).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$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_buffer_1$2=(init_tslib_es6(),__toCommonJS$4(tslib_es6_exports)).__importDefault(__require$1(`node:buffer`)),node_crypto_1=__require$1(`node:crypto`),NativeURL=globalThis.URL;exports.PonyfillURL=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$3){this.blobRegistry.has(url$3)?this.blobRegistry.delete(url$3):NativeURL.revokeObjectURL(url$3)}static getBlobFromURL(url$3){return this.blobRegistry.get(url$3)||node_buffer_1$2.default?.resolveObjectURL?.(url$3)}}})),require_Request=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_http_1$9=__require$1(`node:http`),node_https_1$1=__require$1(`node:https`),Body_js_1$1=require_Body(),Headers_js_1$1=require_Headers(),URL_js_1$3=require_URL$1();function isRequest$4(input){return input[Symbol.toStringTag]===`Request`}function isURL$1(obj){return obj?.href!=null}exports.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$9.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`}})),require_fetchNodeHttp=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchNodeHttp=fetchNodeHttp;let node_http_1$8=__require$1(`node:http`),node_https_1=__require$1(`node:https`),node_stream_1$2=__require$1(`node:stream`),node_zlib_1$2=__require$1(`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$1(),utils_js_1$4=require_utils$58();function getRequestFnForProtocol(url$3){if(url$3.startsWith(`http:`))return node_http_1$8.request;if(url$3.startsWith(`https:`))return node_https_1.request;throw Error(`Unsupported protocol: ${url$3.split(`:`)[0]||url$3}`)}function fetchNodeHttp(fetchRequest){return new Promise((resolve$11,reject)=>{try{let requestFn=getRequestFnForProtocol(fetchRequest.parsedUrl?.protocol||fetchRequest.url),nodeHeaders=(fetchRequest.headersSerializer||utils_js_1$4.getHeadersObj)(fetchRequest.headers);nodeHeaders[`accept-encoding`]||=`gzip, deflate, br`,nodeHeaders[`user-agent`]||=`node`;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;switch(nodeResponse.headers[`content-encoding`]){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`){reject(Error(`Redirects are not allowed`)),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$11(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$8.STATUS_CODES[statusCode];statusText??=``;let ponyfillResponse=new Response_js_1$2.PonyfillResponse(outputStream||nodeResponse,{status:statusCode,statusText,headers:nodeResponse.headers,url:fetchRequest.url,signal});resolve$11(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$1(`node:buffer`),node_fs_1=__require$1(`node:fs`),node_url_1=__require$1(`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$1(),utils_js_1$3=require_utils$58(),BASE64_SUFFIX=`;base64`;async function getResponseForFile(url$3){let path$38=(0,node_url_1.fileURLToPath)(url$3);try{await node_fs_1.promises.access(path$38,node_fs_1.promises.constants.R_OK);let stats=await node_fs_1.promises.stat(path$38,{bigint:!0}),readable$1=(0,node_fs_1.createReadStream)(path$38);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$3){let[mimeType=`text/plain`,...datas]=url$3.substring(5).split(`,`),data$2=decodeURIComponent(datas.join(`,`));if(mimeType.endsWith(`;base64`)){let buffer$2=node_buffer_1$1.Buffer.from(data$2,`base64url`),realMimeType=mimeType.slice(0,-7);return new Response_js_1$1.PonyfillResponse(buffer$2,{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$3){let blob=URL_js_1$1.PonyfillURL.getBlobFromURL(url$3);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$3){if(typeof info$1==`string`||isURL(info$1)){let ponyfillRequest=new Request_js_1$1.PonyfillRequest(info$1,init$3);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:`))return getResponseForFile(fetchRequest.url);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.PonyfillBtoa=PonyfillBtoa;let node_buffer_1=__require$1(`node:buffer`),utils_js_1$2=require_utils$58();exports.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 copied=this.encode(source$39).copy(destination);return{read:copied,written:copied}}},exports.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)}};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=globalThis.URLSearchParams})),require_WritableStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_events_1$1=__require$1(`node:events`),node_stream_1$1=__require$1(`node:stream`),promise_helpers_1=require_cjs$4(),utils_js_1$1=require_utils$58();exports.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$1.once)(writable$1,`close`)},get desiredSize(){return writable$1.writableLength},get ready(){return(0,node_events_1$1.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$1.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$1.once)(this.writable,`close`)}locked=!1}})),require_TransformStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_stream_1=__require$1(`node:stream`),ReadableStream_js_1$1=require_ReadableStream(),utils_js_1=require_utils$58(),WritableStream_js_1$1=require_WritableStream();exports.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)}}})),require_CompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_zlib_1$1=__require$1(`node:zlib`),TransformStream_js_1$3=require_TransformStream();exports.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}`)}}}})),require_DecompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_zlib_1=__require$1(`node:zlib`),TransformStream_js_1$2=require_TransformStream();exports.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}'`)}}}})),require_TextEncoderDecoderStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let TextEncoderDecoder_js_1$1=require_TextEncoderDecoder(),TransformStream_js_1$1=require_TransformStream();exports.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.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)}}})),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$1();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={};return ponyfills$1.URLPattern=globalThis.URLPattern,ponyfills$1.URLPattern||=require_urlpattern_polyfill().URLPattern,opts.skipPonyfill||shouldSkipPonyfill$1()?{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}:(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||=__require$1(`crypto`).webcrypto,ponyfills$1)}})),require_node_ponyfill=__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$1(`node-libcurl`)}catch{}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 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||=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$1,value)=>{headers.append(key$1,value)});let url$3=`http://localhost${req$1.getUrl()}`,query=req$1.getQuery();query&&(url$3+=`?${query}`);let buffer$2;function getBody(){return getReadableStream?stopped?getBufferFromChunks():getReadableStream():null}let request$2=new fetchAPI.Request(url$3,{method,headers,get body(){return getBody()},signal:controller.signal,duplex:duplex$1});function getBufferFromChunks(){return buffer$2||=chunks.length===1?chunks[0]:Buffer.concat(chunks),buffer$2}function collectBuffer(){return stopped?fakePromise(getBufferFromChunks()):new Promise((resolve$11,reject)=>{try{stopFns.push(()=>{resolve$11(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$1,value]of fetchResponse.headers)if(key$1!==`content-length`){if(key$1===`set-cookie`){let setCookies=fetchResponse.headers.getSetCookie?.();if(setCookies){for(let setCookie of setCookies)uwsResponse.writeHeader(key$1,setCookie);continue}}uwsResponse.writeHeader(key$1,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=__toESM(require_node_ponyfill(),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,...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$1(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$3=request$2.parsedUrl||new Proxy(EMPTY_OBJECT,{get(_target,prop,_receiver){return url$3=new fetchAPI.URL(request$2.url,`http://localhost`),Reflect.get(url$3,prop,url$3)}});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$3,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||=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||=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},serverContext=ctx.filter(partCtx=>partCtx!=null).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)},res.onAborted.bind(res)(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 compose$1=(middleware,onError$1,onNotFound)=>(context,next)=>{let index=-1;return dispatch(0);async function dispatch(i$7){if(i$7<=index)throw Error(`next() called multiple times`);index=i$7;let res,isError$1=!1,handler;if(middleware[i$7]?(handler=middleware[i$7][0][0],context.req.routeIndex=i$7):handler=i$7===middleware.length&&next||void 0,handler)try{res=await handler(context,()=>dispatch(i$7+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,contentType=(request$2 instanceof HonoRequest?request$2.raw.headers:request$2.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$1)=>{options$1.all||key$1.endsWith(`[]`)?handleParsingAllValues(form,key$1,value):form[key$1]=value}),options$1.dot&&Object.entries(form).forEach(([key$1,value])=>{key$1.includes(`.`)&&(handleParsingNestedValues(form,key$1,value),delete form[key$1])}),form}var handleParsingAllValues=(form,key$1,value)=>{form[key$1]===void 0?key$1.endsWith(`[]`)?form[key$1]=[value]:form[key$1]=value:Array.isArray(form[key$1])?form[key$1].push(value):form[key$1]=[form[key$1],value]},handleParsingNestedValues=(form,key$1,value)=>{let nestedForm=form,keys=key$1.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])})},tryDecodeURIComponent=str$1=>tryDecode(str$1,decodeURIComponent_),HonoRequest=class{raw;#validatedData;#matchResult;routeIndex=0;path;bodyCache={};constructor(request$2,path$38=`/`,matchResult=[[]]){this.raw=request$2,this.path=path$38,this.#matchResult=matchResult,this.#validatedData={}}param(key$1){return key$1?this.#getDecodedParam(key$1):this.#getAllDecodedParams()}#getDecodedParam(key$1){let paramKey=this.#matchResult[0][this.routeIndex][1][key$1],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$1 of keys){let value=this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key$1]);value!==void 0&&(decoded[key$1]=/\%/.test(value)?tryDecodeURIComponent(value):value)}return decoded}#getParamValue(paramKey){return this.#matchResult[1]?this.#matchResult[1][paramKey]:paramKey}query(key$1){return getQueryParam(this.url,key$1)}queries(key$1){return getQueryParams(this.url,key$1)}header(name$2){if(name$2)return this.raw.headers.get(name$2)??void 0;let headerData={};return this.raw.headers.forEach((value,key$1)=>{headerData[key$1]=value}),headerData}async parseBody(options$1){return this.bodyCache.parsedBody??=await parseBody$1(this,options$1)}#cachedBody=key$1=>{let{bodyCache,raw:raw$1}=this,cachedBody=bodyCache[key$1];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$1]())):bodyCache[key$1]=raw$1[key$1]()};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$2)=>{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$2?buffer$2[0]+=str$1:buffer$2=[str$1];let resStr=Promise.all(callbacks.map(c$3=>c$3({phase,buffer:buffer$2,context}))).then(res=>Promise.all(res.filter(Boolean).map(str2=>resolveCallback(str2,phase,!1,context,buffer$2))).then(()=>buffer$2[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`)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$2,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$2):options$1?.append?headers.append(name$2,value):headers.set(name$2,value)};status=status=>{this.#status=status};set=(key$1,value)=>{this.#var??=new Map,this.#var.set(key$1,value)};get=key$1=>this.#var?this.#var.get(key$1):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$1,value]of argHeaders)key$1.toLowerCase()===`set-cookie`?responseHeaders.append(key$1,value):responseHeaders.set(key$1,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={}){[...METHODS,METHOD_NAME_ALL_LOWERCASE].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$38,...handlers)=>{for(let p of[path$38].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$38,app){let subApp=this.basePath(path$38);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$38){let subApp=this.#clone();return subApp._basePath=mergePath(this._basePath,path$38),subApp}onError=handler=>(this.errorHandler=handler,this);notFound=handler=>(this.#notFoundHandler=handler,this);mount(path$38,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]};return replaceRequest||=(()=>{let mergedPath=mergePath(this._basePath,path$38),pathPrefixLength=mergedPath===`/`?0:mergedPath.length;return request$2=>{let url$3=new URL(request$2.url);return url$3.pathname=url$3.pathname.slice(pathPrefixLength)||`/`,new Request(url$3,request$2)}})(),this.#addRoute(METHOD_NAME_ALL,mergePath(path$38,`*`),async(c$3,next)=>{let res=await applicationHandler(replaceRequest(c$3.req.raw),...getOptions$1(c$3));if(res)return res;await next()}),this}#addRoute(method,path$38,handler){method=method.toUpperCase(),path$38=mergePath(this._basePath,path$38);let r$2={basePath:this._basePath,path:path$38,method,handler};this.router.add(method,path$38,[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$8,method){if(method===`HEAD`)return(async()=>new Response(null,await this.#dispatch(request$2,executionCtx,env$8,`GET`)))();let path$38=this.getPath(request$2,{env:env$8}),matchResult=this.router.match(method,path$38),c$3=new Context(request$2,{path:path$38,matchResult,env:env$8,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(`/`,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$2,b$2){return a$2.length===1?b$2.length===1?a$2<b$2?-1:1:-1:b$2.length===1||a$2===ONLY_WILDCARD_REG_EXP_STR||a$2===TAIL_WILDCARD_REG_EXP_STR?1:b$2===ONLY_WILDCARD_REG_EXP_STR||b$2===TAIL_WILDCARD_REG_EXP_STR?-1:a$2===LABEL_REG_EXP_STR?1:b$2===LABEL_REG_EXP_STR?-1:a$2.length===b$2.length?a$2<b$2?-1:1:b$2.length-a$2.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$2=pattern[1],regexpStr=pattern[2]||LABEL_REG_EXP_STR;if(name$2&&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$2!==``&&(node.#varIndex=context.varIndex++)}!pathErrorCheckOnly&&name$2!==``&¶mMap.push([name$2,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 strList=Object.keys(this.#children).sort(compareKey).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$38,index,pathErrorCheckOnly){let paramAssoc=[],groups=[];for(let i$7=0;;){let replaced=!1;if(path$38=path$38.replace(/\{[^}]+\}/g,m$2=>{let mark=`@\\${i$7}`;return groups[i$7]=[mark,m$2],i$7++,replaced=!0,mark}),!replaced)break}let tokens=path$38.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let i$7=groups.length-1;i$7>=0;i$7--){let[mark]=groups[i$7];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$7][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$38){return wildcardRegExpCache[path$38]??=RegExp(path$38===`*`?``:`^${path$38.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$7=0,j$2=-1,len$1=routesWithStaticPathFlag.length;i$7<len$1;i$7++){let[pathErrorCheckOnly,path$38,handlers]=routesWithStaticPathFlag[i$7];pathErrorCheckOnly?staticMap[path$38]=[handlers.map(([h$3])=>[h$3,Object.create(null)]),emptyParam]:j$2++;let paramAssoc;try{paramAssoc=trie.insert(path$38,j$2,pathErrorCheckOnly)}catch(e$1){throw e$1===PATH_ERROR?new UnsupportedPathError(path$38):e$1}pathErrorCheckOnly||(handlerData[j$2]=handlers.map(([h$3,paramCount])=>{let paramIndexMap=Object.create(null);for(--paramCount;paramCount>=0;paramCount--){let[key$1,value]=paramAssoc[paramCount];paramIndexMap[key$1]=value}return[h$3,paramIndexMap]}))}let[regexp,indexReplacementMap,paramReplacementMap]=trie.buildRegExp();for(let i$7=0,len$1=handlerData.length;i$7<len$1;i$7++)for(let j$2=0,len2=handlerData[i$7].length;j$2<len2;j$2++){let map$2=handlerData[i$7][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$7 in indexReplacementMap)handlerMap[i$7]=handlerData[indexReplacementMap[i$7]];return[regexp,handlerMap,staticMap]}function findMiddleware(middleware,path$38){if(middleware){for(let k of Object.keys(middleware).sort((a$2,b$2)=>b$2.length-a$2.length))if(buildWildcardRegExp(k).test(path$38))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$38,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$38===`/*`&&(path$38=`*`);let paramCount=(path$38.match(/\/:/g)||[]).length;if(/\*$/.test(path$38)){let re$3=buildWildcardRegExp(path$38);method===METHOD_NAME_ALL?Object.keys(middleware).forEach(m$2=>{middleware[m$2][path$38]||=findMiddleware(middleware[m$2],path$38)||findMiddleware(middleware[METHOD_NAME_ALL],path$38)||[]}):middleware[method][path$38]||=findMiddleware(middleware[method],path$38)||findMiddleware(middleware[METHOD_NAME_ALL],path$38)||[],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$38)||[path$38];for(let i$7=0,len$1=paths.length;i$7<len$1;i$7++){let path2=paths[i$7];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$7+1]))})}}match(method,path$38){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$38)}#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$38=>[path$38,r$2[method][path$38]]):[];ownRoute.length===0?method!==METHOD_NAME_ALL&&routes.push(...Object.keys(r$2[METHOD_NAME_ALL]).map(path$38=>[path$38,r$2[METHOD_NAME_ALL][path$38]])):(hasOwnRoute||=!0,routes.push(...ownRoute))}),hasOwnRoute?buildMatcherFromPreprocessedRoutes(routes):null}},SmartRouter=class{name=`SmartRouter`;#routers=[];#routes=[];constructor(init$3){this.#routers=init$3.routers}add(method,path$38,handler){if(!this.#routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);this.#routes.push([method,path$38,handler])}match(method,path$38){if(!this.#routes)throw Error(`Fatal error`);let routers=this.#routers,routes=this.#routes,len$1=routers.length,i$7=0,res;for(;i$7<len$1;i$7++){let router=routers[i$7];try{for(let i2=0,len2=routes.length;i2<len2;i2++)router.add(...routes[i2]);res=router.match(method,path$38)}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$7===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$38,handler){this.#order=++this.#order;let curNode=this,parts=splitRoutingPath(path$38),possibleKeys=[];for(let i$7=0,len$1=parts.length;i$7<len$1;i$7++){let p=parts[i$7],nextP=parts[i$7+1],pattern=getPattern(p,nextP),key$1=Array.isArray(pattern)?pattern[0]:p;if(key$1 in curNode.#children){curNode=curNode.#children[key$1],pattern&&possibleKeys.push(pattern[1]);continue}curNode.#children[key$1]=new Node$3,pattern&&(curNode.#patterns.push(pattern),possibleKeys.push(pattern[1])),curNode=curNode.#children[key$1]}return curNode.#methods.push({[method]:{handler,possibleKeys:possibleKeys.filter((v$1,i$7,a$2)=>a$2.indexOf(v$1)===i$7),score:this.#order}}),curNode}#getHandlerSets(node,method,nodeParams,params){let handlerSets=[];for(let i$7=0,len$1=node.#methods.length;i$7<len$1;i$7++){let m$2=node.#methods[i$7],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$1=handlerSet.possibleKeys[i2],processed=processedSet[handlerSet.score];handlerSet.params[key$1]=params?.[key$1]&&!processed?params[key$1]:nodeParams[key$1]??params?.[key$1],processedSet[handlerSet.score]=!0}}return handlerSets}search(method,path$38){let handlerSets=[];this.#params=emptyParams;let curNodes=[this],parts=splitPath(path$38),curNodesQueue=[];for(let i$7=0,len$1=parts.length;i$7<len$1;i$7++){let part=parts[i$7],isLast=i$7===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$1,name$2,matcher]=pattern;if(!part&&!(matcher instanceof RegExp))continue;let child=node.#children[key$1],restPathString=parts.slice(i$7).join(`/`);if(matcher instanceof RegExp){let m$2=matcher.exec(restPathString);if(m$2){if(params[name$2]=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;(curNodesQueue[componentCount]||=[]).push(child)}continue}}(matcher===!0||matcher.test(part))&&(params[name$2]=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$2,b$2)=>a$2.score-b$2.score),[handlerSets.map(({handler,params})=>[handler,params])]}},TrieRouter=class{name=`TrieRouter`;#node;constructor(){this.#node=new Node$3}add(method,path$38,handler){let results=checkOptionalParameter(path$38);if(results){for(let i$7=0,len$1=results.length;i$7<len$1;i$7++)this.#node.insert(method,results[i$7],handler);return}this.#node.insert(method,path$38,handler)}match(method,path$38){return this.#node.search(method,path$38)}},Hono=class extends Hono$1{constructor(options$1={}){super(options$1),this.router=options$1.router??new SmartRouter({routers:[new RegExpRouter,new TrieRouter]})}},getCookie=(c$3,key$1,prefix)=>{let cookie=c$3.req.raw.headers.get(`Cookie`);if(typeof key$1==`string`){if(!cookie)return;let finalKey=key$1;return prefix===`secure`?finalKey=`__Secure-`+key$1:prefix===`host`&&(finalKey=`__Host-`+key$1),parse$17(cookie,finalKey)[finalKey]}return cookie?parse$17(cookie):{}},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(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}},bufferToFormData=(arrayBuffer,contentType)=>new Response(arrayBuffer,{headers:{"Content-Type":contentType}}).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{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$1)=>{key$1.endsWith(`[]`)?(form[key$1]??=[]).push(value2):Array.isArray(form[key$1])?form[key$1].push(value2):key$1 in form?form[key$1]=[form[key$1],value2]:form[key$1]=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$2=(c$3,msg)=>c$3.json({error:msg},400),validateStorageKey=c$3=>{let key$1=c$3.req.param(`key`);return!key$1||key$1===``?{key:key$1,err:`Key is required`}:key$1.length>475?{key:key$1,err:`Key is too long. Max length is 475 characters.`}:{key:key$1}},createRouter=()=>new Hono,kv=createRouter().get(`/:key`,async c$3=>{let{key:key$1,err}=validateStorageKey(c$3);if(err)return error$2(c$3,err);let value=await c$3.env.store.get(key$1);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$2(c$3,`Value is too long. Max length is 20,000 characters.`):{value}:error$2(c$3,`Value must be a string`):error$2(c$3,`Value is required`)}),async c$3=>{let{key:key$1,err}=validateStorageKey(c$3);if(err)return error$2(c$3,err);let{value}=c$3.req.valid(`json`);return await c$3.env.store.set(key$1,value),c$3.body(null,204)}).delete(`/:key`,async c$3=>{let{key:key$1,err}=validateStorageKey(c$3);return err?error$2(c$3,err):(await c$3.env.store.delete(key$1),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.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$1=c$3.req.param(`key`);return key$1?key$1.length>475?{key:key$1,err:`Key is too long. Max length is 475 characters.`}:{key:key$1}:{key:key$1,err:`Key is required`}},withChatID=validator(`param`,param=>({id:param.id})),chat=createRouter().post(`/:key`,async c$3=>{let{key:key$1,err}=validateChatKey(c$3);return err?error$2(c$3,err):c$3.json(await c$3.env.chat.upsert(key$1),200)}).get(`/:id`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return c$3.json(await c$3.env.chat.get(id),200)}).get(`/:id/messages`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return c$3.json(await c$3.env.chat.getMessages(id),200)}).post(`/:id/sendMessages`,validator(`json`,body=>({id:body.id,messages:body.messages,options:body.options})),async c$3=>{let{id,messages:messages$1,options:options$1}=c$3.req.valid(`json`);return id?(await c$3.env.chat.sendMessages(id,messages$1,options$1),c$3.body(null,204)):error$2(c$3,`ID is required`)}).delete(`/:id/messages`,withChatID,validator(`query`,query=>(typeof query.message==`string`&&(query.message=[query.message]),{messages:query.message})),async c$3=>{let{id}=c$3.req.valid(`param`),{messages:messages$1}=c$3.req.valid(`query`);return await c$3.env.chat.deleteMessages(id,messages$1),c$3.body(null,204)}).post(`/:id/start`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return await c$3.env.chat.start(id),c$3.body(null,204)}).post(`/:id/stop`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return await c$3.env.chat.stop(id),c$3.body(null,204)}).delete(`/:id`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return await c$3.env.chat.delete(id),c$3.body(null,204)}),otlp=createRouter().post(`/v1/traces`,async c$3=>c$3.env.otlp?c$3.env.otlp.traces(c$3.req.raw):c$3.body(null,204)),api$39=new Hono().onError((err,c$3)=>c$3.json({error:err instanceof Error?err.message:`Unknown error`},500)).route(`/kv`,kv).route(`/chat`,chat).route(`/otlp`,otlp);var regex_default$1=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function validate$5(uuid){return typeof uuid==`string`&®ex_default$1.test(uuid)}var validate_default$1=validate$5;function parse$16(uuid){if(!validate_default$1(uuid))throw TypeError(`Invalid UUID`);let v$1;return Uint8Array.of((v$1=parseInt(uuid.slice(0,8),16))>>>24,v$1>>>16&255,v$1>>>8&255,v$1&255,(v$1=parseInt(uuid.slice(9,13),16))>>>8,v$1&255,(v$1=parseInt(uuid.slice(14,18),16))>>>8,v$1&255,(v$1=parseInt(uuid.slice(19,23),16))>>>8,v$1&255,(v$1=parseInt(uuid.slice(24,36),16))/1099511627776&255,v$1/4294967296&255,v$1>>>24&255,v$1>>>16&255,v$1>>>8&255,v$1&255)}var parse_default$1=parse$16;const byteToHex$1=[];for(let i$7=0;i$7<256;++i$7)byteToHex$1.push((i$7+256).toString(16).slice(1));function unsafeStringify$1(arr,offset=0){return(byteToHex$1[arr[offset+0]]+byteToHex$1[arr[offset+1]]+byteToHex$1[arr[offset+2]]+byteToHex$1[arr[offset+3]]+`-`+byteToHex$1[arr[offset+4]]+byteToHex$1[arr[offset+5]]+`-`+byteToHex$1[arr[offset+6]]+byteToHex$1[arr[offset+7]]+`-`+byteToHex$1[arr[offset+8]]+byteToHex$1[arr[offset+9]]+`-`+byteToHex$1[arr[offset+10]]+byteToHex$1[arr[offset+11]]+byteToHex$1[arr[offset+12]]+byteToHex$1[arr[offset+13]]+byteToHex$1[arr[offset+14]]+byteToHex$1[arr[offset+15]]).toLowerCase()}function stringToBytes$1(str$1){str$1=unescape(encodeURIComponent(str$1));let bytes=new Uint8Array(str$1.length);for(let i$7=0;i$7<str$1.length;++i$7)bytes[i$7]=str$1.charCodeAt(i$7);return bytes}const DNS$1=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,URL$10=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function v35$1(version$2,hash$1,value,namespace,buf,offset){let valueBytes=typeof value==`string`?stringToBytes$1(value):value,namespaceBytes=typeof namespace==`string`?parse_default$1(namespace):namespace;if(typeof namespace==`string`&&(namespace=parse_default$1(namespace)),namespace?.length!==16)throw TypeError(`Namespace must be array-like (16 iterable integer values, 0-255)`);let bytes=new Uint8Array(16+valueBytes.length);if(bytes.set(namespaceBytes),bytes.set(valueBytes,namespaceBytes.length),bytes=hash$1(bytes),bytes[6]=bytes[6]&15|version$2,bytes[8]=bytes[8]&63|128,buf){offset||=0;for(let i$7=0;i$7<16;++i$7)buf[offset+i$7]=bytes[i$7];return buf}return unsafeStringify$1(bytes)}function sha1$1(bytes){return Array.isArray(bytes)?bytes=Buffer.from(bytes):typeof bytes==`string`&&(bytes=Buffer.from(bytes,`utf8`)),createHash(`sha1`).update(bytes).digest()}var sha1_default$1=sha1$1;function v5$1(value,namespace,buf,offset){return v35$1(80,sha1_default$1,value,namespace,buf,offset)}v5$1.DNS=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,v5$1.URL=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;var v5_default$1=v5$1;function createLocalServer(options$1){let chatsDirectory=join(options$1.dataDirectory,`chats`),storage={},storagePath=join(options$1.dataDirectory,`storage.json`);fs$4.existsSync(storagePath)&&(storage=JSON.parse(fs$4.readFileSync(storagePath,`utf-8`)));let chatManagers=new Map,getChatManager=chatId=>{let manager=chatManagers.get(chatId);return manager||(manager=new ChatManager({chatId,chatsDirectory}),chatManagers.set(chatId,manager)),manager.setAgent(options$1.getAgent()),manager},chat$1={async upsert(key$1){let id=v5_default$1(JSON.stringify(key$1),v5_default$1.URL),state=getChatManager(id).getState(),created=state.messages.length===0&&!state.created_at;return{id:state.id,created,createdAt:state.created_at??new Date().toISOString(),key:key$1}},async get(id){let state=getChatManager(id).getState();return{id:state.id,createdAt:state.created_at??new Date().toISOString()}},async getMessages(id){return getChatManager(id).getState().messages},async sendMessages(id,messages$1,opts){let manager=getChatManager(id),converted=messages$1.map(message=>convertMessage(message,`run`));if(opts?.behavior===`append`){await manager.upsertMessages(converted);return}if(opts?.behavior===`interrupt`){await manager.sendMessages(converted);return}await manager.sendMessages(converted)},async deleteMessages(id,messages$1){await getChatManager(id).deleteMessages(messages$1)},async start(id){await getChatManager(id).start()},async stop(id){await getChatManager(id).stop()},async delete(id){await getChatManager(id).resetChat()}},store={get(key$1){return Promise.resolve(storage[key$1])},set(key$1,value){return storage[key$1]=value,fs$4.writeFileSync(storagePath,JSON.stringify(storage),`utf-8`),Promise.resolve()},delete(key$1){return delete storage[key$1],fs$4.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$1=>key$1.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$1=>({key:key$1})),cursor:nextCursor})}},server=createServer(createServerAdapter(req$1=>api$39.fetch(req$1,{chat:chat$1,store})));server.listen(options$1.port??0);let listStore=createDiskStore(chatsDirectory,`id`);return{url:`http://127.0.0.1:${server.address().port}`,chatsDirectory,getChatManager,listChats:()=>listStore.list(),dispose:()=>{for(let manager of chatManagers.values())manager.dispose();chatManagers.clear(),listStore.dispose(),server.close()}}}function useOptions({agent,capabilities,messages:messages$1}){let[error$3,setError]=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$1,value]of Object.entries(newOptions))isValidOption(key$1,value)||delete newOptions[key$1];for(let[key$1,value]of Object.entries(currentSchema.current??{}))!newOptions[key$1]&&value.defaultValue!==void 0&&(newOptions[key$1]=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!==lastAgentRef.current&&(lastAgentRef.current=agent,setSchema(void 0),setOptions$1(void 0),setError(void 0),setLoading(!0),lastRequestedOptionsJson.current=void 0)},[agent]),useEffect(()=>{if(capabilities&&!capabilities.ui||!agent){setSchema(void 0),setOptions$1(void 0),setError(void 0),lastRequestedOptionsJson.current=void 0;return}let currentOptionsJson=options$1?JSON.stringify(options$1):``;if(lastRequestedOptionsJson.current===currentOptionsJson){setLoading(!1),setError(void 0);return}let controller=new AbortController;return setLoading(!0),setError(void 0),agent.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(err instanceof Error?err:Error(String(err)))}).finally(()=>{setLoading(!1)}),()=>{controller.abort()}},[agent,capabilities,options$1]);let setOption$1=useCallback((id,value)=>{updateOptions({[id]:value})},[updateOptions]);return{schema,options:options$1,setOption:setOption$1,loading,error:error$3}}function useAgent(options$1){let[agent,setAgent]=useState(void 0),[logs$1,setLogs]=useState([]),[error$3,setError]=useState(void 0),[buildResult,setBuildResult]=useState(options$1.buildResult),[env$8,setEnv]=useState(options$1.env),[apiServerUrl,setApiServerUrl]=useState(options$1.apiServerUrl),[capabilities,setCapabilities]=useState(void 0);return useEffect(()=>{setEnv(options$1.env),setBuildResult(options$1.buildResult),setApiServerUrl(options$1.apiServerUrl)},[options$1.env,options$1.buildResult,options$1.apiServerUrl]),useEffect(()=>{if(!buildResult||`error`in buildResult){setAgent(void 0),setLogs([]),setError(void 0),setCapabilities(void 0);return}let controller=new AbortController,isCleanup=!1;return setError(void 0),setAgent(void 0),setCapabilities(void 0),(async()=>{let port$1=await getRandomPort$1(),proc$1=spawn$1(`node`,[`--no-deprecation`,buildResult.entry],{stdio:`pipe`,env:{...process.env,...env$8,[APIServerURLEnvironmentVariable]:apiServerUrl,PORT:port$1.toString(),HOST:`127.0.0.1`}});controller.signal.addEventListener(`abort`,()=>{try{proc$1.kill()}catch{}});let ready=!1;proc$1.stdout.on(`data`,data$2=>{let msg=Buffer.from(data$2).toString(`utf-8`).trim();!ready&&msg.startsWith(`Agent server listening on`)||(ready||console.log(`stdout: ${msg}`),msg.length&&setLogs(prev=>[...prev,{level:`log`,message:msg}]))}),proc$1.stderr.on(`data`,data$2=>{ready||console.error(`stderr: ${Buffer.from(data$2).toString(`utf-8`).trim()}`);let msg=Buffer.from(data$2).toString(`utf-8`).trim();msg.length&&setLogs(prev=>[...prev,{level:`error`,message:msg}])}),proc$1.on(`error`,err=>{controller.abort(err)}),proc$1.on(`exit`,(code$1,signal)=>{controller.abort(`Agent exited with code ${code$1??`unknown`} and signal ${signal??`unknown`}. Be sure to call "blink.agent(...).serve()".`)});let client=new Client$3({baseUrl:`http://127.0.0.1:${port$1}`});for(;!controller.signal.aborted;){try{await client.health();break}catch{}await new Promise(resolve$11=>setTimeout(resolve$11,100))}if(controller.signal.aborted)throw controller.signal.reason;ready=!0;let capabilities$1=await client.capabilities();setCapabilities(capabilities$1),setAgent(client)})().catch(err=>{isCleanup||setError(err instanceof Error?err:Error(String(err)))}),()=>{isCleanup=!0,controller.abort()}},[buildResult,env$8,apiServerUrl]),useMemo(()=>({agent,logs:logs$1,error:error$3,capabilities}),[agent,logs$1,error$3,capabilities])}async function getRandomPort$1(){let server=createServer();return new Promise((resolve$11,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$11(port$1)}).on(`error`,err=>{reject(err)})}).finally(()=>{server.close()})}function useBundler(options$1){let{directory,onBuildStart,onBuildSuccess,onBuildError}=typeof options$1==`string`?{directory:options$1}:options$1,config=useMemo(()=>resolveConfig(directory),[directory]),[error$3,setError]=useState(void 0),[result,setResult]=useState(void 0),[status,setStatus]=useState(`building`),onBuildStartRef=useRef(onBuildStart),onBuildSuccessRef=useRef(onBuildSuccess),onBuildErrorRef=useRef(onBuildError);return useEffect(()=>{onBuildStartRef.current=onBuildStart,onBuildSuccessRef.current=onBuildSuccess,onBuildErrorRef.current=onBuildError},[onBuildStart,onBuildSuccess,onBuildError]),useEffect(()=>{let controller=new AbortController;return config.build({cwd:directory,entry:config.entry,outdir:config.outdir,watch:!0,dev:!0,signal:controller.signal,onStart:()=>{setStatus(`building`),setError(void 0),setResult(void 0),onBuildStartRef.current?.()},onResult:result$1=>{`error`in result$1?(setError(result$1.error),setStatus(`error`),onBuildErrorRef.current?.(result$1.error)):(setResult(result$1),setStatus(`success`),onBuildSuccessRef.current?.(result$1))}}).catch(err=>{console.log(`error`,err),setStatus(`error`),setError(err),onBuildErrorRef.current?.(err)}),()=>{controller.abort()}},[directory]),useMemo(()=>({error:error$3,status,result,entry:config.entry,outdir:config.outdir}),[error$3,status,result,config.entry,config.outdir])}function useChat(options$1){let{chatId,agent,chatsDirectory,serializeMessage:serializeMessage$1,filterMessages}=options$1,managerRef=useRef(null),[state,setState]=useState({id:chatId,messages:[],status:`idle`,loading:!0,queuedMessages:[]});useEffect(()=>{managerRef.current&&managerRef.current.dispose();let manager=new ChatManager({chatId,chatsDirectory,serializeMessage:serializeMessage$1,filterMessages}),unsubscribe=manager.subscribe(newState=>{setState(newState)});return setState(manager.getState()),managerRef.current=manager,()=>{unsubscribe(),manager.dispose(),managerRef.current=null}},[chatId,chatsDirectory]),useEffect(()=>{managerRef.current&&managerRef.current.setAgent(agent)},[agent]);let sendMessage$2=useCallback(async message=>{managerRef.current&&await managerRef.current.sendMessages([message])},[]),upsertMessage=useCallback(async message=>{managerRef.current&&await managerRef.current.upsertMessages([message])},[]),stopStreaming=useCallback(()=>{managerRef.current&&managerRef.current.stopStreaming()},[]),resetChat=useCallback(async()=>{managerRef.current&&await managerRef.current.resetChat()},[]),clearQueue=useCallback(()=>{managerRef.current&&managerRef.current.clearQueue()},[]),deleteMessage=useCallback(async id=>{managerRef.current&&await managerRef.current.deleteMessages([id])},[]),start=useCallback(async()=>{managerRef.current&&await managerRef.current.start()},[]);return{...state,sendMessage:sendMessage$2,upsertMessage,stopStreaming,resetChat,clearQueue,deleteMessage,start}}function useDevhook(options$1){let onRequestRef=useRef(options$1.onRequest);useEffect(()=>{onRequestRef.current=options$1.onRequest},[options$1.onRequest]);let[status,setStatus]=useState(`disconnected`);return useEffect(()=>{if(options$1.disabled||!options$1.id){setStatus(`disconnected`);return}let disposed=!1,currentListener,reconnectTimer,isConnecting=!1,releaseLock,lockPath=join(options$1.directory,`.blink`,`devhook`);return(async()=>{try{releaseLock=await lock(lockPath,{stale:!0,retries:0})}catch(err){if(err&&typeof err==`object`&&`code`in err&&err.code===`ELOCKED`){let pidMessage=``;try{let lockInfo=getLockInfo(lockPath);lockInfo.locked&&lockInfo.pid&&(pidMessage=` (PID: ${lockInfo.pid})`)}catch{}console.error(source_default.red(`\nError: Another ${source_default.bold(`blink dev`)} process is already running in this directory${pidMessage}.`)),console.error(source_default.red(`Please stop the other process and try again.
|
|
251
|
+
`)),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$3){streamResolved&&!streamResolved.closed&&!streamResolved.destroyed?streamResolved.destroy(error$3):(error$3.message===`Operation was aborted by an application callback`&&(error$3.message=`The operation was aborted.`),deferredPromise.reject(error$3));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}),headersInit=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).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$1=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_buffer_1$2=(init_tslib_es6(),__toCommonJS$4(tslib_es6_exports)).__importDefault(__require$1(`node:buffer`)),node_crypto_1=__require$1(`node:crypto`),NativeURL=globalThis.URL;exports.PonyfillURL=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$3){this.blobRegistry.has(url$3)?this.blobRegistry.delete(url$3):NativeURL.revokeObjectURL(url$3)}static getBlobFromURL(url$3){return this.blobRegistry.get(url$3)||node_buffer_1$2.default?.resolveObjectURL?.(url$3)}}})),require_Request=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_http_1$9=__require$1(`node:http`),node_https_1$1=__require$1(`node:https`),Body_js_1$1=require_Body(),Headers_js_1$1=require_Headers(),URL_js_1$3=require_URL$1();function isRequest$4(input){return input[Symbol.toStringTag]===`Request`}function isURL$1(obj){return obj?.href!=null}exports.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$9.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`}})),require_fetchNodeHttp=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0}),exports.fetchNodeHttp=fetchNodeHttp;let node_http_1$8=__require$1(`node:http`),node_https_1=__require$1(`node:https`),node_stream_1$2=__require$1(`node:stream`),node_zlib_1$2=__require$1(`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$1(),utils_js_1$4=require_utils$58();function getRequestFnForProtocol(url$3){if(url$3.startsWith(`http:`))return node_http_1$8.request;if(url$3.startsWith(`https:`))return node_https_1.request;throw Error(`Unsupported protocol: ${url$3.split(`:`)[0]||url$3}`)}function fetchNodeHttp(fetchRequest){return new Promise((resolve$11,reject)=>{try{let requestFn=getRequestFnForProtocol(fetchRequest.parsedUrl?.protocol||fetchRequest.url),nodeHeaders=(fetchRequest.headersSerializer||utils_js_1$4.getHeadersObj)(fetchRequest.headers);nodeHeaders[`accept-encoding`]||=`gzip, deflate, br`,nodeHeaders[`user-agent`]||=`node`;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;switch(nodeResponse.headers[`content-encoding`]){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`){reject(Error(`Redirects are not allowed`)),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$11(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$8.STATUS_CODES[statusCode];statusText??=``;let ponyfillResponse=new Response_js_1$2.PonyfillResponse(outputStream||nodeResponse,{status:statusCode,statusText,headers:nodeResponse.headers,url:fetchRequest.url,signal});resolve$11(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$1(`node:buffer`),node_fs_1=__require$1(`node:fs`),node_url_1=__require$1(`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$1(),utils_js_1$3=require_utils$58(),BASE64_SUFFIX=`;base64`;async function getResponseForFile(url$3){let path$38=(0,node_url_1.fileURLToPath)(url$3);try{await node_fs_1.promises.access(path$38,node_fs_1.promises.constants.R_OK);let stats=await node_fs_1.promises.stat(path$38,{bigint:!0}),readable$1=(0,node_fs_1.createReadStream)(path$38);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$3){let[mimeType=`text/plain`,...datas]=url$3.substring(5).split(`,`),data$2=decodeURIComponent(datas.join(`,`));if(mimeType.endsWith(`;base64`)){let buffer$2=node_buffer_1$1.Buffer.from(data$2,`base64url`),realMimeType=mimeType.slice(0,-7);return new Response_js_1$1.PonyfillResponse(buffer$2,{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$3){let blob=URL_js_1$1.PonyfillURL.getBlobFromURL(url$3);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$3){if(typeof info$1==`string`||isURL(info$1)){let ponyfillRequest=new Request_js_1$1.PonyfillRequest(info$1,init$3);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:`))return getResponseForFile(fetchRequest.url);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.PonyfillBtoa=PonyfillBtoa;let node_buffer_1=__require$1(`node:buffer`),utils_js_1$2=require_utils$58();exports.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 copied=this.encode(source$39).copy(destination);return{read:copied,written:copied}}},exports.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)}};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=globalThis.URLSearchParams})),require_WritableStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_events_1$1=__require$1(`node:events`),node_stream_1$1=__require$1(`node:stream`),promise_helpers_1=require_cjs$4(),utils_js_1$1=require_utils$58();exports.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$1.once)(writable$1,`close`)},get desiredSize(){return writable$1.writableLength},get ready(){return(0,node_events_1$1.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$1.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$1.once)(this.writable,`close`)}locked=!1}})),require_TransformStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_stream_1=__require$1(`node:stream`),ReadableStream_js_1$1=require_ReadableStream(),utils_js_1=require_utils$58(),WritableStream_js_1$1=require_WritableStream();exports.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)}}})),require_CompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_zlib_1$1=__require$1(`node:zlib`),TransformStream_js_1$3=require_TransformStream();exports.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}`)}}}})),require_DecompressionStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let node_zlib_1=__require$1(`node:zlib`),TransformStream_js_1$2=require_TransformStream();exports.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}'`)}}}})),require_TextEncoderDecoderStream=__commonJSMin((exports=>{Object.defineProperty(exports,`__esModule`,{value:!0});let TextEncoderDecoder_js_1$1=require_TextEncoderDecoder(),TransformStream_js_1$1=require_TransformStream();exports.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.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)}}})),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$1();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={};return ponyfills$1.URLPattern=globalThis.URLPattern,ponyfills$1.URLPattern||=require_urlpattern_polyfill().URLPattern,opts.skipPonyfill||shouldSkipPonyfill$1()?{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}:(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||=__require$1(`crypto`).webcrypto,ponyfills$1)}})),require_node_ponyfill=__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$1(`node-libcurl`)}catch{}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 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||=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$1,value)=>{headers.append(key$1,value)});let url$3=`http://localhost${req$1.getUrl()}`,query=req$1.getQuery();query&&(url$3+=`?${query}`);let buffer$2;function getBody(){return getReadableStream?stopped?getBufferFromChunks():getReadableStream():null}let request$2=new fetchAPI.Request(url$3,{method,headers,get body(){return getBody()},signal:controller.signal,duplex:duplex$1});function getBufferFromChunks(){return buffer$2||=chunks.length===1?chunks[0]:Buffer.concat(chunks),buffer$2}function collectBuffer(){return stopped?fakePromise(getBufferFromChunks()):new Promise((resolve$11,reject)=>{try{stopFns.push(()=>{resolve$11(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$1,value]of fetchResponse.headers)if(key$1!==`content-length`){if(key$1===`set-cookie`){let setCookies=fetchResponse.headers.getSetCookie?.();if(setCookies){for(let setCookie of setCookies)uwsResponse.writeHeader(key$1,setCookie);continue}}uwsResponse.writeHeader(key$1,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=__toESM(require_node_ponyfill(),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,...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$1(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$3=request$2.parsedUrl||new Proxy(EMPTY_OBJECT,{get(_target,prop,_receiver){return url$3=new fetchAPI.URL(request$2.url,`http://localhost`),Reflect.get(url$3,prop,url$3)}});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$3,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||=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||=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},serverContext=ctx.filter(partCtx=>partCtx!=null).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)},res.onAborted.bind(res)(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 compose$1=(middleware,onError$1,onNotFound)=>(context,next)=>{let index=-1;return dispatch(0);async function dispatch(i$7){if(i$7<=index)throw Error(`next() called multiple times`);index=i$7;let res,isError$1=!1,handler;if(middleware[i$7]?(handler=middleware[i$7][0][0],context.req.routeIndex=i$7):handler=i$7===middleware.length&&next||void 0,handler)try{res=await handler(context,()=>dispatch(i$7+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,contentType=(request$2 instanceof HonoRequest?request$2.raw.headers:request$2.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$1)=>{options$1.all||key$1.endsWith(`[]`)?handleParsingAllValues(form,key$1,value):form[key$1]=value}),options$1.dot&&Object.entries(form).forEach(([key$1,value])=>{key$1.includes(`.`)&&(handleParsingNestedValues(form,key$1,value),delete form[key$1])}),form}var handleParsingAllValues=(form,key$1,value)=>{form[key$1]===void 0?key$1.endsWith(`[]`)?form[key$1]=[value]:form[key$1]=value:Array.isArray(form[key$1])?form[key$1].push(value):form[key$1]=[form[key$1],value]},handleParsingNestedValues=(form,key$1,value)=>{let nestedForm=form,keys=key$1.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])})},tryDecodeURIComponent=str$1=>tryDecode(str$1,decodeURIComponent_),HonoRequest=class{raw;#validatedData;#matchResult;routeIndex=0;path;bodyCache={};constructor(request$2,path$38=`/`,matchResult=[[]]){this.raw=request$2,this.path=path$38,this.#matchResult=matchResult,this.#validatedData={}}param(key$1){return key$1?this.#getDecodedParam(key$1):this.#getAllDecodedParams()}#getDecodedParam(key$1){let paramKey=this.#matchResult[0][this.routeIndex][1][key$1],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$1 of keys){let value=this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key$1]);value!==void 0&&(decoded[key$1]=/\%/.test(value)?tryDecodeURIComponent(value):value)}return decoded}#getParamValue(paramKey){return this.#matchResult[1]?this.#matchResult[1][paramKey]:paramKey}query(key$1){return getQueryParam(this.url,key$1)}queries(key$1){return getQueryParams(this.url,key$1)}header(name$2){if(name$2)return this.raw.headers.get(name$2)??void 0;let headerData={};return this.raw.headers.forEach((value,key$1)=>{headerData[key$1]=value}),headerData}async parseBody(options$1){return this.bodyCache.parsedBody??=await parseBody$1(this,options$1)}#cachedBody=key$1=>{let{bodyCache,raw:raw$1}=this,cachedBody=bodyCache[key$1];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$1]())):bodyCache[key$1]=raw$1[key$1]()};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$2)=>{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$2?buffer$2[0]+=str$1:buffer$2=[str$1];let resStr=Promise.all(callbacks.map(c$3=>c$3({phase,buffer:buffer$2,context}))).then(res=>Promise.all(res.filter(Boolean).map(str2=>resolveCallback(str2,phase,!1,context,buffer$2))).then(()=>buffer$2[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`)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$2,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$2):options$1?.append?headers.append(name$2,value):headers.set(name$2,value)};status=status=>{this.#status=status};set=(key$1,value)=>{this.#var??=new Map,this.#var.set(key$1,value)};get=key$1=>this.#var?this.#var.get(key$1):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$1,value]of argHeaders)key$1.toLowerCase()===`set-cookie`?responseHeaders.append(key$1,value):responseHeaders.set(key$1,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={}){[...METHODS,METHOD_NAME_ALL_LOWERCASE].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$38,...handlers)=>{for(let p of[path$38].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$38,app){let subApp=this.basePath(path$38);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$38){let subApp=this.#clone();return subApp._basePath=mergePath(this._basePath,path$38),subApp}onError=handler=>(this.errorHandler=handler,this);notFound=handler=>(this.#notFoundHandler=handler,this);mount(path$38,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]};return replaceRequest||=(()=>{let mergedPath=mergePath(this._basePath,path$38),pathPrefixLength=mergedPath===`/`?0:mergedPath.length;return request$2=>{let url$3=new URL(request$2.url);return url$3.pathname=url$3.pathname.slice(pathPrefixLength)||`/`,new Request(url$3,request$2)}})(),this.#addRoute(METHOD_NAME_ALL,mergePath(path$38,`*`),async(c$3,next)=>{let res=await applicationHandler(replaceRequest(c$3.req.raw),...getOptions$1(c$3));if(res)return res;await next()}),this}#addRoute(method,path$38,handler){method=method.toUpperCase(),path$38=mergePath(this._basePath,path$38);let r$2={basePath:this._basePath,path:path$38,method,handler};this.router.add(method,path$38,[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$8,method){if(method===`HEAD`)return(async()=>new Response(null,await this.#dispatch(request$2,executionCtx,env$8,`GET`)))();let path$38=this.getPath(request$2,{env:env$8}),matchResult=this.router.match(method,path$38),c$3=new Context(request$2,{path:path$38,matchResult,env:env$8,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(`/`,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$2,b$2){return a$2.length===1?b$2.length===1?a$2<b$2?-1:1:-1:b$2.length===1||a$2===ONLY_WILDCARD_REG_EXP_STR||a$2===TAIL_WILDCARD_REG_EXP_STR?1:b$2===ONLY_WILDCARD_REG_EXP_STR||b$2===TAIL_WILDCARD_REG_EXP_STR?-1:a$2===LABEL_REG_EXP_STR?1:b$2===LABEL_REG_EXP_STR?-1:a$2.length===b$2.length?a$2<b$2?-1:1:b$2.length-a$2.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$2=pattern[1],regexpStr=pattern[2]||LABEL_REG_EXP_STR;if(name$2&&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$2!==``&&(node.#varIndex=context.varIndex++)}!pathErrorCheckOnly&&name$2!==``&¶mMap.push([name$2,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 strList=Object.keys(this.#children).sort(compareKey).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$38,index,pathErrorCheckOnly){let paramAssoc=[],groups=[];for(let i$7=0;;){let replaced=!1;if(path$38=path$38.replace(/\{[^}]+\}/g,m$2=>{let mark=`@\\${i$7}`;return groups[i$7]=[mark,m$2],i$7++,replaced=!0,mark}),!replaced)break}let tokens=path$38.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let i$7=groups.length-1;i$7>=0;i$7--){let[mark]=groups[i$7];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$7][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$38){return wildcardRegExpCache[path$38]??=RegExp(path$38===`*`?``:`^${path$38.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$7=0,j$2=-1,len$1=routesWithStaticPathFlag.length;i$7<len$1;i$7++){let[pathErrorCheckOnly,path$38,handlers]=routesWithStaticPathFlag[i$7];pathErrorCheckOnly?staticMap[path$38]=[handlers.map(([h$3])=>[h$3,Object.create(null)]),emptyParam]:j$2++;let paramAssoc;try{paramAssoc=trie.insert(path$38,j$2,pathErrorCheckOnly)}catch(e$1){throw e$1===PATH_ERROR?new UnsupportedPathError(path$38):e$1}pathErrorCheckOnly||(handlerData[j$2]=handlers.map(([h$3,paramCount])=>{let paramIndexMap=Object.create(null);for(--paramCount;paramCount>=0;paramCount--){let[key$1,value]=paramAssoc[paramCount];paramIndexMap[key$1]=value}return[h$3,paramIndexMap]}))}let[regexp,indexReplacementMap,paramReplacementMap]=trie.buildRegExp();for(let i$7=0,len$1=handlerData.length;i$7<len$1;i$7++)for(let j$2=0,len2=handlerData[i$7].length;j$2<len2;j$2++){let map$2=handlerData[i$7][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$7 in indexReplacementMap)handlerMap[i$7]=handlerData[indexReplacementMap[i$7]];return[regexp,handlerMap,staticMap]}function findMiddleware(middleware,path$38){if(middleware){for(let k of Object.keys(middleware).sort((a$2,b$2)=>b$2.length-a$2.length))if(buildWildcardRegExp(k).test(path$38))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$38,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$38===`/*`&&(path$38=`*`);let paramCount=(path$38.match(/\/:/g)||[]).length;if(/\*$/.test(path$38)){let re$3=buildWildcardRegExp(path$38);method===METHOD_NAME_ALL?Object.keys(middleware).forEach(m$2=>{middleware[m$2][path$38]||=findMiddleware(middleware[m$2],path$38)||findMiddleware(middleware[METHOD_NAME_ALL],path$38)||[]}):middleware[method][path$38]||=findMiddleware(middleware[method],path$38)||findMiddleware(middleware[METHOD_NAME_ALL],path$38)||[],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$38)||[path$38];for(let i$7=0,len$1=paths.length;i$7<len$1;i$7++){let path2=paths[i$7];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$7+1]))})}}match(method,path$38){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$38)}#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$38=>[path$38,r$2[method][path$38]]):[];ownRoute.length===0?method!==METHOD_NAME_ALL&&routes.push(...Object.keys(r$2[METHOD_NAME_ALL]).map(path$38=>[path$38,r$2[METHOD_NAME_ALL][path$38]])):(hasOwnRoute||=!0,routes.push(...ownRoute))}),hasOwnRoute?buildMatcherFromPreprocessedRoutes(routes):null}},SmartRouter=class{name=`SmartRouter`;#routers=[];#routes=[];constructor(init$3){this.#routers=init$3.routers}add(method,path$38,handler){if(!this.#routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);this.#routes.push([method,path$38,handler])}match(method,path$38){if(!this.#routes)throw Error(`Fatal error`);let routers=this.#routers,routes=this.#routes,len$1=routers.length,i$7=0,res;for(;i$7<len$1;i$7++){let router=routers[i$7];try{for(let i2=0,len2=routes.length;i2<len2;i2++)router.add(...routes[i2]);res=router.match(method,path$38)}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$7===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$38,handler){this.#order=++this.#order;let curNode=this,parts=splitRoutingPath(path$38),possibleKeys=[];for(let i$7=0,len$1=parts.length;i$7<len$1;i$7++){let p=parts[i$7],nextP=parts[i$7+1],pattern=getPattern(p,nextP),key$1=Array.isArray(pattern)?pattern[0]:p;if(key$1 in curNode.#children){curNode=curNode.#children[key$1],pattern&&possibleKeys.push(pattern[1]);continue}curNode.#children[key$1]=new Node$3,pattern&&(curNode.#patterns.push(pattern),possibleKeys.push(pattern[1])),curNode=curNode.#children[key$1]}return curNode.#methods.push({[method]:{handler,possibleKeys:possibleKeys.filter((v$1,i$7,a$2)=>a$2.indexOf(v$1)===i$7),score:this.#order}}),curNode}#getHandlerSets(node,method,nodeParams,params){let handlerSets=[];for(let i$7=0,len$1=node.#methods.length;i$7<len$1;i$7++){let m$2=node.#methods[i$7],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$1=handlerSet.possibleKeys[i2],processed=processedSet[handlerSet.score];handlerSet.params[key$1]=params?.[key$1]&&!processed?params[key$1]:nodeParams[key$1]??params?.[key$1],processedSet[handlerSet.score]=!0}}return handlerSets}search(method,path$38){let handlerSets=[];this.#params=emptyParams;let curNodes=[this],parts=splitPath(path$38),curNodesQueue=[];for(let i$7=0,len$1=parts.length;i$7<len$1;i$7++){let part=parts[i$7],isLast=i$7===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$1,name$2,matcher]=pattern;if(!part&&!(matcher instanceof RegExp))continue;let child=node.#children[key$1],restPathString=parts.slice(i$7).join(`/`);if(matcher instanceof RegExp){let m$2=matcher.exec(restPathString);if(m$2){if(params[name$2]=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;(curNodesQueue[componentCount]||=[]).push(child)}continue}}(matcher===!0||matcher.test(part))&&(params[name$2]=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$2,b$2)=>a$2.score-b$2.score),[handlerSets.map(({handler,params})=>[handler,params])]}},TrieRouter=class{name=`TrieRouter`;#node;constructor(){this.#node=new Node$3}add(method,path$38,handler){let results=checkOptionalParameter(path$38);if(results){for(let i$7=0,len$1=results.length;i$7<len$1;i$7++)this.#node.insert(method,results[i$7],handler);return}this.#node.insert(method,path$38,handler)}match(method,path$38){return this.#node.search(method,path$38)}},Hono=class extends Hono$1{constructor(options$1={}){super(options$1),this.router=options$1.router??new SmartRouter({routers:[new RegExpRouter,new TrieRouter]})}},getCookie=(c$3,key$1,prefix)=>{let cookie=c$3.req.raw.headers.get(`Cookie`);if(typeof key$1==`string`){if(!cookie)return;let finalKey=key$1;return prefix===`secure`?finalKey=`__Secure-`+key$1:prefix===`host`&&(finalKey=`__Host-`+key$1),parse$17(cookie,finalKey)[finalKey]}return cookie?parse$17(cookie):{}},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(){return this.res?new Response(this.res.body,{status:this.status,headers:this.res.headers}):new Response(this.message,{status:this.status})}},bufferToFormData=(arrayBuffer,contentType)=>new Response(arrayBuffer,{headers:{"Content-Type":contentType}}).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{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$1)=>{key$1.endsWith(`[]`)?(form[key$1]??=[]).push(value2):Array.isArray(form[key$1])?form[key$1].push(value2):key$1 in form?form[key$1]=[form[key$1],value2]:form[key$1]=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$2=(c$3,msg)=>c$3.json({error:msg},400),validateStorageKey=c$3=>{let key$1=c$3.req.param(`key`);return!key$1||key$1===``?{key:key$1,err:`Key is required`}:key$1.length>475?{key:key$1,err:`Key is too long. Max length is 475 characters.`}:{key:key$1}},createRouter=()=>new Hono,kv=createRouter().get(`/:key`,async c$3=>{let{key:key$1,err}=validateStorageKey(c$3);if(err)return error$2(c$3,err);let value=await c$3.env.store.get(key$1);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$2(c$3,`Value is too long. Max length is 20,000 characters.`):{value}:error$2(c$3,`Value must be a string`):error$2(c$3,`Value is required`)}),async c$3=>{let{key:key$1,err}=validateStorageKey(c$3);if(err)return error$2(c$3,err);let{value}=c$3.req.valid(`json`);return await c$3.env.store.set(key$1,value),c$3.body(null,204)}).delete(`/:key`,async c$3=>{let{key:key$1,err}=validateStorageKey(c$3);return err?error$2(c$3,err):(await c$3.env.store.delete(key$1),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.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$1=c$3.req.param(`key`);return key$1?key$1.length>475?{key:key$1,err:`Key is too long. Max length is 475 characters.`}:{key:key$1}:{key:key$1,err:`Key is required`}},withChatID=validator(`param`,param=>({id:param.id})),chat=createRouter().post(`/:key`,async c$3=>{let{key:key$1,err}=validateChatKey(c$3);return err?error$2(c$3,err):c$3.json(await c$3.env.chat.upsert(key$1),200)}).get(`/:id`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return c$3.json(await c$3.env.chat.get(id),200)}).get(`/:id/messages`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return c$3.json(await c$3.env.chat.getMessages(id),200)}).post(`/:id/sendMessages`,validator(`json`,body=>({id:body.id,messages:body.messages,options:body.options})),async c$3=>{let{id,messages:messages$1,options:options$1}=c$3.req.valid(`json`);return id?(await c$3.env.chat.sendMessages(id,messages$1,options$1),c$3.body(null,204)):error$2(c$3,`ID is required`)}).delete(`/:id/messages`,withChatID,validator(`query`,query=>(typeof query.message==`string`&&(query.message=[query.message]),{messages:query.message})),async c$3=>{let{id}=c$3.req.valid(`param`),{messages:messages$1}=c$3.req.valid(`query`);return await c$3.env.chat.deleteMessages(id,messages$1),c$3.body(null,204)}).post(`/:id/start`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return await c$3.env.chat.start(id),c$3.body(null,204)}).post(`/:id/stop`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return await c$3.env.chat.stop(id),c$3.body(null,204)}).delete(`/:id`,withChatID,async c$3=>{let{id}=c$3.req.valid(`param`);return await c$3.env.chat.delete(id),c$3.body(null,204)}),otlp=createRouter().post(`/v1/traces`,async c$3=>c$3.env.otlp?c$3.env.otlp.traces(c$3.req.raw):c$3.body(null,204)),api$39=new Hono().onError((err,c$3)=>c$3.json({error:err instanceof Error?err.message:`Unknown error`},500)).route(`/kv`,kv).route(`/chat`,chat).route(`/otlp`,otlp);var regex_default$1=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function validate$5(uuid){return typeof uuid==`string`&®ex_default$1.test(uuid)}var validate_default$1=validate$5;function parse$16(uuid){if(!validate_default$1(uuid))throw TypeError(`Invalid UUID`);let v$1;return Uint8Array.of((v$1=parseInt(uuid.slice(0,8),16))>>>24,v$1>>>16&255,v$1>>>8&255,v$1&255,(v$1=parseInt(uuid.slice(9,13),16))>>>8,v$1&255,(v$1=parseInt(uuid.slice(14,18),16))>>>8,v$1&255,(v$1=parseInt(uuid.slice(19,23),16))>>>8,v$1&255,(v$1=parseInt(uuid.slice(24,36),16))/1099511627776&255,v$1/4294967296&255,v$1>>>24&255,v$1>>>16&255,v$1>>>8&255,v$1&255)}var parse_default$1=parse$16;const byteToHex$1=[];for(let i$7=0;i$7<256;++i$7)byteToHex$1.push((i$7+256).toString(16).slice(1));function unsafeStringify$1(arr,offset=0){return(byteToHex$1[arr[offset+0]]+byteToHex$1[arr[offset+1]]+byteToHex$1[arr[offset+2]]+byteToHex$1[arr[offset+3]]+`-`+byteToHex$1[arr[offset+4]]+byteToHex$1[arr[offset+5]]+`-`+byteToHex$1[arr[offset+6]]+byteToHex$1[arr[offset+7]]+`-`+byteToHex$1[arr[offset+8]]+byteToHex$1[arr[offset+9]]+`-`+byteToHex$1[arr[offset+10]]+byteToHex$1[arr[offset+11]]+byteToHex$1[arr[offset+12]]+byteToHex$1[arr[offset+13]]+byteToHex$1[arr[offset+14]]+byteToHex$1[arr[offset+15]]).toLowerCase()}function stringToBytes$1(str$1){str$1=unescape(encodeURIComponent(str$1));let bytes=new Uint8Array(str$1.length);for(let i$7=0;i$7<str$1.length;++i$7)bytes[i$7]=str$1.charCodeAt(i$7);return bytes}const DNS$1=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,URL$10=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function v35$1(version$2,hash$1,value,namespace,buf,offset){let valueBytes=typeof value==`string`?stringToBytes$1(value):value,namespaceBytes=typeof namespace==`string`?parse_default$1(namespace):namespace;if(typeof namespace==`string`&&(namespace=parse_default$1(namespace)),namespace?.length!==16)throw TypeError(`Namespace must be array-like (16 iterable integer values, 0-255)`);let bytes=new Uint8Array(16+valueBytes.length);if(bytes.set(namespaceBytes),bytes.set(valueBytes,namespaceBytes.length),bytes=hash$1(bytes),bytes[6]=bytes[6]&15|version$2,bytes[8]=bytes[8]&63|128,buf){offset||=0;for(let i$7=0;i$7<16;++i$7)buf[offset+i$7]=bytes[i$7];return buf}return unsafeStringify$1(bytes)}function sha1$1(bytes){return Array.isArray(bytes)?bytes=Buffer.from(bytes):typeof bytes==`string`&&(bytes=Buffer.from(bytes,`utf8`)),createHash(`sha1`).update(bytes).digest()}var sha1_default$1=sha1$1;function v5$1(value,namespace,buf,offset){return v35$1(80,sha1_default$1,value,namespace,buf,offset)}v5$1.DNS=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,v5$1.URL=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;var v5_default$1=v5$1;function createLocalServer(options$1){let chatsDirectory=join(options$1.dataDirectory,`chats`),storage={},storagePath=join(options$1.dataDirectory,`storage.json`);fs$4.existsSync(storagePath)&&(storage=JSON.parse(fs$4.readFileSync(storagePath,`utf-8`)));let chatManagers=new Map,getChatManager=chatId=>{let manager=chatManagers.get(chatId);return manager||(manager=new ChatManager({chatId,chatsDirectory}),chatManagers.set(chatId,manager)),manager.setAgent(options$1.getAgent()),manager},chat$1={async upsert(key$1){let id=v5_default$1(JSON.stringify(key$1),v5_default$1.URL),state=getChatManager(id).getState(),created=state.messages.length===0&&!state.created_at;return{id:state.id,created,createdAt:state.created_at??new Date().toISOString(),key:key$1}},async get(id){let state=getChatManager(id).getState();return{id:state.id,createdAt:state.created_at??new Date().toISOString()}},async getMessages(id){return getChatManager(id).getState().messages},async sendMessages(id,messages$1,opts){let manager=getChatManager(id),converted=messages$1.map(message=>convertMessage(message,`run`));if(opts?.behavior===`append`){await manager.upsertMessages(converted);return}if(opts?.behavior===`interrupt`){await manager.sendMessages(converted);return}await manager.sendMessages(converted)},async deleteMessages(id,messages$1){await getChatManager(id).deleteMessages(messages$1)},async start(id){await getChatManager(id).start()},async stop(id){await getChatManager(id).stop()},async delete(id){await getChatManager(id).resetChat()}},store={get(key$1){return Promise.resolve(storage[key$1])},set(key$1,value){return storage[key$1]=value,fs$4.writeFileSync(storagePath,JSON.stringify(storage),`utf-8`),Promise.resolve()},delete(key$1){return delete storage[key$1],fs$4.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$1=>key$1.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$1=>({key:key$1})),cursor:nextCursor})}},server=createServer(createServerAdapter(req$1=>api$39.fetch(req$1,{chat:chat$1,store})));server.listen(options$1.port??0);let listStore=createDiskStore(chatsDirectory,`id`);return{url:`http://127.0.0.1:${server.address().port}`,chatsDirectory,getChatManager,listChats:()=>listStore.list(),dispose:()=>{for(let manager of chatManagers.values())manager.dispose();chatManagers.clear(),listStore.dispose(),server.close()}}}function useOptions({agent,capabilities,messages:messages$1}){let[error$3,setError]=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$1,value]of Object.entries(newOptions))isValidOption(key$1,value)||delete newOptions[key$1];for(let[key$1,value]of Object.entries(currentSchema.current??{}))!newOptions[key$1]&&value.defaultValue!==void 0&&(newOptions[key$1]=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!==lastAgentRef.current&&(lastAgentRef.current=agent,setSchema(void 0),setOptions$1(void 0),setError(void 0),setLoading(!0),lastRequestedOptionsJson.current=void 0)},[agent]),useEffect(()=>{if(capabilities&&!capabilities.ui||!agent){setSchema(void 0),setOptions$1(void 0),setError(void 0),lastRequestedOptionsJson.current=void 0;return}let currentOptionsJson=options$1?JSON.stringify(options$1):``;if(lastRequestedOptionsJson.current===currentOptionsJson){setLoading(!1),setError(void 0);return}let controller=new AbortController;return setLoading(!0),setError(void 0),agent.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(err instanceof Error?err:Error(String(err)))}).finally(()=>{setLoading(!1)}),()=>{controller.abort()}},[agent,capabilities,options$1]);let setOption$1=useCallback((id,value)=>{updateOptions({[id]:value})},[updateOptions]);return{schema,options:options$1,setOption:setOption$1,loading,error:error$3}}function useAgent(options$1){let[agent,setAgent]=useState(void 0),[logs$1,setLogs]=useState([]),[error$3,setError]=useState(void 0),[buildResult,setBuildResult]=useState(options$1.buildResult),[env$8,setEnv]=useState(options$1.env),[apiServerUrl,setApiServerUrl]=useState(options$1.apiServerUrl),[capabilities,setCapabilities]=useState(void 0);return useEffect(()=>{setEnv(options$1.env),setBuildResult(options$1.buildResult),setApiServerUrl(options$1.apiServerUrl)},[options$1.env,options$1.buildResult,options$1.apiServerUrl]),useEffect(()=>{if(!buildResult||`error`in buildResult){setAgent(void 0),setLogs([]),setError(void 0),setCapabilities(void 0);return}let controller=new AbortController,isCleanup=!1;return setError(void 0),setAgent(void 0),setCapabilities(void 0),(async()=>{let port$1=await getRandomPort$1(),proc$1=spawn$1(`node`,[`--no-deprecation`,buildResult.entry],{stdio:`pipe`,env:{...process.env,...env$8,[APIServerURLEnvironmentVariable]:apiServerUrl,PORT:port$1.toString(),HOST:`127.0.0.1`}});controller.signal.addEventListener(`abort`,()=>{try{proc$1.kill()}catch{}});let ready=!1;proc$1.stdout.on(`data`,data$2=>{let msg=Buffer.from(data$2).toString(`utf-8`).trim();!ready&&msg.startsWith(`Agent server listening on`)||(ready||console.log(`stdout: ${msg}`),msg.length&&setLogs(prev=>[...prev,{level:`log`,message:msg}]))}),proc$1.stderr.on(`data`,data$2=>{ready||console.error(`stderr: ${Buffer.from(data$2).toString(`utf-8`).trim()}`);let msg=Buffer.from(data$2).toString(`utf-8`).trim();msg.length&&setLogs(prev=>[...prev,{level:`error`,message:msg}])}),proc$1.on(`error`,err=>{controller.abort(err)}),proc$1.on(`exit`,(code$1,signal)=>{controller.abort(`Agent exited with code ${code$1??`unknown`} and signal ${signal??`unknown`}. Be sure to call "blink.agent(...).serve()".`)});let client=new Client$3({baseUrl:`http://127.0.0.1:${port$1}`});for(;!controller.signal.aborted;){try{await client.health();break}catch{}await new Promise(resolve$11=>setTimeout(resolve$11,100))}if(controller.signal.aborted)throw controller.signal.reason;ready=!0;let capabilities$1=await client.capabilities();setCapabilities(capabilities$1),setAgent(client)})().catch(err=>{isCleanup||setError(err instanceof Error?err:Error(String(err)))}),()=>{isCleanup=!0,controller.abort()}},[buildResult,env$8,apiServerUrl]),useMemo(()=>({agent,logs:logs$1,error:error$3,capabilities}),[agent,logs$1,error$3,capabilities])}async function getRandomPort$1(){let server=createServer();return new Promise((resolve$11,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$11(port$1)}).on(`error`,err=>{reject(err)})}).finally(()=>{server.close()})}function useBundler(options$1){let{directory,onBuildStart,onBuildSuccess,onBuildError}=typeof options$1==`string`?{directory:options$1}:options$1,config=useMemo(()=>resolveConfig(directory),[directory]),[error$3,setError]=useState(void 0),[result,setResult]=useState(void 0),[status,setStatus]=useState(`building`),onBuildStartRef=useRef(onBuildStart),onBuildSuccessRef=useRef(onBuildSuccess),onBuildErrorRef=useRef(onBuildError);return useEffect(()=>{onBuildStartRef.current=onBuildStart,onBuildSuccessRef.current=onBuildSuccess,onBuildErrorRef.current=onBuildError},[onBuildStart,onBuildSuccess,onBuildError]),useEffect(()=>{let controller=new AbortController;return config.build({cwd:directory,entry:config.entry,outdir:config.outdir,watch:!0,dev:!0,signal:controller.signal,onStart:()=>{setStatus(`building`),setError(void 0),setResult(void 0),onBuildStartRef.current?.()},onResult:result$1=>{`error`in result$1?(setError(result$1.error),setStatus(`error`),onBuildErrorRef.current?.(result$1.error)):(setResult(result$1),setStatus(`success`),onBuildSuccessRef.current?.(result$1))}}).catch(err=>{console.log(`error`,err),setStatus(`error`),setError(err),onBuildErrorRef.current?.(err)}),()=>{controller.abort()}},[directory]),useMemo(()=>({error:error$3,status,result,entry:config.entry,outdir:config.outdir}),[error$3,status,result,config.entry,config.outdir])}function useChat(options$1){let{chatId,agent,chatsDirectory,serializeMessage:serializeMessage$1,filterMessages,onError:onError$1}=options$1,managerRef=useRef(null),[state,setState]=useState({id:chatId,messages:[],status:`idle`,loading:!0,queuedMessages:[]});useEffect(()=>{managerRef.current&&managerRef.current.dispose();let manager=new ChatManager({chatId,chatsDirectory,serializeMessage:serializeMessage$1,filterMessages,onError:onError$1}),unsubscribe=manager.subscribe(newState=>{setState(newState)});return setState(manager.getState()),managerRef.current=manager,()=>{unsubscribe(),manager.dispose(),managerRef.current=null}},[chatId,chatsDirectory]),useEffect(()=>{managerRef.current&&managerRef.current.setAgent(agent)},[agent]);let sendMessage$2=useCallback(async message=>{managerRef.current&&await managerRef.current.sendMessages([message])},[]),upsertMessage=useCallback(async message=>{managerRef.current&&await managerRef.current.upsertMessages([message])},[]),stopStreaming=useCallback(()=>{managerRef.current&&managerRef.current.stopStreaming()},[]),resetChat=useCallback(async()=>{managerRef.current&&await managerRef.current.resetChat()},[]),clearQueue=useCallback(()=>{managerRef.current&&managerRef.current.clearQueue()},[]),deleteMessage=useCallback(async id=>{managerRef.current&&await managerRef.current.deleteMessages([id])},[]),start=useCallback(async()=>{managerRef.current&&await managerRef.current.start()},[]);return{...state,sendMessage:sendMessage$2,upsertMessage,stopStreaming,resetChat,clearQueue,deleteMessage,start}}function useDevhook(options$1){let onRequestRef=useRef(options$1.onRequest);useEffect(()=>{onRequestRef.current=options$1.onRequest},[options$1.onRequest]);let[status,setStatus]=useState(`disconnected`);return useEffect(()=>{if(options$1.disabled||!options$1.id){setStatus(`disconnected`);return}let disposed=!1,currentListener,reconnectTimer,isConnecting=!1,releaseLock,lockPath=join(options$1.directory,`.blink`,`devhook`);return(async()=>{try{releaseLock=await lock(lockPath,{stale:!0,retries:0})}catch(err){if(err&&typeof err==`object`&&`code`in err&&err.code===`ELOCKED`){let pidMessage=``;try{let lockInfo=getLockInfo(lockPath);lockInfo.locked&&lockInfo.pid&&(pidMessage=` (PID: ${lockInfo.pid})`)}catch{}console.error(source_default.red(`\nError: Another ${source_default.bold(`blink dev`)} process is already running in this directory${pidMessage}.`)),console.error(source_default.red(`Please stop the other process and try again.
|
|
252
252
|
`)),process.exit(1)}let message=err&&typeof err==`object`&&`message`in err?String(err.message):String(err);console.warn(source_default.yellow(`\nWarning: Failed to acquire devhook lock: ${message}`)),console.warn(source_default.yellow(`Continuing without lock. Multiple ${source_default.bold(`blink dev`)} processes may conflict with each other.\n`))}let connect=()=>{if(!(disposed||isConnecting)){if(isConnecting=!0,currentListener){try{currentListener.dispose()}catch{}currentListener=void 0}currentListener=new Client$2({baseURL:`https://blink.so`}).devhook.listen({id:options$1.id,onRequest:async request$2=>onRequestRef.current(request$2),onConnect:()=>{isConnecting=!1,setStatus(`connected`)},onDisconnect:()=>{isConnecting=!1,setStatus(`disconnected`),!disposed&&!reconnectTimer&&(reconnectTimer=setTimeout(()=>{reconnectTimer=void 0,connect()},2e3))},onError:_error=>{isConnecting=!1,setStatus(`error`),!disposed&&!reconnectTimer&&(reconnectTimer=setTimeout(()=>{reconnectTimer=void 0,connect()},2e3))}})}};connect()})(),()=>{if(disposed=!0,reconnectTimer&&=(clearTimeout(reconnectTimer),void 0),currentListener){try{currentListener.dispose()}catch{}currentListener=void 0}if(releaseLock)try{releaseLock()}catch(err){console.warn(`Failed to release devhook lock:`,err)}}},[options$1.disabled,options$1.directory]),{id:options$1.id,url:options$1.id?`https://${options$1.id}.blink.host`:void 0,status}}var import_main=__toESM(require_main$1(),1);function useDotenv(directory,name$2=`.env.local`){let[env$8,setEnv]=useState({});return useEffect(()=>{let watcher,readEnvFile=path$38=>{try{let contents=readFileSync$1(path$38,`utf-8`),parsed=(0,import_main.parse)(contents);setEnv(parsed)}catch(error$3){console.error(`Error reading ${name$2}:`,error$3),setEnv({})}};return findNearestEntry(directory,name$2).then(nearest=>{if(!nearest){setEnv({});return}readEnvFile(nearest),watcher=watch(nearest,{persistent:!1},()=>{readEnvFile(nearest)})}),()=>{watcher&&watcher.close()}},[directory,name$2]),env$8}function combineHeaders(...headers){return headers.reduce((combinedHeaders,currentHeaders)=>({...combinedHeaders,...currentHeaders??{}}),{})}function extractResponseHeaders(response){return Object.fromEntries([...response.headers])}var generateId=(({prefix,size=16,alphabet:alphabet$1=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,separator=`-`}={})=>{let generator=()=>{let alphabetLength=alphabet$1.length,chars=Array(size);for(let i$7=0;i$7<size;i$7++)chars[i$7]=alphabet$1[Math.random()*alphabetLength|0];return chars.join(``)};if(prefix==null)return generator;if(alphabet$1.includes(separator))throw new InvalidArgumentError({argument:`separator`,message:`The separator "${separator}" must not be part of the alphabet "${alphabet$1}".`});return()=>`${prefix}${separator}${generator()}`})();function isAbortError$1(error$3){return(error$3 instanceof Error||error$3 instanceof DOMException)&&(error$3.name===`AbortError`||error$3.name===`ResponseAborted`||error$3.name===`TimeoutError`)}var FETCH_FAILED_ERROR_MESSAGES=[`fetch failed`,`failed to fetch`];function handleFetchError({error:error$3,url:url$3,requestBodyValues}){if(isAbortError$1(error$3))return error$3;if(error$3 instanceof TypeError&&FETCH_FAILED_ERROR_MESSAGES.includes(error$3.message.toLowerCase())){let cause=error$3.cause;if(cause!=null)return new APICallError({message:`Cannot connect to API: ${cause.message}`,cause,url:url$3,requestBodyValues,isRetryable:!0})}return error$3}function getRuntimeEnvironmentUserAgent(globalThisAny=globalThis){var _a$10,_b$3,_c$2;return globalThisAny.window?`runtime/browser`:globalThisAny.navigator?.userAgent?`runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`:globalThisAny.process?.versions?.node?`runtime/node.js/${globalThisAny.process.version.substring(0)}`:globalThisAny.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function removeUndefinedEntries(record){return Object.fromEntries(Object.entries(record).filter(([_key,value])=>value!=null))}function withUserAgentSuffix(headers,...userAgentSuffixParts){let cleanedHeaders=removeUndefinedEntries(headers??{}),normalizedHeaders=new Headers(cleanedHeaders),currentUserAgentHeader=normalizedHeaders.get(`user-agent`)||``;return normalizedHeaders.set(`user-agent`,[currentUserAgentHeader,...userAgentSuffixParts].filter(Boolean).join(` `)),Object.fromEntries(normalizedHeaders)}var VERSION$12=`3.0.12`,getOriginalFetch=()=>globalThis.fetch,getFromApi=async({url:url$3,headers={},successfulResponseHandler,failedResponseHandler,abortSignal,fetch:fetch$4=getOriginalFetch()})=>{try{let response=await fetch$4(url$3,{method:`GET`,headers:withUserAgentSuffix(headers,`ai-sdk/provider-utils/${VERSION$12}`,getRuntimeEnvironmentUserAgent()),signal:abortSignal}),responseHeaders=extractResponseHeaders(response);if(!response.ok){let errorInformation;try{errorInformation=await failedResponseHandler({response,url:url$3,requestBodyValues:{}})}catch(error$3){throw isAbortError$1(error$3)||APICallError.isInstance(error$3)?error$3:new APICallError({message:`Failed to process error response`,cause:error$3,statusCode:response.status,url:url$3,responseHeaders,requestBodyValues:{}})}throw errorInformation.value}try{return await successfulResponseHandler({response,url:url$3,requestBodyValues:{}})}catch(error$3){throw error$3 instanceof Error&&(isAbortError$1(error$3)||APICallError.isInstance(error$3))?error$3:new APICallError({message:`Failed to process successful response`,cause:error$3,statusCode:response.status,url:url$3,responseHeaders,requestBodyValues:{}})}}catch(error$3){throw handleFetchError({error:error$3,url:url$3,requestBodyValues:{}})}};function loadOptionalSetting({settingValue,environmentVariableName}){if(typeof settingValue==`string`||!(settingValue!=null||typeof process>`u`)&&(settingValue=process.env[environmentVariableName],!(settingValue==null||typeof settingValue!=`string`)))return settingValue}var suspectProtoRx$1=/"__proto__"\s*:/,suspectConstructorRx$1=/"constructor"\s*:/;function _parse(text){let obj=JSON.parse(text);return typeof obj!=`object`||!obj||suspectProtoRx$1.test(text)===!1&&suspectConstructorRx$1.test(text)===!1?obj:filter$2(obj)}function filter$2(obj){let next=[obj];for(;next.length;){let nodes=next;next=[];for(let node of nodes){if(Object.prototype.hasOwnProperty.call(node,`__proto__`)||Object.prototype.hasOwnProperty.call(node,`constructor`)&&Object.prototype.hasOwnProperty.call(node.constructor,`prototype`))throw SyntaxError(`Object contains forbidden prototype property`);for(let key$1 in node){let value=node[key$1];value&&typeof value==`object`&&next.push(value)}}}return obj}function secureJsonParse(text){let{stackTraceLimit}=Error;Error.stackTraceLimit=0;try{return _parse(text)}finally{Error.stackTraceLimit=stackTraceLimit}}var validatorSymbol=Symbol.for(`vercel.ai.validator`);function validator$1(validate$7){return{[validatorSymbol]:!0,validate:validate$7}}function isValidator(value){return typeof value==`object`&&!!value&&validatorSymbol in value&&value[validatorSymbol]===!0&&`validate`in value}function lazyValidator(createValidator){let validator2;return()=>(validator2??=createValidator(),validator2)}function asValidator(value){return isValidator(value)?value:typeof value==`function`?value():standardSchemaValidator(value)}function standardSchemaValidator(standardSchema){return validator$1(async value=>{let result=await standardSchema[`~standard`].validate(value);return result.issues==null?{success:!0,value:result.value}:{success:!1,error:new TypeValidationError({value,cause:result.issues})}})}async function validateTypes({value,schema}){let result=await safeValidateTypes({value,schema});if(!result.success)throw TypeValidationError.wrap({value,cause:result.error});return result.value}async function safeValidateTypes({value,schema}){let validator2=asValidator(schema);try{if(validator2.validate==null)return{success:!0,value,rawValue:value};let result=await validator2.validate(value);return result.success?{success:!0,value:result.value,rawValue:value}:{success:!1,error:TypeValidationError.wrap({value,cause:result.error}),rawValue:value}}catch(error$3){return{success:!1,error:TypeValidationError.wrap({value,cause:error$3}),rawValue:value}}}async function parseJSON({text,schema}){try{let value=secureJsonParse(text);return schema==null?value:validateTypes({value,schema})}catch(error$3){throw JSONParseError.isInstance(error$3)||TypeValidationError.isInstance(error$3)?error$3:new JSONParseError({text,cause:error$3})}}async function safeParseJSON({text,schema}){try{let value=secureJsonParse(text);return schema==null?{success:!0,value,rawValue:value}:await safeValidateTypes({value,schema})}catch(error$3){return{success:!1,error:JSONParseError.isInstance(error$3)?error$3:new JSONParseError({text,cause:error$3}),rawValue:void 0}}}function parseJsonEventStream({stream:stream$8,schema}){return stream$8.pipeThrough(new TextDecoderStream).pipeThrough(new EventSourceParserStream).pipeThrough(new TransformStream({async transform({data:data$2},controller){data$2!==`[DONE]`&&controller.enqueue(await safeParseJSON({text:data$2,schema}))}}))}var getOriginalFetch2=()=>globalThis.fetch,postJsonToApi=async({url:url$3,headers,body,failedResponseHandler,successfulResponseHandler,abortSignal,fetch:fetch$4})=>postToApi({url:url$3,headers:{"Content-Type":`application/json`,...headers},body:{content:JSON.stringify(body),values:body},failedResponseHandler,successfulResponseHandler,abortSignal,fetch:fetch$4}),postToApi=async({url:url$3,headers={},body,successfulResponseHandler,failedResponseHandler,abortSignal,fetch:fetch$4=getOriginalFetch2()})=>{try{let response=await fetch$4(url$3,{method:`POST`,headers:withUserAgentSuffix(headers,`ai-sdk/provider-utils/${VERSION$12}`,getRuntimeEnvironmentUserAgent()),body:body.content,signal:abortSignal}),responseHeaders=extractResponseHeaders(response);if(!response.ok){let errorInformation;try{errorInformation=await failedResponseHandler({response,url:url$3,requestBodyValues:body.values})}catch(error$3){throw isAbortError$1(error$3)||APICallError.isInstance(error$3)?error$3:new APICallError({message:`Failed to process error response`,cause:error$3,statusCode:response.status,url:url$3,responseHeaders,requestBodyValues:body.values})}throw errorInformation.value}try{return await successfulResponseHandler({response,url:url$3,requestBodyValues:body.values})}catch(error$3){throw error$3 instanceof Error&&(isAbortError$1(error$3)||APICallError.isInstance(error$3))?error$3:new APICallError({message:`Failed to process successful response`,cause:error$3,statusCode:response.status,url:url$3,responseHeaders,requestBodyValues:body.values})}}catch(error$3){throw handleFetchError({error:error$3,url:url$3,requestBodyValues:body.values})}};async function resolve$10(value){return typeof value==`function`&&(value=value()),Promise.resolve(value)}var createJsonErrorResponseHandler=({errorSchema,errorToMessage,isRetryable})=>async({response,url:url$3,requestBodyValues})=>{let responseBody=await response.text(),responseHeaders=extractResponseHeaders(response);if(responseBody.trim()===``)return{responseHeaders,value:new APICallError({message:response.statusText,url:url$3,requestBodyValues,statusCode:response.status,responseHeaders,responseBody,isRetryable:isRetryable?.(response)})};try{let parsedError=await parseJSON({text:responseBody,schema:errorSchema});return{responseHeaders,value:new APICallError({message:errorToMessage(parsedError),url:url$3,requestBodyValues,statusCode:response.status,responseHeaders,responseBody,data:parsedError,isRetryable:isRetryable?.(response,parsedError)})}}catch{return{responseHeaders,value:new APICallError({message:response.statusText,url:url$3,requestBodyValues,statusCode:response.status,responseHeaders,responseBody,isRetryable:isRetryable?.(response)})}}},createEventSourceResponseHandler=chunkSchema=>async({response})=>{let responseHeaders=extractResponseHeaders(response);if(response.body==null)throw new EmptyResponseBodyError({});return{responseHeaders,value:parseJsonEventStream({stream:response.body,schema:chunkSchema})}},createJsonResponseHandler=responseSchema=>async({response,url:url$3,requestBodyValues})=>{let responseBody=await response.text(),parsedResult=await safeParseJSON({text:responseBody,schema:responseSchema}),responseHeaders=extractResponseHeaders(response);if(!parsedResult.success)throw new APICallError({message:`Invalid JSON response`,cause:parsedResult.error,statusCode:response.status,responseHeaders,responseBody,url:url$3,requestBodyValues});return{responseHeaders,value:parsedResult.value,rawValue:parsedResult.rawValue}},getRelativePath=(pathA,pathB)=>{let i$7=0;for(;i$7<pathA.length&&i$7<pathB.length&&pathA[i$7]===pathB[i$7];i$7++);return[(pathA.length-i$7).toString(),...pathB.slice(i$7)].join(`/`)},ignoreOverride=Symbol(`Let zodToJsonSchema decide on which parser to use`),defaultOptions$4={name:void 0,$refStrategy:`root`,basePath:[`#`],effectStrategy:`input`,pipeStrategy:`all`,dateStrategy:`format:date-time`,mapStrategy:`entries`,removeAdditionalStrategy:`passthrough`,allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:`definitions`,strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:`escape`,applyRegexFlags:!1,emailStrategy:`format:email`,base64Strategy:`contentEncoding:base64`,nameStrategy:`ref`},getDefaultOptions=options$1=>typeof options$1==`string`?{...defaultOptions$4,name:options$1}:{...defaultOptions$4,...options$1};function parseAnyDef(){return{}}function parseArrayDef(def$31,refs){var _a$10,_b$3,_c$2;let res={type:`array`};return def$31.type?._def&&def$31.type?._def?.typeName!==ZodFirstPartyTypeKind.ZodAny&&(res.items=parseDef(def$31.type._def,{...refs,currentPath:[...refs.currentPath,`items`]})),def$31.minLength&&(res.minItems=def$31.minLength.value),def$31.maxLength&&(res.maxItems=def$31.maxLength.value),def$31.exactLength&&(res.minItems=def$31.exactLength.value,res.maxItems=def$31.exactLength.value),res}function parseBigintDef(def$31){let res={type:`integer`,format:`int64`};if(!def$31.checks)return res;for(let check$2 of def$31.checks)switch(check$2.kind){case`min`:check$2.inclusive?res.minimum=check$2.value:res.exclusiveMinimum=check$2.value;break;case`max`:check$2.inclusive?res.maximum=check$2.value:res.exclusiveMaximum=check$2.value;break;case`multipleOf`:res.multipleOf=check$2.value;break}return res}function parseBooleanDef(){return{type:`boolean`}}function parseBrandedDef(_def,refs){return parseDef(_def.type._def,refs)}var parseCatchDef=(def$31,refs)=>parseDef(def$31.innerType._def,refs);function parseDateDef(def$31,refs,overrideDateStrategy){let strategy=overrideDateStrategy??refs.dateStrategy;if(Array.isArray(strategy))return{anyOf:strategy.map((item,i$7)=>parseDateDef(def$31,refs,item))};switch(strategy){case`string`:case`format:date-time`:return{type:`string`,format:`date-time`};case`format:date`:return{type:`string`,format:`date`};case`integer`:return integerDateParser(def$31)}}var integerDateParser=def$31=>{let res={type:`integer`,format:`unix-time`};for(let check$2 of def$31.checks)switch(check$2.kind){case`min`:res.minimum=check$2.value;break;case`max`:res.maximum=check$2.value;break}return res};function parseDefaultDef(_def,refs){return{...parseDef(_def.innerType._def,refs),default:_def.defaultValue()}}function parseEffectsDef(_def,refs){return refs.effectStrategy===`input`?parseDef(_def.schema._def,refs):parseAnyDef()}function parseEnumDef(def$31){return{type:`string`,enum:Array.from(def$31.values)}}var isJsonSchema7AllOfType=type=>`type`in type&&type.type===`string`?!1:`allOf`in type;function parseIntersectionDef(def$31,refs){let allOf=[parseDef(def$31.left._def,{...refs,currentPath:[...refs.currentPath,`allOf`,`0`]}),parseDef(def$31.right._def,{...refs,currentPath:[...refs.currentPath,`allOf`,`1`]})].filter(x$1=>!!x$1),mergedAllOf=[];return allOf.forEach(schema=>{if(isJsonSchema7AllOfType(schema))mergedAllOf.push(...schema.allOf);else{let nestedSchema=schema;if(`additionalProperties`in schema&&schema.additionalProperties===!1){let{additionalProperties,...rest}=schema;nestedSchema=rest}mergedAllOf.push(nestedSchema)}}),mergedAllOf.length?{allOf:mergedAllOf}:void 0}function parseLiteralDef(def$31){let parsedType=typeof def$31.value;return parsedType!==`bigint`&&parsedType!==`number`&&parsedType!==`boolean`&&parsedType!==`string`?{type:Array.isArray(def$31.value)?`array`:`object`}:{type:parsedType===`bigint`?`integer`:parsedType,const:def$31.value}}var emojiRegex$1=void 0,zodPatterns={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(emojiRegex$1===void 0&&(emojiRegex$1=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),emojiRegex$1),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function parseStringDef(def$31,refs){let res={type:`string`};if(def$31.checks)for(let check$2 of def$31.checks)switch(check$2.kind){case`min`:res.minLength=typeof res.minLength==`number`?Math.max(res.minLength,check$2.value):check$2.value;break;case`max`:res.maxLength=typeof res.maxLength==`number`?Math.min(res.maxLength,check$2.value):check$2.value;break;case`email`:switch(refs.emailStrategy){case`format:email`:addFormat$1(res,`email`,check$2.message,refs);break;case`format:idn-email`:addFormat$1(res,`idn-email`,check$2.message,refs);break;case`pattern:zod`:addPattern(res,zodPatterns.email,check$2.message,refs);break}break;case`url`:addFormat$1(res,`uri`,check$2.message,refs);break;case`uuid`:addFormat$1(res,`uuid`,check$2.message,refs);break;case`regex`:addPattern(res,check$2.regex,check$2.message,refs);break;case`cuid`:addPattern(res,zodPatterns.cuid,check$2.message,refs);break;case`cuid2`:addPattern(res,zodPatterns.cuid2,check$2.message,refs);break;case`startsWith`:addPattern(res,RegExp(`^${escapeLiteralCheckValue(check$2.value,refs)}`),check$2.message,refs);break;case`endsWith`:addPattern(res,RegExp(`${escapeLiteralCheckValue(check$2.value,refs)}$`),check$2.message,refs);break;case`datetime`:addFormat$1(res,`date-time`,check$2.message,refs);break;case`date`:addFormat$1(res,`date`,check$2.message,refs);break;case`time`:addFormat$1(res,`time`,check$2.message,refs);break;case`duration`:addFormat$1(res,`duration`,check$2.message,refs);break;case`length`:res.minLength=typeof res.minLength==`number`?Math.max(res.minLength,check$2.value):check$2.value,res.maxLength=typeof res.maxLength==`number`?Math.min(res.maxLength,check$2.value):check$2.value;break;case`includes`:addPattern(res,RegExp(escapeLiteralCheckValue(check$2.value,refs)),check$2.message,refs);break;case`ip`:check$2.version!==`v6`&&addFormat$1(res,`ipv4`,check$2.message,refs),check$2.version!==`v4`&&addFormat$1(res,`ipv6`,check$2.message,refs);break;case`base64url`:addPattern(res,zodPatterns.base64url,check$2.message,refs);break;case`jwt`:addPattern(res,zodPatterns.jwt,check$2.message,refs);break;case`cidr`:check$2.version!==`v6`&&addPattern(res,zodPatterns.ipv4Cidr,check$2.message,refs),check$2.version!==`v4`&&addPattern(res,zodPatterns.ipv6Cidr,check$2.message,refs);break;case`emoji`:addPattern(res,zodPatterns.emoji(),check$2.message,refs);break;case`ulid`:addPattern(res,zodPatterns.ulid,check$2.message,refs);break;case`base64`:switch(refs.base64Strategy){case`format:binary`:addFormat$1(res,`binary`,check$2.message,refs);break;case`contentEncoding:base64`:res.contentEncoding=`base64`;break;case`pattern:zod`:addPattern(res,zodPatterns.base64,check$2.message,refs);break}break;case`nanoid`:addPattern(res,zodPatterns.nanoid,check$2.message,refs);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return res}function escapeLiteralCheckValue(literal$1,refs){return refs.patternStrategy===`escape`?escapeNonAlphaNumeric(literal$1):literal$1}var ALPHA_NUMERIC=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function escapeNonAlphaNumeric(source$39){let result=``;for(let i$7=0;i$7<source$39.length;i$7++)ALPHA_NUMERIC.has(source$39[i$7])||(result+=`\\`),result+=source$39[i$7];return result}function addFormat$1(schema,value,message,refs){var _a$10;schema.format||schema.anyOf?.some(x$1=>x$1.format)?(schema.anyOf||=[],schema.format&&(schema.anyOf.push({format:schema.format}),delete schema.format),schema.anyOf.push({format:value,...message&&refs.errorMessages&&{errorMessage:{format:message}}})):schema.format=value}function addPattern(schema,regex$3,message,refs){var _a$10;schema.pattern||schema.allOf?.some(x$1=>x$1.pattern)?(schema.allOf||=[],schema.pattern&&(schema.allOf.push({pattern:schema.pattern}),delete schema.pattern),schema.allOf.push({pattern:stringifyRegExpWithFlags(regex$3,refs),...message&&refs.errorMessages&&{errorMessage:{pattern:message}}})):schema.pattern=stringifyRegExpWithFlags(regex$3,refs)}function stringifyRegExpWithFlags(regex$3,refs){var _a$10;if(!refs.applyRegexFlags||!regex$3.flags)return regex$3.source;let flags={i:regex$3.flags.includes(`i`),m:regex$3.flags.includes(`m`),s:regex$3.flags.includes(`s`)},source$39=flags.i?regex$3.source.toLowerCase():regex$3.source,pattern=``,isEscaped=!1,inCharGroup=!1,inCharRange=!1;for(let i$7=0;i$7<source$39.length;i$7++){if(isEscaped){pattern+=source$39[i$7],isEscaped=!1;continue}if(flags.i){if(inCharGroup){if(source$39[i$7].match(/[a-z]/)){inCharRange?(pattern+=source$39[i$7],pattern+=`${source$39[i$7-2]}-${source$39[i$7]}`.toUpperCase(),inCharRange=!1):source$39[i$7+1]===`-`&&source$39[i$7+2]?.match(/[a-z]/)?(pattern+=source$39[i$7],inCharRange=!0):pattern+=`${source$39[i$7]}${source$39[i$7].toUpperCase()}`;continue}}else if(source$39[i$7].match(/[a-z]/)){pattern+=`[${source$39[i$7]}${source$39[i$7].toUpperCase()}]`;continue}}if(flags.m){if(source$39[i$7]===`^`){pattern+=`(^|(?<=[\r
|
|
253
253
|
]))`;continue}else if(source$39[i$7]===`$`){pattern+=`($|(?=[\r
|
|
254
254
|
]))`;continue}}if(flags.s&&source$39[i$7]===`.`){pattern+=inCharGroup?`${source$39[i$7]}\r
|
|
@@ -269,7 +269,7 @@ Create an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
|
|
|
269
269
|
Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.
|
|
270
270
|
|
|
271
271
|
Option 2 - OIDC token:
|
|
272
|
-
Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`,new _GatewayAuthenticationError({message:contextualMessage,statusCode,cause})}},name2=`GatewayInvalidRequestError`,marker3=`vercel.ai.gateway.error.${name2}`,symbol3=Symbol.for(marker3),_a3,_b3,GatewayInvalidRequestError=class extends (_b3=GatewayError,_a3=symbol3,_b3){constructor({message=`Invalid request`,statusCode=400,cause}={}){super({message,statusCode,cause}),this[_a3]=!0,this.name=name2,this.type=`invalid_request_error`}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol3 in error$3}},name3=`GatewayRateLimitError`,marker4=`vercel.ai.gateway.error.${name3}`,symbol4=Symbol.for(marker4),_a4,_b4,GatewayRateLimitError=class extends (_b4=GatewayError,_a4=symbol4,_b4){constructor({message=`Rate limit exceeded`,statusCode=429,cause}={}){super({message,statusCode,cause}),this[_a4]=!0,this.name=name3,this.type=`rate_limit_exceeded`}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol4 in error$3}},name4=`GatewayModelNotFoundError`,marker5=`vercel.ai.gateway.error.${name4}`,symbol5=Symbol.for(marker5),modelNotFoundParamSchema=lazyValidator(()=>zodSchema(z$2.object({modelId:z$2.string()}))),_a5,_b5,GatewayModelNotFoundError=class extends (_b5=GatewayError,_a5=symbol5,_b5){constructor({message=`Model not found`,statusCode=404,modelId,cause}={}){super({message,statusCode,cause}),this[_a5]=!0,this.name=name4,this.type=`model_not_found`,this.modelId=modelId}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol5 in error$3}},name5=`GatewayInternalServerError`,marker6=`vercel.ai.gateway.error.${name5}`,symbol6=Symbol.for(marker6),_a6,_b6,GatewayInternalServerError=class extends (_b6=GatewayError,_a6=symbol6,_b6){constructor({message=`Internal server error`,statusCode=500,cause}={}){super({message,statusCode,cause}),this[_a6]=!0,this.name=name5,this.type=`internal_server_error`}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol6 in error$3}},name6=`GatewayResponseError`,marker7=`vercel.ai.gateway.error.${name6}`,symbol7=Symbol.for(marker7),_a7,_b7,GatewayResponseError=class extends (_b7=GatewayError,_a7=symbol7,_b7){constructor({message=`Invalid response from Gateway`,statusCode=502,response,validationError,cause}={}){super({message,statusCode,cause}),this[_a7]=!0,this.name=name6,this.type=`response_error`,this.response=response,this.validationError=validationError}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol7 in error$3}};async function createGatewayErrorFromResponse({response,statusCode,defaultMessage=`Gateway request failed`,cause,authMethod}){let parseResult=await safeValidateTypes({value:response,schema:gatewayErrorResponseSchema});if(!parseResult.success)return new GatewayResponseError({message:`Invalid error response format: ${defaultMessage}`,statusCode,response,validationError:parseResult.error,cause});let validatedResponse=parseResult.value,errorType=validatedResponse.error.type,message=validatedResponse.error.message;switch(errorType){case`authentication_error`:return GatewayAuthenticationError.createContextualError({apiKeyProvided:authMethod===`api-key`,oidcTokenProvided:authMethod===`oidc`,statusCode,cause});case`invalid_request_error`:return new GatewayInvalidRequestError({message,statusCode,cause});case`rate_limit_exceeded`:return new GatewayRateLimitError({message,statusCode,cause});case`model_not_found`:{let modelResult=await safeValidateTypes({value:validatedResponse.error.param,schema:modelNotFoundParamSchema});return new GatewayModelNotFoundError({message,statusCode,modelId:modelResult.success?modelResult.value.modelId:void 0,cause})}case`internal_server_error`:return new GatewayInternalServerError({message,statusCode,cause});default:return new GatewayInternalServerError({message,statusCode,cause})}}var gatewayErrorResponseSchema=lazyValidator(()=>zodSchema(z$2.object({error:z$2.object({message:z$2.string(),type:z$2.string().nullish(),param:z$2.unknown().nullish(),code:z$2.union([z$2.string(),z$2.number()]).nullish()})})));function asGatewayError(error$3,authMethod){var _a8;return GatewayError.isInstance(error$3)?error$3:APICallError.isInstance(error$3)?createGatewayErrorFromResponse({response:extractApiCallResponse(error$3),statusCode:error$3.statusCode??500,defaultMessage:`Gateway request failed`,cause:error$3,authMethod}):createGatewayErrorFromResponse({response:{},statusCode:500,defaultMessage:error$3 instanceof Error?`Gateway request failed: ${error$3.message}`:`Unknown Gateway error`,cause:error$3,authMethod})}function extractApiCallResponse(error$3){if(error$3.data!==void 0)return error$3.data;if(error$3.responseBody!=null)try{return JSON.parse(error$3.responseBody)}catch{return error$3.responseBody}return{}}var GATEWAY_AUTH_METHOD_HEADER=`ai-gateway-auth-method`;async function parseAuthMethod(headers){let result=await safeValidateTypes({value:headers[GATEWAY_AUTH_METHOD_HEADER],schema:gatewayAuthMethodSchema});return result.success?result.value:void 0}var gatewayAuthMethodSchema=lazyValidator(()=>zodSchema(z$2.union([z$2.literal(`api-key`),z$2.literal(`oidc`)]))),GatewayFetchMetadata=class{constructor(config){this.config=config}async getAvailableModels(){try{let{value}=await getFromApi({url:`${this.config.baseURL}/config`,headers:await resolve$10(this.config.headers()),successfulResponseHandler:createJsonResponseHandler(gatewayAvailableModelsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),fetch:this.config.fetch});return value}catch(error$3){throw await asGatewayError(error$3)}}async getCredits(){try{let baseUrl=new URL(this.config.baseURL),{value}=await getFromApi({url:`${baseUrl.origin}/v1/credits`,headers:await resolve$10(this.config.headers()),successfulResponseHandler:createJsonResponseHandler(gatewayCreditsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),fetch:this.config.fetch});return value}catch(error$3){throw await asGatewayError(error$3)}}},gatewayAvailableModelsResponseSchema=lazyValidator(()=>zodSchema(z$2.object({models:z$2.array(z$2.object({id:z$2.string(),name:z$2.string(),description:z$2.string().nullish(),pricing:z$2.object({input:z$2.string(),output:z$2.string(),input_cache_read:z$2.string().nullish(),input_cache_write:z$2.string().nullish()}).transform(({input,output,input_cache_read,input_cache_write})=>({input,output,...input_cache_read?{cachedInputTokens:input_cache_read}:{},...input_cache_write?{cacheCreationInputTokens:input_cache_write}:{}})).nullish(),specification:z$2.object({specificationVersion:z$2.literal(`v2`),provider:z$2.string(),modelId:z$2.string()}),modelType:z$2.enum([`language`,`embedding`,`image`]).nullish()}))}))),gatewayCreditsResponseSchema=lazyValidator(()=>zodSchema(z$2.object({balance:z$2.string(),total_used:z$2.string()}).transform(({balance,total_used})=>({balance,totalUsed:total_used})))),GatewayLanguageModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`,this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(options$1){let{abortSignal:_abortSignal,...optionsWithoutSignal}=options$1;return{args:this.maybeEncodeFileParts(optionsWithoutSignal),warnings:[]}}async doGenerate(options$1){let{args,warnings}=await this.getArgs(options$1),{abortSignal}=options$1,resolvedHeaders=await resolve$10(this.config.headers());try{let{responseHeaders,value:responseBody,rawValue:rawResponse}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(resolvedHeaders,options$1.headers,this.getModelConfigHeaders(this.modelId,!1),await resolve$10(this.config.o11yHeaders)),body:args,successfulResponseHandler:createJsonResponseHandler(z$2.any()),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),...abortSignal&&{abortSignal},fetch:this.config.fetch});return{...responseBody,request:{body:args},response:{headers:responseHeaders,body:rawResponse},warnings}}catch(error$3){throw await asGatewayError(error$3,await parseAuthMethod(resolvedHeaders))}}async doStream(options$1){let{args,warnings}=await this.getArgs(options$1),{abortSignal}=options$1,resolvedHeaders=await resolve$10(this.config.headers());try{let{value:response,responseHeaders}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(resolvedHeaders,options$1.headers,this.getModelConfigHeaders(this.modelId,!0),await resolve$10(this.config.o11yHeaders)),body:args,successfulResponseHandler:createEventSourceResponseHandler(z$2.any()),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),...abortSignal&&{abortSignal},fetch:this.config.fetch});return{stream:response.pipeThrough(new TransformStream({start(controller){warnings.length>0&&controller.enqueue({type:`stream-start`,warnings})},transform(chunk$1,controller){if(chunk$1.success){let streamPart=chunk$1.value;if(streamPart.type===`raw`&&!options$1.includeRawChunks)return;streamPart.type===`response-metadata`&&streamPart.timestamp&&typeof streamPart.timestamp==`string`&&(streamPart.timestamp=new Date(streamPart.timestamp)),controller.enqueue(streamPart)}else controller.error(chunk$1.error)}})),request:{body:args},response:{headers:responseHeaders}}}catch(error$3){throw await asGatewayError(error$3,await parseAuthMethod(resolvedHeaders))}}isFilePart(part){return part&&typeof part==`object`&&`type`in part&&part.type===`file`}maybeEncodeFileParts(options$1){for(let message of options$1.prompt)for(let part of message.content)if(this.isFilePart(part)){let filePart=part;if(filePart.data instanceof Uint8Array){let buffer$2=Uint8Array.from(filePart.data),base64Data=Buffer.from(buffer$2).toString(`base64`);filePart.data=new URL(`data:${filePart.mediaType||`application/octet-stream`};base64,${base64Data}`)}}return options$1}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(modelId,streaming){return{"ai-language-model-specification-version":`2`,"ai-language-model-id":modelId,"ai-language-model-streaming":String(streaming)}}},GatewayEmbeddingModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`,this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values,headers,abortSignal,providerOptions}){var _a8;let resolvedHeaders=await resolve$10(this.config.headers());try{let{responseHeaders,value:responseBody,rawValue}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(resolvedHeaders,headers??{},this.getModelConfigHeaders(),await resolve$10(this.config.o11yHeaders)),body:{input:values.length===1?values[0]:values,...providerOptions?{providerOptions}:{}},successfulResponseHandler:createJsonResponseHandler(gatewayEmbeddingResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),...abortSignal&&{abortSignal},fetch:this.config.fetch});return{embeddings:responseBody.embeddings,usage:responseBody.usage??void 0,providerMetadata:responseBody.providerMetadata,response:{headers:responseHeaders,body:rawValue}}}catch(error$3){throw await asGatewayError(error$3,await parseAuthMethod(resolvedHeaders))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":`2`,"ai-model-id":this.modelId}}},gatewayEmbeddingResponseSchema=lazyValidator(()=>zodSchema(z$2.object({embeddings:z$2.array(z$2.array(z$2.number())),usage:z$2.object({tokens:z$2.number()}).nullish(),providerMetadata:z$2.record(z$2.string(),z$2.record(z$2.string(),z$2.unknown())).optional()})));async function getVercelRequestId(){var _a8;return(0,import_dist$7.getContext)().headers?.[`x-vercel-id`]}var VERSION$11=`2.0.0`,AI_GATEWAY_PROTOCOL_VERSION=`0.0.1`;function createGatewayProvider(options$1={}){var _a8,_b8;let pendingMetadata=null,metadataCache=null,cacheRefreshMillis=options$1.metadataCacheRefreshMillis??1e3*60*5,lastFetchTime=0,baseURL=withoutTrailingSlash(options$1.baseURL)??`https://ai-gateway.vercel.sh/v1/ai`,getHeaders$1=async()=>{let auth$2=await getGatewayAuthToken(options$1);if(auth$2)return withUserAgentSuffix({Authorization:`Bearer ${auth$2.token}`,"ai-gateway-protocol-version":AI_GATEWAY_PROTOCOL_VERSION,[GATEWAY_AUTH_METHOD_HEADER]:auth$2.authMethod,...options$1.headers},`ai-sdk/gateway/${VERSION$11}`);throw GatewayAuthenticationError.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401})},createO11yHeaders=()=>{let deploymentId=loadOptionalSetting({settingValue:void 0,environmentVariableName:`VERCEL_DEPLOYMENT_ID`}),environment=loadOptionalSetting({settingValue:void 0,environmentVariableName:`VERCEL_ENV`}),region=loadOptionalSetting({settingValue:void 0,environmentVariableName:`VERCEL_REGION`});return async()=>{let requestId=await getVercelRequestId();return{...deploymentId&&{"ai-o11y-deployment-id":deploymentId},...environment&&{"ai-o11y-environment":environment},...region&&{"ai-o11y-region":region},...requestId&&{"ai-o11y-request-id":requestId}}}},createLanguageModel=modelId=>new GatewayLanguageModel(modelId,{provider:`gateway`,baseURL,headers:getHeaders$1,fetch:options$1.fetch,o11yHeaders:createO11yHeaders()}),getAvailableModels=async()=>{var _a9,_b9,_c$2;let now=((_a9=options$1._internal)?.currentDate)?.call(_a9).getTime()??Date.now();return(!pendingMetadata||now-lastFetchTime>cacheRefreshMillis)&&(lastFetchTime=now,pendingMetadata=new GatewayFetchMetadata({baseURL,headers:getHeaders$1,fetch:options$1.fetch}).getAvailableModels().then(metadata=>(metadataCache=metadata,metadata)).catch(async error$3=>{throw await asGatewayError(error$3,await parseAuthMethod(await getHeaders$1()))})),metadataCache?Promise.resolve(metadataCache):pendingMetadata},getCredits=async()=>new GatewayFetchMetadata({baseURL,headers:getHeaders$1,fetch:options$1.fetch}).getCredits().catch(async error$3=>{throw await asGatewayError(error$3,await parseAuthMethod(await getHeaders$1()))}),provider=function(modelId){if(new.target)throw Error(`The Gateway Provider model function cannot be called with the new keyword.`);return createLanguageModel(modelId)};return provider.getAvailableModels=getAvailableModels,provider.getCredits=getCredits,provider.imageModel=modelId=>{throw new NoSuchModelError({modelId,modelType:`imageModel`})},provider.languageModel=createLanguageModel,provider.textEmbeddingModel=modelId=>new GatewayEmbeddingModel(modelId,{provider:`gateway`,baseURL,headers:getHeaders$1,fetch:options$1.fetch,o11yHeaders:createO11yHeaders()}),provider}var gateway=createGatewayProvider();async function getGatewayAuthToken(options$1){let apiKey=loadOptionalSetting({settingValue:options$1.apiKey,environmentVariableName:`AI_GATEWAY_API_KEY`});if(apiKey)return{token:apiKey,authMethod:`api-key`};try{return{token:await(0,import_dist$8.getVercelOidcToken)(),authMethod:`oidc`}}catch{return null}}var Diff$1=class{diff(oldStr,newStr,options$1={}){let callback$1;typeof options$1==`function`?(callback$1=options$1,options$1={}):`callback`in options$1&&(callback$1=options$1.callback);let oldString=this.castInput(oldStr,options$1),newString=this.castInput(newStr,options$1),oldTokens=this.removeEmpty(this.tokenize(oldString,options$1)),newTokens=this.removeEmpty(this.tokenize(newString,options$1));return this.diffWithOptionsObj(oldTokens,newTokens,options$1,callback$1)}diffWithOptionsObj(oldTokens,newTokens,options$1,callback$1){var _a$10;let done=value=>{if(value=this.postProcess(value,options$1),callback$1){setTimeout(function(){callback$1(value)},0);return}else return value},newLen=newTokens.length,oldLen=oldTokens.length,editLength=1,maxEditLength=newLen+oldLen;options$1.maxEditLength!=null&&(maxEditLength=Math.min(maxEditLength,options$1.maxEditLength));let maxExecutionTime=options$1.timeout??1/0,abortAfterTimestamp=Date.now()+maxExecutionTime,bestPath=[{oldPos:-1,lastComponent:void 0}],newPos=this.extractCommon(bestPath[0],newTokens,oldTokens,0,options$1);if(bestPath[0].oldPos+1>=oldLen&&newPos+1>=newLen)return done(this.buildValues(bestPath[0].lastComponent,newTokens,oldTokens));let minDiagonalToConsider=-1/0,maxDiagonalToConsider=1/0,execEditLength=()=>{for(let diagonalPath=Math.max(minDiagonalToConsider,-editLength);diagonalPath<=Math.min(maxDiagonalToConsider,editLength);diagonalPath+=2){let basePath,removePath=bestPath[diagonalPath-1],addPath=bestPath[diagonalPath+1];removePath&&(bestPath[diagonalPath-1]=void 0);let canAdd=!1;if(addPath){let addPathNewPos=addPath.oldPos-diagonalPath;canAdd=addPath&&0<=addPathNewPos&&addPathNewPos<newLen}let canRemove=removePath&&removePath.oldPos+1<oldLen;if(!canAdd&&!canRemove){bestPath[diagonalPath]=void 0;continue}if(basePath=!canRemove||canAdd&&removePath.oldPos<addPath.oldPos?this.addToPath(addPath,!0,!1,0,options$1):this.addToPath(removePath,!1,!0,1,options$1),newPos=this.extractCommon(basePath,newTokens,oldTokens,diagonalPath,options$1),basePath.oldPos+1>=oldLen&&newPos+1>=newLen)return done(this.buildValues(basePath.lastComponent,newTokens,oldTokens))||!0;bestPath[diagonalPath]=basePath,basePath.oldPos+1>=oldLen&&(maxDiagonalToConsider=Math.min(maxDiagonalToConsider,diagonalPath-1)),newPos+1>=newLen&&(minDiagonalToConsider=Math.max(minDiagonalToConsider,diagonalPath+1))}editLength++};if(callback$1)(function exec$2(){setTimeout(function(){if(editLength>maxEditLength||Date.now()>abortAfterTimestamp)return callback$1(void 0);execEditLength()||exec$2()},0)})();else for(;editLength<=maxEditLength&&Date.now()<=abortAfterTimestamp;){let ret=execEditLength();if(ret)return ret}}addToPath(path$38,added,removed,oldPosInc,options$1){let last$1=path$38.lastComponent;return last$1&&!options$1.oneChangePerToken&&last$1.added===added&&last$1.removed===removed?{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:last$1.count+1,added,removed,previousComponent:last$1.previousComponent}}:{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:1,added,removed,previousComponent:last$1}}}extractCommon(basePath,newTokens,oldTokens,diagonalPath,options$1){let newLen=newTokens.length,oldLen=oldTokens.length,oldPos=basePath.oldPos,newPos=oldPos-diagonalPath,commonCount=0;for(;newPos+1<newLen&&oldPos+1<oldLen&&this.equals(oldTokens[oldPos+1],newTokens[newPos+1],options$1);)newPos++,oldPos++,commonCount++,options$1.oneChangePerToken&&(basePath.lastComponent={count:1,previousComponent:basePath.lastComponent,added:!1,removed:!1});return commonCount&&!options$1.oneChangePerToken&&(basePath.lastComponent={count:commonCount,previousComponent:basePath.lastComponent,added:!1,removed:!1}),basePath.oldPos=oldPos,newPos}equals(left$2,right$2,options$1){return options$1.comparator?options$1.comparator(left$2,right$2):left$2===right$2||!!options$1.ignoreCase&&left$2.toLowerCase()===right$2.toLowerCase()}removeEmpty(array){let ret=[];for(let i$7=0;i$7<array.length;i$7++)array[i$7]&&ret.push(array[i$7]);return ret}castInput(value,options$1){return value}tokenize(value,options$1){return Array.from(value)}join(chars){return chars.join(``)}postProcess(changeObjects,options$1){return changeObjects}get useLongestToken(){return!1}buildValues(lastComponent,newTokens,oldTokens){let components=[],nextComponent;for(;lastComponent;)components.push(lastComponent),nextComponent=lastComponent.previousComponent,delete lastComponent.previousComponent,lastComponent=nextComponent;components.reverse();let componentLen=components.length,componentPos=0,newPos=0,oldPos=0;for(;componentPos<componentLen;componentPos++){let component=components[componentPos];if(component.removed)component.value=this.join(oldTokens.slice(oldPos,oldPos+component.count)),oldPos+=component.count;else{if(!component.added&&this.useLongestToken){let value=newTokens.slice(newPos,newPos+component.count);value=value.map(function(value$1,i$7){let oldValue=oldTokens[oldPos+i$7];return oldValue.length>value$1.length?oldValue:value$1}),component.value=this.join(value)}else component.value=this.join(newTokens.slice(newPos,newPos+component.count));newPos+=component.count,component.added||(oldPos+=component.count)}}return components}};new class extends Diff$1{};function longestCommonPrefix$1(str1,str2){let i$7;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[i$7]!=str2[i$7])return str1.slice(0,i$7);return str1.slice(0,i$7)}function longestCommonSuffix$1(str1,str2){let i$7;if(!str1||!str2||str1[str1.length-1]!=str2[str2.length-1])return``;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[str1.length-(i$7+1)]!=str2[str2.length-(i$7+1)])return str1.slice(-i$7);return str1.slice(-i$7)}function replacePrefix$1(string,oldPrefix,newPrefix){if(string.slice(0,oldPrefix.length)!=oldPrefix)throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);return newPrefix+string.slice(oldPrefix.length)}function replaceSuffix$1(string,oldSuffix,newSuffix){if(!oldSuffix)return string+newSuffix;if(string.slice(-oldSuffix.length)!=oldSuffix)throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);return string.slice(0,-oldSuffix.length)+newSuffix}function removePrefix$1(string,oldPrefix){return replacePrefix$1(string,oldPrefix,``)}function removeSuffix$1(string,oldSuffix){return replaceSuffix$1(string,oldSuffix,``)}function maximumOverlap$1(string1$1,string2$1){return string2$1.slice(0,overlapCount$1(string1$1,string2$1))}function overlapCount$1(a$2,b$2){let startA=0;a$2.length>b$2.length&&(startA=a$2.length-b$2.length);let endB=b$2.length;a$2.length<b$2.length&&(endB=a$2.length);let map$2=Array(endB),k=0;map$2[0]=0;for(let j$2=1;j$2<endB;j$2++){for(b$2[j$2]==b$2[k]?map$2[j$2]=map$2[k]:map$2[j$2]=k;k>0&&b$2[j$2]!=b$2[k];)k=map$2[k];b$2[j$2]==b$2[k]&&k++}k=0;for(let i$7=startA;i$7<a$2.length;i$7++){for(;k>0&&a$2[i$7]!=b$2[k];)k=map$2[k];a$2[i$7]==b$2[k]&&k++}return k}function trailingWs(string){let i$7;for(i$7=string.length-1;i$7>=0&&string[i$7].match(/\s/);i$7--);return string.substring(i$7+1)}function leadingWs(string){let match$1=string.match(/^\s*/);return match$1?match$1[0]:``}const extendedWordChars$1=`a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,tokenizeIncludingWhitespace$1=RegExp(`[${extendedWordChars$1}]+|\\s+|[^${extendedWordChars$1}]`,`ug`);new class extends Diff$1{equals(left$2,right$2,options$1){return options$1.ignoreCase&&(left$2=left$2.toLowerCase(),right$2=right$2.toLowerCase()),left$2.trim()===right$2.trim()}tokenize(value,options$1={}){let parts;if(options$1.intlSegmenter){let segmenter$1=options$1.intlSegmenter;if(segmenter$1.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);parts=Array.from(segmenter$1.segment(value),segment=>segment.segment)}else parts=value.match(tokenizeIncludingWhitespace$1)||[];let tokens=[],prevPart=null;return parts.forEach(part=>{/\s/.test(part)?prevPart==null?tokens.push(part):tokens.push(tokens.pop()+part):prevPart!=null&&/\s/.test(prevPart)?tokens[tokens.length-1]==prevPart?tokens.push(tokens.pop()+part):tokens.push(prevPart+part):tokens.push(part),prevPart=part}),tokens}join(tokens){return tokens.map((token$1,i$7)=>i$7==0?token$1:token$1.replace(/^\s+/,``)).join(``)}postProcess(changes,options$1){if(!changes||options$1.oneChangePerToken)return changes;let lastKeep=null,insertion=null,deletion=null;return changes.forEach(change=>{change.added?insertion=change:change.removed?deletion=change:((insertion||deletion)&&dedupeWhitespaceInChangeObjects$1(lastKeep,deletion,insertion,change),lastKeep=change,insertion=null,deletion=null)}),(insertion||deletion)&&dedupeWhitespaceInChangeObjects$1(lastKeep,deletion,insertion,null),changes}};function dedupeWhitespaceInChangeObjects$1(startKeep,deletion,insertion,endKeep){if(deletion&&insertion){let oldWsPrefix=leadingWs(deletion.value),oldWsSuffix=trailingWs(deletion.value),newWsPrefix=leadingWs(insertion.value),newWsSuffix=trailingWs(insertion.value);if(startKeep){let commonWsPrefix=longestCommonPrefix$1(oldWsPrefix,newWsPrefix);startKeep.value=replaceSuffix$1(startKeep.value,newWsPrefix,commonWsPrefix),deletion.value=removePrefix$1(deletion.value,commonWsPrefix),insertion.value=removePrefix$1(insertion.value,commonWsPrefix)}if(endKeep){let commonWsSuffix=longestCommonSuffix$1(oldWsSuffix,newWsSuffix);endKeep.value=replacePrefix$1(endKeep.value,newWsSuffix,commonWsSuffix),deletion.value=removeSuffix$1(deletion.value,commonWsSuffix),insertion.value=removeSuffix$1(insertion.value,commonWsSuffix)}}else if(insertion){if(startKeep){let ws$2=leadingWs(insertion.value);insertion.value=insertion.value.substring(ws$2.length)}if(endKeep){let ws$2=leadingWs(endKeep.value);endKeep.value=endKeep.value.substring(ws$2.length)}}else if(startKeep&&endKeep){let newWsFull=leadingWs(endKeep.value),delWsStart=leadingWs(deletion.value),delWsEnd=trailingWs(deletion.value),newWsStart=longestCommonPrefix$1(newWsFull,delWsStart);deletion.value=removePrefix$1(deletion.value,newWsStart);let newWsEnd=longestCommonSuffix$1(removePrefix$1(newWsFull,newWsStart),delWsEnd);deletion.value=removeSuffix$1(deletion.value,newWsEnd),endKeep.value=replacePrefix$1(endKeep.value,newWsFull,newWsEnd),startKeep.value=replaceSuffix$1(startKeep.value,newWsFull,newWsFull.slice(0,newWsFull.length-newWsEnd.length))}else if(endKeep){let endKeepWsPrefix=leadingWs(endKeep.value),deletionWsSuffix=trailingWs(deletion.value),overlap=maximumOverlap$1(deletionWsSuffix,endKeepWsPrefix);deletion.value=removeSuffix$1(deletion.value,overlap)}else if(startKeep){let startKeepWsSuffix=trailingWs(startKeep.value),deletionWsPrefix=leadingWs(deletion.value),overlap=maximumOverlap$1(startKeepWsSuffix,deletionWsPrefix);deletion.value=removePrefix$1(deletion.value,overlap)}}new class extends Diff$1{tokenize(value){let regex$3=RegExp(`(\\r?\\n)|[${extendedWordChars$1}]+|[^\\S\\n\\r]+|[^${extendedWordChars$1}]`,`ug`);return value.match(regex$3)||[]}};const lineDiff$1=new class extends Diff$1{constructor(){super(...arguments),this.tokenize=tokenize$2}equals(left$2,right$2,options$1){return options$1.ignoreWhitespace?((!options$1.newlineIsToken||!left$2.includes(`
|
|
272
|
+
Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`,new _GatewayAuthenticationError({message:contextualMessage,statusCode,cause})}},name2=`GatewayInvalidRequestError`,marker3=`vercel.ai.gateway.error.${name2}`,symbol3=Symbol.for(marker3),_a3,_b3,GatewayInvalidRequestError=class extends (_b3=GatewayError,_a3=symbol3,_b3){constructor({message=`Invalid request`,statusCode=400,cause}={}){super({message,statusCode,cause}),this[_a3]=!0,this.name=name2,this.type=`invalid_request_error`}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol3 in error$3}},name3=`GatewayRateLimitError`,marker4=`vercel.ai.gateway.error.${name3}`,symbol4=Symbol.for(marker4),_a4,_b4,GatewayRateLimitError=class extends (_b4=GatewayError,_a4=symbol4,_b4){constructor({message=`Rate limit exceeded`,statusCode=429,cause}={}){super({message,statusCode,cause}),this[_a4]=!0,this.name=name3,this.type=`rate_limit_exceeded`}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol4 in error$3}},name4=`GatewayModelNotFoundError`,marker5=`vercel.ai.gateway.error.${name4}`,symbol5=Symbol.for(marker5),modelNotFoundParamSchema=lazyValidator(()=>zodSchema(z$2.object({modelId:z$2.string()}))),_a5,_b5,GatewayModelNotFoundError=class extends (_b5=GatewayError,_a5=symbol5,_b5){constructor({message=`Model not found`,statusCode=404,modelId,cause}={}){super({message,statusCode,cause}),this[_a5]=!0,this.name=name4,this.type=`model_not_found`,this.modelId=modelId}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol5 in error$3}},name5=`GatewayInternalServerError`,marker6=`vercel.ai.gateway.error.${name5}`,symbol6=Symbol.for(marker6),_a6,_b6,GatewayInternalServerError=class extends (_b6=GatewayError,_a6=symbol6,_b6){constructor({message=`Internal server error`,statusCode=500,cause}={}){super({message,statusCode,cause}),this[_a6]=!0,this.name=name5,this.type=`internal_server_error`}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol6 in error$3}},name6=`GatewayResponseError`,marker7=`vercel.ai.gateway.error.${name6}`,symbol7=Symbol.for(marker7),_a7,_b7,GatewayResponseError=class extends (_b7=GatewayError,_a7=symbol7,_b7){constructor({message=`Invalid response from Gateway`,statusCode=502,response,validationError,cause}={}){super({message,statusCode,cause}),this[_a7]=!0,this.name=name6,this.type=`response_error`,this.response=response,this.validationError=validationError}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol7 in error$3}};async function createGatewayErrorFromResponse({response,statusCode,defaultMessage=`Gateway request failed`,cause,authMethod}){let parseResult=await safeValidateTypes({value:response,schema:gatewayErrorResponseSchema});if(!parseResult.success)return new GatewayResponseError({message:`Invalid error response format: ${defaultMessage}`,statusCode,response,validationError:parseResult.error,cause});let validatedResponse=parseResult.value,errorType=validatedResponse.error.type,message=validatedResponse.error.message;switch(errorType){case`authentication_error`:return GatewayAuthenticationError.createContextualError({apiKeyProvided:authMethod===`api-key`,oidcTokenProvided:authMethod===`oidc`,statusCode,cause});case`invalid_request_error`:return new GatewayInvalidRequestError({message,statusCode,cause});case`rate_limit_exceeded`:return new GatewayRateLimitError({message,statusCode,cause});case`model_not_found`:{let modelResult=await safeValidateTypes({value:validatedResponse.error.param,schema:modelNotFoundParamSchema});return new GatewayModelNotFoundError({message,statusCode,modelId:modelResult.success?modelResult.value.modelId:void 0,cause})}case`internal_server_error`:return new GatewayInternalServerError({message,statusCode,cause});default:return new GatewayInternalServerError({message,statusCode,cause})}}var gatewayErrorResponseSchema=lazyValidator(()=>zodSchema(z$2.object({error:z$2.object({message:z$2.string(),type:z$2.string().nullish(),param:z$2.unknown().nullish(),code:z$2.union([z$2.string(),z$2.number()]).nullish()})})));function asGatewayError(error$3,authMethod){var _a8;return GatewayError.isInstance(error$3)?error$3:APICallError.isInstance(error$3)?createGatewayErrorFromResponse({response:extractApiCallResponse(error$3),statusCode:error$3.statusCode??500,defaultMessage:`Gateway request failed`,cause:error$3,authMethod}):createGatewayErrorFromResponse({response:{},statusCode:500,defaultMessage:error$3 instanceof Error?`Gateway request failed: ${error$3.message}`:`Unknown Gateway error`,cause:error$3,authMethod})}function extractApiCallResponse(error$3){if(error$3.data!==void 0)return error$3.data;if(error$3.responseBody!=null)try{return JSON.parse(error$3.responseBody)}catch{return error$3.responseBody}return{}}var GATEWAY_AUTH_METHOD_HEADER=`ai-gateway-auth-method`;async function parseAuthMethod(headers){let result=await safeValidateTypes({value:headers[GATEWAY_AUTH_METHOD_HEADER],schema:gatewayAuthMethodSchema});return result.success?result.value:void 0}var gatewayAuthMethodSchema=lazyValidator(()=>zodSchema(z$2.union([z$2.literal(`api-key`),z$2.literal(`oidc`)]))),GatewayFetchMetadata=class{constructor(config){this.config=config}async getAvailableModels(){try{let{value}=await getFromApi({url:`${this.config.baseURL}/config`,headers:await resolve$10(this.config.headers()),successfulResponseHandler:createJsonResponseHandler(gatewayAvailableModelsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),fetch:this.config.fetch});return value}catch(error$3){throw await asGatewayError(error$3)}}async getCredits(){try{let baseUrl=new URL(this.config.baseURL),{value}=await getFromApi({url:`${baseUrl.origin}/v1/credits`,headers:await resolve$10(this.config.headers()),successfulResponseHandler:createJsonResponseHandler(gatewayCreditsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),fetch:this.config.fetch});return value}catch(error$3){throw await asGatewayError(error$3)}}},gatewayAvailableModelsResponseSchema=lazyValidator(()=>zodSchema(z$2.object({models:z$2.array(z$2.object({id:z$2.string(),name:z$2.string(),description:z$2.string().nullish(),pricing:z$2.object({input:z$2.string(),output:z$2.string(),input_cache_read:z$2.string().nullish(),input_cache_write:z$2.string().nullish()}).transform(({input,output,input_cache_read,input_cache_write})=>({input,output,...input_cache_read?{cachedInputTokens:input_cache_read}:{},...input_cache_write?{cacheCreationInputTokens:input_cache_write}:{}})).nullish(),specification:z$2.object({specificationVersion:z$2.literal(`v2`),provider:z$2.string(),modelId:z$2.string()}),modelType:z$2.enum([`language`,`embedding`,`image`]).nullish()}))}))),gatewayCreditsResponseSchema=lazyValidator(()=>zodSchema(z$2.object({balance:z$2.string(),total_used:z$2.string()}).transform(({balance,total_used})=>({balance,totalUsed:total_used})))),GatewayLanguageModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`,this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(options$1){let{abortSignal:_abortSignal,...optionsWithoutSignal}=options$1;return{args:this.maybeEncodeFileParts(optionsWithoutSignal),warnings:[]}}async doGenerate(options$1){let{args,warnings}=await this.getArgs(options$1),{abortSignal}=options$1,resolvedHeaders=await resolve$10(this.config.headers());try{let{responseHeaders,value:responseBody,rawValue:rawResponse}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(resolvedHeaders,options$1.headers,this.getModelConfigHeaders(this.modelId,!1),await resolve$10(this.config.o11yHeaders)),body:args,successfulResponseHandler:createJsonResponseHandler(z$2.any()),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),...abortSignal&&{abortSignal},fetch:this.config.fetch});return{...responseBody,request:{body:args},response:{headers:responseHeaders,body:rawResponse},warnings}}catch(error$3){throw await asGatewayError(error$3,await parseAuthMethod(resolvedHeaders))}}async doStream(options$1){let{args,warnings}=await this.getArgs(options$1),{abortSignal}=options$1,resolvedHeaders=await resolve$10(this.config.headers());try{let{value:response,responseHeaders}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(resolvedHeaders,options$1.headers,this.getModelConfigHeaders(this.modelId,!0),await resolve$10(this.config.o11yHeaders)),body:args,successfulResponseHandler:createEventSourceResponseHandler(z$2.any()),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),...abortSignal&&{abortSignal},fetch:this.config.fetch});return{stream:response.pipeThrough(new TransformStream({start(controller){warnings.length>0&&controller.enqueue({type:`stream-start`,warnings})},transform(chunk$1,controller){if(chunk$1.success){let streamPart=chunk$1.value;if(streamPart.type===`raw`&&!options$1.includeRawChunks)return;streamPart.type===`response-metadata`&&streamPart.timestamp&&typeof streamPart.timestamp==`string`&&(streamPart.timestamp=new Date(streamPart.timestamp)),controller.enqueue(streamPart)}else controller.error(chunk$1.error)}})),request:{body:args},response:{headers:responseHeaders}}}catch(error$3){throw await asGatewayError(error$3,await parseAuthMethod(resolvedHeaders))}}isFilePart(part){return part&&typeof part==`object`&&`type`in part&&part.type===`file`}maybeEncodeFileParts(options$1){for(let message of options$1.prompt)for(let part of message.content)if(this.isFilePart(part)){let filePart=part;if(filePart.data instanceof Uint8Array){let buffer$2=Uint8Array.from(filePart.data),base64Data=Buffer.from(buffer$2).toString(`base64`);filePart.data=new URL(`data:${filePart.mediaType||`application/octet-stream`};base64,${base64Data}`)}}return options$1}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(modelId,streaming){return{"ai-language-model-specification-version":`2`,"ai-language-model-id":modelId,"ai-language-model-streaming":String(streaming)}}},GatewayEmbeddingModel=class{constructor(modelId,config){this.modelId=modelId,this.config=config,this.specificationVersion=`v2`,this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values,headers,abortSignal,providerOptions}){var _a8;let resolvedHeaders=await resolve$10(this.config.headers());try{let{responseHeaders,value:responseBody,rawValue}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(resolvedHeaders,headers??{},this.getModelConfigHeaders(),await resolve$10(this.config.o11yHeaders)),body:{input:values.length===1?values[0]:values,...providerOptions?{providerOptions}:{}},successfulResponseHandler:createJsonResponseHandler(gatewayEmbeddingResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$2.any(),errorToMessage:data$2=>data$2}),...abortSignal&&{abortSignal},fetch:this.config.fetch});return{embeddings:responseBody.embeddings,usage:responseBody.usage??void 0,providerMetadata:responseBody.providerMetadata,response:{headers:responseHeaders,body:rawValue}}}catch(error$3){throw await asGatewayError(error$3,await parseAuthMethod(resolvedHeaders))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":`2`,"ai-model-id":this.modelId}}},gatewayEmbeddingResponseSchema=lazyValidator(()=>zodSchema(z$2.object({embeddings:z$2.array(z$2.array(z$2.number())),usage:z$2.object({tokens:z$2.number()}).nullish(),providerMetadata:z$2.record(z$2.string(),z$2.record(z$2.string(),z$2.unknown())).optional()})));async function getVercelRequestId(){var _a8;return(0,import_dist$7.getContext)().headers?.[`x-vercel-id`]}var VERSION$11=`2.0.0`,AI_GATEWAY_PROTOCOL_VERSION=`0.0.1`;function createGatewayProvider(options$1={}){var _a8,_b8;let pendingMetadata=null,metadataCache=null,cacheRefreshMillis=options$1.metadataCacheRefreshMillis??1e3*60*5,lastFetchTime=0,baseURL=withoutTrailingSlash(options$1.baseURL)??`https://ai-gateway.vercel.sh/v1/ai`,getHeaders$1=async()=>{let auth$2=await getGatewayAuthToken(options$1);if(auth$2)return withUserAgentSuffix({Authorization:`Bearer ${auth$2.token}`,"ai-gateway-protocol-version":AI_GATEWAY_PROTOCOL_VERSION,[GATEWAY_AUTH_METHOD_HEADER]:auth$2.authMethod,...options$1.headers},`ai-sdk/gateway/${VERSION$11}`);throw GatewayAuthenticationError.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401})},createO11yHeaders=()=>{let deploymentId=loadOptionalSetting({settingValue:void 0,environmentVariableName:`VERCEL_DEPLOYMENT_ID`}),environment=loadOptionalSetting({settingValue:void 0,environmentVariableName:`VERCEL_ENV`}),region=loadOptionalSetting({settingValue:void 0,environmentVariableName:`VERCEL_REGION`});return async()=>{let requestId=await getVercelRequestId();return{...deploymentId&&{"ai-o11y-deployment-id":deploymentId},...environment&&{"ai-o11y-environment":environment},...region&&{"ai-o11y-region":region},...requestId&&{"ai-o11y-request-id":requestId}}}},createLanguageModel=modelId=>new GatewayLanguageModel(modelId,{provider:`gateway`,baseURL,headers:getHeaders$1,fetch:options$1.fetch,o11yHeaders:createO11yHeaders()}),getAvailableModels=async()=>{var _a9,_b9,_c$2;let now=((_a9=options$1._internal)?.currentDate)?.call(_a9).getTime()??Date.now();return(!pendingMetadata||now-lastFetchTime>cacheRefreshMillis)&&(lastFetchTime=now,pendingMetadata=new GatewayFetchMetadata({baseURL,headers:getHeaders$1,fetch:options$1.fetch}).getAvailableModels().then(metadata=>(metadataCache=metadata,metadata)).catch(async error$3=>{throw await asGatewayError(error$3,await parseAuthMethod(await getHeaders$1()))})),metadataCache?Promise.resolve(metadataCache):pendingMetadata},getCredits=async()=>new GatewayFetchMetadata({baseURL,headers:getHeaders$1,fetch:options$1.fetch}).getCredits().catch(async error$3=>{throw await asGatewayError(error$3,await parseAuthMethod(await getHeaders$1()))}),provider=function(modelId){if(new.target)throw Error(`The Gateway Provider model function cannot be called with the new keyword.`);return createLanguageModel(modelId)};return provider.getAvailableModels=getAvailableModels,provider.getCredits=getCredits,provider.imageModel=modelId=>{throw new NoSuchModelError({modelId,modelType:`imageModel`})},provider.languageModel=createLanguageModel,provider.textEmbeddingModel=modelId=>new GatewayEmbeddingModel(modelId,{provider:`gateway`,baseURL,headers:getHeaders$1,fetch:options$1.fetch,o11yHeaders:createO11yHeaders()}),provider}var gateway=createGatewayProvider();async function getGatewayAuthToken(options$1){let apiKey=loadOptionalSetting({settingValue:options$1.apiKey,environmentVariableName:`AI_GATEWAY_API_KEY`});if(apiKey)return{token:apiKey,authMethod:`api-key`};try{return{token:await(0,import_dist$8.getVercelOidcToken)(),authMethod:`oidc`}}catch{return null}}var Diff$1=class{diff(oldStr,newStr,options$1={}){let callback$1;typeof options$1==`function`?(callback$1=options$1,options$1={}):`callback`in options$1&&(callback$1=options$1.callback);let oldString=this.castInput(oldStr,options$1),newString=this.castInput(newStr,options$1),oldTokens=this.removeEmpty(this.tokenize(oldString,options$1)),newTokens=this.removeEmpty(this.tokenize(newString,options$1));return this.diffWithOptionsObj(oldTokens,newTokens,options$1,callback$1)}diffWithOptionsObj(oldTokens,newTokens,options$1,callback$1){var _a$10;let done=value=>{if(value=this.postProcess(value,options$1),callback$1){setTimeout(function(){callback$1(value)},0);return}else return value},newLen=newTokens.length,oldLen=oldTokens.length,editLength=1,maxEditLength=newLen+oldLen;options$1.maxEditLength!=null&&(maxEditLength=Math.min(maxEditLength,options$1.maxEditLength));let maxExecutionTime=options$1.timeout??1/0,abortAfterTimestamp=Date.now()+maxExecutionTime,bestPath=[{oldPos:-1,lastComponent:void 0}],newPos=this.extractCommon(bestPath[0],newTokens,oldTokens,0,options$1);if(bestPath[0].oldPos+1>=oldLen&&newPos+1>=newLen)return done(this.buildValues(bestPath[0].lastComponent,newTokens,oldTokens));let minDiagonalToConsider=-1/0,maxDiagonalToConsider=1/0,execEditLength=()=>{for(let diagonalPath=Math.max(minDiagonalToConsider,-editLength);diagonalPath<=Math.min(maxDiagonalToConsider,editLength);diagonalPath+=2){let basePath,removePath=bestPath[diagonalPath-1],addPath=bestPath[diagonalPath+1];removePath&&(bestPath[diagonalPath-1]=void 0);let canAdd=!1;if(addPath){let addPathNewPos=addPath.oldPos-diagonalPath;canAdd=addPath&&0<=addPathNewPos&&addPathNewPos<newLen}let canRemove=removePath&&removePath.oldPos+1<oldLen;if(!canAdd&&!canRemove){bestPath[diagonalPath]=void 0;continue}if(basePath=!canRemove||canAdd&&removePath.oldPos<addPath.oldPos?this.addToPath(addPath,!0,!1,0,options$1):this.addToPath(removePath,!1,!0,1,options$1),newPos=this.extractCommon(basePath,newTokens,oldTokens,diagonalPath,options$1),basePath.oldPos+1>=oldLen&&newPos+1>=newLen)return done(this.buildValues(basePath.lastComponent,newTokens,oldTokens))||!0;bestPath[diagonalPath]=basePath,basePath.oldPos+1>=oldLen&&(maxDiagonalToConsider=Math.min(maxDiagonalToConsider,diagonalPath-1)),newPos+1>=newLen&&(minDiagonalToConsider=Math.max(minDiagonalToConsider,diagonalPath+1))}editLength++};if(callback$1)(function exec$3(){setTimeout(function(){if(editLength>maxEditLength||Date.now()>abortAfterTimestamp)return callback$1(void 0);execEditLength()||exec$3()},0)})();else for(;editLength<=maxEditLength&&Date.now()<=abortAfterTimestamp;){let ret=execEditLength();if(ret)return ret}}addToPath(path$38,added,removed,oldPosInc,options$1){let last$1=path$38.lastComponent;return last$1&&!options$1.oneChangePerToken&&last$1.added===added&&last$1.removed===removed?{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:last$1.count+1,added,removed,previousComponent:last$1.previousComponent}}:{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:1,added,removed,previousComponent:last$1}}}extractCommon(basePath,newTokens,oldTokens,diagonalPath,options$1){let newLen=newTokens.length,oldLen=oldTokens.length,oldPos=basePath.oldPos,newPos=oldPos-diagonalPath,commonCount=0;for(;newPos+1<newLen&&oldPos+1<oldLen&&this.equals(oldTokens[oldPos+1],newTokens[newPos+1],options$1);)newPos++,oldPos++,commonCount++,options$1.oneChangePerToken&&(basePath.lastComponent={count:1,previousComponent:basePath.lastComponent,added:!1,removed:!1});return commonCount&&!options$1.oneChangePerToken&&(basePath.lastComponent={count:commonCount,previousComponent:basePath.lastComponent,added:!1,removed:!1}),basePath.oldPos=oldPos,newPos}equals(left$2,right$2,options$1){return options$1.comparator?options$1.comparator(left$2,right$2):left$2===right$2||!!options$1.ignoreCase&&left$2.toLowerCase()===right$2.toLowerCase()}removeEmpty(array){let ret=[];for(let i$7=0;i$7<array.length;i$7++)array[i$7]&&ret.push(array[i$7]);return ret}castInput(value,options$1){return value}tokenize(value,options$1){return Array.from(value)}join(chars){return chars.join(``)}postProcess(changeObjects,options$1){return changeObjects}get useLongestToken(){return!1}buildValues(lastComponent,newTokens,oldTokens){let components=[],nextComponent;for(;lastComponent;)components.push(lastComponent),nextComponent=lastComponent.previousComponent,delete lastComponent.previousComponent,lastComponent=nextComponent;components.reverse();let componentLen=components.length,componentPos=0,newPos=0,oldPos=0;for(;componentPos<componentLen;componentPos++){let component=components[componentPos];if(component.removed)component.value=this.join(oldTokens.slice(oldPos,oldPos+component.count)),oldPos+=component.count;else{if(!component.added&&this.useLongestToken){let value=newTokens.slice(newPos,newPos+component.count);value=value.map(function(value$1,i$7){let oldValue=oldTokens[oldPos+i$7];return oldValue.length>value$1.length?oldValue:value$1}),component.value=this.join(value)}else component.value=this.join(newTokens.slice(newPos,newPos+component.count));newPos+=component.count,component.added||(oldPos+=component.count)}}return components}};new class extends Diff$1{};function longestCommonPrefix$1(str1,str2){let i$7;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[i$7]!=str2[i$7])return str1.slice(0,i$7);return str1.slice(0,i$7)}function longestCommonSuffix$1(str1,str2){let i$7;if(!str1||!str2||str1[str1.length-1]!=str2[str2.length-1])return``;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[str1.length-(i$7+1)]!=str2[str2.length-(i$7+1)])return str1.slice(-i$7);return str1.slice(-i$7)}function replacePrefix$1(string,oldPrefix,newPrefix){if(string.slice(0,oldPrefix.length)!=oldPrefix)throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);return newPrefix+string.slice(oldPrefix.length)}function replaceSuffix$1(string,oldSuffix,newSuffix){if(!oldSuffix)return string+newSuffix;if(string.slice(-oldSuffix.length)!=oldSuffix)throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);return string.slice(0,-oldSuffix.length)+newSuffix}function removePrefix$1(string,oldPrefix){return replacePrefix$1(string,oldPrefix,``)}function removeSuffix$1(string,oldSuffix){return replaceSuffix$1(string,oldSuffix,``)}function maximumOverlap$1(string1$1,string2$1){return string2$1.slice(0,overlapCount$1(string1$1,string2$1))}function overlapCount$1(a$2,b$2){let startA=0;a$2.length>b$2.length&&(startA=a$2.length-b$2.length);let endB=b$2.length;a$2.length<b$2.length&&(endB=a$2.length);let map$2=Array(endB),k=0;map$2[0]=0;for(let j$2=1;j$2<endB;j$2++){for(b$2[j$2]==b$2[k]?map$2[j$2]=map$2[k]:map$2[j$2]=k;k>0&&b$2[j$2]!=b$2[k];)k=map$2[k];b$2[j$2]==b$2[k]&&k++}k=0;for(let i$7=startA;i$7<a$2.length;i$7++){for(;k>0&&a$2[i$7]!=b$2[k];)k=map$2[k];a$2[i$7]==b$2[k]&&k++}return k}function trailingWs(string){let i$7;for(i$7=string.length-1;i$7>=0&&string[i$7].match(/\s/);i$7--);return string.substring(i$7+1)}function leadingWs(string){let match$1=string.match(/^\s*/);return match$1?match$1[0]:``}const extendedWordChars$1=`a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,tokenizeIncludingWhitespace$1=RegExp(`[${extendedWordChars$1}]+|\\s+|[^${extendedWordChars$1}]`,`ug`);new class extends Diff$1{equals(left$2,right$2,options$1){return options$1.ignoreCase&&(left$2=left$2.toLowerCase(),right$2=right$2.toLowerCase()),left$2.trim()===right$2.trim()}tokenize(value,options$1={}){let parts;if(options$1.intlSegmenter){let segmenter$1=options$1.intlSegmenter;if(segmenter$1.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);parts=Array.from(segmenter$1.segment(value),segment=>segment.segment)}else parts=value.match(tokenizeIncludingWhitespace$1)||[];let tokens=[],prevPart=null;return parts.forEach(part=>{/\s/.test(part)?prevPart==null?tokens.push(part):tokens.push(tokens.pop()+part):prevPart!=null&&/\s/.test(prevPart)?tokens[tokens.length-1]==prevPart?tokens.push(tokens.pop()+part):tokens.push(prevPart+part):tokens.push(part),prevPart=part}),tokens}join(tokens){return tokens.map((token$1,i$7)=>i$7==0?token$1:token$1.replace(/^\s+/,``)).join(``)}postProcess(changes,options$1){if(!changes||options$1.oneChangePerToken)return changes;let lastKeep=null,insertion=null,deletion=null;return changes.forEach(change=>{change.added?insertion=change:change.removed?deletion=change:((insertion||deletion)&&dedupeWhitespaceInChangeObjects$1(lastKeep,deletion,insertion,change),lastKeep=change,insertion=null,deletion=null)}),(insertion||deletion)&&dedupeWhitespaceInChangeObjects$1(lastKeep,deletion,insertion,null),changes}};function dedupeWhitespaceInChangeObjects$1(startKeep,deletion,insertion,endKeep){if(deletion&&insertion){let oldWsPrefix=leadingWs(deletion.value),oldWsSuffix=trailingWs(deletion.value),newWsPrefix=leadingWs(insertion.value),newWsSuffix=trailingWs(insertion.value);if(startKeep){let commonWsPrefix=longestCommonPrefix$1(oldWsPrefix,newWsPrefix);startKeep.value=replaceSuffix$1(startKeep.value,newWsPrefix,commonWsPrefix),deletion.value=removePrefix$1(deletion.value,commonWsPrefix),insertion.value=removePrefix$1(insertion.value,commonWsPrefix)}if(endKeep){let commonWsSuffix=longestCommonSuffix$1(oldWsSuffix,newWsSuffix);endKeep.value=replacePrefix$1(endKeep.value,newWsSuffix,commonWsSuffix),deletion.value=removeSuffix$1(deletion.value,commonWsSuffix),insertion.value=removeSuffix$1(insertion.value,commonWsSuffix)}}else if(insertion){if(startKeep){let ws$2=leadingWs(insertion.value);insertion.value=insertion.value.substring(ws$2.length)}if(endKeep){let ws$2=leadingWs(endKeep.value);endKeep.value=endKeep.value.substring(ws$2.length)}}else if(startKeep&&endKeep){let newWsFull=leadingWs(endKeep.value),delWsStart=leadingWs(deletion.value),delWsEnd=trailingWs(deletion.value),newWsStart=longestCommonPrefix$1(newWsFull,delWsStart);deletion.value=removePrefix$1(deletion.value,newWsStart);let newWsEnd=longestCommonSuffix$1(removePrefix$1(newWsFull,newWsStart),delWsEnd);deletion.value=removeSuffix$1(deletion.value,newWsEnd),endKeep.value=replacePrefix$1(endKeep.value,newWsFull,newWsEnd),startKeep.value=replaceSuffix$1(startKeep.value,newWsFull,newWsFull.slice(0,newWsFull.length-newWsEnd.length))}else if(endKeep){let endKeepWsPrefix=leadingWs(endKeep.value),deletionWsSuffix=trailingWs(deletion.value),overlap=maximumOverlap$1(deletionWsSuffix,endKeepWsPrefix);deletion.value=removeSuffix$1(deletion.value,overlap)}else if(startKeep){let startKeepWsSuffix=trailingWs(startKeep.value),deletionWsPrefix=leadingWs(deletion.value),overlap=maximumOverlap$1(startKeepWsSuffix,deletionWsPrefix);deletion.value=removePrefix$1(deletion.value,overlap)}}new class extends Diff$1{tokenize(value){let regex$3=RegExp(`(\\r?\\n)|[${extendedWordChars$1}]+|[^\\S\\n\\r]+|[^${extendedWordChars$1}]`,`ug`);return value.match(regex$3)||[]}};const lineDiff$1=new class extends Diff$1{constructor(){super(...arguments),this.tokenize=tokenize$2}equals(left$2,right$2,options$1){return options$1.ignoreWhitespace?((!options$1.newlineIsToken||!left$2.includes(`
|
|
273
273
|
`))&&(left$2=left$2.trim()),(!options$1.newlineIsToken||!right$2.includes(`
|
|
274
274
|
`))&&(right$2=right$2.trim())):options$1.ignoreNewlineAtEof&&!options$1.newlineIsToken&&(left$2.endsWith(`
|
|
275
275
|
`)&&(left$2=left$2.slice(0,-1)),right$2.endsWith(`
|
|
@@ -463,7 +463,7 @@ Slack:
|
|
|
463
463
|
1. *ALWAYS* use the \`typecheck_agent\` tool to check for type errors before making changes. NEVER invoke \`tsc\` directly.
|
|
464
464
|
2. Use the \`message_user_agent\` tool to test the agent after you make changes.
|
|
465
465
|
</agent_development>
|
|
466
|
-
`});let agentsMDContent=templates.scratch[`AGENTS.md`];try{agentsMDContent=await readFile(join$1(options$1.directory,`AGENTS.md`),`utf-8`)}catch{}return converted.unshift({role:`system`,content:agentsMDContent}),streamText({model:getEditModeModelOrThrow(options$1.env),messages:converted,maxOutputTokens:64e3,tools:tools$2,abortSignal,experimental_repairToolCall:({tools:tools$3,toolCall})=>{throw Object.keys(tools$3).includes(toolCall.toolName)?Error(`You have this tool, but you used an invalid input.`):Error(`Invalid tool call. Tool "${toolCall.toolName}" is not available to the EDIT AGENT.`)}})}),{agent,setUserAgentUrl:url$3=>{userAgentUrl=url$3},cleanup:()=>{tsserver&&=(tsserver.close(),void 0)}}}function getEditModeModel(env$8){if(env$8.ANTHROPIC_API_KEY)return createAnthropic({apiKey:env$8.ANTHROPIC_API_KEY}).chat(`claude-sonnet-4-5`);if(env$8.OPENAI_API_KEY)return createOpenAI({apiKey:env$8.OPENAI_API_KEY}).chat(`gpt-5`);if(env$8.AI_GATEWAY_API_KEY)return createGatewayProvider({apiKey:env$8.AI_GATEWAY_API_KEY})(`anthropic/claude-sonnet-4-5`)}function getEditModeModelOrThrow(env$8){let model=getEditModeModel(env$8);if(!model)throw Error(`No API key available for edit mode`);return model}function useEditAgent(options$1){let[client,setClient]=useState(void 0),[error$3,setError]=useState(void 0),[missingApiKey,setMissingApiKey]=useState(!1),editAgentRef=useRef(void 0);return useEffect(()=>{let controller=new AbortController,isCleanup=!1;if(setError(void 0),setClient(void 0),!getEditModeModel(options$1.env)){setMissingApiKey(!0);return}return setMissingApiKey(!1),(async()=>{editAgentRef.current=createEditAgent({directory:options$1.directory,env:options$1.env,getDevhookUrl:options$1.getDevhookUrl});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{}editAgentRef.current?.cleanup()});let editClient=new Client$3({baseUrl:`http://127.0.0.1:${port$1}`});for(;!controller.signal.aborted;){try{await editClient.health();break}catch{}await new Promise(resolve$11=>setTimeout(resolve$11,100))}if(controller.signal.aborted)throw controller.signal.reason;setClient(editClient)})().catch(err=>{isCleanup||setError(err instanceof Error?err:Error(String(err)))}),()=>{isCleanup=!0,controller.abort()}},[options$1.directory,options$1.apiServerUrl,options$1.env,options$1.getDevhookUrl]),useMemo(()=>({client,error:error$3,missingApiKey,setUserAgentUrl:url$3=>{editAgentRef.current?.setUserAgentUrl(url$3)}}),[client,error$3,missingApiKey])}async function getRandomPort(){let server=createServer();return new Promise((resolve$11,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$11(port$1)}).on(`error`,err=>{reject(err)})}).finally(()=>{server.close()})}function useAuth(options$1={}){let{autoCheck=!0,onAuthChange,onLoginUrl,testAuthPath}=options$1,[user,setUser]=useState(),[token$1,setToken]=useState(()=>getAuthToken(testAuthPath)),[error$3,setError]=useState(),onAuthChangeRef=useRef(onAuthChange),onLoginUrlRef=useRef(onLoginUrl);useEffect(()=>{onAuthChangeRef.current=onAuthChange,onLoginUrlRef.current=onLoginUrl},[onAuthChange,onLoginUrl]);let checkAuth=useCallback(async()=>{setError(void 0);try{let currentToken=getAuthToken(testAuthPath);if(setToken(currentToken),!currentToken){setUser(void 0),onAuthChangeRef.current?.(void 0);return}let client=new Client$2({baseURL:`https://blink.so`});client.authToken=currentToken;let userInfo={email:(await client.users.me()).email};setUser(userInfo),onAuthChangeRef.current?.(userInfo)}catch(err){setUser(void 0),setError(err instanceof Error?err.message:String(err)),onAuthChangeRef.current?.(void 0)}},[testAuthPath]),login=useCallback(async()=>{setError(void 0);try{let client=new Client$2,newToken=await client.auth.token((url$3,id)=>{onLoginUrlRef.current?.(url$3,id)});client.authToken=newToken;let userData=await client.users.me();setAuthToken(newToken,testAuthPath),setToken(newToken);let userInfo={email:userData.email};return setUser(userInfo),onAuthChangeRef.current?.(userInfo),userInfo}catch(err){let errorMessage=err instanceof Error?err.message:String(err);throw setError(errorMessage),err}},[testAuthPath]),logout=useCallback(()=>{deleteAuthToken(testAuthPath),setToken(void 0),setUser(void 0),setError(void 0),onAuthChangeRef.current?.(void 0)},[testAuthPath]);return useEffect(()=>{autoCheck&&checkAuth()},[autoCheck,checkAuth]),{user,token:token$1,error:error$3,login,logout}}function useDevMode(options$1){let{directory}=options$1,[approvalHandled,setApprovalHandled]=useState(),[autoApprove,setAutoApprove]=useState(!1),[mode,setModeState]=useState(`run`),modeRef=useRef(`run`);useEffect(()=>{modeRef.current=mode},[mode]);let setMode=useCallback(newMode=>{setModeState(newMode),options$1.onModeChange?.(newMode),setApprovalHandled(void 0)},[options$1.onModeChange]),toggleMode=useCallback(()=>{setMode(mode===`run`?`edit`:`run`)},[mode,setMode]),{error:buildError,status:buildStatus,result:buildResult,entry:entrypoint}=useBundler({directory,onBuildStart:options$1.onBuildStart,onBuildSuccess:options$1.onBuildSuccess,onBuildError:options$1.onBuildError}),auth$2=useAuth({autoCheck:!0,onAuthChange:options$1.onAuthChange,onLoginUrl:options$1.onLoginUrl}),dotenv=useDotenv(directory),env$8=useMemo(()=>{let blinkToken=auth$2.token;return blinkToken?{...dotenv,BLINK_TOKEN:blinkToken}:dotenv},[dotenv,auth$2.token]),lastReportedKeys=useRef(void 0);useEffect(()=>{let keys=Object.keys(env$8);if(keys.length===lastReportedKeys.current||lastReportedKeys.current===void 0){lastReportedKeys.current=keys.length;return}lastReportedKeys.current=keys.length,options$1.onEnvLoaded?.(keys)},[env$8,options$1.onEnvLoaded]);let runAgentRef=useRef(void 0),server=useMemo(()=>createLocalServer({port:0,dataDirectory:join$1(directory,`.blink`),getAgent:()=>runAgentRef.current}),[directory]),{agent,logs:logs$1,error:agentError,capabilities}=useAgent({buildResult,env:env$8,apiServerUrl:server.url}),{client:editAgent,error:editAgentError,missingApiKey:editModeMissingApiKey,setUserAgentUrl}=useEditAgent({directory,apiServerUrl:server.url,env:env$8,getDevhookUrl:useCallback(()=>{let id=getDevhookID(directory)??createDevhookID(directory);return setDevhookID(id),`https://${id}.blink.host`},[directory])}),[chatId,setChatId]=useState(`00000000-0000-0000-0000-000000000000`);useEffect(()=>{runAgentRef.current=agent},[agent]),useEffect(()=>{agent&&setUserAgentUrl(agent.baseUrl),(mode===`run`&&!agent||mode===`edit`&&!editAgent)&&server.getChatManager(chatId)?.stopStreaming()},[agent,editAgent,mode,chatId,server,setUserAgentUrl]);let selectedOptionsRef=useRef(void 0),chat$1=useChat({chatId,agent:mode===`run`?agent:editAgent,chatsDirectory:server.chatsDirectory,serializeMessage:msg=>{let metadata=msg.role===`user`&&selectedOptionsRef.current?{...typeof msg.metadata==`object`&&msg.metadata!==null?msg.metadata:{},options:selectedOptionsRef.current}:msg.metadata;return typeof metadata==`object`&&metadata&&(metadata.__blink_mode=modeRef.current),{id:msg.id??crypto.randomUUID(),created_at:new Date().toISOString(),role:msg.role,parts:msg.parts,mode:modeRef.current,metadata}},filterMessages:msg=>modeRef.current===`edit`?!0:!(isStoredMessageMetadata(msg.metadata)||msg.mode===`edit`)}),lastLogsLength=useRef(0);useEffect(()=>{if(logs$1.length===lastLogsLength.current)return;let currentLength=lastLogsLength.current;for(let log$5 of logs$1.slice(currentLength))options$1.onAgentLog?.(log$5);lastLogsLength.current=logs$1.length},[logs$1,options$1.onAgentLog,chat$1.upsertMessage]);let[chatIds,setChatIds]=useState([]);useEffect(()=>{server.listChats().then(entries$1=>{setChatIds(entries$1.map(e$1=>e$1.key))})},[server]),useEffect(()=>{chatId&&!chatIds.includes(chatId)&&setChatIds(prev=>[...prev,chatId])},[chatId,chatIds]);let[devhookID,setDevhookID]=useState(()=>hasDevhook(directory)?getDevhookID(directory):createDevhookID(directory)),devhook=useDevhook({id:devhookID,directory,disabled:!capabilities?.request,onRequest:async request$2=>{if(!agent)throw Error(`No agent`);let requestURL=new URL(request$2.url),agentURL=new URL(agent.baseUrl);agentURL.pathname=requestURL.pathname,agentURL.search=requestURL.search;try{let response=await fetch(agentURL.toString(),{method:request$2.method,body:request$2.body,headers:request$2.headers,redirect:`manual`,signal:request$2.signal,duplex:`half`});return options$1.onDevhookRequest?.({method:request$2.method,path:requestURL.pathname,status:response.status}),response}catch(err){return console.error(`Error sending request to user's agent:`,err),new Response(`Internal server error`,{status:500})}}});useEffect(()=>{devhook.status!==`connected`||!devhook.url||options$1.onDevhookConnected?.(devhook.url)},[devhook.status,devhook.url]);let{schema:optionsSchema,options:selectedOptions,error:optionsError,setOption:setOption$1}=useOptions({agent:mode===`run`?agent:editAgent,capabilities,messages:chat$1.messages});useEffect(()=>{selectedOptionsRef.current=selectedOptions},[selectedOptions]);let errors=useMemo(()=>{let errorMap=new Map;return agentError&&mode===`run`&&errorMap.set(`agent`,agentError.message),editAgentError&&mode===`edit`&&errorMap.set(`editAgent`,`Edit agent error: ${editAgentError.message}`),chat$1.error&&buildStatus!==`building`&&errorMap.set(`chat`,`Chat error: ${chat$1.error}`),optionsError&&errorMap.set(`options`,`Options error: ${optionsError.message}`),errorMap},[agentError,editAgentError,chat$1.error,optionsError,mode,buildStatus]),prevErrorsRef=useRef(new Map);useEffect(()=>{let prev=prevErrorsRef.current,current=errors;for(let[key$1,error$3]of current.entries())prev.get(key$1)!==error$3&&options$1.onError?.(error$3);for(let key$1 of prev.keys())current.has(key$1);prevErrorsRef.current=new Map(current)},[errors,options$1.onError]);let needsApproval=useMemo(()=>{let lastMessage=[...chat$1.messages].reverse().find(message=>!(message.role!==`assistant`||message.metadata&&message.metadata.ephemeral));if(!lastMessage||approvalHandled===lastMessage.id)return;let parts=lastMessage.parts.filter(isToolOrDynamicToolUIPart);if(parts.length!==0&&parts.some(part=>isToolApprovalOutput(part.output)&&part.output.outcome===`pending`))return lastMessage},[chat$1.messages,approvalHandled]),handleApproval=useCallback(async(approved,enableAutoApprove)=>{if(!needsApproval)return;enableAutoApprove&&approved&&setAutoApprove(!0),setApprovalHandled(needsApproval.id);let messages$1=chat$1.messages;if(messages$1.length===0)return;let lastMsg=messages$1[messages$1.length-1];if(!lastMsg||lastMsg.role!==`assistant`||!Array.isArray(lastMsg.parts))return;let updatedParts=lastMsg.parts.map(part=>part.output&&isToolApprovalOutput(part.output)&&part.output.outcome===`pending`?{...part,output:{...part.output,outcome:approved?`approved`:`rejected`}}:part);await chat$1.upsertMessage({...lastMsg,parts:updatedParts}),await chat$1.start()},[needsApproval,chat$1]);useEffect(()=>{autoApprove&&needsApproval&&handleApproval(!0)},[autoApprove,needsApproval,handleApproval]);let newChat=useCallback(()=>{let id=crypto.randomUUID();setChatId(id),setChatIds(prev=>[...prev,id]),setApprovalHandled(void 0)},[]),switchChat=useCallback(id=>{setChatId(id),setApprovalHandled(void 0)},[]),approval=useMemo(()=>{if(needsApproval)return{message:needsApproval,approve:enableAutoApprove=>handleApproval(!0,enableAutoApprove),reject:()=>handleApproval(!1),autoApproveEnabled:autoApprove}},[needsApproval,handleApproval,autoApprove]),tokenUsage=useMemo(()=>{let messages$1=chat$1.messages;if(messages$1.length!==0)for(let i$7=messages$1.length-1;i$7>=0;i$7--){let msg=messages$1[i$7];if(!msg||msg.role!==`assistant`||!msg.metadata||typeof msg.metadata!=`object`||!(`totalUsage`in msg.metadata))continue;let totalUsage=msg.metadata.totalUsage;if(!(!totalUsage||typeof totalUsage!=`object`)&&!(!(`inputTokens`in totalUsage)||!(`outputTokens`in totalUsage)||!(`totalTokens`in totalUsage)))return{inputTokens:totalUsage.inputTokens,outputTokens:totalUsage.outputTokens,totalTokens:totalUsage.totalTokens,cachedInputTokens:totalUsage.cachedInputTokens}}},[chat$1.messages]),showWaitingPlaceholder=useMemo(()=>{if(chat$1.status!==`streaming`)return!1;if(!chat$1.streamingMessage)return!0;let toolParts=chat$1.streamingMessage.parts.filter(isToolOrDynamicToolUIPart);return toolParts.length>0&&toolParts.every(part=>part.state.startsWith(`output-`))},[chat$1.status,chat$1.streamingMessage]);return{mode,setMode,toggleMode,chat:chat$1,chats:chatIds,switchChat,newChat,build:{status:buildStatus,error:buildError,entrypoint},devhook:{connected:devhook.status===`connected`,url:devhook.status===`connected`?devhook.url:void 0},capabilities,options:{schema:optionsSchema,selected:selectedOptions,error:optionsError,setOption:setOption$1},approval,tokenUsage,auth:auth$2,server,showWaitingPlaceholder,editModeMissingApiKey}}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 G(l$1){O$1=l$1}var E$1={exec:()=>null};function h$1(l$1,e$1=``){let t$1=typeof l$1==`string`?l$1:l$1.source,n$2={replace:(r$2,i$7)=>{let s$3=typeof i$7==`string`?i$7:i$7.source;return s$3=s$3.replace(m.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={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$1(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$1(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$1(/^ {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$1(/^( {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$1(`^ {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$1(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(),K={blockquote:h$1(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,oe).getRegex(),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$1(`^ *([^\\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$1(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$1(`^ *(?: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$1(F).replace(`hr`,C).replace(`heading`,` *#{1,6} *[^
|
|
466
|
+
`});let agentsMDContent=templates.scratch[`AGENTS.md`];try{agentsMDContent=await readFile(join$1(options$1.directory,`AGENTS.md`),`utf-8`)}catch{}return converted.unshift({role:`system`,content:agentsMDContent}),streamText({model:getEditModeModelOrThrow(options$1.env),messages:converted,maxOutputTokens:64e3,tools:tools$2,abortSignal,experimental_repairToolCall:({tools:tools$3,toolCall})=>{throw Object.keys(tools$3).includes(toolCall.toolName)?Error(`You have this tool, but you used an invalid input.`):Error(`Invalid tool call. Tool "${toolCall.toolName}" is not available to the EDIT AGENT.`)}})}),{agent,setUserAgentUrl:url$3=>{userAgentUrl=url$3},cleanup:()=>{tsserver&&=(tsserver.close(),void 0)}}}function getEditModeModel(env$8){if(env$8.ANTHROPIC_API_KEY)return createAnthropic({apiKey:env$8.ANTHROPIC_API_KEY}).chat(`claude-sonnet-4-5`);if(env$8.OPENAI_API_KEY)return createOpenAI({apiKey:env$8.OPENAI_API_KEY}).chat(`gpt-5`);if(env$8.AI_GATEWAY_API_KEY)return createGatewayProvider({apiKey:env$8.AI_GATEWAY_API_KEY})(`anthropic/claude-sonnet-4-5`)}function getEditModeModelOrThrow(env$8){let model=getEditModeModel(env$8);if(!model)throw Error(`No API key available for edit mode`);return model}function useEditAgent(options$1){let[client,setClient]=useState(void 0),[error$3,setError]=useState(void 0),[missingApiKey,setMissingApiKey]=useState(!1),editAgentRef=useRef(void 0);return useEffect(()=>{let controller=new AbortController,isCleanup=!1;if(setError(void 0),setClient(void 0),!getEditModeModel(options$1.env)){setMissingApiKey(!0);return}return setMissingApiKey(!1),(async()=>{editAgentRef.current=createEditAgent({directory:options$1.directory,env:options$1.env,getDevhookUrl:options$1.getDevhookUrl});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{}editAgentRef.current?.cleanup()});let editClient=new Client$3({baseUrl:`http://127.0.0.1:${port$1}`});for(;!controller.signal.aborted;){try{await editClient.health();break}catch{}await new Promise(resolve$11=>setTimeout(resolve$11,100))}if(controller.signal.aborted)throw controller.signal.reason;setClient(editClient)})().catch(err=>{isCleanup||setError(err instanceof Error?err:Error(String(err)))}),()=>{isCleanup=!0,controller.abort()}},[options$1.directory,options$1.apiServerUrl,options$1.env,options$1.getDevhookUrl]),useMemo(()=>({client,error:error$3,missingApiKey,setUserAgentUrl:url$3=>{editAgentRef.current?.setUserAgentUrl(url$3)}}),[client,error$3,missingApiKey])}async function getRandomPort(){let server=createServer();return new Promise((resolve$11,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$11(port$1)}).on(`error`,err=>{reject(err)})}).finally(()=>{server.close()})}function useAuth(options$1={}){let{autoCheck=!0,onAuthChange,onLoginUrl,testAuthPath}=options$1,[user,setUser]=useState(),[token$1,setToken]=useState(()=>getAuthToken(testAuthPath)),[error$3,setError]=useState(),onAuthChangeRef=useRef(onAuthChange),onLoginUrlRef=useRef(onLoginUrl);useEffect(()=>{onAuthChangeRef.current=onAuthChange,onLoginUrlRef.current=onLoginUrl},[onAuthChange,onLoginUrl]);let checkAuth=useCallback(async()=>{setError(void 0);try{let currentToken=getAuthToken(testAuthPath);if(setToken(currentToken),!currentToken){setUser(void 0),onAuthChangeRef.current?.(void 0);return}let client=new Client$2({baseURL:`https://blink.so`});client.authToken=currentToken;let userInfo={email:(await client.users.me()).email};setUser(userInfo),onAuthChangeRef.current?.(userInfo)}catch(err){setUser(void 0),setError(err instanceof Error?err.message:String(err)),onAuthChangeRef.current?.(void 0)}},[testAuthPath]),login=useCallback(async()=>{setError(void 0);try{let client=new Client$2,newToken=await client.auth.token((url$3,id)=>{onLoginUrlRef.current?.(url$3,id)});client.authToken=newToken;let userData=await client.users.me();setAuthToken(newToken,testAuthPath),setToken(newToken);let userInfo={email:userData.email};return setUser(userInfo),onAuthChangeRef.current?.(userInfo),userInfo}catch(err){let errorMessage=err instanceof Error?err.message:String(err);throw setError(errorMessage),err}},[testAuthPath]),logout=useCallback(()=>{deleteAuthToken(testAuthPath),setToken(void 0),setUser(void 0),setError(void 0),onAuthChangeRef.current?.(void 0)},[testAuthPath]);return useEffect(()=>{autoCheck&&checkAuth()},[autoCheck,checkAuth]),{user,token:token$1,error:error$3,login,logout}}function useDevMode(options$1){let{directory}=options$1,[approvalHandled,setApprovalHandled]=useState(),[autoApprove,setAutoApprove]=useState(!1),[mode,setModeState]=useState(`run`),modeRef=useRef(`run`);useEffect(()=>{modeRef.current=mode},[mode]);let setMode=useCallback(newMode=>{setModeState(newMode),options$1.onModeChange?.(newMode),setApprovalHandled(void 0)},[options$1.onModeChange]),toggleMode=useCallback(()=>{setMode(mode===`run`?`edit`:`run`)},[mode,setMode]),{error:buildError,status:buildStatus,result:buildResult,entry:entrypoint}=useBundler({directory,onBuildStart:options$1.onBuildStart,onBuildSuccess:options$1.onBuildSuccess,onBuildError:options$1.onBuildError}),auth$2=useAuth({autoCheck:!0,onAuthChange:options$1.onAuthChange,onLoginUrl:options$1.onLoginUrl}),dotenv=useDotenv(directory),env$8=useMemo(()=>{let blinkToken=auth$2.token;return blinkToken?{...dotenv,BLINK_TOKEN:blinkToken}:dotenv},[dotenv,auth$2.token]),lastReportedKeys=useRef(void 0);useEffect(()=>{let keys=Object.keys(env$8);if(keys.length===lastReportedKeys.current||lastReportedKeys.current===void 0){lastReportedKeys.current=keys.length;return}lastReportedKeys.current=keys.length,options$1.onEnvLoaded?.(keys)},[env$8,options$1.onEnvLoaded]);let runAgentRef=useRef(void 0),server=useMemo(()=>createLocalServer({port:0,dataDirectory:join$1(directory,`.blink`),getAgent:()=>runAgentRef.current}),[directory]),{agent,logs:logs$1,error:agentError,capabilities}=useAgent({buildResult,env:env$8,apiServerUrl:server.url}),{client:editAgent,error:editAgentError,missingApiKey:editModeMissingApiKey,setUserAgentUrl}=useEditAgent({directory,apiServerUrl:server.url,env:env$8,getDevhookUrl:useCallback(()=>{let id=getDevhookID(directory)??createDevhookID(directory);return setDevhookID(id),`https://${id}.blink.host`},[directory])}),[chatId,setChatId]=useState(`00000000-0000-0000-0000-000000000000`);useEffect(()=>{runAgentRef.current=agent},[agent]),useEffect(()=>{agent&&setUserAgentUrl(agent.baseUrl),(mode===`run`&&!agent||mode===`edit`&&!editAgent)&&server.getChatManager(chatId)?.stopStreaming()},[agent,editAgent,mode,chatId,server,setUserAgentUrl]);let selectedOptionsRef=useRef(void 0),chat$1=useChat({chatId,agent:mode===`run`?agent:editAgent,chatsDirectory:server.chatsDirectory,serializeMessage:msg=>{let metadata=msg.role===`user`&&selectedOptionsRef.current?{...typeof msg.metadata==`object`&&msg.metadata!==null?msg.metadata:{},options:selectedOptionsRef.current}:msg.metadata;return typeof metadata==`object`&&metadata&&(metadata.__blink_mode=modeRef.current),{id:msg.id??crypto.randomUUID(),created_at:new Date().toISOString(),role:msg.role,parts:msg.parts,mode:modeRef.current,metadata}},filterMessages:msg=>modeRef.current===`edit`?!0:!(isStoredMessageMetadata(msg.metadata)||msg.mode===`edit`),onError:error$3=>{options$1.onError?.(`${source_default.red(`⚙ [Chat Error]`)} ${source_default.gray(error$3)}`)}}),lastLogsLength=useRef(0);useEffect(()=>{if(logs$1.length===lastLogsLength.current)return;let currentLength=lastLogsLength.current;for(let log$5 of logs$1.slice(currentLength))options$1.onAgentLog?.(log$5);lastLogsLength.current=logs$1.length},[logs$1,options$1.onAgentLog,chat$1.upsertMessage]);let[chatIds,setChatIds]=useState([]);useEffect(()=>{server.listChats().then(entries$1=>{setChatIds(entries$1.map(e$1=>e$1.key))})},[server]),useEffect(()=>{chatId&&!chatIds.includes(chatId)&&setChatIds(prev=>[...prev,chatId])},[chatId,chatIds]);let[devhookID,setDevhookID]=useState(()=>hasDevhook(directory)?getDevhookID(directory):createDevhookID(directory)),devhook=useDevhook({id:devhookID,directory,disabled:!capabilities?.request,onRequest:async request$2=>{if(!agent)throw Error(`No agent`);let requestURL=new URL(request$2.url),agentURL=new URL(agent.baseUrl);agentURL.pathname=requestURL.pathname,agentURL.search=requestURL.search;try{let response=await fetch(agentURL.toString(),{method:request$2.method,body:request$2.body,headers:request$2.headers,redirect:`manual`,signal:request$2.signal,duplex:`half`});return options$1.onDevhookRequest?.({method:request$2.method,path:requestURL.pathname,status:response.status}),response}catch(err){return console.error(`Error sending request to user's agent:`,err),new Response(`Internal server error`,{status:500})}}});useEffect(()=>{devhook.status!==`connected`||!devhook.url||options$1.onDevhookConnected?.(devhook.url)},[devhook.status,devhook.url]);let{schema:optionsSchema,options:selectedOptions,error:optionsError,setOption:setOption$1}=useOptions({agent:mode===`run`?agent:editAgent,capabilities,messages:chat$1.messages});useEffect(()=>{selectedOptionsRef.current=selectedOptions},[selectedOptions]);let errors=useMemo(()=>{let errorMap=new Map;return agentError&&mode===`run`&&errorMap.set(`agent`,agentError.message),editAgentError&&mode===`edit`&&errorMap.set(`editAgent`,`Edit agent error: ${editAgentError.message}`),optionsError&&errorMap.set(`options`,`Options error: ${optionsError.message}`),errorMap},[agentError,editAgentError,optionsError,mode]),prevErrorsRef=useRef(new Map);useEffect(()=>{let prev=prevErrorsRef.current,current=errors;for(let[key$1,error$3]of current.entries())prev.get(key$1)!==error$3&&options$1.onError?.(error$3);for(let key$1 of prev.keys())current.has(key$1);prevErrorsRef.current=new Map(current)},[errors,options$1.onError]);let needsApproval=useMemo(()=>{let lastMessage=[...chat$1.messages].reverse().find(message=>!(message.role!==`assistant`||message.metadata&&message.metadata.ephemeral));if(!lastMessage||approvalHandled===lastMessage.id)return;let parts=lastMessage.parts.filter(isToolOrDynamicToolUIPart);if(parts.length!==0&&parts.some(part=>isToolApprovalOutput(part.output)&&part.output.outcome===`pending`))return lastMessage},[chat$1.messages,approvalHandled]),handleApproval=useCallback(async(approved,enableAutoApprove)=>{if(!needsApproval)return;enableAutoApprove&&approved&&setAutoApprove(!0),setApprovalHandled(needsApproval.id);let messages$1=chat$1.messages;if(messages$1.length===0)return;let lastMsg=messages$1[messages$1.length-1];if(!lastMsg||lastMsg.role!==`assistant`||!Array.isArray(lastMsg.parts))return;let updatedParts=lastMsg.parts.map(part=>part.output&&isToolApprovalOutput(part.output)&&part.output.outcome===`pending`?{...part,output:{...part.output,outcome:approved?`approved`:`rejected`}}:part);await chat$1.upsertMessage({...lastMsg,parts:updatedParts}),await chat$1.start()},[needsApproval,chat$1]);useEffect(()=>{autoApprove&&needsApproval&&handleApproval(!0)},[autoApprove,needsApproval,handleApproval]);let newChat=useCallback(()=>{let id=crypto.randomUUID();setChatId(id),setChatIds(prev=>[...prev,id]),setApprovalHandled(void 0)},[]),switchChat=useCallback(id=>{setChatId(id),setApprovalHandled(void 0)},[]),approval=useMemo(()=>{if(needsApproval)return{message:needsApproval,approve:enableAutoApprove=>handleApproval(!0,enableAutoApprove),reject:()=>handleApproval(!1),autoApproveEnabled:autoApprove}},[needsApproval,handleApproval,autoApprove]),tokenUsage=useMemo(()=>{let messages$1=chat$1.messages;if(messages$1.length!==0)for(let i$7=messages$1.length-1;i$7>=0;i$7--){let msg=messages$1[i$7];if(!msg||msg.role!==`assistant`||!msg.metadata||typeof msg.metadata!=`object`||!(`totalUsage`in msg.metadata))continue;let totalUsage=msg.metadata.totalUsage;if(!(!totalUsage||typeof totalUsage!=`object`)&&!(!(`inputTokens`in totalUsage)||!(`outputTokens`in totalUsage)||!(`totalTokens`in totalUsage)))return{inputTokens:totalUsage.inputTokens,outputTokens:totalUsage.outputTokens,totalTokens:totalUsage.totalTokens,cachedInputTokens:totalUsage.cachedInputTokens}}},[chat$1.messages]),showWaitingPlaceholder=useMemo(()=>{if(chat$1.status!==`streaming`)return!1;if(!chat$1.streamingMessage)return!0;let toolParts=chat$1.streamingMessage.parts.filter(isToolOrDynamicToolUIPart);return toolParts.length>0&&toolParts.every(part=>part.state.startsWith(`output-`))},[chat$1.status,chat$1.streamingMessage]);return{mode,setMode,toggleMode,chat:chat$1,chats:chatIds,switchChat,newChat,build:{status:buildStatus,error:buildError,entrypoint},devhook:{connected:devhook.status===`connected`,url:devhook.status===`connected`?devhook.url:void 0},capabilities,options:{schema:optionsSchema,selected:selectedOptions,error:optionsError,setOption:setOption$1},approval,tokenUsage,auth:auth$2,server,showWaitingPlaceholder,editModeMissingApiKey}}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 G(l$1){O$1=l$1}var E$1={exec:()=>null};function h$1(l$1,e$1=``){let t$1=typeof l$1==`string`?l$1:l$1.source,n$2={replace:(r$2,i$7)=>{let s$3=typeof i$7==`string`?i$7:i$7.source;return s$3=s$3.replace(m.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={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$1(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$1(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$1(/^ {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$1(/^( {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$1(`^ {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$1(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(),K={blockquote:h$1(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,oe).getRegex(),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$1(`^ *([^\\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$1(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$1(`^ *(?: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$1(F).replace(`hr`,C).replace(`heading`,` *#{1,6} *[^
|
|
467
467
|
]`).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$1(/^((?![*_])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$1(pe,`u`).replace(/punct/g,D).getRegex(),ve=h$1(pe,`u`).replace(/punct/g,ue).getRegex(),ce=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,De=h$1(ce,`gu`).replace(/notPunctSpace/g,le).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),He=h$1(ce,`gu`).replace(/notPunctSpace/g,Ie).replace(/punctSpace/g,Ce).replace(/punct/g,ue).getRegex(),Ze=h$1(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,le).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Ge=h$1(/\\(punct)/,`gu`).replace(/punct/g,D).getRegex(),Ne=h$1(/^<(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$1(U).replace(`(?:-->|$)`,`-->`).getRegex(),Fe=h$1(`^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$1(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace(`label`,q$1).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),he=h$1(/^!?\[(label)\]\[(ref)\]/).replace(`label`,q$1).replace(`ref`,Q).getRegex(),de=h$1(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Q).getRegex(),Ue=h$1(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,he).replace(`nolink`,de).getRegex(),X={_backpedal:E$1,anyPunctuation:Ge,autolink:Ne,blockSkip:Be,br:ae,code:ze,del:E$1,emStrongLDelim:qe,emStrongRDelimAst:De,emStrongRDelimUnd:Ze,escape:Me,link:Qe,nolink:de,punctuation:Ee,reflink:he,reflinkSearch:Ue,tag:Fe,text:Ae,url:E$1},Ke={...X,link:h$1(/^!?\[(label)\]\((.*?)\)/).replace(`label`,q$1).getRegex(),reflink:h$1(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,q$1).getRegex()},N={...X,emStrongRDelimAst:He,emStrongLDelim:ve,url:h$1(/^((?: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$1(ae).replace(`{2,}`,`*`).getRegex(),text:h$1(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(l$1,e$1){if(e$1){if(m.escapeTest.test(l$1))return l$1.replace(m.escapeReplace,ke)}else if(m.escapeTestNoEncode.test(l$1))return l$1.replace(m.escapeReplaceNoEncode,ke);return l$1}function J(l$1){try{l$1=encodeURI(l$1).replace(m.percentDecode,`%`)}catch{return null}return l$1}function V$1(l$1,e$1){let n$2=l$1.replace(m.findPipe,(i$7,s$3,o$2)=>{let a$2=!1,u$17=s$3;for(;--u$17>=0&&o$2[u$17]===`\\`;)a$2=!a$2;return a$2?`|`:` |`}).split(m.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.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$7=l$1.charAt(n$2-r$2-1);if(i$7===e$1&&!t$1)r$2++;else if(i$7!==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$7=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$2={type:l$1[0].charAt(0)===`!`?`image`:`link`,raw:t$1,href:i$7,title:s$3,text:o$2,tokens:n$2.inlineTokens(o$2)};return n$2.state.inLink=!1,a$2}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(`
|
|
468
468
|
`).map(i$7=>{let s$3=i$7.match(t$1.other.beginningSpace);if(s$3===null)return i$7;let[o$2]=s$3;return o$2.length>=r$2.length?i$7.slice(r$2.length):i$7}).join(`
|
|
469
469
|
`)}var y$1=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,`
|
|
@@ -1029,7 +1029,7 @@ Error: Error or \`(none)\` if no error was reported for the subprocess.
|
|
|
1029
1029
|
Exit Code: Exit code or \`(none)\` if terminated by signal.
|
|
1030
1030
|
Signal: Signal number or \`(none)\` if no signal was received.
|
|
1031
1031
|
`,super(name$2,name$2,description,Kind.Other,parameterSchema,!1,!1),this.config=config,this.description=description,this.parameterSchema=parameterSchema}createInvocation(params){return new DiscoveredToolInvocation(this.config,this.name,params)}},ToolRegistry=class{tools=new Map;config;mcpClientManager;constructor(config,eventEmitter){this.config=config,this.mcpClientManager=new McpClientManager(this.config.getMcpServers()??{},this.config.getMcpServerCommand(),this,this.config.getPromptRegistry(),this.config.getDebugMode(),this.config.getWorkspaceContext(),eventEmitter)}registerTool(tool$1){this.tools.has(tool$1.name)&&(tool$1 instanceof DiscoveredMCPTool?tool$1=tool$1.asFullyQualifiedTool():console.warn(`Tool with name "${tool$1.name}" is already registered. Overwriting.`)),this.tools.set(tool$1.name,tool$1)}removeDiscoveredTools(){for(let tool$1 of this.tools.values())(tool$1 instanceof DiscoveredTool||tool$1 instanceof DiscoveredMCPTool)&&this.tools.delete(tool$1.name)}removeMcpToolsByServer(serverName){for(let[name$2,tool$1]of this.tools.entries())tool$1 instanceof DiscoveredMCPTool&&tool$1.serverName===serverName&&this.tools.delete(name$2)}async discoverAllTools(){this.removeDiscoveredTools(),this.config.getPromptRegistry().clear(),await this.discoverAndRegisterToolsFromCommand(),await this.mcpClientManager.discoverAllMcpTools(this.config)}async discoverMcpTools(){this.removeDiscoveredTools(),this.config.getPromptRegistry().clear(),await this.mcpClientManager.discoverAllMcpTools(this.config)}async restartMcpServers(){await this.discoverMcpTools()}async discoverToolsForServer(serverName){for(let[name$2,tool$1]of this.tools.entries())tool$1 instanceof DiscoveredMCPTool&&tool$1.serverName===serverName&&this.tools.delete(name$2);this.config.getPromptRegistry().removePromptsByServer(serverName);let serverConfig=(this.config.getMcpServers()??{})[serverName];serverConfig&&await connectAndDiscover(serverName,serverConfig,this,this.config.getPromptRegistry(),this.config.getDebugMode(),this.config.getWorkspaceContext(),this.config)}async discoverAndRegisterToolsFromCommand(){let discoveryCmd=this.config.getToolDiscoveryCommand();if(discoveryCmd)try{let cmdParts=(0,import_shell_quote$1.parse)(discoveryCmd);if(cmdParts.length===0)throw Error(`Tool discovery command is empty or contains only whitespace.`);let proc$1=spawn(cmdParts[0],cmdParts.slice(1)),stdout$1=``,stdoutDecoder=new StringDecoder(`utf8`),stderr=``,stderrDecoder=new StringDecoder(`utf8`),sizeLimitExceeded=!1,MAX_STDOUT_SIZE=10*1024*1024,MAX_STDERR_SIZE=10*1024*1024,stdoutByteLength=0,stderrByteLength=0;proc$1.stdout.on(`data`,data$2=>{if(!sizeLimitExceeded){if(stdoutByteLength+data$2.length>MAX_STDOUT_SIZE){sizeLimitExceeded=!0,proc$1.kill();return}stdoutByteLength+=data$2.length,stdout$1+=stdoutDecoder.write(data$2)}}),proc$1.stderr.on(`data`,data$2=>{if(!sizeLimitExceeded){if(stderrByteLength+data$2.length>10485760){sizeLimitExceeded=!0,proc$1.kill();return}stderrByteLength+=data$2.length,stderr+=stderrDecoder.write(data$2)}}),await new Promise((resolve$11,reject)=>{proc$1.on(`error`,reject),proc$1.on(`close`,code$1=>{if(stdout$1+=stdoutDecoder.end(),stderr+=stderrDecoder.end(),sizeLimitExceeded)return reject(Error(`Tool discovery command output exceeded size limit of ${MAX_STDOUT_SIZE} bytes.`));if(code$1!==0)return console.error(`Command failed with code ${code$1}`),console.error(stderr),reject(Error(`Tool discovery command failed with exit code ${code$1}`));resolve$11()})});let functions=[],discoveredItems=JSON.parse(stdout$1.trim());if(!discoveredItems||!Array.isArray(discoveredItems))throw Error(`Tool discovery command did not return a JSON array of tools.`);for(let tool$1 of discoveredItems)tool$1&&typeof tool$1==`object`&&(Array.isArray(tool$1.function_declarations)?functions.push(...tool$1.function_declarations):Array.isArray(tool$1.functionDeclarations)?functions.push(...tool$1.functionDeclarations):tool$1.name&&functions.push(tool$1));for(let func of functions){if(!func.name){console.warn(`Discovered a tool with no name. Skipping.`);continue}let parameters=func.parametersJsonSchema&&typeof func.parametersJsonSchema==`object`&&!Array.isArray(func.parametersJsonSchema)?func.parametersJsonSchema:{};this.registerTool(new DiscoveredTool(this.config,func.name,func.description??``,parameters))}}catch(e$1){throw console.error(`Tool discovery command "${discoveryCmd}" failed:`,e$1),e$1}}getFunctionDeclarations(){let declarations=[];return this.tools.forEach(tool$1=>{declarations.push(tool$1.schema)}),declarations}getFunctionDeclarationsFiltered(toolNames){let declarations=[];for(let name$2 of toolNames){let tool$1=this.tools.get(name$2);tool$1&&declarations.push(tool$1.schema)}return declarations}getAllToolNames(){return Array.from(this.tools.keys())}getAllTools(){return Array.from(this.tools.values()).sort((a$2,b$2)=>a$2.displayName.localeCompare(b$2.displayName))}getToolsByServer(serverName){let serverTools=[];for(let tool$1 of this.tools.values())tool$1?.serverName===serverName&&serverTools.push(tool$1);return serverTools.sort((a$2,b$2)=>a$2.name.localeCompare(b$2.name))}getTool(name$2){return this.tools.get(name$2)}};const SHELL_SPECIAL_CHARS=/[ \t()[\]{};|*?$`'"#&<>!~]/;function tildeifyPath(path$38){let homeDir=os$1.homedir();return path$38.startsWith(homeDir)?path$38.replace(homeDir,`~`):path$38}function shortenPath(filePath,maxLen=35){if(filePath.length<=maxLen)return filePath;let root$31=path.parse(filePath).root,separator=path.sep,segments=filePath.substring(root$31.length).split(separator).filter(s$3=>s$3!==``);if(segments.length<=1){let keepLen=Math.floor((maxLen-3)/2);if(keepLen<=0)return filePath.substring(0,maxLen-3)+`...`;let start=filePath.substring(0,keepLen),end=filePath.substring(filePath.length-keepLen);return`${start}...${end}`}let firstDir=segments[0],lastSegment=segments[segments.length-1],startComponent=root$31+firstDir,endPartSegments=[],currentLength=separator.length+lastSegment.length;for(let i$7=segments.length-2;i$7>=0;i$7--){let segment=segments[i$7],lengthWithSegment=currentLength+separator.length+segment.length;if(lengthWithSegment<=maxLen)endPartSegments.unshift(segment),currentLength=lengthWithSegment;else break}let result=endPartSegments.join(separator)+separator+lastSegment;return currentLength>maxLen?result:(result=startComponent+separator+result,result.length>maxLen?`...`+result.substring(result.length-maxLen-3):result)}function makeRelative(targetPath,rootDirectory){let resolvedTargetPath=path.resolve(targetPath),resolvedRootDirectory=path.resolve(rootDirectory);return path.relative(resolvedRootDirectory,resolvedTargetPath)||`.`}function escapePath(filePath){let result=``;for(let i$7=0;i$7<filePath.length;i$7++){let char=filePath[i$7],backslashCount=0;for(let j$2=i$7-1;j$2>=0&&filePath[j$2]===`\\`;j$2--)backslashCount++;backslashCount%2!=1&&SHELL_SPECIAL_CHARS.test(char)?result+=`\\`+char:result+=char}return result}function unescapePath(filePath){return filePath.replace(RegExp(`\\\\([${SHELL_SPECIAL_CHARS.source.slice(1,-1)}])`,`g`),`$1`)}function getProjectHash(projectRoot){return crypto$3.createHash(`sha256`).update(projectRoot).digest(`hex`)}function isSubpath(parentPath,childPath){let pathModule=os$1.platform()===`win32`?path.win32:path,relative$2=pathModule.relative(parentPath,childPath);return!relative$2.startsWith(`..${pathModule.sep}`)&&relative$2!==`..`&&!pathModule.isAbsolute(relative$2)}var LSToolInvocation=class extends BaseToolInvocation{config;constructor(config,params){super(params),this.config=config}shouldIgnore(filename,patterns){if(!patterns||patterns.length===0)return!1;for(let pattern of patterns){let regexPattern=pattern.replace(/[.+^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`).replace(/\?/g,`.`);if(RegExp(`^${regexPattern}$`).test(filename))return!0}return!1}getDescription(){let relativePath=makeRelative(this.params.path,this.config.getTargetDir());return shortenPath(relativePath)}errorResult(llmContent,returnDisplay,type){return{llmContent,returnDisplay:`Error: ${returnDisplay}`,error:{message:llmContent,type}}}async execute(_signal){try{let stats=await fs$2.stat(this.params.path);if(!stats)return this.errorResult(`Error: Directory not found or inaccessible: ${this.params.path}`,`Directory not found or inaccessible.`,ToolErrorType.FILE_NOT_FOUND);if(!stats.isDirectory())return this.errorResult(`Error: Path is not a directory: ${this.params.path}`,`Path is not a directory.`,ToolErrorType.PATH_IS_NOT_A_DIRECTORY);let files=await fs$2.readdir(this.params.path);if(files.length===0)return{llmContent:`Directory ${this.params.path} is empty.`,returnDisplay:`Directory is empty.`};let relativePaths=files.map(file=>path.relative(this.config.getTargetDir(),path.join(this.params.path,file))),{filteredPaths,gitIgnoredCount,geminiIgnoredCount}=this.config.getFileService().filterFilesWithReport(relativePaths,{respectGitIgnore:this.params.file_filtering_options?.respect_git_ignore??this.config.getFileFilteringOptions().respectGitIgnore??DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,respectGeminiIgnore:this.params.file_filtering_options?.respect_gemini_ignore??this.config.getFileFilteringOptions().respectGeminiIgnore??DEFAULT_FILE_FILTERING_OPTIONS.respectGeminiIgnore}),entries$1=[];for(let relativePath of filteredPaths){let fullPath=path.resolve(this.config.getTargetDir(),relativePath);if(!this.shouldIgnore(path.basename(fullPath),this.params.ignore))try{let stats$1=await fs$2.stat(fullPath),isDir=stats$1.isDirectory();entries$1.push({name:path.basename(fullPath),path:fullPath,isDirectory:isDir,size:isDir?0:stats$1.size,modifiedTime:stats$1.mtime})}catch(error$3){console.error(`Error accessing ${fullPath}: ${error$3}`)}}entries$1.sort((a$2,b$2)=>a$2.isDirectory&&!b$2.isDirectory?-1:!a$2.isDirectory&&b$2.isDirectory?1:a$2.name.localeCompare(b$2.name));let directoryContent=entries$1.map(entry=>`${entry.isDirectory?`[DIR] `:``}${entry.name}`).join(`
|
|
1032
|
-
`),resultMessage=`Directory listing for ${this.params.path}:\n${directoryContent}`,ignoredMessages=[];gitIgnoredCount>0&&ignoredMessages.push(`${gitIgnoredCount} git-ignored`),geminiIgnoredCount>0&&ignoredMessages.push(`${geminiIgnoredCount} gemini-ignored`),ignoredMessages.length>0&&(resultMessage+=`\n\n(${ignoredMessages.join(`, `)})`);let displayMessage=`Listed ${entries$1.length} item(s).`;return ignoredMessages.length>0&&(displayMessage+=` (${ignoredMessages.join(`, `)})`),{llmContent:resultMessage,returnDisplay:displayMessage}}catch(error$3){let errorMsg=`Error listing directory: ${error$3 instanceof Error?error$3.message:String(error$3)}`;return this.errorResult(errorMsg,`Failed to list directory.`,ToolErrorType.LS_EXECUTION_ERROR)}}},LSTool=class LSTool extends BaseDeclarativeTool{config;static Name=`list_directory`;constructor(config){super(LSTool.Name,`ReadFolder`,`Lists the names of files and subdirectories directly within a specified directory path. Can optionally ignore entries matching provided glob patterns.`,Kind.Search,{properties:{path:{description:`The absolute path to the directory to list (must be absolute, not relative)`,type:`string`},ignore:{description:`List of glob patterns to ignore`,items:{type:`string`},type:`array`},file_filtering_options:{description:`Optional: Whether to respect ignore patterns from .gitignore or .geminiignore`,type:`object`,properties:{respect_git_ignore:{description:`Optional: Whether to respect .gitignore patterns when listing files. Only available in git repositories. Defaults to true.`,type:`boolean`},respect_gemini_ignore:{description:`Optional: Whether to respect .geminiignore patterns when listing files. Defaults to true.`,type:`boolean`}}}},required:[`path`],type:`object`}),this.config=config}validateToolParamValues(params){if(!path.isAbsolute(params.path))return`Path must be absolute: ${params.path}`;let workspaceContext=this.config.getWorkspaceContext();return workspaceContext.isPathWithinWorkspace(params.path)?null:`Path must be within one of the workspace directories: ${workspaceContext.getDirectories().join(`, `)}`}createInvocation(params){return new LSToolInvocation(this.config,params)}};const types$2={"application/andrew-inset":[`ez`],"application/appinstaller":[`appinstaller`],"application/applixware":[`aw`],"application/appx":[`appx`],"application/appxbundle":[`appxbundle`],"application/atom+xml":[`atom`],"application/atomcat+xml":[`atomcat`],"application/atomdeleted+xml":[`atomdeleted`],"application/atomsvc+xml":[`atomsvc`],"application/atsc-dwd+xml":[`dwd`],"application/atsc-held+xml":[`held`],"application/atsc-rsat+xml":[`rsat`],"application/automationml-aml+xml":[`aml`],"application/automationml-amlx+zip":[`amlx`],"application/bdoc":[`bdoc`],"application/calendar+xml":[`xcs`],"application/ccxml+xml":[`ccxml`],"application/cdfx+xml":[`cdfx`],"application/cdmi-capability":[`cdmia`],"application/cdmi-container":[`cdmic`],"application/cdmi-domain":[`cdmid`],"application/cdmi-object":[`cdmio`],"application/cdmi-queue":[`cdmiq`],"application/cpl+xml":[`cpl`],"application/cu-seeme":[`cu`],"application/cwl":[`cwl`],"application/dash+xml":[`mpd`],"application/dash-patch+xml":[`mpp`],"application/davmount+xml":[`davmount`],"application/dicom":[`dcm`],"application/docbook+xml":[`dbk`],"application/dssc+der":[`dssc`],"application/dssc+xml":[`xdssc`],"application/ecmascript":[`ecma`],"application/emma+xml":[`emma`],"application/emotionml+xml":[`emotionml`],"application/epub+zip":[`epub`],"application/exi":[`exi`],"application/express":[`exp`],"application/fdf":[`fdf`],"application/fdt+xml":[`fdt`],"application/font-tdpfr":[`pfr`],"application/geo+json":[`geojson`],"application/gml+xml":[`gml`],"application/gpx+xml":[`gpx`],"application/gxf":[`gxf`],"application/gzip":[`gz`],"application/hjson":[`hjson`],"application/hyperstudio":[`stk`],"application/inkml+xml":[`ink`,`inkml`],"application/ipfix":[`ipfix`],"application/its+xml":[`its`],"application/java-archive":[`jar`,`war`,`ear`],"application/java-serialized-object":[`ser`],"application/java-vm":[`class`],"application/javascript":[`*js`],"application/json":[`json`,`map`],"application/json5":[`json5`],"application/jsonml+json":[`jsonml`],"application/ld+json":[`jsonld`],"application/lgr+xml":[`lgr`],"application/lost+xml":[`lostxml`],"application/mac-binhex40":[`hqx`],"application/mac-compactpro":[`cpt`],"application/mads+xml":[`mads`],"application/manifest+json":[`webmanifest`],"application/marc":[`mrc`],"application/marcxml+xml":[`mrcx`],"application/mathematica":[`ma`,`nb`,`mb`],"application/mathml+xml":[`mathml`],"application/mbox":[`mbox`],"application/media-policy-dataset+xml":[`mpf`],"application/mediaservercontrol+xml":[`mscml`],"application/metalink+xml":[`metalink`],"application/metalink4+xml":[`meta4`],"application/mets+xml":[`mets`],"application/mmt-aei+xml":[`maei`],"application/mmt-usd+xml":[`musd`],"application/mods+xml":[`mods`],"application/mp21":[`m21`,`mp21`],"application/mp4":[`*mp4`,`*mpg4`,`mp4s`,`m4p`],"application/msix":[`msix`],"application/msixbundle":[`msixbundle`],"application/msword":[`doc`,`dot`],"application/mxf":[`mxf`],"application/n-quads":[`nq`],"application/n-triples":[`nt`],"application/node":[`cjs`],"application/octet-stream":[`bin`,`dms`,`lrf`,`mar`,`so`,`dist`,`distz`,`pkg`,`bpk`,`dump`,`elc`,`deploy`,`exe`,`dll`,`deb`,`dmg`,`iso`,`img`,`msi`,`msp`,`msm`,`buffer`],"application/oda":[`oda`],"application/oebps-package+xml":[`opf`],"application/ogg":[`ogx`],"application/omdoc+xml":[`omdoc`],"application/onenote":[`onetoc`,`onetoc2`,`onetmp`,`onepkg`,`one`,`onea`],"application/oxps":[`oxps`],"application/p2p-overlay+xml":[`relo`],"application/patch-ops-error+xml":[`xer`],"application/pdf":[`pdf`],"application/pgp-encrypted":[`pgp`],"application/pgp-keys":[`asc`],"application/pgp-signature":[`sig`,`*asc`],"application/pics-rules":[`prf`],"application/pkcs10":[`p10`],"application/pkcs7-mime":[`p7m`,`p7c`],"application/pkcs7-signature":[`p7s`],"application/pkcs8":[`p8`],"application/pkix-attr-cert":[`ac`],"application/pkix-cert":[`cer`],"application/pkix-crl":[`crl`],"application/pkix-pkipath":[`pkipath`],"application/pkixcmp":[`pki`],"application/pls+xml":[`pls`],"application/postscript":[`ai`,`eps`,`ps`],"application/provenance+xml":[`provx`],"application/pskc+xml":[`pskcxml`],"application/raml+yaml":[`raml`],"application/rdf+xml":[`rdf`,`owl`],"application/reginfo+xml":[`rif`],"application/relax-ng-compact-syntax":[`rnc`],"application/resource-lists+xml":[`rl`],"application/resource-lists-diff+xml":[`rld`],"application/rls-services+xml":[`rs`],"application/route-apd+xml":[`rapd`],"application/route-s-tsid+xml":[`sls`],"application/route-usd+xml":[`rusd`],"application/rpki-ghostbusters":[`gbr`],"application/rpki-manifest":[`mft`],"application/rpki-roa":[`roa`],"application/rsd+xml":[`rsd`],"application/rss+xml":[`rss`],"application/rtf":[`rtf`],"application/sbml+xml":[`sbml`],"application/scvp-cv-request":[`scq`],"application/scvp-cv-response":[`scs`],"application/scvp-vp-request":[`spq`],"application/scvp-vp-response":[`spp`],"application/sdp":[`sdp`],"application/senml+xml":[`senmlx`],"application/sensml+xml":[`sensmlx`],"application/set-payment-initiation":[`setpay`],"application/set-registration-initiation":[`setreg`],"application/shf+xml":[`shf`],"application/sieve":[`siv`,`sieve`],"application/smil+xml":[`smi`,`smil`],"application/sparql-query":[`rq`],"application/sparql-results+xml":[`srx`],"application/sql":[`sql`],"application/srgs":[`gram`],"application/srgs+xml":[`grxml`],"application/sru+xml":[`sru`],"application/ssdl+xml":[`ssdl`],"application/ssml+xml":[`ssml`],"application/swid+xml":[`swidtag`],"application/tei+xml":[`tei`,`teicorpus`],"application/thraud+xml":[`tfi`],"application/timestamped-data":[`tsd`],"application/toml":[`toml`],"application/trig":[`trig`],"application/ttml+xml":[`ttml`],"application/ubjson":[`ubj`],"application/urc-ressheet+xml":[`rsheet`],"application/urc-targetdesc+xml":[`td`],"application/voicexml+xml":[`vxml`],"application/wasm":[`wasm`],"application/watcherinfo+xml":[`wif`],"application/widget":[`wgt`],"application/winhlp":[`hlp`],"application/wsdl+xml":[`wsdl`],"application/wspolicy+xml":[`wspolicy`],"application/xaml+xml":[`xaml`],"application/xcap-att+xml":[`xav`],"application/xcap-caps+xml":[`xca`],"application/xcap-diff+xml":[`xdf`],"application/xcap-el+xml":[`xel`],"application/xcap-ns+xml":[`xns`],"application/xenc+xml":[`xenc`],"application/xfdf":[`xfdf`],"application/xhtml+xml":[`xhtml`,`xht`],"application/xliff+xml":[`xlf`],"application/xml":[`xml`,`xsl`,`xsd`,`rng`],"application/xml-dtd":[`dtd`],"application/xop+xml":[`xop`],"application/xproc+xml":[`xpl`],"application/xslt+xml":[`*xsl`,`xslt`],"application/xspf+xml":[`xspf`],"application/xv+xml":[`mxml`,`xhvml`,`xvml`,`xvm`],"application/yang":[`yang`],"application/yin+xml":[`yin`],"application/zip":[`zip`],"application/zip+dotlottie":[`lottie`],"audio/3gpp":[`*3gpp`],"audio/aac":[`adts`,`aac`],"audio/adpcm":[`adp`],"audio/amr":[`amr`],"audio/basic":[`au`,`snd`],"audio/midi":[`mid`,`midi`,`kar`,`rmi`],"audio/mobile-xmf":[`mxmf`],"audio/mp3":[`*mp3`],"audio/mp4":[`m4a`,`mp4a`,`m4b`],"audio/mpeg":[`mpga`,`mp2`,`mp2a`,`mp3`,`m2a`,`m3a`],"audio/ogg":[`oga`,`ogg`,`spx`,`opus`],"audio/s3m":[`s3m`],"audio/silk":[`sil`],"audio/wav":[`wav`],"audio/wave":[`*wav`],"audio/webm":[`weba`],"audio/xm":[`xm`],"font/collection":[`ttc`],"font/otf":[`otf`],"font/ttf":[`ttf`],"font/woff":[`woff`],"font/woff2":[`woff2`],"image/aces":[`exr`],"image/apng":[`apng`],"image/avci":[`avci`],"image/avcs":[`avcs`],"image/avif":[`avif`],"image/bmp":[`bmp`,`dib`],"image/cgm":[`cgm`],"image/dicom-rle":[`drle`],"image/dpx":[`dpx`],"image/emf":[`emf`],"image/fits":[`fits`],"image/g3fax":[`g3`],"image/gif":[`gif`],"image/heic":[`heic`],"image/heic-sequence":[`heics`],"image/heif":[`heif`],"image/heif-sequence":[`heifs`],"image/hej2k":[`hej2`],"image/ief":[`ief`],"image/jaii":[`jaii`],"image/jais":[`jais`],"image/jls":[`jls`],"image/jp2":[`jp2`,`jpg2`],"image/jpeg":[`jpg`,`jpeg`,`jpe`],"image/jph":[`jph`],"image/jphc":[`jhc`],"image/jpm":[`jpm`,`jpgm`],"image/jpx":[`jpx`,`jpf`],"image/jxl":[`jxl`],"image/jxr":[`jxr`],"image/jxra":[`jxra`],"image/jxrs":[`jxrs`],"image/jxs":[`jxs`],"image/jxsc":[`jxsc`],"image/jxsi":[`jxsi`],"image/jxss":[`jxss`],"image/ktx":[`ktx`],"image/ktx2":[`ktx2`],"image/pjpeg":[`jfif`],"image/png":[`png`],"image/sgi":[`sgi`],"image/svg+xml":[`svg`,`svgz`],"image/t38":[`t38`],"image/tiff":[`tif`,`tiff`],"image/tiff-fx":[`tfx`],"image/webp":[`webp`],"image/wmf":[`wmf`],"message/disposition-notification":[`disposition-notification`],"message/global":[`u8msg`],"message/global-delivery-status":[`u8dsn`],"message/global-disposition-notification":[`u8mdn`],"message/global-headers":[`u8hdr`],"message/rfc822":[`eml`,`mime`,`mht`,`mhtml`],"model/3mf":[`3mf`],"model/gltf+json":[`gltf`],"model/gltf-binary":[`glb`],"model/iges":[`igs`,`iges`],"model/jt":[`jt`],"model/mesh":[`msh`,`mesh`,`silo`],"model/mtl":[`mtl`],"model/obj":[`obj`],"model/prc":[`prc`],"model/step":[`step`,`stp`,`stpnc`,`p21`,`210`],"model/step+xml":[`stpx`],"model/step+zip":[`stpz`],"model/step-xml+zip":[`stpxz`],"model/stl":[`stl`],"model/u3d":[`u3d`],"model/vrml":[`wrl`,`vrml`],"model/x3d+binary":[`*x3db`,`x3dbz`],"model/x3d+fastinfoset":[`x3db`],"model/x3d+vrml":[`*x3dv`,`x3dvz`],"model/x3d+xml":[`x3d`,`x3dz`],"model/x3d-vrml":[`x3dv`],"text/cache-manifest":[`appcache`,`manifest`],"text/calendar":[`ics`,`ifb`],"text/coffeescript":[`coffee`,`litcoffee`],"text/css":[`css`],"text/csv":[`csv`],"text/html":[`html`,`htm`,`shtml`],"text/jade":[`jade`],"text/javascript":[`js`,`mjs`],"text/jsx":[`jsx`],"text/less":[`less`],"text/markdown":[`md`,`markdown`],"text/mathml":[`mml`],"text/mdx":[`mdx`],"text/n3":[`n3`],"text/plain":[`txt`,`text`,`conf`,`def`,`list`,`log`,`in`,`ini`],"text/richtext":[`rtx`],"text/rtf":[`*rtf`],"text/sgml":[`sgml`,`sgm`],"text/shex":[`shex`],"text/slim":[`slim`,`slm`],"text/spdx":[`spdx`],"text/stylus":[`stylus`,`styl`],"text/tab-separated-values":[`tsv`],"text/troff":[`t`,`tr`,`roff`,`man`,`me`,`ms`],"text/turtle":[`ttl`],"text/uri-list":[`uri`,`uris`,`urls`],"text/vcard":[`vcard`],"text/vtt":[`vtt`],"text/wgsl":[`wgsl`],"text/xml":[`*xml`],"text/yaml":[`yaml`,`yml`],"video/3gpp":[`3gp`,`3gpp`],"video/3gpp2":[`3g2`],"video/h261":[`h261`],"video/h263":[`h263`],"video/h264":[`h264`],"video/iso.segment":[`m4s`],"video/jpeg":[`jpgv`],"video/jpm":[`*jpm`,`*jpgm`],"video/mj2":[`mj2`,`mjp2`],"video/mp2t":[`ts`,`m2t`,`m2ts`,`mts`],"video/mp4":[`mp4`,`mp4v`,`mpg4`],"video/mpeg":[`mpeg`,`mpg`,`mpe`,`m1v`,`m2v`],"video/ogg":[`ogv`],"video/quicktime":[`qt`,`mov`],"video/webm":[`webm`]};Object.freeze(types$2);var standard_default=types$2,__classPrivateFieldGet=function(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)},_Mime_extensionToType,_Mime_typeToExtension,_Mime_typeToExtensions,Mime=class{constructor(...args){_Mime_extensionToType.set(this,new Map),_Mime_typeToExtension.set(this,new Map),_Mime_typeToExtensions.set(this,new Map);for(let arg of args)this.define(arg)}define(typeMap,force=!1){for(let[type,extensions]of Object.entries(typeMap)){type=type.toLowerCase(),extensions=extensions.map(ext$1=>ext$1.toLowerCase()),__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).has(type)||__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).set(type,new Set);let allExtensions=__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).get(type),first$1=!0;for(let extension of extensions){let starred=extension.startsWith(`*`);if(extension=starred?extension.slice(1):extension,allExtensions?.add(extension),first$1&&__classPrivateFieldGet(this,_Mime_typeToExtension,`f`).set(type,extension),first$1=!1,starred)continue;let currentType=__classPrivateFieldGet(this,_Mime_extensionToType,`f`).get(extension);if(currentType&¤tType!=type&&!force)throw Error(`"${type} -> ${extension}" conflicts with "${currentType} -> ${extension}". Pass \`force=true\` to override this definition.`);__classPrivateFieldGet(this,_Mime_extensionToType,`f`).set(extension,type)}}return this}getType(path$38){if(typeof path$38!=`string`)return null;let last$1=path$38.replace(/^.*[/\\]/s,``).toLowerCase(),ext$1=last$1.replace(/^.*\./s,``).toLowerCase(),hasPath=last$1.length<path$38.length;return!(ext$1.length<last$1.length-1)&&hasPath?null:__classPrivateFieldGet(this,_Mime_extensionToType,`f`).get(ext$1)??null}getExtension(type){return typeof type==`string`?(type=type?.split?.(`;`)[0],(type&&__classPrivateFieldGet(this,_Mime_typeToExtension,`f`).get(type.trim().toLowerCase()))??null):null}getAllExtensions(type){return typeof type==`string`?__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).get(type.toLowerCase())??null:null}_freeze(){this.define=()=>{throw Error(`define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances`)},Object.freeze(this);for(let extensions of __classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).values())Object.freeze(extensions);return this}_getTestState(){return{types:__classPrivateFieldGet(this,_Mime_extensionToType,`f`),extensions:__classPrivateFieldGet(this,_Mime_typeToExtension,`f`)}}};_Mime_extensionToType=new WeakMap,_Mime_typeToExtension=new WeakMap,_Mime_typeToExtensions=new WeakMap;var index_lite_default=new Mime(standard_default)._freeze();function Diff(){}Diff.prototype={diff:function(oldString,newString){var _options$timeout,options$1=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},callback$1=options$1.callback;typeof options$1==`function`&&(callback$1=options$1,options$1={});var self$1=this;function done(value){return value=self$1.postProcess(value,options$1),callback$1?(setTimeout(function(){callback$1(value)},0),!0):value}oldString=this.castInput(oldString,options$1),newString=this.castInput(newString,options$1),oldString=this.removeEmpty(this.tokenize(oldString,options$1)),newString=this.removeEmpty(this.tokenize(newString,options$1));var newLen=newString.length,oldLen=oldString.length,editLength=1,maxEditLength=newLen+oldLen;options$1.maxEditLength!=null&&(maxEditLength=Math.min(maxEditLength,options$1.maxEditLength));var maxExecutionTime=options$1.timeout??1/0,abortAfterTimestamp=Date.now()+maxExecutionTime,bestPath=[{oldPos:-1,lastComponent:void 0}],newPos=this.extractCommon(bestPath[0],newString,oldString,0,options$1);if(bestPath[0].oldPos+1>=oldLen&&newPos+1>=newLen)return done(buildValues(self$1,bestPath[0].lastComponent,newString,oldString,self$1.useLongestToken));var minDiagonalToConsider=-1/0,maxDiagonalToConsider=1/0;function execEditLength(){for(var diagonalPath=Math.max(minDiagonalToConsider,-editLength);diagonalPath<=Math.min(maxDiagonalToConsider,editLength);diagonalPath+=2){var basePath=void 0,removePath=bestPath[diagonalPath-1],addPath=bestPath[diagonalPath+1];removePath&&(bestPath[diagonalPath-1]=void 0);var canAdd=!1;if(addPath){var addPathNewPos=addPath.oldPos-diagonalPath;canAdd=addPath&&0<=addPathNewPos&&addPathNewPos<newLen}var canRemove=removePath&&removePath.oldPos+1<oldLen;if(!canAdd&&!canRemove){bestPath[diagonalPath]=void 0;continue}if(basePath=!canRemove||canAdd&&removePath.oldPos<addPath.oldPos?self$1.addToPath(addPath,!0,!1,0,options$1):self$1.addToPath(removePath,!1,!0,1,options$1),newPos=self$1.extractCommon(basePath,newString,oldString,diagonalPath,options$1),basePath.oldPos+1>=oldLen&&newPos+1>=newLen)return done(buildValues(self$1,basePath.lastComponent,newString,oldString,self$1.useLongestToken));bestPath[diagonalPath]=basePath,basePath.oldPos+1>=oldLen&&(maxDiagonalToConsider=Math.min(maxDiagonalToConsider,diagonalPath-1)),newPos+1>=newLen&&(minDiagonalToConsider=Math.max(minDiagonalToConsider,diagonalPath+1))}editLength++}if(callback$1)(function exec$2(){setTimeout(function(){if(editLength>maxEditLength||Date.now()>abortAfterTimestamp)return callback$1();execEditLength()||exec$2()},0)})();else for(;editLength<=maxEditLength&&Date.now()<=abortAfterTimestamp;){var ret=execEditLength();if(ret)return ret}},addToPath:function(path$38,added,removed,oldPosInc,options$1){var last$1=path$38.lastComponent;return last$1&&!options$1.oneChangePerToken&&last$1.added===added&&last$1.removed===removed?{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:last$1.count+1,added,removed,previousComponent:last$1.previousComponent}}:{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:1,added,removed,previousComponent:last$1}}},extractCommon:function(basePath,newString,oldString,diagonalPath,options$1){for(var newLen=newString.length,oldLen=oldString.length,oldPos=basePath.oldPos,newPos=oldPos-diagonalPath,commonCount=0;newPos+1<newLen&&oldPos+1<oldLen&&this.equals(oldString[oldPos+1],newString[newPos+1],options$1);)newPos++,oldPos++,commonCount++,options$1.oneChangePerToken&&(basePath.lastComponent={count:1,previousComponent:basePath.lastComponent,added:!1,removed:!1});return commonCount&&!options$1.oneChangePerToken&&(basePath.lastComponent={count:commonCount,previousComponent:basePath.lastComponent,added:!1,removed:!1}),basePath.oldPos=oldPos,newPos},equals:function(left$2,right$2,options$1){return options$1.comparator?options$1.comparator(left$2,right$2):left$2===right$2||options$1.ignoreCase&&left$2.toLowerCase()===right$2.toLowerCase()},removeEmpty:function(array){for(var ret=[],i$7=0;i$7<array.length;i$7++)array[i$7]&&ret.push(array[i$7]);return ret},castInput:function(value){return value},tokenize:function(value){return Array.from(value)},join:function(chars){return chars.join(``)},postProcess:function(changeObjects){return changeObjects}};function buildValues(diff$2,lastComponent,newString,oldString,useLongestToken){for(var components=[],nextComponent;lastComponent;)components.push(lastComponent),nextComponent=lastComponent.previousComponent,delete lastComponent.previousComponent,lastComponent=nextComponent;components.reverse();for(var componentPos=0,componentLen=components.length,newPos=0,oldPos=0;componentPos<componentLen;componentPos++){var component=components[componentPos];if(component.removed)component.value=diff$2.join(oldString.slice(oldPos,oldPos+component.count)),oldPos+=component.count;else{if(!component.added&&useLongestToken){var value=newString.slice(newPos,newPos+component.count);value=value.map(function(value$1,i$7){var oldValue=oldString[oldPos+i$7];return oldValue.length>value$1.length?oldValue:value$1}),component.value=diff$2.join(value)}else component.value=diff$2.join(newString.slice(newPos,newPos+component.count));newPos+=component.count,component.added||(oldPos+=component.count)}}return components}var characterDiff=new Diff;function longestCommonPrefix(str1,str2){var i$7;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[i$7]!=str2[i$7])return str1.slice(0,i$7);return str1.slice(0,i$7)}function longestCommonSuffix(str1,str2){var i$7;if(!str1||!str2||str1[str1.length-1]!=str2[str2.length-1])return``;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[str1.length-(i$7+1)]!=str2[str2.length-(i$7+1)])return str1.slice(-i$7);return str1.slice(-i$7)}function replacePrefix(string,oldPrefix,newPrefix){if(string.slice(0,oldPrefix.length)!=oldPrefix)throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);return newPrefix+string.slice(oldPrefix.length)}function replaceSuffix(string,oldSuffix,newSuffix){if(!oldSuffix)return string+newSuffix;if(string.slice(-oldSuffix.length)!=oldSuffix)throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);return string.slice(0,-oldSuffix.length)+newSuffix}function removePrefix(string,oldPrefix){return replacePrefix(string,oldPrefix,``)}function removeSuffix(string,oldSuffix){return replaceSuffix(string,oldSuffix,``)}function maximumOverlap(string1$1,string2$1){return string2$1.slice(0,overlapCount(string1$1,string2$1))}function overlapCount(a$2,b$2){var startA=0;a$2.length>b$2.length&&(startA=a$2.length-b$2.length);var endB=b$2.length;a$2.length<b$2.length&&(endB=a$2.length);var map$2=Array(endB),k=0;map$2[0]=0;for(var j$2=1;j$2<endB;j$2++){for(b$2[j$2]==b$2[k]?map$2[j$2]=map$2[k]:map$2[j$2]=k;k>0&&b$2[j$2]!=b$2[k];)k=map$2[k];b$2[j$2]==b$2[k]&&k++}k=0;for(var i$7=startA;i$7<a$2.length;i$7++){for(;k>0&&a$2[i$7]!=b$2[k];)k=map$2[k];a$2[i$7]==b$2[k]&&k++}return k}var extendedWordChars=`a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,tokenizeIncludingWhitespace=RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`,`ug`),wordDiff=new Diff;wordDiff.equals=function(left$2,right$2,options$1){return options$1.ignoreCase&&(left$2=left$2.toLowerCase(),right$2=right$2.toLowerCase()),left$2.trim()===right$2.trim()},wordDiff.tokenize=function(value){var options$1=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},parts;if(options$1.intlSegmenter){if(options$1.intlSegmenter.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);parts=Array.from(options$1.intlSegmenter.segment(value),function(segment){return segment.segment})}else parts=value.match(tokenizeIncludingWhitespace)||[];var tokens=[],prevPart=null;return parts.forEach(function(part){/\s/.test(part)?prevPart==null?tokens.push(part):tokens.push(tokens.pop()+part):/\s/.test(prevPart)?tokens[tokens.length-1]==prevPart?tokens.push(tokens.pop()+part):tokens.push(prevPart+part):tokens.push(part),prevPart=part}),tokens},wordDiff.join=function(tokens){return tokens.map(function(token$1,i$7){return i$7==0?token$1:token$1.replace(/^\s+/,``)}).join(``)},wordDiff.postProcess=function(changes,options$1){if(!changes||options$1.oneChangePerToken)return changes;var lastKeep=null,insertion=null,deletion=null;return changes.forEach(function(change){change.added?insertion=change:change.removed?deletion=change:((insertion||deletion)&&dedupeWhitespaceInChangeObjects(lastKeep,deletion,insertion,change),lastKeep=change,insertion=null,deletion=null)}),(insertion||deletion)&&dedupeWhitespaceInChangeObjects(lastKeep,deletion,insertion,null),changes};function dedupeWhitespaceInChangeObjects(startKeep,deletion,insertion,endKeep){if(deletion&&insertion){var oldWsPrefix=deletion.value.match(/^\s*/)[0],oldWsSuffix=deletion.value.match(/\s*$/)[0],newWsPrefix=insertion.value.match(/^\s*/)[0],newWsSuffix=insertion.value.match(/\s*$/)[0];if(startKeep){var commonWsPrefix=longestCommonPrefix(oldWsPrefix,newWsPrefix);startKeep.value=replaceSuffix(startKeep.value,newWsPrefix,commonWsPrefix),deletion.value=removePrefix(deletion.value,commonWsPrefix),insertion.value=removePrefix(insertion.value,commonWsPrefix)}if(endKeep){var commonWsSuffix=longestCommonSuffix(oldWsSuffix,newWsSuffix);endKeep.value=replacePrefix(endKeep.value,newWsSuffix,commonWsSuffix),deletion.value=removeSuffix(deletion.value,commonWsSuffix),insertion.value=removeSuffix(insertion.value,commonWsSuffix)}}else if(insertion)startKeep&&(insertion.value=insertion.value.replace(/^\s*/,``)),endKeep&&(endKeep.value=endKeep.value.replace(/^\s*/,``));else if(startKeep&&endKeep){var newWsFull=endKeep.value.match(/^\s*/)[0],delWsStart=deletion.value.match(/^\s*/)[0],delWsEnd=deletion.value.match(/\s*$/)[0],newWsStart=longestCommonPrefix(newWsFull,delWsStart);deletion.value=removePrefix(deletion.value,newWsStart);var newWsEnd=longestCommonSuffix(removePrefix(newWsFull,newWsStart),delWsEnd);deletion.value=removeSuffix(deletion.value,newWsEnd),endKeep.value=replacePrefix(endKeep.value,newWsFull,newWsEnd),startKeep.value=replaceSuffix(startKeep.value,newWsFull,newWsFull.slice(0,newWsFull.length-newWsEnd.length))}else if(endKeep){var endKeepWsPrefix=endKeep.value.match(/^\s*/)[0],deletionWsSuffix=deletion.value.match(/\s*$/)[0],overlap=maximumOverlap(deletionWsSuffix,endKeepWsPrefix);deletion.value=removeSuffix(deletion.value,overlap)}else if(startKeep){var startKeepWsSuffix=startKeep.value.match(/\s*$/)[0],deletionWsPrefix=deletion.value.match(/^\s*/)[0],_overlap=maximumOverlap(startKeepWsSuffix,deletionWsPrefix);deletion.value=removePrefix(deletion.value,_overlap)}}var wordWithSpaceDiff=new Diff;wordWithSpaceDiff.tokenize=function(value){var regex$3=RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`,`ug`);return value.match(regex$3)||[]};var lineDiff=new Diff;lineDiff.tokenize=function(value,options$1){options$1.stripTrailingCr&&(value=value.replace(/\r\n/g,`
|
|
1032
|
+
`),resultMessage=`Directory listing for ${this.params.path}:\n${directoryContent}`,ignoredMessages=[];gitIgnoredCount>0&&ignoredMessages.push(`${gitIgnoredCount} git-ignored`),geminiIgnoredCount>0&&ignoredMessages.push(`${geminiIgnoredCount} gemini-ignored`),ignoredMessages.length>0&&(resultMessage+=`\n\n(${ignoredMessages.join(`, `)})`);let displayMessage=`Listed ${entries$1.length} item(s).`;return ignoredMessages.length>0&&(displayMessage+=` (${ignoredMessages.join(`, `)})`),{llmContent:resultMessage,returnDisplay:displayMessage}}catch(error$3){let errorMsg=`Error listing directory: ${error$3 instanceof Error?error$3.message:String(error$3)}`;return this.errorResult(errorMsg,`Failed to list directory.`,ToolErrorType.LS_EXECUTION_ERROR)}}},LSTool=class LSTool extends BaseDeclarativeTool{config;static Name=`list_directory`;constructor(config){super(LSTool.Name,`ReadFolder`,`Lists the names of files and subdirectories directly within a specified directory path. Can optionally ignore entries matching provided glob patterns.`,Kind.Search,{properties:{path:{description:`The absolute path to the directory to list (must be absolute, not relative)`,type:`string`},ignore:{description:`List of glob patterns to ignore`,items:{type:`string`},type:`array`},file_filtering_options:{description:`Optional: Whether to respect ignore patterns from .gitignore or .geminiignore`,type:`object`,properties:{respect_git_ignore:{description:`Optional: Whether to respect .gitignore patterns when listing files. Only available in git repositories. Defaults to true.`,type:`boolean`},respect_gemini_ignore:{description:`Optional: Whether to respect .geminiignore patterns when listing files. Defaults to true.`,type:`boolean`}}}},required:[`path`],type:`object`}),this.config=config}validateToolParamValues(params){if(!path.isAbsolute(params.path))return`Path must be absolute: ${params.path}`;let workspaceContext=this.config.getWorkspaceContext();return workspaceContext.isPathWithinWorkspace(params.path)?null:`Path must be within one of the workspace directories: ${workspaceContext.getDirectories().join(`, `)}`}createInvocation(params){return new LSToolInvocation(this.config,params)}};const types$2={"application/andrew-inset":[`ez`],"application/appinstaller":[`appinstaller`],"application/applixware":[`aw`],"application/appx":[`appx`],"application/appxbundle":[`appxbundle`],"application/atom+xml":[`atom`],"application/atomcat+xml":[`atomcat`],"application/atomdeleted+xml":[`atomdeleted`],"application/atomsvc+xml":[`atomsvc`],"application/atsc-dwd+xml":[`dwd`],"application/atsc-held+xml":[`held`],"application/atsc-rsat+xml":[`rsat`],"application/automationml-aml+xml":[`aml`],"application/automationml-amlx+zip":[`amlx`],"application/bdoc":[`bdoc`],"application/calendar+xml":[`xcs`],"application/ccxml+xml":[`ccxml`],"application/cdfx+xml":[`cdfx`],"application/cdmi-capability":[`cdmia`],"application/cdmi-container":[`cdmic`],"application/cdmi-domain":[`cdmid`],"application/cdmi-object":[`cdmio`],"application/cdmi-queue":[`cdmiq`],"application/cpl+xml":[`cpl`],"application/cu-seeme":[`cu`],"application/cwl":[`cwl`],"application/dash+xml":[`mpd`],"application/dash-patch+xml":[`mpp`],"application/davmount+xml":[`davmount`],"application/dicom":[`dcm`],"application/docbook+xml":[`dbk`],"application/dssc+der":[`dssc`],"application/dssc+xml":[`xdssc`],"application/ecmascript":[`ecma`],"application/emma+xml":[`emma`],"application/emotionml+xml":[`emotionml`],"application/epub+zip":[`epub`],"application/exi":[`exi`],"application/express":[`exp`],"application/fdf":[`fdf`],"application/fdt+xml":[`fdt`],"application/font-tdpfr":[`pfr`],"application/geo+json":[`geojson`],"application/gml+xml":[`gml`],"application/gpx+xml":[`gpx`],"application/gxf":[`gxf`],"application/gzip":[`gz`],"application/hjson":[`hjson`],"application/hyperstudio":[`stk`],"application/inkml+xml":[`ink`,`inkml`],"application/ipfix":[`ipfix`],"application/its+xml":[`its`],"application/java-archive":[`jar`,`war`,`ear`],"application/java-serialized-object":[`ser`],"application/java-vm":[`class`],"application/javascript":[`*js`],"application/json":[`json`,`map`],"application/json5":[`json5`],"application/jsonml+json":[`jsonml`],"application/ld+json":[`jsonld`],"application/lgr+xml":[`lgr`],"application/lost+xml":[`lostxml`],"application/mac-binhex40":[`hqx`],"application/mac-compactpro":[`cpt`],"application/mads+xml":[`mads`],"application/manifest+json":[`webmanifest`],"application/marc":[`mrc`],"application/marcxml+xml":[`mrcx`],"application/mathematica":[`ma`,`nb`,`mb`],"application/mathml+xml":[`mathml`],"application/mbox":[`mbox`],"application/media-policy-dataset+xml":[`mpf`],"application/mediaservercontrol+xml":[`mscml`],"application/metalink+xml":[`metalink`],"application/metalink4+xml":[`meta4`],"application/mets+xml":[`mets`],"application/mmt-aei+xml":[`maei`],"application/mmt-usd+xml":[`musd`],"application/mods+xml":[`mods`],"application/mp21":[`m21`,`mp21`],"application/mp4":[`*mp4`,`*mpg4`,`mp4s`,`m4p`],"application/msix":[`msix`],"application/msixbundle":[`msixbundle`],"application/msword":[`doc`,`dot`],"application/mxf":[`mxf`],"application/n-quads":[`nq`],"application/n-triples":[`nt`],"application/node":[`cjs`],"application/octet-stream":[`bin`,`dms`,`lrf`,`mar`,`so`,`dist`,`distz`,`pkg`,`bpk`,`dump`,`elc`,`deploy`,`exe`,`dll`,`deb`,`dmg`,`iso`,`img`,`msi`,`msp`,`msm`,`buffer`],"application/oda":[`oda`],"application/oebps-package+xml":[`opf`],"application/ogg":[`ogx`],"application/omdoc+xml":[`omdoc`],"application/onenote":[`onetoc`,`onetoc2`,`onetmp`,`onepkg`,`one`,`onea`],"application/oxps":[`oxps`],"application/p2p-overlay+xml":[`relo`],"application/patch-ops-error+xml":[`xer`],"application/pdf":[`pdf`],"application/pgp-encrypted":[`pgp`],"application/pgp-keys":[`asc`],"application/pgp-signature":[`sig`,`*asc`],"application/pics-rules":[`prf`],"application/pkcs10":[`p10`],"application/pkcs7-mime":[`p7m`,`p7c`],"application/pkcs7-signature":[`p7s`],"application/pkcs8":[`p8`],"application/pkix-attr-cert":[`ac`],"application/pkix-cert":[`cer`],"application/pkix-crl":[`crl`],"application/pkix-pkipath":[`pkipath`],"application/pkixcmp":[`pki`],"application/pls+xml":[`pls`],"application/postscript":[`ai`,`eps`,`ps`],"application/provenance+xml":[`provx`],"application/pskc+xml":[`pskcxml`],"application/raml+yaml":[`raml`],"application/rdf+xml":[`rdf`,`owl`],"application/reginfo+xml":[`rif`],"application/relax-ng-compact-syntax":[`rnc`],"application/resource-lists+xml":[`rl`],"application/resource-lists-diff+xml":[`rld`],"application/rls-services+xml":[`rs`],"application/route-apd+xml":[`rapd`],"application/route-s-tsid+xml":[`sls`],"application/route-usd+xml":[`rusd`],"application/rpki-ghostbusters":[`gbr`],"application/rpki-manifest":[`mft`],"application/rpki-roa":[`roa`],"application/rsd+xml":[`rsd`],"application/rss+xml":[`rss`],"application/rtf":[`rtf`],"application/sbml+xml":[`sbml`],"application/scvp-cv-request":[`scq`],"application/scvp-cv-response":[`scs`],"application/scvp-vp-request":[`spq`],"application/scvp-vp-response":[`spp`],"application/sdp":[`sdp`],"application/senml+xml":[`senmlx`],"application/sensml+xml":[`sensmlx`],"application/set-payment-initiation":[`setpay`],"application/set-registration-initiation":[`setreg`],"application/shf+xml":[`shf`],"application/sieve":[`siv`,`sieve`],"application/smil+xml":[`smi`,`smil`],"application/sparql-query":[`rq`],"application/sparql-results+xml":[`srx`],"application/sql":[`sql`],"application/srgs":[`gram`],"application/srgs+xml":[`grxml`],"application/sru+xml":[`sru`],"application/ssdl+xml":[`ssdl`],"application/ssml+xml":[`ssml`],"application/swid+xml":[`swidtag`],"application/tei+xml":[`tei`,`teicorpus`],"application/thraud+xml":[`tfi`],"application/timestamped-data":[`tsd`],"application/toml":[`toml`],"application/trig":[`trig`],"application/ttml+xml":[`ttml`],"application/ubjson":[`ubj`],"application/urc-ressheet+xml":[`rsheet`],"application/urc-targetdesc+xml":[`td`],"application/voicexml+xml":[`vxml`],"application/wasm":[`wasm`],"application/watcherinfo+xml":[`wif`],"application/widget":[`wgt`],"application/winhlp":[`hlp`],"application/wsdl+xml":[`wsdl`],"application/wspolicy+xml":[`wspolicy`],"application/xaml+xml":[`xaml`],"application/xcap-att+xml":[`xav`],"application/xcap-caps+xml":[`xca`],"application/xcap-diff+xml":[`xdf`],"application/xcap-el+xml":[`xel`],"application/xcap-ns+xml":[`xns`],"application/xenc+xml":[`xenc`],"application/xfdf":[`xfdf`],"application/xhtml+xml":[`xhtml`,`xht`],"application/xliff+xml":[`xlf`],"application/xml":[`xml`,`xsl`,`xsd`,`rng`],"application/xml-dtd":[`dtd`],"application/xop+xml":[`xop`],"application/xproc+xml":[`xpl`],"application/xslt+xml":[`*xsl`,`xslt`],"application/xspf+xml":[`xspf`],"application/xv+xml":[`mxml`,`xhvml`,`xvml`,`xvm`],"application/yang":[`yang`],"application/yin+xml":[`yin`],"application/zip":[`zip`],"application/zip+dotlottie":[`lottie`],"audio/3gpp":[`*3gpp`],"audio/aac":[`adts`,`aac`],"audio/adpcm":[`adp`],"audio/amr":[`amr`],"audio/basic":[`au`,`snd`],"audio/midi":[`mid`,`midi`,`kar`,`rmi`],"audio/mobile-xmf":[`mxmf`],"audio/mp3":[`*mp3`],"audio/mp4":[`m4a`,`mp4a`,`m4b`],"audio/mpeg":[`mpga`,`mp2`,`mp2a`,`mp3`,`m2a`,`m3a`],"audio/ogg":[`oga`,`ogg`,`spx`,`opus`],"audio/s3m":[`s3m`],"audio/silk":[`sil`],"audio/wav":[`wav`],"audio/wave":[`*wav`],"audio/webm":[`weba`],"audio/xm":[`xm`],"font/collection":[`ttc`],"font/otf":[`otf`],"font/ttf":[`ttf`],"font/woff":[`woff`],"font/woff2":[`woff2`],"image/aces":[`exr`],"image/apng":[`apng`],"image/avci":[`avci`],"image/avcs":[`avcs`],"image/avif":[`avif`],"image/bmp":[`bmp`,`dib`],"image/cgm":[`cgm`],"image/dicom-rle":[`drle`],"image/dpx":[`dpx`],"image/emf":[`emf`],"image/fits":[`fits`],"image/g3fax":[`g3`],"image/gif":[`gif`],"image/heic":[`heic`],"image/heic-sequence":[`heics`],"image/heif":[`heif`],"image/heif-sequence":[`heifs`],"image/hej2k":[`hej2`],"image/ief":[`ief`],"image/jaii":[`jaii`],"image/jais":[`jais`],"image/jls":[`jls`],"image/jp2":[`jp2`,`jpg2`],"image/jpeg":[`jpg`,`jpeg`,`jpe`],"image/jph":[`jph`],"image/jphc":[`jhc`],"image/jpm":[`jpm`,`jpgm`],"image/jpx":[`jpx`,`jpf`],"image/jxl":[`jxl`],"image/jxr":[`jxr`],"image/jxra":[`jxra`],"image/jxrs":[`jxrs`],"image/jxs":[`jxs`],"image/jxsc":[`jxsc`],"image/jxsi":[`jxsi`],"image/jxss":[`jxss`],"image/ktx":[`ktx`],"image/ktx2":[`ktx2`],"image/pjpeg":[`jfif`],"image/png":[`png`],"image/sgi":[`sgi`],"image/svg+xml":[`svg`,`svgz`],"image/t38":[`t38`],"image/tiff":[`tif`,`tiff`],"image/tiff-fx":[`tfx`],"image/webp":[`webp`],"image/wmf":[`wmf`],"message/disposition-notification":[`disposition-notification`],"message/global":[`u8msg`],"message/global-delivery-status":[`u8dsn`],"message/global-disposition-notification":[`u8mdn`],"message/global-headers":[`u8hdr`],"message/rfc822":[`eml`,`mime`,`mht`,`mhtml`],"model/3mf":[`3mf`],"model/gltf+json":[`gltf`],"model/gltf-binary":[`glb`],"model/iges":[`igs`,`iges`],"model/jt":[`jt`],"model/mesh":[`msh`,`mesh`,`silo`],"model/mtl":[`mtl`],"model/obj":[`obj`],"model/prc":[`prc`],"model/step":[`step`,`stp`,`stpnc`,`p21`,`210`],"model/step+xml":[`stpx`],"model/step+zip":[`stpz`],"model/step-xml+zip":[`stpxz`],"model/stl":[`stl`],"model/u3d":[`u3d`],"model/vrml":[`wrl`,`vrml`],"model/x3d+binary":[`*x3db`,`x3dbz`],"model/x3d+fastinfoset":[`x3db`],"model/x3d+vrml":[`*x3dv`,`x3dvz`],"model/x3d+xml":[`x3d`,`x3dz`],"model/x3d-vrml":[`x3dv`],"text/cache-manifest":[`appcache`,`manifest`],"text/calendar":[`ics`,`ifb`],"text/coffeescript":[`coffee`,`litcoffee`],"text/css":[`css`],"text/csv":[`csv`],"text/html":[`html`,`htm`,`shtml`],"text/jade":[`jade`],"text/javascript":[`js`,`mjs`],"text/jsx":[`jsx`],"text/less":[`less`],"text/markdown":[`md`,`markdown`],"text/mathml":[`mml`],"text/mdx":[`mdx`],"text/n3":[`n3`],"text/plain":[`txt`,`text`,`conf`,`def`,`list`,`log`,`in`,`ini`],"text/richtext":[`rtx`],"text/rtf":[`*rtf`],"text/sgml":[`sgml`,`sgm`],"text/shex":[`shex`],"text/slim":[`slim`,`slm`],"text/spdx":[`spdx`],"text/stylus":[`stylus`,`styl`],"text/tab-separated-values":[`tsv`],"text/troff":[`t`,`tr`,`roff`,`man`,`me`,`ms`],"text/turtle":[`ttl`],"text/uri-list":[`uri`,`uris`,`urls`],"text/vcard":[`vcard`],"text/vtt":[`vtt`],"text/wgsl":[`wgsl`],"text/xml":[`*xml`],"text/yaml":[`yaml`,`yml`],"video/3gpp":[`3gp`,`3gpp`],"video/3gpp2":[`3g2`],"video/h261":[`h261`],"video/h263":[`h263`],"video/h264":[`h264`],"video/iso.segment":[`m4s`],"video/jpeg":[`jpgv`],"video/jpm":[`*jpm`,`*jpgm`],"video/mj2":[`mj2`,`mjp2`],"video/mp2t":[`ts`,`m2t`,`m2ts`,`mts`],"video/mp4":[`mp4`,`mp4v`,`mpg4`],"video/mpeg":[`mpeg`,`mpg`,`mpe`,`m1v`,`m2v`],"video/ogg":[`ogv`],"video/quicktime":[`qt`,`mov`],"video/webm":[`webm`]};Object.freeze(types$2);var standard_default=types$2,__classPrivateFieldGet=function(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)},_Mime_extensionToType,_Mime_typeToExtension,_Mime_typeToExtensions,Mime=class{constructor(...args){_Mime_extensionToType.set(this,new Map),_Mime_typeToExtension.set(this,new Map),_Mime_typeToExtensions.set(this,new Map);for(let arg of args)this.define(arg)}define(typeMap,force=!1){for(let[type,extensions]of Object.entries(typeMap)){type=type.toLowerCase(),extensions=extensions.map(ext$1=>ext$1.toLowerCase()),__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).has(type)||__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).set(type,new Set);let allExtensions=__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).get(type),first$1=!0;for(let extension of extensions){let starred=extension.startsWith(`*`);if(extension=starred?extension.slice(1):extension,allExtensions?.add(extension),first$1&&__classPrivateFieldGet(this,_Mime_typeToExtension,`f`).set(type,extension),first$1=!1,starred)continue;let currentType=__classPrivateFieldGet(this,_Mime_extensionToType,`f`).get(extension);if(currentType&¤tType!=type&&!force)throw Error(`"${type} -> ${extension}" conflicts with "${currentType} -> ${extension}". Pass \`force=true\` to override this definition.`);__classPrivateFieldGet(this,_Mime_extensionToType,`f`).set(extension,type)}}return this}getType(path$38){if(typeof path$38!=`string`)return null;let last$1=path$38.replace(/^.*[/\\]/s,``).toLowerCase(),ext$1=last$1.replace(/^.*\./s,``).toLowerCase(),hasPath=last$1.length<path$38.length;return!(ext$1.length<last$1.length-1)&&hasPath?null:__classPrivateFieldGet(this,_Mime_extensionToType,`f`).get(ext$1)??null}getExtension(type){return typeof type==`string`?(type=type?.split?.(`;`)[0],(type&&__classPrivateFieldGet(this,_Mime_typeToExtension,`f`).get(type.trim().toLowerCase()))??null):null}getAllExtensions(type){return typeof type==`string`?__classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).get(type.toLowerCase())??null:null}_freeze(){this.define=()=>{throw Error(`define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances`)},Object.freeze(this);for(let extensions of __classPrivateFieldGet(this,_Mime_typeToExtensions,`f`).values())Object.freeze(extensions);return this}_getTestState(){return{types:__classPrivateFieldGet(this,_Mime_extensionToType,`f`),extensions:__classPrivateFieldGet(this,_Mime_typeToExtension,`f`)}}};_Mime_extensionToType=new WeakMap,_Mime_typeToExtension=new WeakMap,_Mime_typeToExtensions=new WeakMap;var index_lite_default=new Mime(standard_default)._freeze();function Diff(){}Diff.prototype={diff:function(oldString,newString){var _options$timeout,options$1=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},callback$1=options$1.callback;typeof options$1==`function`&&(callback$1=options$1,options$1={});var self$1=this;function done(value){return value=self$1.postProcess(value,options$1),callback$1?(setTimeout(function(){callback$1(value)},0),!0):value}oldString=this.castInput(oldString,options$1),newString=this.castInput(newString,options$1),oldString=this.removeEmpty(this.tokenize(oldString,options$1)),newString=this.removeEmpty(this.tokenize(newString,options$1));var newLen=newString.length,oldLen=oldString.length,editLength=1,maxEditLength=newLen+oldLen;options$1.maxEditLength!=null&&(maxEditLength=Math.min(maxEditLength,options$1.maxEditLength));var maxExecutionTime=options$1.timeout??1/0,abortAfterTimestamp=Date.now()+maxExecutionTime,bestPath=[{oldPos:-1,lastComponent:void 0}],newPos=this.extractCommon(bestPath[0],newString,oldString,0,options$1);if(bestPath[0].oldPos+1>=oldLen&&newPos+1>=newLen)return done(buildValues(self$1,bestPath[0].lastComponent,newString,oldString,self$1.useLongestToken));var minDiagonalToConsider=-1/0,maxDiagonalToConsider=1/0;function execEditLength(){for(var diagonalPath=Math.max(minDiagonalToConsider,-editLength);diagonalPath<=Math.min(maxDiagonalToConsider,editLength);diagonalPath+=2){var basePath=void 0,removePath=bestPath[diagonalPath-1],addPath=bestPath[diagonalPath+1];removePath&&(bestPath[diagonalPath-1]=void 0);var canAdd=!1;if(addPath){var addPathNewPos=addPath.oldPos-diagonalPath;canAdd=addPath&&0<=addPathNewPos&&addPathNewPos<newLen}var canRemove=removePath&&removePath.oldPos+1<oldLen;if(!canAdd&&!canRemove){bestPath[diagonalPath]=void 0;continue}if(basePath=!canRemove||canAdd&&removePath.oldPos<addPath.oldPos?self$1.addToPath(addPath,!0,!1,0,options$1):self$1.addToPath(removePath,!1,!0,1,options$1),newPos=self$1.extractCommon(basePath,newString,oldString,diagonalPath,options$1),basePath.oldPos+1>=oldLen&&newPos+1>=newLen)return done(buildValues(self$1,basePath.lastComponent,newString,oldString,self$1.useLongestToken));bestPath[diagonalPath]=basePath,basePath.oldPos+1>=oldLen&&(maxDiagonalToConsider=Math.min(maxDiagonalToConsider,diagonalPath-1)),newPos+1>=newLen&&(minDiagonalToConsider=Math.max(minDiagonalToConsider,diagonalPath+1))}editLength++}if(callback$1)(function exec$3(){setTimeout(function(){if(editLength>maxEditLength||Date.now()>abortAfterTimestamp)return callback$1();execEditLength()||exec$3()},0)})();else for(;editLength<=maxEditLength&&Date.now()<=abortAfterTimestamp;){var ret=execEditLength();if(ret)return ret}},addToPath:function(path$38,added,removed,oldPosInc,options$1){var last$1=path$38.lastComponent;return last$1&&!options$1.oneChangePerToken&&last$1.added===added&&last$1.removed===removed?{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:last$1.count+1,added,removed,previousComponent:last$1.previousComponent}}:{oldPos:path$38.oldPos+oldPosInc,lastComponent:{count:1,added,removed,previousComponent:last$1}}},extractCommon:function(basePath,newString,oldString,diagonalPath,options$1){for(var newLen=newString.length,oldLen=oldString.length,oldPos=basePath.oldPos,newPos=oldPos-diagonalPath,commonCount=0;newPos+1<newLen&&oldPos+1<oldLen&&this.equals(oldString[oldPos+1],newString[newPos+1],options$1);)newPos++,oldPos++,commonCount++,options$1.oneChangePerToken&&(basePath.lastComponent={count:1,previousComponent:basePath.lastComponent,added:!1,removed:!1});return commonCount&&!options$1.oneChangePerToken&&(basePath.lastComponent={count:commonCount,previousComponent:basePath.lastComponent,added:!1,removed:!1}),basePath.oldPos=oldPos,newPos},equals:function(left$2,right$2,options$1){return options$1.comparator?options$1.comparator(left$2,right$2):left$2===right$2||options$1.ignoreCase&&left$2.toLowerCase()===right$2.toLowerCase()},removeEmpty:function(array){for(var ret=[],i$7=0;i$7<array.length;i$7++)array[i$7]&&ret.push(array[i$7]);return ret},castInput:function(value){return value},tokenize:function(value){return Array.from(value)},join:function(chars){return chars.join(``)},postProcess:function(changeObjects){return changeObjects}};function buildValues(diff$2,lastComponent,newString,oldString,useLongestToken){for(var components=[],nextComponent;lastComponent;)components.push(lastComponent),nextComponent=lastComponent.previousComponent,delete lastComponent.previousComponent,lastComponent=nextComponent;components.reverse();for(var componentPos=0,componentLen=components.length,newPos=0,oldPos=0;componentPos<componentLen;componentPos++){var component=components[componentPos];if(component.removed)component.value=diff$2.join(oldString.slice(oldPos,oldPos+component.count)),oldPos+=component.count;else{if(!component.added&&useLongestToken){var value=newString.slice(newPos,newPos+component.count);value=value.map(function(value$1,i$7){var oldValue=oldString[oldPos+i$7];return oldValue.length>value$1.length?oldValue:value$1}),component.value=diff$2.join(value)}else component.value=diff$2.join(newString.slice(newPos,newPos+component.count));newPos+=component.count,component.added||(oldPos+=component.count)}}return components}var characterDiff=new Diff;function longestCommonPrefix(str1,str2){var i$7;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[i$7]!=str2[i$7])return str1.slice(0,i$7);return str1.slice(0,i$7)}function longestCommonSuffix(str1,str2){var i$7;if(!str1||!str2||str1[str1.length-1]!=str2[str2.length-1])return``;for(i$7=0;i$7<str1.length&&i$7<str2.length;i$7++)if(str1[str1.length-(i$7+1)]!=str2[str2.length-(i$7+1)])return str1.slice(-i$7);return str1.slice(-i$7)}function replacePrefix(string,oldPrefix,newPrefix){if(string.slice(0,oldPrefix.length)!=oldPrefix)throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);return newPrefix+string.slice(oldPrefix.length)}function replaceSuffix(string,oldSuffix,newSuffix){if(!oldSuffix)return string+newSuffix;if(string.slice(-oldSuffix.length)!=oldSuffix)throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);return string.slice(0,-oldSuffix.length)+newSuffix}function removePrefix(string,oldPrefix){return replacePrefix(string,oldPrefix,``)}function removeSuffix(string,oldSuffix){return replaceSuffix(string,oldSuffix,``)}function maximumOverlap(string1$1,string2$1){return string2$1.slice(0,overlapCount(string1$1,string2$1))}function overlapCount(a$2,b$2){var startA=0;a$2.length>b$2.length&&(startA=a$2.length-b$2.length);var endB=b$2.length;a$2.length<b$2.length&&(endB=a$2.length);var map$2=Array(endB),k=0;map$2[0]=0;for(var j$2=1;j$2<endB;j$2++){for(b$2[j$2]==b$2[k]?map$2[j$2]=map$2[k]:map$2[j$2]=k;k>0&&b$2[j$2]!=b$2[k];)k=map$2[k];b$2[j$2]==b$2[k]&&k++}k=0;for(var i$7=startA;i$7<a$2.length;i$7++){for(;k>0&&a$2[i$7]!=b$2[k];)k=map$2[k];a$2[i$7]==b$2[k]&&k++}return k}var extendedWordChars=`a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}`,tokenizeIncludingWhitespace=RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`,`ug`),wordDiff=new Diff;wordDiff.equals=function(left$2,right$2,options$1){return options$1.ignoreCase&&(left$2=left$2.toLowerCase(),right$2=right$2.toLowerCase()),left$2.trim()===right$2.trim()},wordDiff.tokenize=function(value){var options$1=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},parts;if(options$1.intlSegmenter){if(options$1.intlSegmenter.resolvedOptions().granularity!=`word`)throw Error(`The segmenter passed must have a granularity of "word"`);parts=Array.from(options$1.intlSegmenter.segment(value),function(segment){return segment.segment})}else parts=value.match(tokenizeIncludingWhitespace)||[];var tokens=[],prevPart=null;return parts.forEach(function(part){/\s/.test(part)?prevPart==null?tokens.push(part):tokens.push(tokens.pop()+part):/\s/.test(prevPart)?tokens[tokens.length-1]==prevPart?tokens.push(tokens.pop()+part):tokens.push(prevPart+part):tokens.push(part),prevPart=part}),tokens},wordDiff.join=function(tokens){return tokens.map(function(token$1,i$7){return i$7==0?token$1:token$1.replace(/^\s+/,``)}).join(``)},wordDiff.postProcess=function(changes,options$1){if(!changes||options$1.oneChangePerToken)return changes;var lastKeep=null,insertion=null,deletion=null;return changes.forEach(function(change){change.added?insertion=change:change.removed?deletion=change:((insertion||deletion)&&dedupeWhitespaceInChangeObjects(lastKeep,deletion,insertion,change),lastKeep=change,insertion=null,deletion=null)}),(insertion||deletion)&&dedupeWhitespaceInChangeObjects(lastKeep,deletion,insertion,null),changes};function dedupeWhitespaceInChangeObjects(startKeep,deletion,insertion,endKeep){if(deletion&&insertion){var oldWsPrefix=deletion.value.match(/^\s*/)[0],oldWsSuffix=deletion.value.match(/\s*$/)[0],newWsPrefix=insertion.value.match(/^\s*/)[0],newWsSuffix=insertion.value.match(/\s*$/)[0];if(startKeep){var commonWsPrefix=longestCommonPrefix(oldWsPrefix,newWsPrefix);startKeep.value=replaceSuffix(startKeep.value,newWsPrefix,commonWsPrefix),deletion.value=removePrefix(deletion.value,commonWsPrefix),insertion.value=removePrefix(insertion.value,commonWsPrefix)}if(endKeep){var commonWsSuffix=longestCommonSuffix(oldWsSuffix,newWsSuffix);endKeep.value=replacePrefix(endKeep.value,newWsSuffix,commonWsSuffix),deletion.value=removeSuffix(deletion.value,commonWsSuffix),insertion.value=removeSuffix(insertion.value,commonWsSuffix)}}else if(insertion)startKeep&&(insertion.value=insertion.value.replace(/^\s*/,``)),endKeep&&(endKeep.value=endKeep.value.replace(/^\s*/,``));else if(startKeep&&endKeep){var newWsFull=endKeep.value.match(/^\s*/)[0],delWsStart=deletion.value.match(/^\s*/)[0],delWsEnd=deletion.value.match(/\s*$/)[0],newWsStart=longestCommonPrefix(newWsFull,delWsStart);deletion.value=removePrefix(deletion.value,newWsStart);var newWsEnd=longestCommonSuffix(removePrefix(newWsFull,newWsStart),delWsEnd);deletion.value=removeSuffix(deletion.value,newWsEnd),endKeep.value=replacePrefix(endKeep.value,newWsFull,newWsEnd),startKeep.value=replaceSuffix(startKeep.value,newWsFull,newWsFull.slice(0,newWsFull.length-newWsEnd.length))}else if(endKeep){var endKeepWsPrefix=endKeep.value.match(/^\s*/)[0],deletionWsSuffix=deletion.value.match(/\s*$/)[0],overlap=maximumOverlap(deletionWsSuffix,endKeepWsPrefix);deletion.value=removeSuffix(deletion.value,overlap)}else if(startKeep){var startKeepWsSuffix=startKeep.value.match(/\s*$/)[0],deletionWsPrefix=deletion.value.match(/^\s*/)[0],_overlap=maximumOverlap(startKeepWsSuffix,deletionWsPrefix);deletion.value=removePrefix(deletion.value,_overlap)}}var wordWithSpaceDiff=new Diff;wordWithSpaceDiff.tokenize=function(value){var regex$3=RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`,`ug`);return value.match(regex$3)||[]};var lineDiff=new Diff;lineDiff.tokenize=function(value,options$1){options$1.stripTrailingCr&&(value=value.replace(/\r\n/g,`
|
|
1033
1033
|
`));var retLines=[],linesAndNewlines=value.split(/(\n|\r\n)/);linesAndNewlines[linesAndNewlines.length-1]||linesAndNewlines.pop();for(var i$7=0;i$7<linesAndNewlines.length;i$7++){var line$1=linesAndNewlines[i$7];i$7%2&&!options$1.newlineIsToken?retLines[retLines.length-1]+=line$1:retLines.push(line$1)}return retLines},lineDiff.equals=function(left$2,right$2,options$1){return options$1.ignoreWhitespace?((!options$1.newlineIsToken||!left$2.includes(`
|
|
1034
1034
|
`))&&(left$2=left$2.trim()),(!options$1.newlineIsToken||!right$2.includes(`
|
|
1035
1035
|
`))&&(right$2=right$2.trim())):options$1.ignoreNewlineAtEof&&!options$1.newlineIsToken&&(left$2.endsWith(`
|
|
@@ -1917,6 +1917,6 @@ const SCREEN_READER_USER_PREFIX=`User: `,InputPrompt=({buffer:buffer$2,onSubmit,
|
|
|
1917
1917
|
`)&&(textToInsert+=` `),buffer$2.replaceRangeByOffset(offset,offset,textToInsert)}}}catch(error$3){console.error(`Error handling clipboard image:`,error$3)}},[buffer$2,config]),handleInput=useCallback(key$1=>{if(!(!focus&&!key$1.paste)){if(key$1.paste){setRecentPasteTime(Date.now()),pasteTimeoutRef.current&&clearTimeout(pasteTimeoutRef.current),pasteTimeoutRef.current=setTimeout(()=>{setRecentPasteTime(null),pasteTimeoutRef.current=null},500),buffer$2.handleInput(key$1);return}if(!(vimHandleInput&&vimHandleInput(key$1))){if(key$1.name!==`escape`&&(escPressCount>0||showEscapePrompt)&&resetEscapeState(),key$1.sequence===`!`&&buffer$2.text===``&&!completion.showSuggestions){setShellModeActive(!shellModeActive),buffer$2.setText(``);return}if(keyMatchers[Command.ESCAPE](key$1)){if(reverseSearchActive){setReverseSearchActive(!1),reverseSearchCompletion.resetCompletionState(),buffer$2.setText(textBeforeReverseSearch);let offset=logicalPosToOffset(buffer$2.lines,cursorPosition[0],cursorPosition[1]);buffer$2.moveToOffset(offset);return}if(shellModeActive){setShellModeActive(!1),resetEscapeState();return}if(completion.showSuggestions){completion.resetCompletionState(),resetEscapeState();return}if(escPressCount===0){if(buffer$2.text===``)return;setEscPressCount(1),setShowEscapePrompt(!0),escapeTimerRef.current&&clearTimeout(escapeTimerRef.current),escapeTimerRef.current=setTimeout(()=>{resetEscapeState()},500)}else buffer$2.setText(``),resetCompletionState(),resetEscapeState();return}if(shellModeActive&&keyMatchers[Command.REVERSE_SEARCH](key$1)){setReverseSearchActive(!0),setTextBeforeReverseSearch(buffer$2.text),setCursorPosition(buffer$2.cursor);return}if(keyMatchers[Command.CLEAR_SCREEN](key$1)){onClearScreen();return}if(reverseSearchActive){let{activeSuggestionIndex,navigateUp,navigateDown,showSuggestions,suggestions}=reverseSearchCompletion;if(showSuggestions){if(keyMatchers[Command.NAVIGATION_UP](key$1)){navigateUp();return}if(keyMatchers[Command.NAVIGATION_DOWN](key$1)){navigateDown();return}if(keyMatchers[Command.ACCEPT_SUGGESTION_REVERSE_SEARCH](key$1)){reverseSearchCompletion.handleAutocomplete(activeSuggestionIndex),reverseSearchCompletion.resetCompletionState(),setReverseSearchActive(!1);return}}if(keyMatchers[Command.SUBMIT_REVERSE_SEARCH](key$1)){let textToSubmit=showSuggestions&&activeSuggestionIndex>-1?suggestions[activeSuggestionIndex].value:buffer$2.text;handleSubmitAndClear(textToSubmit),reverseSearchCompletion.resetCompletionState(),setReverseSearchActive(!1);return}if(keyMatchers[Command.NAVIGATION_UP](key$1)||keyMatchers[Command.NAVIGATION_DOWN](key$1))return}if(completion.isPerfectMatch&&keyMatchers[Command.RETURN](key$1)){handleSubmitAndClear(buffer$2.text);return}if(completion.showSuggestions){if(completion.suggestions.length>1){if(keyMatchers[Command.COMPLETION_UP](key$1)){completion.navigateUp();return}if(keyMatchers[Command.COMPLETION_DOWN](key$1)){completion.navigateDown();return}}if(keyMatchers[Command.ACCEPT_SUGGESTION](key$1)){if(completion.suggestions.length>0){let targetIndex=completion.activeSuggestionIndex===-1?0:completion.activeSuggestionIndex;targetIndex<completion.suggestions.length&&completion.handleAutocomplete(targetIndex)}return}}if(key$1.name===`tab`&&!completion.showSuggestions&&completion.promptCompletion.text){completion.promptCompletion.accept();return}if(shellModeActive){if(keyMatchers[Command.NAVIGATION_UP](key$1)){let prevCommand=shellHistory.getPreviousCommand();prevCommand!==null&&buffer$2.setText(prevCommand);return}if(keyMatchers[Command.NAVIGATION_DOWN](key$1)){let nextCommand=shellHistory.getNextCommand();nextCommand!==null&&buffer$2.setText(nextCommand);return}}else{if(keyMatchers[Command.HISTORY_UP](key$1)){inputHistory.navigateUp();return}if(keyMatchers[Command.HISTORY_DOWN](key$1)){inputHistory.navigateDown();return}if(keyMatchers[Command.NAVIGATION_UP](key$1)&&(buffer$2.allVisualLines.length===1||buffer$2.visualCursor[0]===0&&buffer$2.visualScrollRow===0)){inputHistory.navigateUp();return}if(keyMatchers[Command.NAVIGATION_DOWN](key$1)&&(buffer$2.allVisualLines.length===1||buffer$2.visualCursor[0]===buffer$2.allVisualLines.length-1)){inputHistory.navigateDown();return}}if(keyMatchers[Command.SUBMIT](key$1)){if(buffer$2.text.trim()){if(recentPasteTime!==null)return;let[row,col]=buffer$2.cursor,line$1=buffer$2.lines[row];(col>0?cpSlice(line$1,col-1,col):``)===`\\`?(buffer$2.backspace(),buffer$2.newline()):handleSubmitAndClear(buffer$2.text)}return}if(keyMatchers[Command.NEWLINE](key$1)){buffer$2.newline();return}if(keyMatchers[Command.HOME](key$1)){buffer$2.move(`home`);return}if(keyMatchers[Command.END](key$1)){buffer$2.move(`end`);return}if(keyMatchers[Command.CLEAR_INPUT](key$1)){buffer$2.text.length>0&&(buffer$2.setText(``),resetCompletionState());return}if(keyMatchers[Command.KILL_LINE_RIGHT](key$1)){buffer$2.killLineRight();return}if(keyMatchers[Command.KILL_LINE_LEFT](key$1)){buffer$2.killLineLeft();return}if(keyMatchers[Command.DELETE_WORD_BACKWARD](key$1)){buffer$2.deleteWordLeft();return}if(keyMatchers[Command.OPEN_EXTERNAL_EDITOR](key$1)){buffer$2.openInExternalEditor();return}if(keyMatchers[Command.PASTE_CLIPBOARD_IMAGE](key$1)){handleClipboardImage();return}buffer$2.handleInput(key$1),completion.promptCompletion.text&&key$1.sequence&&key$1.sequence.length===1&&!key$1.ctrl&&!key$1.meta&&completion.promptCompletion.clear()}}},[focus,buffer$2,completion,shellModeActive,setShellModeActive,onClearScreen,inputHistory,handleSubmitAndClear,shellHistory,reverseSearchCompletion,handleClipboardImage,resetCompletionState,escPressCount,showEscapePrompt,resetEscapeState,vimHandleInput,reverseSearchActive,textBeforeReverseSearch,cursorPosition,recentPasteTime]);useKeypress(handleInput,{isActive:!0});let linesToRender=buffer$2.viewportVisualLines,[cursorVisualRowAbsolute,cursorVisualColAbsolute]=buffer$2.visualCursor,scrollVisualRow=buffer$2.visualScrollRow,{inlineGhost,additionalLines}=useCallback(()=>{if(!completion.promptCompletion.text||!buffer$2.text||!completion.promptCompletion.text.startsWith(buffer$2.text))return{inlineGhost:``,additionalLines:[]};let ghostSuffix=completion.promptCompletion.text.slice(buffer$2.text.length);if(!ghostSuffix)return{inlineGhost:``,additionalLines:[]};let currentLogicalLine=buffer$2.lines[buffer$2.cursor[0]]||``,cursorCol=buffer$2.cursor[1],textBeforeCursor=cpSlice(currentLogicalLine,0,cursorCol),usedWidth=stringWidth(textBeforeCursor),remainingWidth=Math.max(0,inputWidth-usedWidth),ghostTextLinesRaw=ghostSuffix.split(`
|
|
1918
1918
|
`),firstLineRaw=ghostTextLinesRaw.shift()||``,inlineGhost$1=``,remainingFirstLine=``;if(stringWidth(firstLineRaw)<=remainingWidth)inlineGhost$1=firstLineRaw;else{let words$1=firstLineRaw.split(` `),currentLine=``,wordIdx=0;for(let word of words$1){let prospectiveLine=currentLine?`${currentLine} ${word}`:word;if(stringWidth(prospectiveLine)>remainingWidth)break;currentLine=prospectiveLine,wordIdx++}inlineGhost$1=currentLine,words$1.length>wordIdx&&(remainingFirstLine=words$1.slice(wordIdx).join(` `))}let linesToWrap=[];remainingFirstLine&&linesToWrap.push(remainingFirstLine),linesToWrap.push(...ghostTextLinesRaw);let remainingGhostText=linesToWrap.join(`
|
|
1919
1919
|
`),additionalLines$1=[];if(remainingGhostText){let textLines=remainingGhostText.split(`
|
|
1920
|
-
`);for(let textLine of textLines){let words$1=textLine.split(` `),currentLine=``;for(let word of words$1){let prospectiveLine=currentLine?`${currentLine} ${word}`:word;if(stringWidth(prospectiveLine)>inputWidth){currentLine&&additionalLines$1.push(currentLine);let wordToProcess=word;for(;stringWidth(wordToProcess)>inputWidth;){let part=``,wordCP=toCodePoints(wordToProcess),partWidth=0,splitIndex=0;for(let i$7=0;i$7<wordCP.length;i$7++){let char=wordCP[i$7],charWidth=stringWidth(char);if(partWidth+charWidth>inputWidth)break;part+=char,partWidth+=charWidth,splitIndex=i$7+1}additionalLines$1.push(part),wordToProcess=cpSlice(wordToProcess,splitIndex)}currentLine=wordToProcess}else currentLine=prospectiveLine}currentLine&&additionalLines$1.push(currentLine)}}return{inlineGhost:inlineGhost$1,additionalLines:additionalLines$1}},[completion.promptCompletion.text,buffer$2.text,buffer$2.lines,buffer$2.cursor,inputWidth])();return jsxs(Fragment,{children:[jsxs(Box_default,{borderStyle:`round`,borderColor:borderColor??(shellModeActive?theme.status.warning:focus?theme.border.focused:theme.border.default),paddingX:1,children:[jsx(Text,{color:shellModeActive?theme.status.warning:theme.text.accent,children:shellModeActive?reverseSearchActive?jsxs(Text,{color:theme.text.link,"aria-label":`User: `,children:[`(r:)`,` `]}):`! `:`> `}),jsx(Box_default,{flexGrow:1,flexDirection:`column`,children:buffer$2.text.length===0&&placeholder?focus?jsxs(Text,{children:[source_default.inverse(placeholder.slice(0,1)),jsx(Text,{color:theme.text.secondary,children:placeholder.slice(1)})]}):jsx(Text,{color:theme.text.secondary,children:placeholder}):linesToRender.map((lineText,visualIdxInRenderedSet)=>{let tokens=parseInputForHighlighting(lineText,visualIdxInRenderedSet),cursorVisualRow=cursorVisualRowAbsolute-scrollVisualRow,isOnCursorLine=focus&&visualIdxInRenderedSet===cursorVisualRow,renderedLine=[],charCount=0;tokens.forEach((token$1,tokenIdx)=>{let display=token$1.text;if(isOnCursorLine){let relativeVisualColForHighlight=cursorVisualColAbsolute,tokenStart=charCount,tokenEnd=tokenStart+cpLen(token$1.text);if(relativeVisualColForHighlight>=tokenStart&&relativeVisualColForHighlight<tokenEnd){let charToHighlight=cpSlice(token$1.text,relativeVisualColForHighlight-tokenStart,relativeVisualColForHighlight-tokenStart+1),highlighted=source_default.inverse(charToHighlight);display=cpSlice(token$1.text,0,relativeVisualColForHighlight-tokenStart)+highlighted+cpSlice(token$1.text,relativeVisualColForHighlight-tokenStart+1)}charCount=tokenEnd}let color=token$1.type===`command`||token$1.type===`file`?theme.text.accent:theme.text.primary;renderedLine.push(jsx(Text,{color,children:display},`token-${tokenIdx}`))});let currentLineGhost=isOnCursorLine?inlineGhost:``;isOnCursorLine&&cursorVisualColAbsolute===cpLen(lineText)&&(currentLineGhost||renderedLine.push(jsx(Text,{children:source_default.inverse(` `)},`cursor-end-${cursorVisualColAbsolute}`)));let showCursorBeforeGhost=focus&&isOnCursorLine&&cursorVisualColAbsolute===cpLen(lineText)&¤tLineGhost;return jsx(Box_default,{height:1,children:jsxs(Text,{children:[renderedLine,showCursorBeforeGhost&&source_default.inverse(` `),currentLineGhost&&jsx(Text,{color:theme.text.secondary,children:currentLineGhost})]})},`line-${visualIdxInRenderedSet}`)}).concat(additionalLines.map((ghostLine,index)=>{let padding=Math.max(0,inputWidth-stringWidth(ghostLine));return jsxs(Text,{color:theme.text.secondary,children:[ghostLine,` `.repeat(padding)]},`ghost-line-${index}`)}))})]}),completion.showSuggestions&&jsx(Box_default,{paddingRight:2,children:jsx(SuggestionsDisplay,{suggestions:completion.suggestions,activeIndex:completion.activeSuggestionIndex,isLoading:completion.isLoadingSuggestions,width:suggestionsWidth,scrollOffset:completion.visibleStartIndex,userInput:buffer$2.text})}),reverseSearchActive&&jsx(Box_default,{paddingRight:2,children:jsx(SuggestionsDisplay,{suggestions:reverseSearchCompletion.suggestions,activeIndex:reverseSearchCompletion.activeSuggestionIndex,isLoading:reverseSearchCompletion.isLoadingSuggestions,width:suggestionsWidth,scrollOffset:reverseSearchCompletion.visibleStartIndex,userInput:buffer$2.text})})]})};function createMinimalConfig(){return new Config({sessionId:`blink`,targetDir:process.cwd(),cwd:process.cwd(),debugMode:!1,model:`gemini-1.5-flash`,telemetry:{enabled:!1}})}const convertToCommands=slashCommands=>slashCommands.map(cmd=>({name:cmd.name,altNames:cmd.altNames,description:cmd.description,kind:`built-in`,completion:async(context,partialArg)=>cmd.completion?.(partialArg)??[],subCommands:cmd.subcommands?convertToCommands(cmd.subcommands):void 0}));function TextInput({onSubmit,placeholder,slashCommands,onLayoutChange,borderColor}){let config=useMemo(()=>createMinimalConfig(),[]),[userMessages,setUserMessages]=useState([]),{stdout:stdout$1}=use_stdout_default(),[isSlashOpen,setIsSlashOpen]=useState(!1),inputWidth=stdout$1.columns,buffer$2=useTextBuffer({viewport:{width:inputWidth-6,height:stdout$1.rows-15},isValidPath:filePath=>fs$1.existsSync(filePath),onChange:value=>{value.startsWith(`/`)?setIsSlashOpen(!0):setIsSlashOpen(prev=>(prev&&onLayoutChange?.(),!1))}}),commands=useMemo(()=>convertToCommands(slashCommands??[]),[slashCommands]);return jsx(Box_default,{marginBottom:isSlashOpen?1:0,flexDirection:`column`,children:jsx(InputPrompt,{borderColor,buffer:buffer$2,onSubmit:value=>{let args=value.trim().split(` `),first$1=args[0];if(first$1&&first$1.startsWith(`/`)){let commandName=first$1.slice(1),commandIndex=slashCommands?.findIndex(c$3=>c$3.name===commandName||(c$3.altNames?c$3.altNames.includes(commandName):!1))??-1;if(commandIndex!==-1&&slashCommands){let root$31=slashCommands[commandIndex],rest=args.slice(1),execute=(cmd,remaining)=>{if(remaining.length>0&&cmd.subcommands&&cmd.subcommands.length>0){let subName=remaining[0],next=cmd.subcommands.find(sc=>sc.name===subName||(sc.altNames?sc.altNames.includes(subName):!1));if(next)return execute(next,remaining.slice(1))}cmd.action(remaining.join(` `))};execute(root$31,rest);return}}setUserMessages(prev=>[value,...prev]),onSubmit(value)},placeholder,userMessages,onClearScreen:()=>{},config,slashCommands:commands,commandContext:{services:{config,settings:{},git:void 0,logger:console},ui:{addItem:()=>{},clear:()=>{},setDebugMessage:()=>{},pendingItem:null,setPendingItem:()=>{},loadHistory:()=>{},toggleCorgiMode:()=>{},toggleVimEnabled:async()=>!1,setGeminiMdFileCount:()=>{},reloadCommands:()=>{}},session:{stats:{},sessionShellAllowlist:new Set}},inputWidth:inputWidth-2,suggestionsWidth:inputWidth-2,shellModeActive:!1,setShellModeActive:()=>{}})})}function KeypressProvider({children}){let config=useMemo(()=>createMinimalConfig(),[]);return jsx(KeypressProvider$1,{kittyProtocolEnabled:!0,config,children})}var text_input_default=TextInput;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}}function checkAndMarkFirstRun(directory){let storagePath=join$1(directory,`.blink`,`.first-run`);return mkdirSync$1(dirname$1(storagePath),{recursive:!0}),existsSync$1(storagePath)?!1:(writeFileSync$1(storagePath,new Date().toISOString()),!0)}const colors={run:`#1f86ed`,edit:`#e8900e`};async function startDev({directory}){await render_default(jsx(KeypressProvider,{children:jsx(Root,{directory})}),{exitOnCtrlC:!1}).waitUntilExit()}const Root=({directory})=>{let size=useTerminalSize(),[isFirstRun]=useState(()=>checkAndMarkFirstRun(directory)),dev$1=useDevMode({directory,onBuildStart:()=>{console.log(source_default.gray(`⚙ Compiling...`))},onBuildSuccess:result=>{console.log(source_default.green(`⚙ Compiled in ${Math.round(result.duration)}ms`))},onBuildError:error$3=>{console.log(source_default.red(`⚙ ${error$3.message}${error$3.file
|
|
1920
|
+
`);for(let textLine of textLines){let words$1=textLine.split(` `),currentLine=``;for(let word of words$1){let prospectiveLine=currentLine?`${currentLine} ${word}`:word;if(stringWidth(prospectiveLine)>inputWidth){currentLine&&additionalLines$1.push(currentLine);let wordToProcess=word;for(;stringWidth(wordToProcess)>inputWidth;){let part=``,wordCP=toCodePoints(wordToProcess),partWidth=0,splitIndex=0;for(let i$7=0;i$7<wordCP.length;i$7++){let char=wordCP[i$7],charWidth=stringWidth(char);if(partWidth+charWidth>inputWidth)break;part+=char,partWidth+=charWidth,splitIndex=i$7+1}additionalLines$1.push(part),wordToProcess=cpSlice(wordToProcess,splitIndex)}currentLine=wordToProcess}else currentLine=prospectiveLine}currentLine&&additionalLines$1.push(currentLine)}}return{inlineGhost:inlineGhost$1,additionalLines:additionalLines$1}},[completion.promptCompletion.text,buffer$2.text,buffer$2.lines,buffer$2.cursor,inputWidth])();return jsxs(Fragment,{children:[jsxs(Box_default,{borderStyle:`round`,borderColor:borderColor??(shellModeActive?theme.status.warning:focus?theme.border.focused:theme.border.default),paddingX:1,children:[jsx(Text,{color:shellModeActive?theme.status.warning:theme.text.accent,children:shellModeActive?reverseSearchActive?jsxs(Text,{color:theme.text.link,"aria-label":`User: `,children:[`(r:)`,` `]}):`! `:`> `}),jsx(Box_default,{flexGrow:1,flexDirection:`column`,children:buffer$2.text.length===0&&placeholder?focus?jsxs(Text,{children:[source_default.inverse(placeholder.slice(0,1)),jsx(Text,{color:theme.text.secondary,children:placeholder.slice(1)})]}):jsx(Text,{color:theme.text.secondary,children:placeholder}):linesToRender.map((lineText,visualIdxInRenderedSet)=>{let tokens=parseInputForHighlighting(lineText,visualIdxInRenderedSet),cursorVisualRow=cursorVisualRowAbsolute-scrollVisualRow,isOnCursorLine=focus&&visualIdxInRenderedSet===cursorVisualRow,renderedLine=[],charCount=0;tokens.forEach((token$1,tokenIdx)=>{let display=token$1.text;if(isOnCursorLine){let relativeVisualColForHighlight=cursorVisualColAbsolute,tokenStart=charCount,tokenEnd=tokenStart+cpLen(token$1.text);if(relativeVisualColForHighlight>=tokenStart&&relativeVisualColForHighlight<tokenEnd){let charToHighlight=cpSlice(token$1.text,relativeVisualColForHighlight-tokenStart,relativeVisualColForHighlight-tokenStart+1),highlighted=source_default.inverse(charToHighlight);display=cpSlice(token$1.text,0,relativeVisualColForHighlight-tokenStart)+highlighted+cpSlice(token$1.text,relativeVisualColForHighlight-tokenStart+1)}charCount=tokenEnd}let color=token$1.type===`command`||token$1.type===`file`?theme.text.accent:theme.text.primary;renderedLine.push(jsx(Text,{color,children:display},`token-${tokenIdx}`))});let currentLineGhost=isOnCursorLine?inlineGhost:``;isOnCursorLine&&cursorVisualColAbsolute===cpLen(lineText)&&(currentLineGhost||renderedLine.push(jsx(Text,{children:source_default.inverse(` `)},`cursor-end-${cursorVisualColAbsolute}`)));let showCursorBeforeGhost=focus&&isOnCursorLine&&cursorVisualColAbsolute===cpLen(lineText)&¤tLineGhost;return jsx(Box_default,{height:1,children:jsxs(Text,{children:[renderedLine,showCursorBeforeGhost&&source_default.inverse(` `),currentLineGhost&&jsx(Text,{color:theme.text.secondary,children:currentLineGhost})]})},`line-${visualIdxInRenderedSet}`)}).concat(additionalLines.map((ghostLine,index)=>{let padding=Math.max(0,inputWidth-stringWidth(ghostLine));return jsxs(Text,{color:theme.text.secondary,children:[ghostLine,` `.repeat(padding)]},`ghost-line-${index}`)}))})]}),completion.showSuggestions&&jsx(Box_default,{paddingRight:2,children:jsx(SuggestionsDisplay,{suggestions:completion.suggestions,activeIndex:completion.activeSuggestionIndex,isLoading:completion.isLoadingSuggestions,width:suggestionsWidth,scrollOffset:completion.visibleStartIndex,userInput:buffer$2.text})}),reverseSearchActive&&jsx(Box_default,{paddingRight:2,children:jsx(SuggestionsDisplay,{suggestions:reverseSearchCompletion.suggestions,activeIndex:reverseSearchCompletion.activeSuggestionIndex,isLoading:reverseSearchCompletion.isLoadingSuggestions,width:suggestionsWidth,scrollOffset:reverseSearchCompletion.visibleStartIndex,userInput:buffer$2.text})})]})};function createMinimalConfig(){return new Config({sessionId:`blink`,targetDir:process.cwd(),cwd:process.cwd(),debugMode:!1,model:`gemini-1.5-flash`,telemetry:{enabled:!1}})}const convertToCommands=slashCommands=>slashCommands.map(cmd=>({name:cmd.name,altNames:cmd.altNames,description:cmd.description,kind:`built-in`,completion:async(context,partialArg)=>cmd.completion?.(partialArg)??[],subCommands:cmd.subcommands?convertToCommands(cmd.subcommands):void 0}));function TextInput({onSubmit,placeholder,slashCommands,onLayoutChange,borderColor}){let config=useMemo(()=>createMinimalConfig(),[]),[userMessages,setUserMessages]=useState([]),{stdout:stdout$1}=use_stdout_default(),[isSlashOpen,setIsSlashOpen]=useState(!1),inputWidth=stdout$1.columns,buffer$2=useTextBuffer({viewport:{width:inputWidth-6,height:stdout$1.rows-15},isValidPath:filePath=>fs$1.existsSync(filePath),onChange:value=>{value.startsWith(`/`)?setIsSlashOpen(!0):setIsSlashOpen(prev=>(prev&&onLayoutChange?.(),!1))}}),commands=useMemo(()=>convertToCommands(slashCommands??[]),[slashCommands]);return jsx(Box_default,{marginBottom:isSlashOpen?1:0,flexDirection:`column`,children:jsx(InputPrompt,{borderColor,buffer:buffer$2,onSubmit:value=>{let args=value.trim().split(` `),first$1=args[0];if(first$1&&first$1.startsWith(`/`)){let commandName=first$1.slice(1),commandIndex=slashCommands?.findIndex(c$3=>c$3.name===commandName||(c$3.altNames?c$3.altNames.includes(commandName):!1))??-1;if(commandIndex!==-1&&slashCommands){let root$31=slashCommands[commandIndex],rest=args.slice(1),execute=(cmd,remaining)=>{if(remaining.length>0&&cmd.subcommands&&cmd.subcommands.length>0){let subName=remaining[0],next=cmd.subcommands.find(sc=>sc.name===subName||(sc.altNames?sc.altNames.includes(subName):!1));if(next)return execute(next,remaining.slice(1))}cmd.action(remaining.join(` `))};execute(root$31,rest);return}}setUserMessages(prev=>[value,...prev]),onSubmit(value)},placeholder,userMessages,onClearScreen:()=>{},config,slashCommands:commands,commandContext:{services:{config,settings:{},git:void 0,logger:console},ui:{addItem:()=>{},clear:()=>{},setDebugMessage:()=>{},pendingItem:null,setPendingItem:()=>{},loadHistory:()=>{},toggleCorgiMode:()=>{},toggleVimEnabled:async()=>!1,setGeminiMdFileCount:()=>{},reloadCommands:()=>{}},session:{stats:{},sessionShellAllowlist:new Set}},inputWidth:inputWidth-2,suggestionsWidth:inputWidth-2,shellModeActive:!1,setShellModeActive:()=>{}})})}function KeypressProvider({children}){let config=useMemo(()=>createMinimalConfig(),[]);return jsx(KeypressProvider$1,{kittyProtocolEnabled:!0,config,children})}var text_input_default=TextInput;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}}function checkAndMarkFirstRun(directory){let storagePath=join$1(directory,`.blink`,`.first-run`);return mkdirSync$1(dirname$1(storagePath),{recursive:!0}),existsSync$1(storagePath)?!1:(writeFileSync$1(storagePath,new Date().toISOString()),!0)}const colors={run:`#1f86ed`,edit:`#e8900e`};async function startDev({directory}){await render_default(jsx(KeypressProvider,{children:jsx(Root,{directory})}),{exitOnCtrlC:!1}).waitUntilExit()}const Root=({directory})=>{let size=useTerminalSize(),[isFirstRun]=useState(()=>checkAndMarkFirstRun(directory)),dev$1=useDevMode({directory,onBuildStart:()=>{console.log(source_default.gray(`⚙ Compiling...`))},onBuildSuccess:result=>{console.log(source_default.green(`⚙ Compiled in ${Math.round(result.duration)}ms`))},onBuildError:error$3=>{console.log(`${source_default.red(`⚙ [Build Error]`)} ${source_default.gray(error$3.message)}${error$3.file?source_default.bold(` (${error$3.file})`):``}`)},onEnvLoaded:keys=>{let keysText=keys.map(key$1=>source_default.dim(key$1)).join(`, `);keysText.length===0&&(keysText=source_default.dim(`(none)`)),console.log(source_default.gray(`⚙ Loaded .env.local:`),keysText)},onDevhookConnected:url$3=>{console.log(source_default.gray(`⚙ Send webhooks from anywhere: ${url$3}`))},onAgentLog:log$5=>{let logColor=log$5.level===`error`?`red`:`white`,logPrefix=log$5.level===`error`?`⚙ [Agent Error]`:`⚙ [Agent Log]`;console.log(`${source_default[logColor](logPrefix)} ${source_default.gray(log$5.message)}`)},onDevhookRequest:request$2=>{console.log(source_default.blue(`↩ `)+source_default.gray(`method=${request$2.method} path=${request$2.path} status=${request$2.status}`))},onError:error$3=>{console.log(error$3)},onModeChange:mode=>{switch(mode){case`edit`:console.log(source_default.hex(colors.edit).bold(`✎ entering edit mode`)+`
|
|
1921
1921
|
`);break;case`run`:console.log(source_default.hex(colors.run).bold(`⟳ entering run mode`)+`
|
|
1922
|
-
`);break}}}),{exit}=use_app_default(),[exitArmed,setExitArmed]=useState(!1),exitTimerRef=useRef(void 0);useEffect(()=>()=>{exitTimerRef.current&&clearTimeout(exitTimerRef.current)},[]),use_input_default(async(input,key$1)=>{if(key$1.ctrl&&input.toLowerCase()===`c`){if(exitArmed){exit();return}setExitArmed(!0),exitTimerRef.current&&clearTimeout(exitTimerRef.current),exitTimerRef.current=setTimeout(()=>setExitArmed(!1),2e3)}key$1.ctrl&&input===`r`&&(await dev$1.chat.resetChat(),resetTerminal()),key$1.ctrl&&input===`t`&&dev$1.toggleMode(),key$1.ctrl&&input===`n`&&dev$1.newChat(),key$1.escape&&dev$1.chat.stopStreaming()});let keymaps=useMemo(()=>({"⏎":`send`,"Ctrl+T":`toggle mode`,"Ctrl+N":`new chat`,"Ctrl+C":`quit`}),[]),keybindSuggestion=useMemo(()=>{if(exitArmed)return`Ctrl+C again to quit`;if(dev$1.chat.queuedMessages.length>0)return`${dev$1.chat.queuedMessages.length} message(s) queued - Press [Escape] to stop and process queue`;if(dev$1.chat.status===`streaming`)return`Press [Escape] to stop the agent!`},[exitArmed,dev$1.chat.status,dev$1.chat.queuedMessages.length]),{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]),initialSizeRef=useRef(size);useEffect(()=>{(initialSizeRef.current.columns!==size.columns||initialSizeRef.current.rows!==size.rows)&&(resetTerminal(),initialSizeRef.current=size)},[size.columns,size.rows,resetTerminal]),useEffect(()=>{resetTerminal()},[dev$1.chat.id,resetTerminal]);let optionCommand=useMemo(()=>{if(dev$1.options.schema)return{name:`option`,description:`Adjust your agent's options.`,action:()=>{},completion:async()=>Object.keys(dev$1.options.schema),subcommands:Object.entries(dev$1.options.schema).map(([key$1,value])=>({name:key$1,description:value.label??``,action:args=>{dev$1.options.setOption(key$1,args)},completion:async partialArg=>value.values.map(v$1=>v$1.id)}))}},[dev$1.options]),lastMessageWithApproval=useMemo(()=>{if(dev$1.chat.messages.length===0)return null;let lastMsg=dev$1.chat.messages[dev$1.chat.messages.length-1];return lastMsg.parts.some(part=>isToolOrDynamicToolUIPart(part)&&isToolApprovalOutput(part.output))?lastMsg:null},[dev$1.chat.messages]),staticMessages=useMemo(()=>lastMessageWithApproval?dev$1.chat.messages.slice(0,-1):dev$1.chat.messages,[dev$1.chat.messages,lastMessageWithApproval]);return dev$1.chat.loading?null:jsxs(Fragment,{children:[dev$1.chat.error?jsx(Box_default,{marginTop:1,children:jsx(Text,{color:`red`,children:dev$1.chat.error})}):null,dev$1.mode===`edit`&&dev$1.editModeMissingApiKey?jsx(MissingApiKeyMessage,{}):null,jsxs(Box_default,{flexDirection:`column`,children:[jsx(Static,{items:[{},...staticMessages],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`})]}),isFirstRun&&jsx(OnboardingMessage,{}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsxs(Text,{color:`gray`,children:[`Edit `,dev$1.build.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.`]}),jsxs(Text,{color:`gray`,children:[`Type`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`/help`}),` `,`to see the full guide on how to build, test, and deploy your agent.`]})]})]},`banner`):jsx(Message,{message,previousMessage:index>1?staticMessages.at(index-2):void 0,nextMessage:index<staticMessages.length-2?staticMessages.at(index+2):void 0,maxWidth:size.columns-2},message.id)},`messages-${dev$1.chat.id}-${epoch}`),lastMessageWithApproval?jsx(Message,{message:lastMessageWithApproval,previousMessage:staticMessages.length>0?staticMessages[staticMessages.length-1]:void 0,nextMessage:void 0,maxWidth:size.columns-2},lastMessageWithApproval.id):null,dev$1.chat.streamingMessage?jsx(Message,{message:dev$1.chat.streamingMessage,nextMessage:void 0,previousMessage:dev$1.chat.messages.length>0?dev$1.chat.messages.at(dev$1.chat.messages.length-1):void 0,streaming:!0,maxWidth:size.columns-2},dev$1.chat.streamingMessage.id):null,dev$1.showWaitingPlaceholder?jsx(AssistantWaitingPlaceholder,{maxWidth:size.columns-2}):null]}),jsx(Box_default,{flexDirection:`column`,marginTop:1,children:dev$1.approval?jsx(ApprovalInput,{onConfirm:async(approved,autoApprove)=>{approved?await dev$1.approval?.approve(autoApprove):await dev$1.approval?.reject()},onCancel:()=>{},autoApproveEnabled:dev$1.approval.autoApproveEnabled}):jsx(text_input_default,{borderColor:colors[dev$1.mode],slashCommands:[{name:`help`,description:`Show help information`,action:()=>{getHelpText(dev$1.build.entrypoint).forEach(line$1=>console.log(line$1))}},{name:`reset`,altNames:[`clear`],description:`Reset the chat`,action:async()=>{await dev$1.chat.resetChat(),resetTerminal()}},{name:`switch`,description:`Switch to a different chat`,action:args=>{dev$1.switchChat(args)},completion:async partialArg=>dev$1.chats.filter(id=>id.startsWith(partialArg))},{name:`new`,description:`Create a new chat`,action:args=>{dev$1.switchChat(args)}},{name:`edit`,description:`Switch to Edit mode (AI helps build your agent)`,action:()=>{dev$1.chat.stopStreaming(),dev$1.setMode(`edit`)}},{name:`run`,description:`Switch to Run mode (use your agent)`,action:()=>{dev$1.chat.stopStreaming(),dev$1.setMode(`run`)}},...optionCommand?[optionCommand]:[]],onSubmit:value=>(dev$1.chat.sendMessage({id:crypto.randomUUID(),role:`user`,parts:[{type:`text`,text:value}],created_at:new Date().toISOString(),metadata:void 0,mode:dev$1.mode}),!0),onLayoutChange:()=>{}})}),jsxs(Box_default,{children:[jsxs(Box_default,{marginLeft:2,gap:3,children:[jsxs(Text,{color:`gray`,children:[`mode: `,jsx(Text,{color:colors[dev$1.mode],children:dev$1.mode})]}),jsxs(Text,{color:`gray`,children:[`chat: `,jsx(Text,{children:dev$1.chat.id})]})]}),jsx(Spacer,{}),keybindSuggestion?jsx(Text,{color:`yellow`,children:keybindSuggestion+` `}):jsx(Box_default,{gap:3,marginRight:2,children:Object.entries(keymaps).map(([key$1,value])=>jsx(Text,{children:source_default.gray.dim(key$1+` `+value)},key$1))})]}),dev$1.tokenUsage||dev$1.options.schema&&dev$1.options.selected?jsxs(Box_default,{marginLeft:2,gap:3,children:[dev$1.tokenUsage?jsxs(Box_default,{gap:1,children:[jsx(Text,{color:`gray`,children:`tokens:`}),jsx(Text,{color:`cyan`,children:formatTokenCount(dev$1.tokenUsage.inputTokens)}),jsx(Text,{color:`gray`,children:`→`}),jsx(Text,{color:`green`,children:formatTokenCount(dev$1.tokenUsage.outputTokens)}),dev$1.tokenUsage.cachedInputTokens!==void 0&&dev$1.tokenUsage.cachedInputTokens>0?jsxs(Text,{children:[jsx(Text,{color:`gray`,children:`(`}),jsx(Text,{color:`blue`,children:formatTokenCount(dev$1.tokenUsage.cachedInputTokens)}),jsx(Text,{color:`gray`,children:` cached)`})]}):null]}):null,dev$1.options.schema&&dev$1.options.selected?jsxs(Box_default,{gap:1,children:[jsx(Text,{color:`gray`,children:`options:`}),Object.entries(dev$1.options.selected).map(([key$1,value])=>dev$1.options.schema[key$1]?jsxs(Box_default,{gap:0,children:[jsxs(Text,{color:`gray`,children:[key$1,`=`]}),jsx(Text,{color:`gray`,children:value})]},key$1):null)]}):null]}):null]})},ApprovalInput=({onConfirm,onCancel,autoApproveEnabled})=>{let[selected,setSelected]=useState(`yes`),[processing$2,setProcessing]=useState(!1),processingRef=useRef(!1),handleConfirm=React.useCallback(async(approved,autoApprove)=>{if(!processingRef.current){processingRef.current=!0,setProcessing(!0);try{await onConfirm(approved,autoApprove)}catch(err){console.error(`Error processing approval:`,err)}finally{processingRef.current=!1,setProcessing(!1)}}},[onConfirm]),handleCancel=React.useCallback(()=>{processingRef.current||onCancel()},[onCancel]);return use_input_default((input,key$1)=>{let lower=input.toLowerCase();if(key$1.escape){handleCancel();return}if(lower===`y`){handleConfirm(!0);return}if(lower===`a`){handleConfirm(!0,!0);return}if(lower===`n`){handleConfirm(!1);return}if(key$1.leftArrow){setSelected(prev=>prev===`yes`?`no`:prev===`no`?`auto`:`yes`);return}if(key$1.rightArrow||key$1.tab){setSelected(prev=>prev===`yes`?`auto`:prev===`auto`?`no`:`yes`);return}key$1.return&&(selected===`yes`?handleConfirm(!0):selected===`auto`?handleConfirm(!0,!0):handleConfirm(!1))}),jsxs(Box_default,{gap:2,flexDirection:`row`,children:[jsx(Text,{children:processing$2?`Processing...`:autoApproveEnabled?`(auto-approved)`:`Approve?`}),!processing$2&&!autoApproveEnabled&&jsxs(Fragment,{children:[jsx(Box_default,{children:jsxs(Text,{children:[`[`,jsx(Text,{color:selected===`yes`?`green`:`gray`,bold:selected===`yes`,children:`Yes`}),`/`,jsx(Text,{color:selected===`auto`?`cyan`:`gray`,bold:selected===`auto`,children:`Auto`}),`/`,jsx(Text,{color:selected===`no`?`red`:`gray`,bold:selected===`no`,children:`No`}),`]`]})}),jsx(Text,{color:`gray`,children:`(y/a/n, ←/→ then ⏎)`})]})]})},Message=React.memo(({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`:let isEditMode=message.mode===`edit`;prefix=jsx(Text,{color:isEditMode?colors.edit:colors.run,children:`> `}),contentColor=`white`;break}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]})},(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$2=getToolOrDynamicToolName(part),input=useMemo(()=>{let labels={};return typeof part.input!=`object`||part.input===null||Object.entries(part.input).forEach(([key$1,value])=>{labels[key$1]=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$1,value])=>{labels[key$1]=JSON.stringify(value)}),labels},[part,state]),error$3=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$2})]}),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$1,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key$1}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-2-key$1.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key$1)),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})}):isToolApprovalOutput(part.output)?jsx(Box_default,{marginLeft:2,children:jsx(Text,{color:part.output.outcome===`approved`?`green`:part.output.outcome===`rejected`?`red`:`yellow`,bold:!0,children:part.output.outcome===`approved`?`✓ Approved`:part.output.outcome===`rejected`?`✗ Rejected`:`⧗ Pending approval`})}):jsx(Box_default,{flexDirection:`column`,children:Object.entries(output).map(([key$1,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key$1}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-key$1.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key$1))})]}),error$3&&jsxs(Fragment,{children:[jsx(Text,{color:`gray`,bold:!0,children:`Error:`}),jsx(Text,{color:`red`,children:error$3})]})]})]})},OnboardingMessage=()=>jsxs(Box_default,{flexDirection:`column`,marginTop:1,marginBottom:1,borderStyle:`round`,borderColor:`gray`,paddingX:1,paddingY:0,children:[jsx(Box_default,{children:jsx(Text,{bold:!0,children:`Quick Start: Building Your Agent`})}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsx(Text,{children:`Blink has two modes:`}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,marginLeft:2,children:[jsxs(Text,{children:[jsx(Text,{bold:!0,color:colors.edit,children:`• Edit`}),jsx(Text,{children:` mode helps you build your agent`})]}),jsxs(Text,{children:[jsx(Text,{bold:!0,color:colors.run,children:`• Run`}),jsx(Text,{children:` mode lets you interact with it`})]})]}),jsx(Box_default,{marginTop:1,children:jsxs(Text,{children:[`Switch between them with`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`Ctrl+T`}),` `,`or`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`/edit`}),` `,`and`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`/run`}),`.`]})})]})]}),MissingApiKeyMessage=()=>jsxs(Box_default,{flexDirection:`column`,marginTop:1,marginBottom:1,borderStyle:`round`,borderColor:`yellow`,paddingX:1,paddingY:0,children:[jsx(Box_default,{children:jsx(Text,{bold:!0,color:`yellow`,children:`⚠ Edit Mode Requires API Key`})}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsxs(Text,{children:[`Add one of these to your `,jsx(Text,{bold:!0,children:`.env.local`}),` file:`]}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,marginLeft:2,children:[jsxs(Text,{children:[`ANTHROPIC_API_KEY=`,jsx(Text,{color:`gray`,children:`your-key`})]}),jsxs(Text,{children:[`OPENAI_API_KEY=`,jsx(Text,{color:`gray`,children:`your-key`})]}),jsxs(Text,{children:[`AI_GATEWAY_API_KEY=`,jsx(Text,{color:`gray`,children:`your-key`})]})]}),jsx(Box_default,{marginTop:1,children:jsx(Text,{children:`The file will auto-reload when you add a key.`})})]})]});function getHelpText(entrypoint){return[``,source_default.bold(`How to Build Your Agent`),``,`Blink has two modes that work together to help you build and test agents:`,``,source_default.hex(colors.edit).bold(` Edit Mode`)+` - AI helps you build your agent`,` • Describe the agent you want to build`,` • The AI will modify your agent code based on your instructions`,` • Changes are written to ${relative$1(process.cwd(),entrypoint)} and auto-reload`,``,source_default.blue.bold(` Run Mode`)+` - Use your agent`,` • Chat with your agent to see how it behaves`,` • Discover what works and what needs improvement`,``,source_default.bold(`The Development Loop:`),` 1. Start in `+source_default.hex(colors.edit)(`Edit mode`)+` (Ctrl+T or /edit) and describe what your agent should do`,` Example: "Add a tool that can search the web"`,``,` 2. Switch to `+source_default.blue(`Run mode`)+` (Ctrl+T or /run) to use your agent`,` Try it out and see if it does what you expect`,``,` 3. Toggle back to `+source_default.hex(colors.edit)(`Edit mode`)+` to refine based on what you learned`,` The edit AI can see the entire chat history, including your conversations!`,` Example: "The search tool failed when I asked about X"`,``,` 4. Repeat until your agent works perfectly`,``,` 5. Deploy with `+source_default.bold(`blink deploy`)+` when ready`,``,source_default.dim(`Tip: Use /reset to start fresh, /new to create separate test chats`)]}function formatTokenCount(count$1){return count$1>=1e6?`${(count$1/1e6).toFixed(1)}M`:count$1>=1e3?`${(count$1/1e3).toFixed(1)}K`:count$1.toString()}async function dev(directory){if(!directory){let cwd$3=process.cwd();try{resolveConfig(cwd$3),directory=cwd$3}catch{let dotBlinkPath=await findNearestEntry(cwd$3,`.blink`);dotBlinkPath&&existsSync$1(join$1(dotBlinkPath,`build`))&&(dotBlinkPath=void 0),directory=dotBlinkPath||cwd$3}}await migrateDataToBlink(directory);let exitWithDump=error$3=>{writeFileSync$1(`error.dump`,inspect$1(error$3,{depth:null})),process.exit(1)};process.addListener(`uncaughtException`,error$3=>{exitWithDump(error$3)}),process.addListener(`unhandledRejection`,error$3=>{exitWithDump(error$3)});try{await startDev({directory})}catch(err){console.error(err),process.exit(1)}finally{process.exit(0)}}export{dev as default};
|
|
1922
|
+
`);break}}}),{exit}=use_app_default(),[exitArmed,setExitArmed]=useState(!1),exitTimerRef=useRef(void 0);useEffect(()=>()=>{exitTimerRef.current&&clearTimeout(exitTimerRef.current)},[]),use_input_default(async(input,key$1)=>{if(key$1.ctrl&&input.toLowerCase()===`c`){if(exitArmed){exit();return}setExitArmed(!0),exitTimerRef.current&&clearTimeout(exitTimerRef.current),exitTimerRef.current=setTimeout(()=>setExitArmed(!1),2e3)}key$1.ctrl&&input===`r`&&(await dev$1.chat.resetChat(),resetTerminal()),key$1.ctrl&&input===`t`&&dev$1.toggleMode(),key$1.ctrl&&input===`n`&&dev$1.newChat(),key$1.escape&&dev$1.chat.stopStreaming()});let keymaps=useMemo(()=>({"⏎":`send`,"Ctrl+T":`toggle mode`,"Ctrl+N":`new chat`,"Ctrl+C":`quit`}),[]),keybindSuggestion=useMemo(()=>{if(exitArmed)return`Ctrl+C again to quit`;if(dev$1.chat.queuedMessages.length>0)return`${dev$1.chat.queuedMessages.length} message(s) queued - Press [Escape] to stop and process queue`;if(dev$1.chat.status===`streaming`)return`Press [Escape] to stop the agent!`},[exitArmed,dev$1.chat.status,dev$1.chat.queuedMessages.length]),{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]),initialSizeRef=useRef(size);useEffect(()=>{(initialSizeRef.current.columns!==size.columns||initialSizeRef.current.rows!==size.rows)&&(resetTerminal(),initialSizeRef.current=size)},[size.columns,size.rows,resetTerminal]),useEffect(()=>{resetTerminal()},[dev$1.chat.id,resetTerminal]);let optionCommand=useMemo(()=>{if(dev$1.options.schema)return{name:`option`,description:`Adjust your agent's options.`,action:()=>{},completion:async()=>Object.keys(dev$1.options.schema),subcommands:Object.entries(dev$1.options.schema).map(([key$1,value])=>({name:key$1,description:value.label??``,action:args=>{dev$1.options.setOption(key$1,args)},completion:async partialArg=>value.values.map(v$1=>v$1.id)}))}},[dev$1.options]),lastMessageWithApproval=useMemo(()=>{if(dev$1.chat.messages.length===0)return null;let lastMsg=dev$1.chat.messages[dev$1.chat.messages.length-1];return lastMsg.parts.some(part=>isToolOrDynamicToolUIPart(part)&&isToolApprovalOutput(part.output))?lastMsg:null},[dev$1.chat.messages]),staticMessages=useMemo(()=>lastMessageWithApproval?dev$1.chat.messages.slice(0,-1):dev$1.chat.messages,[dev$1.chat.messages,lastMessageWithApproval]);return dev$1.chat.loading?null:jsxs(Fragment,{children:[dev$1.mode===`edit`&&dev$1.editModeMissingApiKey?jsx(MissingApiKeyMessage,{}):null,jsxs(Box_default,{flexDirection:`column`,children:[jsx(Static,{items:[{},...staticMessages],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`})]}),isFirstRun&&jsx(OnboardingMessage,{}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsxs(Text,{color:`gray`,children:[`Edit `,dev$1.build.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.`]}),jsxs(Text,{color:`gray`,children:[`Type`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`/help`}),` `,`to see the full guide on how to build, test, and deploy your agent.`]})]})]},`banner`):jsx(Message,{message,previousMessage:index>1?staticMessages.at(index-2):void 0,nextMessage:index<staticMessages.length-2?staticMessages.at(index+2):void 0,maxWidth:size.columns-2},message.id)},`messages-${dev$1.chat.id}-${epoch}`),lastMessageWithApproval?jsx(Message,{message:lastMessageWithApproval,previousMessage:staticMessages.length>0?staticMessages[staticMessages.length-1]:void 0,nextMessage:void 0,maxWidth:size.columns-2},lastMessageWithApproval.id):null,dev$1.chat.streamingMessage?jsx(Message,{message:dev$1.chat.streamingMessage,nextMessage:void 0,previousMessage:dev$1.chat.messages.length>0?dev$1.chat.messages.at(dev$1.chat.messages.length-1):void 0,streaming:!0,maxWidth:size.columns-2},dev$1.chat.streamingMessage.id):null,dev$1.showWaitingPlaceholder?jsx(AssistantWaitingPlaceholder,{maxWidth:size.columns-2}):null]}),jsx(Box_default,{flexDirection:`column`,marginTop:1,children:dev$1.approval?jsx(ApprovalInput,{onConfirm:async(approved,autoApprove)=>{approved?await dev$1.approval?.approve(autoApprove):await dev$1.approval?.reject()},onCancel:()=>{},autoApproveEnabled:dev$1.approval.autoApproveEnabled}):jsx(text_input_default,{borderColor:colors[dev$1.mode],slashCommands:[{name:`help`,description:`Show help information`,action:()=>{getHelpText(dev$1.build.entrypoint).forEach(line$1=>console.log(line$1))}},{name:`reset`,altNames:[`clear`],description:`Reset the chat`,action:async()=>{await dev$1.chat.resetChat(),resetTerminal()}},{name:`switch`,description:`Switch to a different chat`,action:args=>{dev$1.switchChat(args)},completion:async partialArg=>dev$1.chats.filter(id=>id.startsWith(partialArg))},{name:`new`,description:`Create a new chat`,action:args=>{dev$1.switchChat(args)}},{name:`edit`,description:`Switch to Edit mode (AI helps build your agent)`,action:()=>{dev$1.chat.stopStreaming(),dev$1.setMode(`edit`)}},{name:`run`,description:`Switch to Run mode (use your agent)`,action:()=>{dev$1.chat.stopStreaming(),dev$1.setMode(`run`)}},...optionCommand?[optionCommand]:[]],onSubmit:value=>(dev$1.chat.sendMessage({id:crypto.randomUUID(),role:`user`,parts:[{type:`text`,text:value}],created_at:new Date().toISOString(),metadata:void 0,mode:dev$1.mode}),!0),onLayoutChange:()=>{}})}),jsxs(Box_default,{children:[jsxs(Box_default,{marginLeft:2,gap:3,children:[jsxs(Text,{color:`gray`,children:[`mode: `,jsx(Text,{color:colors[dev$1.mode],children:dev$1.mode})]}),jsxs(Text,{color:`gray`,children:[`chat: `,jsx(Text,{children:dev$1.chat.id})]})]}),jsx(Spacer,{}),keybindSuggestion?jsx(Text,{color:`yellow`,children:keybindSuggestion+` `}):jsx(Box_default,{gap:3,marginRight:2,children:Object.entries(keymaps).map(([key$1,value])=>jsx(Text,{children:source_default.gray.dim(key$1+` `+value)},key$1))})]}),dev$1.tokenUsage||dev$1.options.schema&&dev$1.options.selected?jsxs(Box_default,{marginLeft:2,gap:3,children:[dev$1.tokenUsage?jsxs(Box_default,{gap:1,children:[jsx(Text,{color:`gray`,children:`tokens:`}),jsx(Text,{color:`cyan`,children:formatTokenCount(dev$1.tokenUsage.inputTokens)}),jsx(Text,{color:`gray`,children:`→`}),jsx(Text,{color:`green`,children:formatTokenCount(dev$1.tokenUsage.outputTokens)}),dev$1.tokenUsage.cachedInputTokens!==void 0&&dev$1.tokenUsage.cachedInputTokens>0?jsxs(Text,{children:[jsx(Text,{color:`gray`,children:`(`}),jsx(Text,{color:`blue`,children:formatTokenCount(dev$1.tokenUsage.cachedInputTokens)}),jsx(Text,{color:`gray`,children:` cached)`})]}):null]}):null,dev$1.options.schema&&dev$1.options.selected?jsxs(Box_default,{gap:1,children:[jsx(Text,{color:`gray`,children:`options:`}),Object.entries(dev$1.options.selected).map(([key$1,value])=>dev$1.options.schema[key$1]?jsxs(Box_default,{gap:0,children:[jsxs(Text,{color:`gray`,children:[key$1,`=`]}),jsx(Text,{color:`gray`,children:value})]},key$1):null)]}):null]}):null]})},ApprovalInput=({onConfirm,onCancel,autoApproveEnabled})=>{let[selected,setSelected]=useState(`yes`),[processing$2,setProcessing]=useState(!1),processingRef=useRef(!1),handleConfirm=React.useCallback(async(approved,autoApprove)=>{if(!processingRef.current){processingRef.current=!0,setProcessing(!0);try{await onConfirm(approved,autoApprove)}catch(err){console.error(`Error processing approval:`,err)}finally{processingRef.current=!1,setProcessing(!1)}}},[onConfirm]),handleCancel=React.useCallback(()=>{processingRef.current||onCancel()},[onCancel]);return use_input_default((input,key$1)=>{let lower=input.toLowerCase();if(key$1.escape){handleCancel();return}if(lower===`y`){handleConfirm(!0);return}if(lower===`a`){handleConfirm(!0,!0);return}if(lower===`n`){handleConfirm(!1);return}if(key$1.leftArrow){setSelected(prev=>prev===`yes`?`no`:prev===`no`?`auto`:`yes`);return}if(key$1.rightArrow||key$1.tab){setSelected(prev=>prev===`yes`?`auto`:prev===`auto`?`no`:`yes`);return}key$1.return&&(selected===`yes`?handleConfirm(!0):selected===`auto`?handleConfirm(!0,!0):handleConfirm(!1))}),jsxs(Box_default,{gap:2,flexDirection:`row`,children:[jsx(Text,{children:processing$2?`Processing...`:autoApproveEnabled?`(auto-approved)`:`Approve?`}),!processing$2&&!autoApproveEnabled&&jsxs(Fragment,{children:[jsx(Box_default,{children:jsxs(Text,{children:[`[`,jsx(Text,{color:selected===`yes`?`green`:`gray`,bold:selected===`yes`,children:`Yes`}),`/`,jsx(Text,{color:selected===`auto`?`cyan`:`gray`,bold:selected===`auto`,children:`Auto`}),`/`,jsx(Text,{color:selected===`no`?`red`:`gray`,bold:selected===`no`,children:`No`}),`]`]})}),jsx(Text,{color:`gray`,children:`(y/a/n, ←/→ then ⏎)`})]})]})},Message=React.memo(({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`:let isEditMode=message.mode===`edit`;prefix=jsx(Text,{color:isEditMode?colors.edit:colors.run,children:`> `}),contentColor=`white`;break}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]})},(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$2=getToolOrDynamicToolName(part),input=useMemo(()=>{let labels={};return typeof part.input!=`object`||part.input===null||Object.entries(part.input).forEach(([key$1,value])=>{labels[key$1]=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$1,value])=>{labels[key$1]=JSON.stringify(value)}),labels},[part,state]),error$3=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$2})]}),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$1,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key$1}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-2-key$1.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key$1)),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})}):isToolApprovalOutput(part.output)?jsx(Box_default,{marginLeft:2,children:jsx(Text,{color:part.output.outcome===`approved`?`green`:part.output.outcome===`rejected`?`red`:`yellow`,bold:!0,children:part.output.outcome===`approved`?`✓ Approved`:part.output.outcome===`rejected`?`✗ Rejected`:`⧗ Pending approval`})}):jsx(Box_default,{flexDirection:`column`,children:Object.entries(output).map(([key$1,value])=>jsxs(Box_default,{marginLeft:2,children:[jsx(Text,{color:`gray`,children:key$1}),jsx(Text,{color:`blackBright`,children:`=`}),jsx(Box_default,{width:maxWidth?maxWidth-6-1-key$1.length:void 0,children:jsx(Text,{wrap:`truncate-middle`,children:value})})]},key$1))})]}),error$3&&jsxs(Fragment,{children:[jsx(Text,{color:`gray`,bold:!0,children:`Error:`}),jsx(Text,{color:`red`,children:error$3})]})]})]})},OnboardingMessage=()=>jsxs(Box_default,{flexDirection:`column`,marginTop:1,marginBottom:1,borderStyle:`round`,borderColor:`gray`,paddingX:1,paddingY:0,children:[jsx(Box_default,{children:jsx(Text,{bold:!0,children:`Quick Start: Building Your Agent`})}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsx(Text,{children:`Blink has two modes:`}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,marginLeft:2,children:[jsxs(Text,{children:[jsx(Text,{bold:!0,color:colors.edit,children:`• Edit`}),jsx(Text,{children:` mode helps you build your agent`})]}),jsxs(Text,{children:[jsx(Text,{bold:!0,color:colors.run,children:`• Run`}),jsx(Text,{children:` mode lets you interact with it`})]})]}),jsx(Box_default,{marginTop:1,children:jsxs(Text,{children:[`Switch between them with`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`Ctrl+T`}),` `,`or`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`/edit`}),` `,`and`,` `,jsx(Text,{bold:!0,color:`cyan`,children:`/run`}),`.`]})})]})]}),MissingApiKeyMessage=()=>jsxs(Box_default,{flexDirection:`column`,marginTop:1,marginBottom:1,borderStyle:`round`,borderColor:`yellow`,paddingX:1,paddingY:0,children:[jsx(Box_default,{children:jsx(Text,{bold:!0,color:`yellow`,children:`⚠ Edit Mode Requires API Key`})}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,children:[jsxs(Text,{children:[`Add one of these to your `,jsx(Text,{bold:!0,children:`.env.local`}),` file:`]}),jsxs(Box_default,{marginTop:1,flexDirection:`column`,marginLeft:2,children:[jsxs(Text,{children:[`ANTHROPIC_API_KEY=`,jsx(Text,{color:`gray`,children:`your-key`})]}),jsxs(Text,{children:[`OPENAI_API_KEY=`,jsx(Text,{color:`gray`,children:`your-key`})]}),jsxs(Text,{children:[`AI_GATEWAY_API_KEY=`,jsx(Text,{color:`gray`,children:`your-key`})]})]}),jsx(Box_default,{marginTop:1,children:jsx(Text,{children:`The file will auto-reload when you add a key.`})})]})]});function getHelpText(entrypoint){return[``,source_default.bold(`How to Build Your Agent`),``,`Blink has two modes that work together to help you build and test agents:`,``,source_default.hex(colors.edit).bold(` Edit Mode`)+` - AI helps you build your agent`,` • Describe the agent you want to build`,` • The AI will modify your agent code based on your instructions`,` • Changes are written to ${relative$1(process.cwd(),entrypoint)} and auto-reload`,``,source_default.blue.bold(` Run Mode`)+` - Use your agent`,` • Chat with your agent to see how it behaves`,` • Discover what works and what needs improvement`,``,source_default.bold(`The Development Loop:`),` 1. Start in `+source_default.hex(colors.edit)(`Edit mode`)+` (Ctrl+T or /edit) and describe what your agent should do`,` Example: "Add a tool that can search the web"`,``,` 2. Switch to `+source_default.blue(`Run mode`)+` (Ctrl+T or /run) to use your agent`,` Try it out and see if it does what you expect`,``,` 3. Toggle back to `+source_default.hex(colors.edit)(`Edit mode`)+` to refine based on what you learned`,` The edit AI can see the entire chat history, including your conversations!`,` Example: "The search tool failed when I asked about X"`,``,` 4. Repeat until your agent works perfectly`,``,` 5. Deploy with `+source_default.bold(`blink deploy`)+` when ready`,``,source_default.dim(`Tip: Use /reset to start fresh, /new to create separate test chats`)]}function formatTokenCount(count$1){return count$1>=1e6?`${(count$1/1e6).toFixed(1)}M`:count$1>=1e3?`${(count$1/1e3).toFixed(1)}K`:count$1.toString()}async function dev(directory){if(!directory){let cwd$3=process.cwd();try{resolveConfig(cwd$3),directory=cwd$3}catch{let dotBlinkPath=await findNearestEntry(cwd$3,`.blink`);dotBlinkPath&&existsSync$1(join$1(dotBlinkPath,`build`))&&(dotBlinkPath=void 0),directory=dotBlinkPath||cwd$3}}await migrateDataToBlink(directory);let exitWithDump=error$3=>{writeFileSync$1(`error.dump`,inspect$1(error$3,{depth:null})),process.exit(1)};process.addListener(`uncaughtException`,error$3=>{exitWithDump(error$3)}),process.addListener(`unhandledRejection`,error$3=>{exitWithDump(error$3)});try{await startDev({directory})}catch(err){console.error(err),process.exit(1)}finally{process.exit(0)}}export{dev as default};
|