blink 1.1.19 → 1.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/cli/create-slack-app-CyVPwWsG.js +1 -0
  2. package/dist/cli/{dev-BShY-dVP.js → dev-C5PZ-A_f.js} +5 -5
  3. package/dist/cli/index.js +3 -3
  4. package/dist/cli/{init-DoMgv4kU.js → init-CFrylDAP.js} +1 -1
  5. package/dist/cli/{init-templates-MqyReSD9.js → init-templates-CB4tNZfU.js} +249 -263
  6. package/dist/cli/{run-DFYLWiOa.js → run-bKDX6K46.js} +1 -1
  7. package/dist/cli/{setup-slack-app-DQ3iSM5s.js → setup-slack-app-D_iwQuzr.js} +1 -1
  8. package/dist/cli/{util-BQ3TH_Sv.js → util-DDB5k1Go.js} +4 -4
  9. package/dist/node/agent/index.node.cjs +1 -1
  10. package/dist/node/agent/index.node.d.cts +2 -2
  11. package/dist/node/agent/index.node.d.ts +2 -2
  12. package/dist/node/agent/index.node.js +1 -1
  13. package/dist/node/build/index.cjs +1 -1
  14. package/dist/node/build/index.d.cts +1 -1
  15. package/dist/node/build/index.d.ts +1 -1
  16. package/dist/node/build/index.js +1 -1
  17. package/dist/node/{build-D_L0gFGa.js → build-DYI55eX2.js} +1 -1
  18. package/dist/node/{build-BzoNpizh.cjs → build-EgdtUZTI.cjs} +1 -1
  19. package/dist/node/{index-C28Wm0bG.d.ts → index-CnBfy-54.d.ts} +1 -1
  20. package/dist/node/{index-DlWgNLmT.d.cts → index-DYOqnOdZ.d.cts} +1 -1
  21. package/dist/node/{index.node-TFdiI8lm.js → index.node-B6JXREDl.js} +1 -1
  22. package/dist/node/{index.node-D7Cvmag9.cjs → index.node-BrLfthBj.cjs} +1 -1
  23. package/dist/node/{index.node-B6plkLLA.d.cts → index.node-CFw4ITad.d.cts} +1 -21
  24. package/dist/node/{index.node-qJt_7e9E.d.ts → index.node-Dvc-cHCZ.d.ts} +1 -21
  25. package/dist/node/react/index.node.cjs +252 -266
  26. package/dist/node/react/index.node.d.cts +2 -2
  27. package/dist/node/react/index.node.d.ts +2 -2
  28. package/dist/node/react/index.node.js +252 -266
  29. package/package.json +2 -1
  30. package/dist/cli/create-slack-app-CNDXDwfs.js +0 -1
@@ -1,4 +1,4 @@
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,migrateBlinkToData,require_main as require_main$1,resolveConfig}from"./util-BQ3TH_Sv.js";import{Client as Client$2}from"./dist-Ceoe3h7v.js";import{deleteAuthToken,getAuthToken,setAuthToken}from"./auth-CoJASYGP.js";import{openUrl,open_default,require_has_flag as require_has_flag$1,require_source as require_source$2}from"./util-BgbIWOFE.js";import{require_ignore}from"./ignore-NA4V6Pjc.js";import{createDevhookID,createSlackApp,createSlackAppSchema,getDevhookID,hasDevhook}from"./create-slack-app-CNDXDwfs.js";import{DiagConsoleLogger,DiagLogLevel,SpanStatusCode,ValueType,diag,esm_exports as esm_exports$3,init_esm as init_esm$2,metrics,trace as trace$11}from"./esm-C_RXU0lI.js";import{require_token_error}from"./token-error-DVSfBVaT.js";import{require_undici as require_undici$1}from"./undici-BUZTy5qm.js";import{APICallError,APIServerURLEnvironmentVariable,ChatManager,Client as Client$3,CustomChatResponseError,EventSourceParserStream,NoSuchModelError,checkOptionalParameter,combineHeaders,completeAssign,convertMessage,createAnthropic,createCustomAbortControllerSignal,createDiskStore,createEventSourceResponseHandler,createJsonErrorResponseHandler,createJsonResponseHandler,createOpenAI,createParser,decodeURIComponent_,ensureDisposableStackRegisteredForTerminateEvents,fakePromise,getFromApi,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,loadOptionalSetting,lock,mergePath,normalizeNodeRequest,parse as parse$17,postJsonToApi,resolve as resolve$9,sendNodeResponse,splitPath,splitRoutingPath,tools as tools$1,tryDecode,unfakePromise,withUserAgentSuffix,withoutTrailingSlash}from"./chat-manager-BRchJngj.js";import{templates}from"./init-templates-MqyReSD9.js";import{errorMonitor}from"events";import*as https$8 from"https";import*as http$13 from"http";import http,{createServer}from"http";import crypto$1 from"crypto";import{Readable}from"stream";import*as zlib$5 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$35 from"fs/promises";import{readFile,writeFile as writeFile$1}from"fs/promises";import{z}from"zod";import{z as z$2}from"zod/v4";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 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*as os$2 from"node:os";import os$1,{EOL,constants as constants$1,platform as platform$1}from"node:os";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 tty from"node:tty";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}`,clearTerminal=isWindows$2?`${eraseScreen}`:`${eraseScreen}`,enterAlternativeScreen=`\x1B[?1049h`,exitAlternativeScreen=`\x1B[?1049l`,link$2=(text,url$3)=>[`\x1B]`,`8`,`;`,`;`,url$3,`\x07`,text,`\x1B]`,`8`,`;`,`;`,`\x07`].join(``);var import_source$4=__toESM(require_source$2(),1);const 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$2=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$2(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$9=global.process;let processOk$1=function(process$10){return process$10&&typeof process$10==`object`&&typeof process$10.removeListener==`function`&&typeof process$10.emit==`function`&&typeof process$10.reallyExit==`function`&&typeof process$10.listeners==`function`&&typeof process$10.kill==`function`&&typeof process$10.pid==`number`&&typeof process$10.on==`function`};if(!processOk$1(process$9))module.exports=function(){return function(){}};else{var assert$2=__require$1(`assert`),signals$1=require_signals(),isWin$2=/^win/i.test(process$9.platform),EE=__require$1(`events`);typeof EE!=`function`&&(EE=EE.EventEmitter);var emitter;process$9.__signal_exit_emitter__?emitter=process$9.__signal_exit_emitter__:(emitter=process$9.__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$9.removeListener(sig,sigListeners[sig])}catch{}}),process$9.emit=originalProcessEmit,process$9.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$9.listeners(sig).length===emitter.count&&(unload$1(),emit(`exit`,null,sig),emit(`afterexit`,null,sig),isWin$2&&sig===`SIGHUP`&&(sig=`SIGINT`),process$9.kill(process$9.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$9.on(sig,sigListeners[sig]),!0}catch{return!1}}),process$9.emit=processEmit,process$9.reallyExit=processReallyExit)};module.exports.load=load$6;var originalProcessReallyExit=process$9.reallyExit,processReallyExit=function(code$1){processOk$1(global.process)&&(process$9.exitCode=code$1||0,emit(`exit`,process$9.exitCode,null),emit(`afterexit`,process$9.exitCode,null),originalProcessReallyExit.call(process$9,process$9.exitCode))},originalProcessEmit=process$9.emit,processEmit=function(ev,arg){if(ev===`exit`&&processOk$1(global.process)){arg!==void 0&&(process$9.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit(`exit`,process$9.exitCode,null),emit(`afterexit`,process$9.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$10=__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$10(),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()+`
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-DDB5k1Go.js";import{Client as Client$2}from"./dist-Ceoe3h7v.js";import{deleteAuthToken,getAuthToken,setAuthToken}from"./auth-CoJASYGP.js";import{openUrl,open_default,require_has_flag as require_has_flag$1,require_source as require_source$2}from"./util-BgbIWOFE.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$3,init_esm as init_esm$2,metrics,trace as trace$11}from"./esm-C_RXU0lI.js";import{require_token_error}from"./token-error-DVSfBVaT.js";import{require_undici as require_undici$1}from"./undici-BUZTy5qm.js";import{APICallError,APIServerURLEnvironmentVariable,ChatManager,Client as Client$3,CustomChatResponseError,EventSourceParserStream,NoSuchModelError,checkOptionalParameter,combineHeaders,completeAssign,convertMessage,createAnthropic,createCustomAbortControllerSignal,createDiskStore,createEventSourceResponseHandler,createJsonErrorResponseHandler,createJsonResponseHandler,createOpenAI,createParser,decodeURIComponent_,ensureDisposableStackRegisteredForTerminateEvents,fakePromise,getFromApi,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,loadOptionalSetting,lock,mergePath,normalizeNodeRequest,parse as parse$17,postJsonToApi,resolve as resolve$9,sendNodeResponse,splitPath,splitRoutingPath,tools as tools$1,tryDecode,unfakePromise,withUserAgentSuffix,withoutTrailingSlash}from"./chat-manager-BRchJngj.js";import{templates}from"./init-templates-CB4tNZfU.js";import{errorMonitor}from"events";import*as https$8 from"https";import*as http$13 from"http";import http,{createServer}from"http";import crypto$1 from"crypto";import{Readable}from"stream";import*as zlib$5 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$35 from"fs/promises";import{readFile,writeFile as writeFile$1}from"fs/promises";import{z}from"zod";import{z as z$2}from"zod/v4";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 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*as os$2 from"node:os";import os$1,{EOL,constants as constants$1,platform as platform$1}from"node:os";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 tty from"node:tty";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}`,clearTerminal=isWindows$2?`${eraseScreen}`:`${eraseScreen}`,enterAlternativeScreen=`\x1B[?1049h`,exitAlternativeScreen=`\x1B[?1049l`,link$2=(text,url$3)=>[`\x1B]`,`8`,`;`,`;`,url$3,`\x07`,text,`\x1B]`,`8`,`;`,`;`,`\x07`].join(``);var import_source$4=__toESM(require_source$2(),1);const 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$2=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$2(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$9=global.process;let processOk$1=function(process$10){return process$10&&typeof process$10==`object`&&typeof process$10.removeListener==`function`&&typeof process$10.emit==`function`&&typeof process$10.reallyExit==`function`&&typeof process$10.listeners==`function`&&typeof process$10.kill==`function`&&typeof process$10.pid==`number`&&typeof process$10.on==`function`};if(!processOk$1(process$9))module.exports=function(){return function(){}};else{var assert$2=__require$1(`assert`),signals$1=require_signals(),isWin$2=/^win/i.test(process$9.platform),EE=__require$1(`events`);typeof EE!=`function`&&(EE=EE.EventEmitter);var emitter;process$9.__signal_exit_emitter__?emitter=process$9.__signal_exit_emitter__:(emitter=process$9.__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$9.removeListener(sig,sigListeners[sig])}catch{}}),process$9.emit=originalProcessEmit,process$9.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$9.listeners(sig).length===emitter.count&&(unload$1(),emit(`exit`,null,sig),emit(`afterexit`,null,sig),isWin$2&&sig===`SIGHUP`&&(sig=`SIGINT`),process$9.kill(process$9.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$9.on(sig,sigListeners[sig]),!0}catch{return!1}}),process$9.emit=processEmit,process$9.reallyExit=processReallyExit)};module.exports.load=load$6;var originalProcessReallyExit=process$9.reallyExit,processReallyExit=function(code$1){processOk$1(global.process)&&(process$9.exitCode=code$1||0,emit(`exit`,process$9.exitCode,null),emit(`afterexit`,process$9.exitCode,null),originalProcessReallyExit.call(process$9,process$9.exitCode))},originalProcessEmit=process$9.emit,processEmit=function(ev,arg){if(ev===`exit`&&processOk$1(global.process)){arg!==void 0&&(process$9.exitCode=arg);var ret=originalProcessEmit.apply(this,arguments);return emit(`exit`,process$9.exitCode,null),emit(`afterexit`,process$9.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$10=__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$10(),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
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$2=(offset=0)=>code$1=>`\u001B[${code$1+offset}m`,wrapAnsi256$2=(offset=0)=>code$1=>`\u001B[${38+offset};5;${code$1}m`,wrapAnsi16m$2=(offset=0)=>(red$1,green$1,blue$1)=>`\u001B[${38+offset};2;${red$1};${green$1};${blue$1}m`,styles$7={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$7.modifier),foregroundColorNames$2=Object.keys(styles$7.color),backgroundColorNames$2=Object.keys(styles$7.bgColor),colorNames$2=[...foregroundColorNames$2,...backgroundColorNames$2];function assembleStyles$2(){let codes$1=new Map;for(let[groupName,group]of Object.entries(styles$7)){for(let[styleName,style]of Object.entries(group))styles$7[styleName]={open:`\u001B[${style[0]}m`,close:`\u001B[${style[1]}m`},group[styleName]=styles$7[styleName],codes$1.set(style[0],style[1]);Object.defineProperty(styles$7,groupName,{value:group,enumerable:!1})}return Object.defineProperty(styles$7,`codes`,{value:codes$1,enumerable:!1}),styles$7.color.close=`\x1B[39m`,styles$7.bgColor.close=`\x1B[49m`,styles$7.color.ansi=wrapAnsi16$2(),styles$7.color.ansi256=wrapAnsi256$2(),styles$7.color.ansi16m=wrapAnsi16m$2(),styles$7.bgColor.ansi=wrapAnsi16$2(10),styles$7.bgColor.ansi256=wrapAnsi256$2(10),styles$7.bgColor.ansi16m=wrapAnsi16m$2(10),Object.defineProperties(styles$7,{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$7.rgbToAnsi256(...styles$7.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$7.ansi256ToAnsi(styles$7.rgbToAnsi256(red$1,green$1,blue$1)),enumerable:!1},hexToAnsi:{value:hex=>styles$7.ansi256ToAnsi(styles$7.hexToAnsi256(hex)),enumerable:!1}}),styles$7}var ansi_styles_default$1=assembleStyles$2();const ESCAPES$3=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$3.values().next().value}[${code$1}m`,wrapAnsiHyperlink=url$3=>`${ESCAPES$3.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$3.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(`
3
3
  `),pre=[...preString],preStringIndex=0;for(let[index,character]of pre.entries()){if(returnValue+=character,ESCAPES$3.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===`
@@ -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$36){if(typeof path$36!=`string`)return``;for(var i$7=path$36.length-1;i$7>=0;--i$7)switch(path$36.charCodeAt(i$7)){case 47:case 92:return path$36=path$36.slice(i$7+1),path$36===`..`||path$36===`.`?``:path$36}return path$36===`..`||path$36===`.`?``:path$36}})),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$34=__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$34();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$34();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$10){resolve$10(value)})}return new(P$2||=Promise)(function(resolve$10,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$10(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$10,reject){v$1=o$2[n$2](v$1),settle(resolve$10,reject,v$1.done,v$1.value)})}}function settle(resolve$10,reject,d$3,v$1){Promise.resolve(v$1).then(function(v$2){resolve$10({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$7,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$7.stack.push({value,dispose,async:async$1})}else async$1&&env$7.stack.push({async:!0});return value}function __disposeResources(env$7){function fail(e$1){env$7.error=env$7.hasError?new _SuppressedError(e$1,env$7.error,`An error was suppressed during disposal.`):e$1,env$7.hasError=!0}var r$2,s$3=0;function next(){for(;r$2=env$7.stack.pop();)try{if(!r$2.async&&s$3===1)return s$3=0,env$7.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$7.hasError?Promise.reject(env$7.error):Promise.resolve();if(env$7.hasError)throw env$7.error}return next()}function __rewriteRelativeImportExtension(path$36,preserveJsx){return typeof path$36==`string`&&/^\.\.?\//.test(path$36)?path$36.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$36}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$33=__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$33(),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$33(),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$34();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$34();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$10,reject)=>{_body.readable.on(`data`,chunk$1=>{chunks.push(chunk$1)}),_body.readable.once(`error`,reject),_body.readable.once(`end`,()=>{resolve$10(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$10,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$10(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$9=__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$9.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$34();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$8=__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$8.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$7=__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$34();function getRequestFnForProtocol(url$3){if(url$3.startsWith(`http:`))return node_http_1$7.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$10,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$10(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$7.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$10(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$34(),BASE64_SUFFIX=`;base64`;async function getResponseForFile(url$3){let path$36=(0,node_url_1.fileURLToPath)(url$3);try{await node_fs_1.promises.access(path$36,node_fs_1.promises.constants.R_OK);let stats=await node_fs_1.promises.stat(path$36,{bigint:!0}),readable$1=(0,node_fs_1.createReadStream)(path$36);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$34();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$34();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$34(),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$10,reject)=>{try{stopFns.push(()=>{resolve$10(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$36=`/`,matchResult=[[]]){this.raw=request$2,this.path=path$36,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]])=>route)}get routePath(){return this.#matchResult[0].map(([[,route]])=>route)[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$36,...handlers)=>{for(let p of[path$36].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$36,app){let subApp=this.basePath(path$36);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$36){let subApp=this.#clone();return subApp._basePath=mergePath(this._basePath,path$36),subApp}onError=handler=>(this.errorHandler=handler,this);notFound=handler=>(this.#notFoundHandler=handler,this);mount(path$36,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$36),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$36,`*`),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$36,handler){method=method.toUpperCase(),path$36=mergePath(this._basePath,path$36);let r$2={basePath:this._basePath,path:path$36,method,handler};this.router.add(method,path$36,[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$7,method){if(method===`HEAD`)return(async()=>new Response(null,await this.#dispatch(request$2,executionCtx,env$7,`GET`)))();let path$36=this.getPath(request$2,{env:env$7}),matchResult=this.router.match(method,path$36),c$3=new Context(request$2,{path:path$36,matchResult,env:env$7,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!==``&&paramMap.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$36,index,pathErrorCheckOnly){let paramAssoc=[],groups=[];for(let i$7=0;;){let replaced=!1;if(path$36=path$36.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$36.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$36){return wildcardRegExpCache[path$36]??=RegExp(path$36===`*`?``:`^${path$36.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=>[!/\*|\/:/.test(route[0]),...route]).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$36,handlers]=routesWithStaticPathFlag[i$7];pathErrorCheckOnly?staticMap[path$36]=[handlers.map(([h$3])=>[h$3,Object.create(null)]),emptyParam]:j$2++;let paramAssoc;try{paramAssoc=trie.insert(path$36,j$2,pathErrorCheckOnly)}catch(e$1){throw e$1===PATH_ERROR?new UnsupportedPathError(path$36):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$36){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$36))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$36,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$36===`/*`&&(path$36=`*`);let paramCount=(path$36.match(/\/:/g)||[]).length;if(/\*$/.test(path$36)){let re$3=buildWildcardRegExp(path$36);method===METHOD_NAME_ALL?Object.keys(middleware).forEach(m$2=>{middleware[m$2][path$36]||=findMiddleware(middleware[m$2],path$36)||findMiddleware(middleware[METHOD_NAME_ALL],path$36)||[]}):middleware[method][path$36]||=findMiddleware(middleware[method],path$36)||findMiddleware(middleware[METHOD_NAME_ALL],path$36)||[],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$36)||[path$36];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$36){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$36)}#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$36=>[path$36,r$2[method][path$36]]):[];ownRoute.length===0?method!==METHOD_NAME_ALL&&routes.push(...Object.keys(r$2[METHOD_NAME_ALL]).map(path$36=>[path$36,r$2[METHOD_NAME_ALL][path$36]])):(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$36,handler){if(!this.#routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);this.#routes.push([method,path$36,handler])}match(method,path$36){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$36)}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$36,handler){this.#order=++this.#order;let curNode=this,parts=splitRoutingPath(path$36),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&&params!==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$36){let handlerSets=[];this.#params=emptyParams;let curNodes=[this],parts=splitPath(path$36),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$36,handler){let results=checkOptionalParameter(path$36);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$36,handler)}match(method,path$36){return this.#node.search(method,path$36)}},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$23=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`&&regex_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$23.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$7,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$7,[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$10=>setTimeout(resolve$10,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$7,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$10,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$10(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,`data`,`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(import_source$4.default.red(`\nError: Another ${import_source$4.default.bold(`blink dev`)} process is already running in this directory${pidMessage}.`)),console.error(import_source$4.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$8=__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$8.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$7=__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$34();function getRequestFnForProtocol(url$3){if(url$3.startsWith(`http:`))return node_http_1$7.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$10,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$10(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$7.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$10(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$34(),BASE64_SUFFIX=`;base64`;async function getResponseForFile(url$3){let path$36=(0,node_url_1.fileURLToPath)(url$3);try{await node_fs_1.promises.access(path$36,node_fs_1.promises.constants.R_OK);let stats=await node_fs_1.promises.stat(path$36,{bigint:!0}),readable$1=(0,node_fs_1.createReadStream)(path$36);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$34();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$34();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$34(),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$10,reject)=>{try{stopFns.push(()=>{resolve$10(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$36=`/`,matchResult=[[]]){this.raw=request$2,this.path=path$36,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]])=>route)}get routePath(){return this.#matchResult[0].map(([[,route]])=>route)[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$36,...handlers)=>{for(let p of[path$36].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$36,app){let subApp=this.basePath(path$36);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$36){let subApp=this.#clone();return subApp._basePath=mergePath(this._basePath,path$36),subApp}onError=handler=>(this.errorHandler=handler,this);notFound=handler=>(this.#notFoundHandler=handler,this);mount(path$36,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$36),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$36,`*`),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$36,handler){method=method.toUpperCase(),path$36=mergePath(this._basePath,path$36);let r$2={basePath:this._basePath,path:path$36,method,handler};this.router.add(method,path$36,[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$7,method){if(method===`HEAD`)return(async()=>new Response(null,await this.#dispatch(request$2,executionCtx,env$7,`GET`)))();let path$36=this.getPath(request$2,{env:env$7}),matchResult=this.router.match(method,path$36),c$3=new Context(request$2,{path:path$36,matchResult,env:env$7,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!==``&&paramMap.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$36,index,pathErrorCheckOnly){let paramAssoc=[],groups=[];for(let i$7=0;;){let replaced=!1;if(path$36=path$36.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$36.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$36){return wildcardRegExpCache[path$36]??=RegExp(path$36===`*`?``:`^${path$36.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=>[!/\*|\/:/.test(route[0]),...route]).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$36,handlers]=routesWithStaticPathFlag[i$7];pathErrorCheckOnly?staticMap[path$36]=[handlers.map(([h$3])=>[h$3,Object.create(null)]),emptyParam]:j$2++;let paramAssoc;try{paramAssoc=trie.insert(path$36,j$2,pathErrorCheckOnly)}catch(e$1){throw e$1===PATH_ERROR?new UnsupportedPathError(path$36):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$36){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$36))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$36,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$36===`/*`&&(path$36=`*`);let paramCount=(path$36.match(/\/:/g)||[]).length;if(/\*$/.test(path$36)){let re$3=buildWildcardRegExp(path$36);method===METHOD_NAME_ALL?Object.keys(middleware).forEach(m$2=>{middleware[m$2][path$36]||=findMiddleware(middleware[m$2],path$36)||findMiddleware(middleware[METHOD_NAME_ALL],path$36)||[]}):middleware[method][path$36]||=findMiddleware(middleware[method],path$36)||findMiddleware(middleware[METHOD_NAME_ALL],path$36)||[],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$36)||[path$36];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$36){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$36)}#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$36=>[path$36,r$2[method][path$36]]):[];ownRoute.length===0?method!==METHOD_NAME_ALL&&routes.push(...Object.keys(r$2[METHOD_NAME_ALL]).map(path$36=>[path$36,r$2[METHOD_NAME_ALL][path$36]])):(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$36,handler){if(!this.#routes)throw Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);this.#routes.push([method,path$36,handler])}match(method,path$36){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$36)}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$36,handler){this.#order=++this.#order;let curNode=this,parts=splitRoutingPath(path$36),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&&params!==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$36){let handlerSets=[];this.#params=emptyParams;let curNodes=[this],parts=splitPath(path$36),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$36,handler){let results=checkOptionalParameter(path$36);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$36,handler)}match(method,path$36){return this.#node.search(method,path$36)}},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$23=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`&&regex_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$23.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$7,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$7,[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$10=>setTimeout(resolve$10,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$7,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$10,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$10(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(import_source$4.default.red(`\nError: Another ${import_source$4.default.bold(`blink dev`)} process is already running in this directory${pidMessage}.`)),console.error(import_source$4.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(import_source$4.default.yellow(`\nWarning: Failed to acquire devhook lock: ${message}`)),console.warn(import_source$4.default.yellow(`Continuing without lock. Multiple ${import_source$4.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$7,setEnv]=useState({});return useEffect(()=>{let watcher,readEnvFile=path$36=>{try{let contents=readFileSync$1(path$36,`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$7}var require_get_context=__commonJSMin(((exports,module)=>{var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__getOwnPropNames$3=Object.getOwnPropertyNames,__hasOwnProp$3=Object.prototype.hasOwnProperty,__export$4=(target,all$2)=>{for(var name$2 in all$2)__defProp$3(target,name$2,{get:all$2[name$2],enumerable:!0})},__copyProps$3=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(let key$1 of __getOwnPropNames$3(from))!__hasOwnProp$3.call(to,key$1)&&key$1!==except&&__defProp$3(to,key$1,{get:()=>from[key$1],enumerable:!(desc=__getOwnPropDesc$3(from,key$1))||desc.enumerable});return to},__toCommonJS$3=mod$1=>__copyProps$3(__defProp$3({},`__esModule`,{value:!0}),mod$1),get_context_exports={};__export$4(get_context_exports,{SYMBOL_FOR_REQ_CONTEXT:()=>SYMBOL_FOR_REQ_CONTEXT,getContext:()=>getContext$1}),module.exports=__toCommonJS$3(get_context_exports);let SYMBOL_FOR_REQ_CONTEXT=Symbol.for(`@vercel/request-context`);function getContext$1(){return globalThis[SYMBOL_FOR_REQ_CONTEXT]?.get?.()??{}}})),require_get_vercel_oidc_token=__commonJSMin(((exports,module)=>{var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__getOwnPropNames$2=Object.getOwnPropertyNames,__hasOwnProp$2=Object.prototype.hasOwnProperty,__export$3=(target,all$2)=>{for(var name$2 in all$2)__defProp$2(target,name$2,{get:all$2[name$2],enumerable:!0})},__copyProps$2=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(let key$1 of __getOwnPropNames$2(from))!__hasOwnProp$2.call(to,key$1)&&key$1!==except&&__defProp$2(to,key$1,{get:()=>from[key$1],enumerable:!(desc=__getOwnPropDesc$2(from,key$1))||desc.enumerable});return to},__toCommonJS$2=mod$1=>__copyProps$2(__defProp$2({},`__esModule`,{value:!0}),mod$1),get_vercel_oidc_token_exports={};__export$3(get_vercel_oidc_token_exports,{getVercelOidcToken:()=>getVercelOidcToken$1,getVercelOidcTokenSync:()=>getVercelOidcTokenSync}),module.exports=__toCommonJS$2(get_vercel_oidc_token_exports);var import_get_context$1=require_get_context(),import_token_error=require_token_error();async function getVercelOidcToken$1(){let token$1=``,err;try{token$1=getVercelOidcTokenSync()}catch(error$3){err=error$3}try{let[{getTokenPayload,isExpired},{refreshToken}]=await Promise.all([await import(`./token-util-C6Xu44iO.js`).then(__toDynamicImportESM()),await import(`./token-DNRiDJM-.js`).then(__toDynamicImportESM())]);(!token$1||isExpired(getTokenPayload(token$1)))&&(await refreshToken(),token$1=getVercelOidcTokenSync())}catch(error$3){throw err?.message&&error$3 instanceof Error&&(error$3.message=`${err.message}
253
253
  ${error$3.message}`),new import_token_error.VercelOidcTokenError(`Failed to refresh OIDC token`,error$3)}return token$1}function getVercelOidcTokenSync(){let token$1=(0,import_get_context$1.getContext)().headers?.[`x-vercel-oidc-token`]??process.env.VERCEL_OIDC_TOKEN;if(!token$1)throw Error(`The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?`);return token$1}})),require_dist$7=__commonJSMin(((exports,module)=>{var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__getOwnPropNames$1=Object.getOwnPropertyNames,__hasOwnProp$1=Object.prototype.hasOwnProperty,__export$2=(target,all$2)=>{for(var name$2 in all$2)__defProp$1(target,name$2,{get:all$2[name$2],enumerable:!0})},__copyProps$1=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(let key$1 of __getOwnPropNames$1(from))!__hasOwnProp$1.call(to,key$1)&&key$1!==except&&__defProp$1(to,key$1,{get:()=>from[key$1],enumerable:!(desc=__getOwnPropDesc$1(from,key$1))||desc.enumerable});return to},__toCommonJS$1=mod$1=>__copyProps$1(__defProp$1({},`__esModule`,{value:!0}),mod$1),src_exports={};__export$2(src_exports,{getContext:()=>import_get_context.getContext,getVercelOidcToken:()=>import_get_vercel_oidc_token.getVercelOidcToken,getVercelOidcTokenSync:()=>import_get_vercel_oidc_token.getVercelOidcTokenSync}),module.exports=__toCommonJS$1(src_exports);var import_get_vercel_oidc_token=require_get_vercel_oidc_token(),import_get_context=require_get_context()})),import_dist$7=__toESM(require_dist$7(),1),import_dist$8=__toESM(require_dist$7(),1),symbol=Symbol.for(`vercel.ai.gateway.error`),_a$9,_b$2,GatewayError=class _GatewayError extends (_b$2=Error,_a$9=symbol,_b$2){constructor({message,statusCode=500,cause}){super(message),this[_a$9]=!0,this.statusCode=statusCode,this.cause=cause}static isInstance(error$3){return _GatewayError.hasMarker(error$3)}static hasMarker(error$3){return typeof error$3==`object`&&!!error$3&&symbol in error$3&&error$3[symbol]===!0}},name$1=`GatewayAuthenticationError`,marker2=`vercel.ai.gateway.error.${name$1}`,symbol2=Symbol.for(marker2),_a2,_b2,GatewayAuthenticationError=class _GatewayAuthenticationError extends (_b2=GatewayError,_a2=symbol2,_b2){constructor({message=`Authentication failed`,statusCode=401,cause}={}){super({message,statusCode,cause}),this[_a2]=!0,this.name=name$1,this.type=`authentication_error`}static isInstance(error$3){return GatewayError.hasMarker(error$3)&&symbol2 in error$3}static createContextualError({apiKeyProvided,oidcTokenProvided,message=`Authentication failed`,statusCode=401,cause}){let contextualMessage;return contextualMessage=apiKeyProvided?`AI Gateway authentication failed: Invalid API key provided.
254
254
 
@@ -468,7 +468,7 @@ Slack:
468
468
  1. *ALWAYS* use the \`typecheck_agent\` tool to check for type errors before making changes. NEVER invoke \`tsc\` directly.
469
469
  2. Use the \`message_user_agent\` tool to test the agent after you make changes.
470
470
  </agent_development>
471
- `});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$7){if(env$7.ANTHROPIC_API_KEY)return createAnthropic({apiKey:env$7.ANTHROPIC_API_KEY}).chat(`claude-sonnet-4-5`);if(env$7.OPENAI_API_KEY)return createOpenAI({apiKey:env$7.OPENAI_API_KEY}).responses(`gpt-5`);if(env$7.AI_GATEWAY_API_KEY)return createGatewayProvider({apiKey:env$7.AI_GATEWAY_API_KEY})(`anthropic/claude-sonnet-4-5`)}function getEditModeModelOrThrow(env$7){let model=getEditModeModel(env$7);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$10=>setTimeout(resolve$10,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$10,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$10(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$7=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$7);if(keys.length===lastReportedKeys.current||lastReportedKeys.current===void 0){lastReportedKeys.current=keys.length;return}lastReportedKeys.current=keys.length,options$1.onEnvLoaded?.(keys)},[env$7,options$1.onEnvLoaded]);let runAgentRef=useRef(void 0),server=useMemo(()=>createLocalServer({port:0,dataDirectory:join$1(directory,`data`),getAgent:()=>runAgentRef.current}),[directory]),{agent,logs:logs$1,error:agentError,capabilities}=useAgent({buildResult,env:env$7,apiServerUrl:server.url}),{client:editAgent,error:editAgentError,missingApiKey:editModeMissingApiKey,setUserAgentUrl}=useEditAgent({directory,apiServerUrl:server.url,env:env$7,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} *[^
471
+ `});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$7){if(env$7.ANTHROPIC_API_KEY)return createAnthropic({apiKey:env$7.ANTHROPIC_API_KEY}).chat(`claude-sonnet-4-5`);if(env$7.OPENAI_API_KEY)return createOpenAI({apiKey:env$7.OPENAI_API_KEY}).responses(`gpt-5`);if(env$7.AI_GATEWAY_API_KEY)return createGatewayProvider({apiKey:env$7.AI_GATEWAY_API_KEY})(`anthropic/claude-sonnet-4-5`)}function getEditModeModelOrThrow(env$7){let model=getEditModeModel(env$7);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$10=>setTimeout(resolve$10,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$10,reject)=>{server.listen(0,()=>{let port$1=server.address().port;resolve$10(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$7=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$7);if(keys.length===lastReportedKeys.current||lastReportedKeys.current===void 0){lastReportedKeys.current=keys.length;return}lastReportedKeys.current=keys.length,options$1.onEnvLoaded?.(keys)},[env$7,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$7,apiServerUrl:server.url}),{client:editAgent,error:editAgentError,missingApiKey:editModeMissingApiKey,setUserAgentUrl}=useEditAgent({directory,apiServerUrl:server.url,env:env$7,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} *[^
472
472
  ]`).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={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},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(`
473
473
  `).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(`
474
474
  `)}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,`
@@ -1881,6 +1881,6 @@ const SCREEN_READER_USER_PREFIX=`User: `;var import_source$1=__toESM(require_sou
1881
1881
  `)&&(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(`
1882
1882
  `),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(`
1883
1883
  `),additionalLines$1=[];if(remainingGhostText){let textLines=remainingGhostText.split(`
1884
- `);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:[import_source$1.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=import_source$1.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:import_source$1.default.inverse(` `)},`cursor-end-${cursorVisualColAbsolute}`)));let showCursorBeforeGhost=focus&&isOnCursorLine&&cursorVisualColAbsolute===cpLen(lineText)&&currentLineGhost;return jsx(Box_default,{height:1,children:jsxs(Text,{children:[renderedLine,showCursorBeforeGhost&&import_source$1.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$4=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$4,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,`data`,`.first-run`);return mkdirSync$1(dirname$1(storagePath),{recursive:!0}),existsSync$1(storagePath)?!1:(writeFileSync$1(storagePath,new Date().toISOString()),!0)}var import_source=__toESM(require_source$2());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(import_source.default.gray(`⚙ Compiling...`))},onBuildSuccess:result=>{console.log(import_source.default.green(`⚙ Compiled in ${Math.round(result.duration)}ms`))},onBuildError:error$3=>{console.log(import_source.default.red(`⚙ ${error$3.message}${error$3.file?` (${error$3.file})`:``}`))},onEnvLoaded:keys=>{let keysText=keys.map(key$1=>import_source.default.dim(key$1)).join(`, `);keysText.length===0&&(keysText=import_source.default.dim(`(none)`)),console.log(import_source.default.gray(`⚙ Loaded .env.local:`),keysText)},onDevhookConnected:url$3=>{console.log(import_source.default.gray(`⚙ Send webhooks from anywhere: ${url$3}`))},onAgentLog:log$5=>{let logColor=log$5.level===`error`?`red`:`white`;console.log(import_source.default[logColor](`@ ${log$5.message}`))},onDevhookRequest:request$2=>{console.log(import_source.default.blue(`↩ `)+import_source.default.gray(`method=${request$2.method} path=${request$2.path} status=${request$2.status}`))},onError:error$3=>{console.log(import_source.default.red(`⚙ ${error$3}`))},onModeChange:mode=>{switch(mode){case`edit`:console.log(import_source.default.hex(colors.edit).bold(`✎ entering edit mode`)+`
1884
+ `);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:[import_source$1.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=import_source$1.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:import_source$1.default.inverse(` `)},`cursor-end-${cursorVisualColAbsolute}`)));let showCursorBeforeGhost=focus&&isOnCursorLine&&cursorVisualColAbsolute===cpLen(lineText)&&currentLineGhost;return jsx(Box_default,{height:1,children:jsxs(Text,{children:[renderedLine,showCursorBeforeGhost&&import_source$1.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$4=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$4,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)}var import_source=__toESM(require_source$2());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(import_source.default.gray(`⚙ Compiling...`))},onBuildSuccess:result=>{console.log(import_source.default.green(`⚙ Compiled in ${Math.round(result.duration)}ms`))},onBuildError:error$3=>{console.log(import_source.default.red(`⚙ ${error$3.message}${error$3.file?` (${error$3.file})`:``}`))},onEnvLoaded:keys=>{let keysText=keys.map(key$1=>import_source.default.dim(key$1)).join(`, `);keysText.length===0&&(keysText=import_source.default.dim(`(none)`)),console.log(import_source.default.gray(`⚙ Loaded .env.local:`),keysText)},onDevhookConnected:url$3=>{console.log(import_source.default.gray(`⚙ Send webhooks from anywhere: ${url$3}`))},onAgentLog:log$5=>{let logColor=log$5.level===`error`?`red`:`white`;console.log(import_source.default[logColor](`@ ${log$5.message}`))},onDevhookRequest:request$2=>{console.log(import_source.default.blue(`↩ `)+import_source.default.gray(`method=${request$2.method} path=${request$2.path} status=${request$2.status}`))},onError:error$3=>{console.log(import_source.default.red(`⚙ ${error$3}`))},onModeChange:mode=>{switch(mode){case`edit`:console.log(import_source.default.hex(colors.edit).bold(`✎ entering edit mode`)+`
1885
1885
  `);break;case`run`:console.log(import_source.default.hex(colors.run).bold(`⟳ entering run mode`)+`
1886
- `);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:import_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[``,import_source.default.bold(`How to Build Your Agent`),``,`Blink has two modes that work together to help you build and test agents:`,``,import_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`,``,import_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`,``,import_source.default.bold(`The Development Loop:`),` 1. Start in `+import_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 `+import_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 `+import_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 `+import_source.default.bold(`blink deploy`)+` when ready`,``,import_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 migrateBlinkToData(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};
1886
+ `);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:import_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[``,import_source.default.bold(`How to Build Your Agent`),``,`Blink has two modes that work together to help you build and test agents:`,``,import_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`,``,import_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`,``,import_source.default.bold(`The Development Loop:`),` 1. Start in `+import_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 `+import_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 `+import_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 `+import_source.default.bold(`blink deploy`)+` when ready`,``,import_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};