@director.run/cli 0.0.29 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -501,7 +501,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
|
|
|
501
501
|
`)+$,Y=Q+1,Q=D.indexOf(`
|
|
502
502
|
`,Y)}while(Q!==-1);return X+=D.slice(Y),X}var{stdout:kx,stderr:bx}=Sx,Fz=Symbol("GENERATOR"),O9=Symbol("STYLER"),o7=Symbol("IS_EMPTY"),ux=["ansi","ansi","ansi256","ansi16m"],L9=Object.create(null),$D0=(D,F={})=>{if(F.level&&!(Number.isInteger(F.level)&&F.level>=0&&F.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let $=kx?kx.level:0;D.level=F.level===void 0?$:F.level};var QD0=(D)=>{let F=(...$)=>$.join(" ");return $D0(F,D),Object.setPrototypeOf(F,s7.prototype),F};function s7(D){return QD0(D)}Object.setPrototypeOf(s7.prototype,Function.prototype);for(let[D,F]of Object.entries(i8))L9[D]={get(){let $=cY(this,Qz(F.open,F.close,this[O9]),this[o7]);return Object.defineProperty(this,D,{value:$}),$}};L9.visible={get(){let D=cY(this,this[O9],!0);return Object.defineProperty(this,"visible",{value:D}),D}};var $z=(D,F,$,...Q)=>{if(D==="rgb"){if(F==="ansi16m")return i8[$].ansi16m(...Q);if(F==="ansi256")return i8[$].ansi256(i8.rgbToAnsi256(...Q));return i8[$].ansi(i8.rgbToAnsi(...Q))}if(D==="hex")return $z("rgb",F,$,...i8.hexToRgb(...Q));return i8[$][D](...Q)},YD0=["rgb","hex","ansi256"];for(let D of YD0){L9[D]={get(){let{level:$}=this;return function(...Q){let Y=Qz($z(D,ux[$],"color",...Q),i8.color.close,this[O9]);return cY(this,Y,this[o7])}}};let F="bg"+D[0].toUpperCase()+D.slice(1);L9[F]={get(){let{level:$}=this;return function(...Q){let Y=Qz($z(D,ux[$],"bgColor",...Q),i8.bgColor.close,this[O9]);return cY(this,Y,this[o7])}}}}var XD0=Object.defineProperties(()=>{},{...L9,level:{enumerable:!0,get(){return this[Fz].level},set(D){this[Fz].level=D}}}),Qz=(D,F,$)=>{let Q,Y;if($===void 0)Q=D,Y=F;else Q=$.openAll+D,Y=F+$.closeAll;return{open:D,close:F,openAll:Q,closeAll:Y,parent:$}},cY=(D,F,$)=>{let Q=(...Y)=>JD0(Q,Y.length===1?""+Y[0]:Y.join(" "));return Object.setPrototypeOf(Q,XD0),Q[Fz]=D,Q[O9]=F,Q[o7]=$,Q},JD0=(D,F)=>{if(D.level<=0||!F)return D[o7]?"":F;let $=D[O9];if($===void 0)return F;let{openAll:Q,closeAll:Y}=$;if(F.includes("\x1B"))while($!==void 0)F=fx(F,$.close,$.open),$=$.parent;let X=F.indexOf(`
|
|
503
503
|
`);if(X!==-1)F=vx(F,Y,Q,X);return Q+F+Y};Object.defineProperties(s7.prototype,L9);var HD0=s7(),p_0=s7({level:bx?bx.level:0});var u1=HD0;var mx=u0(gx(),1),E4=Jz("#0099F7"),p2=Jz("#F11712"),r7=Jz("#00FF00"),Xz=(D)=>u1.yellow(D);function Jz(D){let F=zD0(D);return($)=>`\x1B[38;5;${F}m${$}${mx.default.reset("")}`}function zD0(D){let F=parseInt(D.slice(1),16),$=Math.floor(F/65536)%256,Q=Math.floor(F/256)%256,Y=F%256;return 16+36*Math.round($/255*5)+6*Math.round(Q/255*5)+Math.round(Y/255*5)}function o1(D){return u1.white.bold(D)}var Hz=" ".repeat(2);function px(D){let F=[];if(D._enableDebugCommands)F.push(Xz("\uD83D\uDEA7 debug commands appear in yellow \uD83D\uDEA7")),F.push("");if(F.push(D.description().trim()),F.push(""),F.push(R9("usage")),F.push(Hz+t7([D.parent?D.parent.name():"",D.name(),nx("command"),"[subcommand]","[flags]"])),F.push(""),D.parent)F.push(R9(`${D.name()} commands`));else F.push(R9("core commands"));D.commands.toSorted((Q,Y)=>Number(!!Q.commands.length)-Number(!!Y.commands.length)).forEach((Q)=>{if(Q.commands.length)F.push(""),F.push(R9(Q.name())),Q.commands.forEach((Y)=>{F.push(cx(Y))});else F.push(cx(Q))}),F.push("");let $=[D._helpOption,...D.options].filter((Q)=>Q!==void 0);if($.length)F.push(R9("flags")),$.forEach((Q)=>{F.push(t7([Hz,Q.flags,lx(Q.description,Q.flags.length)]))}),F.push("");if(D.examples)F.push(R9("examples")),F.push(" "+D.examples.trim()),F.push("");return F.push(""),F.join(`
|
|
504
|
-
`)}var R9=(D)=>{return o1(D.toLocaleUpperCase())},cx=(D)=>{let F=D.registeredArguments.map((X)=>X.required?nx(X.name()):ix(X.name())).filter((X)=>X!=="").join(" "),$=t7([t7([D.parent&&D.parent.parent?D.parent?.name():void 0,D.name()]),F,D.options.length?ix("options"):""]),Q=D.description()||p2("TODO"),Y=t7([Hz,$,lx(Q,$.length)]);return D._debug?Xz(Y):Y},lx=(D,F)=>{return" ".repeat(Math.max(0,45-F))+D},nx=(D)=>["<",D,">"].join(""),ix=(D)=>["[",D,"]"].join(""),t7=(D)=>D.filter(Boolean).join(" ");class l2 extends eW{debug=!0;examples="";constructor(D){super(D);this.helpCommand(!1)}showDebugCommands(D){return this._enableDebugCommands=D,this}debugCommand(D,F){if(this._enableDebugCommands){let $=super.command(D,F);return $._enableDebugCommands=!0,$._debug=!0,$}else return new eW(D)}helpInformation(D){return px(this)}addExamples(D){this.examples=D}addCommand(D,F){return D._enableDebugCommands=this._enableDebugCommands,D._debug=this._debug,super.addCommand(D,F)}}function A4({flags:D,description:F,defaultValue:$,choices:Q,mandatory:Y}){let X=new Px(D,F);return Y&&X.makeOptionMandatory(),$&&X.default($),Q&&X.choices(Q),X}var e7={name:"@director.run/cli",type:"module",version:"0.0.29",files:["dist","README.md"],bin:{director:"./dist/cli.js"},license:"MIT",repository:{type:"git",url:"https://github.com/director-run/director"},description:"The easiest way to manage and deploy MCP servers",author:"The Working Company <hello@director.run>",homepage:"https://director.run",scripts:{lint:"biome check .",format:"biome format --write .",clean:"rm -rf .turbo dist/*",test:"bun run vitest --fileParallelism=false",cli:"NODE_ENV=development bun run bin/cli.ts",typecheck:"tsc --noEmit",build:"bun build --production --target=node bin/cli.ts --outdir dist",release:"bun publish --access public --omit=peer",prepare:"bun run build",dev:"bun --watch bin/cli.ts"},peerDependencies:{typescript:"^5"},devDependencies:{"@inquirer/prompts":"^7.5.2","type-fest":"^4.40.0","@director.run/gateway":"workspace:*","@director.run/mcp":"workspace:*","@director.run/utilities":"workspace:*",chalk:"^5.4.1","cli-table3":"^0.6.5",commander:"^13.1.0",superjson:"^2.2.2"}};var dx=u0($F(),1);class f0 extends Error{code;props;name="AppError";constructor(D,F,$={}){super(F);this.code=D;this.props=$}}function lY(D){return D instanceof f0}function ax(D){return D instanceof Error&&"statusCode"in D&&dx.isNumber(D.statusCode)}import lF0 from"node:os";import nF0 from"node:path";import Bz from"node:fs";import{existsSync as MD0}from"node:fs";import{dirname as UD0}from"node:path";async function nY(D){if(!MD0(D))throw new f0("NOT_FOUND",`file not found at: ${D}`);let F=await Bz.promises.readFile(D),$=new TextDecoder().decode(F);return JSON.parse($)}async function p6(D,F){return await Bz.promises.mkdir(UD0(D),{recursive:!0}),Bz.promises.writeFile(D,JSON.stringify(F,null,2))}import{exec as mF0,execSync as IX}from"node:child_process";import{existsSync as cF0}from"node:fs";import{promisify as iF0}from"node:util";var CX=u0($F(),1),PX=u0($K(),1),mP=u0(gP(),1);var uF0=process.env.LOG_LEVEL??(V4()?"silent":"info"),hF0=process.env.LOG_PRETTY!=="false",yF0=process.env.LOG_ERROR_STACK==="true",gF0=PX.default({level:uF0.toLowerCase(),messageKey:"message",timestamp:!0,redact:["transport.headers.Authorization","transport.headers.authorization","transport.env.OPENAPI_MCP_HEADERS","transport.env.SLACK_BOT_TOKEN"],serializers:{error:(D)=>{if(lY(D))return{type:D.name,...CX.pick(D,"message","stack","code","props"),...D.cause?{cause:PX.default.stdSerializers.errWithCause(D)}:{}};let F=PX.default.stdSerializers.errWithCause(D);return yF0?F:CX.omit(F,"stack")}}},hF0?mP.default({colorize:!0,translateTime:"HH:MM:ss",ignore:"pid,hostname"}):void 0),h0=(D)=>gF0.child({name:D});function zF(D){return new Promise((F)=>setTimeout(F,D))}var _X=iF0(mF0),TX=h0("restartApp");async function f9(D){if(TX.info(`restarting ${D}...`),!pF0(D)){TX.info(`${D} is not running, skipping restart`);return}await _X(`osascript -e 'tell application "${D}" to quit'`),await zF(2000),await _X(`open -a ${D}`),TX.info(`${D} has been restarted`)}async function v9(D){TX.info(`opening ${D}`),await _X(`code "${D}"`)}function yK(D){if(process.platform==="win32")return!1;return IX(`which ${D}`,{stdio:"pipe"}).toString().trim().length>0}function k9(D){let F=process.platform;if(F==="win32")return!1;try{let $;switch(D){case"Claude":$="Claude";break;case"Cursor":$="Cursor";break;case"Visual Studio Code":$="Visual Studio Code";break;default:$=D}if(F==="darwin")return IX(`mdfind "kMDItemDisplayName == '${$}'"`,{stdio:"pipe",encoding:"utf8"}).trim().length>0;else if(F==="linux"){let Q=["/usr/share/applications","/usr/local/share/applications","~/.local/share/applications"];for(let Y of Q)try{if(IX(`find ${Y} -name "*.desktop" -exec grep -l "${$}" {} \\;`,{stdio:"pipe",encoding:"utf8"}).trim().length>0)return!0}catch{continue}}return!1}catch($){return!1}}function b9(D){return cF0(D)}function pF0(D){try{return IX(`pgrep -x "${D}"`,{stdio:"pipe"}),!0}catch(F){return!1}}async function cP(D){if(!D||typeof D!=="string")throw new Error("Invalid URL provided");let F=D.startsWith("http://")||D.startsWith("https://")?D:`https://${D}`,$=process.platform,Q;switch($){case"darwin":Q=`open "${F}"`;break;case"win32":Q=`start "" "${F}"`;break;case"linux":Q=`xdg-open "${F}"`;break;default:throw new Error(`Unsupported platform: ${$}`)}try{await _X(Q)}catch(Y){throw new Error(`Failed to open URL: ${Y instanceof Error?Y.message:"Unknown error"}`)}}var iP="director__";class t2{config;isInitialized;logger;configPath;name;constructor(D){this.configPath=D.configPath,this.isInitialized=!1,this.name=D.name,this.logger=h0(`client-configurator/${this.name}`)}async initialize(){if(this.isInitialized&&this.config)return;if(this.logger.info("initializing"),!await this.isClientPresent())throw new f0("COMMAND_NOT_FOUND",`${this.name} doesn't appear to be installed`,{name:this.name,configPath:this.configPath});if(!await this.isClientConfigPresent())throw new f0("FILE_NOT_FOUND",`${this.name} config file not found at ${this.configPath}`,{name:this.name,configPath:this.configPath});this.config=await nY(this.configPath),this.isInitialized=!0}async getStatus(){return{name:this.name,installed:await this.isClientPresent(),configExists:await this.isClientConfigPresent(),configPath:this.configPath}}createServerConfigKey(D){return`${iP}${D}`}isManagedConfigKey(D){return D.startsWith(iP)}}var dF0=nF0.join(lF0.homedir(),"Library/Application Support/Claude/claude_desktop_config.json");class gK extends t2{async isClientPresent(){return await k9("Claude")}async isClientConfigPresent(){return await b9(this.configPath)}constructor(D){super({configPath:D.configPath||dF0,name:"claude"})}async isInstalled(D){if(!await this.isClientPresent()||!await this.isClientConfigPresent())return!1;return await this.initialize(),this.config?.mcpServers?.[this.createServerConfigKey(D)]!==void 0}async uninstall(D){if(await this.initialize(),!this.isInstalled(D))throw new f0("NOT_FOUND",`server '${D}' is not installed`);this.logger.info(`uninstalling ${D}`);let F={mcpServers:{...this.config?.mcpServers}};delete F.mcpServers?.[this.createServerConfigKey(D)],await this.updateConfig(F)}async install(D){if(await this.initialize(),await this.isInstalled(D.name))throw new f0("BAD_REQUEST",`server '${D.name}' is already installed`);this.logger.info(`installing ${D.name}`);let F={mcpServers:{...this.config?.mcpServers}};F.mcpServers[this.createServerConfigKey(D.name)]={command:"npx",args:["-y","@director.run/cli","http2stdio",D.url],env:{LOG_LEVEL:"silent"}},await this.updateConfig(F)}async reset(){await this.initialize(),this.logger.info("purging claude config");let D={mcpServers:{...this.config?.mcpServers}};D.mcpServers={},await this.updateConfig(D)}async list(){return await this.initialize(),this.logger.info("listing servers"),Object.entries(this.config?.mcpServers??{}).filter(([D])=>this.isManagedConfigKey(D)).map(([D,F])=>({name:D,url:F.args[3]}))}async openConfig(){this.logger.info("opening claude config"),await v9(this.configPath)}async restart(){if(await this.initialize(),!V4())this.logger.info("restarting claude"),await f9("Claude");else this.logger.warn("skipping restart of claude in test environment")}async reload(D){await this.initialize(),this.logger.info(`reloading ${D}`),await this.restart()}async updateConfig(D){this.config=oF0.parse(D),this.logger.info(`writing config to ${this.configPath}`),await p6(this.configPath,this.config),await this.restart()}}var aF0=l.object({command:l.string().describe('The command to execute (e.g., "bun", "node")'),args:l.array(l.string()).describe("Command line arguments"),env:l.record(l.string()).optional().describe("Environment variables")}),oF0=l.object({mcpServers:l.record(l.string(),aF0).describe("Map of MCP server configurations")});import sF0 from"node:os";import rF0 from"node:path";var tF0=rF0.join(sF0.homedir(),".cursor/mcp.json");class mK extends t2{async isClientPresent(){return await k9("Cursor")}async isClientConfigPresent(){return await b9(this.configPath)}constructor(D){super({configPath:D.configPath||tF0,name:"cursor"})}async isInstalled(D){if(!await this.isClientPresent()||!await this.isClientConfigPresent())return!1;return await this.initialize(),this.config?.mcpServers?.[this.createServerConfigKey(D)]!==void 0}async uninstall(D){if(await this.initialize(),!this.isInstalled(D))throw new f0("NOT_FOUND",`server '${D}' is not installed`);this.logger.info(`uninstalling ${D}`);let F={mcpServers:{...this.config?.mcpServers??{}}};delete F.mcpServers[this.createServerConfigKey(D)],await this.updateConfig(F)}async install(D){if(await this.initialize(),await this.isInstalled(D.name))throw new f0("BAD_REQUEST",`server '${D.name}' is already installed`);this.logger.info(`installing ${D.name}`);let F={mcpServers:{...this.config?.mcpServers??{}}};F.mcpServers[this.createServerConfigKey(D.name)]={url:D.url},await this.updateConfig(F)}async restart(){if(await this.initialize(),!V4())this.logger.info("restarting cursor"),await f9("Cursor");else this.logger.warn("skipping restart of cursor in test environment")}async reload(D){await this.initialize(),this.logger.info(`reloading ${D}`);let F=this.config?.mcpServers[this.createServerConfigKey(D)]?.url;if(!F)throw new f0("NOT_FOUND",`server '${D}' is not installed`);await this.uninstall(D),await zF(1000),await this.install({name:D,url:F})}async list(){return await this.initialize(),this.logger.info("listing servers"),Object.entries(this.config?.mcpServers??{}).map(([D,F])=>({name:D,url:F.url}))}async openConfig(){this.logger.info("opening cursor config"),await v9(this.configPath)}async reset(){await this.initialize(),this.logger.info("purging cursor config");let D={mcpServers:{}};await this.updateConfig(D)}async updateConfig(D){this.logger.info(`writing config to ${this.configPath}`),await p6(this.configPath,D),this.config=D}}import eF0 from"node:fs";import D$0 from"node:os";import lP from"node:path";var F$0=lP.join(D$0.homedir(),"Library/Application Support/Code/User/settings.json");class cK extends t2{async isClientPresent(){return await k9("Visual Studio Code")}async isClientConfigPresent(){return await b9(this.configPath)}constructor(D){super({configPath:D.configPath||F$0,name:"vscode"})}async isInstalled(D){if(!await this.isClientPresent()||!await this.isClientConfigPresent())return!1;return await this.initialize(),this.config?.mcp.servers[this.createServerConfigKey(D)]!==void 0}async uninstall(D){if(await this.initialize(),!this.isInstalled(D))throw new f0("NOT_FOUND",`server '${D}' is not installed`);this.logger.info(`uninstalling ${D}`);let F={mcp:{servers:{...this.config?.mcp?.servers??{}}}};delete F.mcp.servers[this.createServerConfigKey(D)],await this.updateConfig(F)}async install(D){if(await this.initialize(),await this.isInstalled(D.name))throw new f0("BAD_REQUEST",`server '${D.name}' is already installed`);this.logger.info(`installing ${D.name}`);let F={mcp:{servers:{...this.config?.mcp?.servers??{}}}};F.mcp.servers[this.createServerConfigKey(D.name)]={url:D.url},await this.updateConfig(F)}async restart(){if(await this.initialize(),!V4())this.logger.info("restarting vscode"),await f9("Visual Studio Code");else this.logger.warn("skipping restart of vscode in test environment")}async reload(D){await this.initialize(),this.logger.info(`reloading ${D}`);let F=this.config?.mcp?.servers[this.createServerConfigKey(D)]?.url;if(!F)throw new f0("NOT_FOUND",`server '${D}' is not installed`);await this.uninstall(D),await zF(1000),await this.install({name:D,url:F})}async list(){return await this.initialize(),this.logger.info("listing servers"),Object.entries(this.config?.mcp.servers??{}).filter(([D])=>this.isManagedConfigKey(D)).map(([D,F])=>({name:D,url:F.url}))}async openConfig(){this.logger.info("opening vscode config"),await v9(this.configPath)}async reset(){await this.initialize(),this.logger.info("purging vscode config");let D={mcp:{servers:{}}};await this.updateConfig(D)}async updateConfig(D){this.logger.info(`writing config to ${this.configPath}`);let F=lP.dirname(this.configPath);await eF0.promises.mkdir(F,{recursive:!0}),await p6(this.configPath,D),this.config=D}}var KF;((Q)=>{Q.Claude="claude";Q.Cursor="cursor";Q.VSCode="vscode"})(KF||={});function GD(D,F={}){switch(D){case"claude":return new gK(F);case"cursor":return new mK(F);case"vscode":return new cK(F);default:throw new f0("BAD_REQUEST",`Client ${D} is not supported`)}}async function jX(){let D=await Promise.all(MF().map((F)=>GD(F)));for(let F of D)if(console.log("resetting",F.name),await F.isClientPresent())await F.reset();else console.log("client not present:",F.name)}async function u9(){return await Promise.all(MF().map((D)=>GD(D)).map((D)=>D.getStatus()))}function MF(){return Object.values(KF)}async function nP(D){let F=await Promise.all(MF().map((Q)=>GD(Q))),$={["claude"]:!1,["cursor"]:!1,["vscode"]:!1};return await Promise.all(F.map(async(Q)=>{let Y=await Q.isInstalled(D);$[Q.name]=Y})),$}function UF(D){return typeof D==="object"&&D!==null&&"subscribe"in D}function WD(D){let F={subscribe($){let Q=null,Y=!1,X=!1,J=!1;function B(){if(Q===null){J=!0;return}if(X)return;if(X=!0,typeof Q==="function")Q();else if(Q)Q.unsubscribe()}if(Q=D({next(W){if(Y)return;$.next?.(W)},error(W){if(Y)return;Y=!0,$.error?.(W),B()},complete(){if(Y)return;Y=!0,$.complete?.(),B()}}),J)B();return{unsubscribe:B}},pipe(...$){return $.reduce($$0,F)}};return F}function $$0(D,F){return F(D)}function iK(D){let F=new AbortController;return new Promise((Q,Y)=>{let X=!1;function J(){if(X)return;X=!0,B.unsubscribe()}F.signal.addEventListener("abort",()=>{Y(F.signal.reason)});let B=D.subscribe({next(W){X=!0,Q(W),J()},error(W){Y(W)},complete(){F.abort(),J()}})})}function Q$0(D,F){let $=null,Q=()=>{$?.unsubscribe(),$=null,F.removeEventListener("abort",Q)};return new ReadableStream({start(Y){if($=D.subscribe({next(X){Y.enqueue({ok:!0,value:X})},error(X){Y.enqueue({ok:!1,error:X}),Y.close()},complete(){Y.close()}}),F.aborted)Q();else F.addEventListener("abort",Q,{once:!0})},cancel(){Q()}})}function SX(D,F){let Q=Q$0(D,F).getReader(),Y={async next(){let X=await Q.read();if(X.done)return{value:void 0,done:!0};let{value:J}=X;if(!J.ok)throw J.error;return{value:J.value,done:!1}},async return(){return await Q.cancel(),{value:void 0,done:!0}}};return{[Symbol.asyncIterator](){return Y}}}function pK(D){return(F)=>{let $=0,Q=null,Y=[];function X(){if(Q)return;Q=F.subscribe({next(B){for(let W of Y)W.next?.(B)},error(B){for(let W of Y)W.error?.(B)},complete(){for(let B of Y)B.complete?.()}})}function J(){if($===0&&Q){let B=Q;Q=null,B.unsubscribe()}}return WD((B)=>{return $++,Y.push(B),X(),{unsubscribe(){$--,J();let W=Y.findIndex((z)=>z===B);if(W>-1)Y.splice(W,1)}}})}}var Lf0=Symbol();function VF(D){let F=D,$=[],Q=(J)=>{if(F!==void 0)J.next(F);$.push(J)},Y=(J)=>{$.splice($.indexOf(J),1)},X=WD((J)=>{return Q(J),()=>{Y(J)}});return X.next=(J)=>{if(F===J)return;F=J;for(let B of $)B.next(J)},X.get=()=>F,X}function lK(D){return WD((F)=>{function $(Y=0,X=D.op){let J=D.links[Y];if(!J)throw new Error("No more links to execute - did you forget to add an ending link?");return J({op:X,next(W){return $(Y+1,W)}})}return $().subscribe(F)})}var aP=()=>{},dP=(D)=>{if(Object.freeze)Object.freeze(D)};function oP(D,F,$){var Q,Y;let X=F.join(".");return(Q=$)[Y=X]??(Q[Y]=new Proxy(aP,{get(J,B){if(typeof B!=="string"||B==="then")return;return oP(D,[...F,B],$)},apply(J,B,W){let z=F[F.length-1],M={args:W,path:F};if(z==="call")M={args:W.length>=2?[W[1]]:[],path:F.slice(0,-1)};else if(z==="apply")M={args:W.length>=2?W[1]:[],path:F.slice(0,-1)};return dP(M.args),dP(M.path),D(M)}})),$[X]}var h9=(D)=>oP(D,[],Object.create(null)),fX=(D)=>{return new Proxy(aP,{get(F,$){if($==="then")return;return D($)}})};var o6=({shape:D})=>{return D};var H6={PARSE_ERROR:-32700,BAD_REQUEST:-32600,INTERNAL_SERVER_ERROR:-32603,NOT_IMPLEMENTED:-32603,BAD_GATEWAY:-32603,SERVICE_UNAVAILABLE:-32603,GATEWAY_TIMEOUT:-32603,UNAUTHORIZED:-32001,FORBIDDEN:-32003,NOT_FOUND:-32004,METHOD_NOT_SUPPORTED:-32005,TIMEOUT:-32008,CONFLICT:-32009,PRECONDITION_FAILED:-32012,PAYLOAD_TOO_LARGE:-32013,UNSUPPORTED_MEDIA_TYPE:-32015,UNPROCESSABLE_CONTENT:-32022,TOO_MANY_REQUESTS:-32029,CLIENT_CLOSED_REQUEST:-32099},vX={[-32700]:"PARSE_ERROR",[-32600]:"BAD_REQUEST",[-32603]:"INTERNAL_SERVER_ERROR",[-32001]:"UNAUTHORIZED",[-32003]:"FORBIDDEN",[-32004]:"NOT_FOUND",[-32005]:"METHOD_NOT_SUPPORTED",[-32008]:"TIMEOUT",[-32009]:"CONFLICT",[-32012]:"PRECONDITION_FAILED",[-32013]:"PAYLOAD_TOO_LARGE",[-32015]:"UNSUPPORTED_MEDIA_TYPE",[-32022]:"UNPROCESSABLE_CONTENT",[-32029]:"TOO_MANY_REQUESTS",[-32099]:"CLIENT_CLOSED_REQUEST"};var wF=Symbol();function qF(D,...F){let $=Object.assign(Object.create(null),D);for(let Q of F)for(let Y in Q){if(Y in $&&$[Y]!==Q[Y])throw new Error(`Duplicate key ${Y}`);$[Y]=Q[Y]}return $}function $1(D){return!!D&&!Array.isArray(D)&&typeof D==="object"}function NF(D){return typeof D==="function"}function EF(D){return Object.assign(Object.create(null),D)}var X$0=typeof Symbol==="function"&&!!Symbol.asyncIterator;function e2(D){return X$0&&$1(D)&&Symbol.asyncIterator in D}var mD=(D)=>D();function nK(D){return D}var sP={PARSE_ERROR:400,BAD_REQUEST:400,UNAUTHORIZED:401,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_SUPPORTED:405,TIMEOUT:408,CONFLICT:409,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,UNSUPPORTED_MEDIA_TYPE:415,UNPROCESSABLE_CONTENT:422,TOO_MANY_REQUESTS:429,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504};function dK(D){return sP[D]??500}function aK(D){let F=Array.isArray(D)?D:[D],$=new Set(F.map((Y)=>{if("error"in Y&&$1(Y.error.data)){if(typeof Y.error.data?.httpStatus==="number")return Y.error.data.httpStatus;let X=vX[Y.error.code];return dK(X)}return 200}));if($.size!==1)return 207;return $.values().next().value}function oK(D){return dK(D.code)}function n8(D){let{path:F,error:$,config:Q}=D,{code:Y}=D.error,X={message:$.message,code:H6[Y],data:{code:Y,httpStatus:oK($)}};if(Q.isDev&&typeof D.error.stack==="string")X.data.stack=D.error.stack;if(typeof F==="string")X.data.path=F;return Q.errorFormatter({...D,shape:X})}function rP(D,F,$){if(F in D)Object.defineProperty(D,F,{value:$,enumerable:!0,configurable:!0,writable:!0});else D[F]=$;return D}class tP extends Error{}function eP(D){if(D instanceof Error)return D;let F=typeof D;if(F==="undefined"||F==="function"||D===null)return;if(F!=="object")return new Error(String(D));if($1(D)){let $=new tP;for(let Q in D)$[Q]=D[Q];return $}return}function s1(D){if(D instanceof d0)return D;if(D instanceof Error&&D.name==="TRPCError")return D;let F=new d0({code:"INTERNAL_SERVER_ERROR",cause:D});if(D instanceof Error&&D.stack)F.stack=D.stack;return F}class d0 extends Error{constructor(D){let F=eP(D.cause),$=D.message??F?.message??D.code;if(super($,{cause:F}),rP(this,"cause",void 0),rP(this,"code",void 0),this.code=D.code,this.name="TRPCError",!this.cause)this.cause=F}}function sK(D){if("input"in D)return D;return{input:D,output:D}}var s6={input:{serialize:(D)=>D,deserialize:(D)=>D},output:{serialize:(D)=>D,deserialize:(D)=>D}};function DC(D,F){if("error"in F)return{...F,error:D.transformer.output.serialize(F.error)};if("data"in F.result)return{...F,result:{...F.result,data:D.transformer.output.serialize(F.result.data)}};return F}function r6(D,F){return Array.isArray(F)?F.map(($)=>DC(D,$)):DC(D,F)}function J$0(D,F){if("error"in D){let Q=F.deserialize(D.error);return{ok:!1,error:{...D,error:Q}}}return{ok:!0,result:{...D.result,...(!D.result.type||D.result.type==="data")&&{type:"data",data:F.deserialize(D.result.data)}}}}class kX extends Error{constructor(){super("Unable to transform response from server")}}function AF(D,F){let $;try{$=J$0(D,F)}catch{throw new kX}if(!$.ok&&(!$1($.error.error)||typeof $.error.error.code!=="number"))throw new kX;if($.ok&&!$1($.result))throw new kX;return $}var H$0=Symbol("lazy");function B$0(D){let F=Symbol(),$=F;return()=>{if($===F)$=D();return $}}function G$0(D){return typeof D==="function"&&H$0 in D}function W$0(D){return $1(D)&&$1(D._def)&&"router"in D._def}var z$0={_ctx:null,_errorShape:null,_meta:null,queries:{},mutations:{},subscriptions:{},errorFormatter:o6,transformer:s6},K$0=["then","call","apply"];function bX(D){function F($){let Q=new Set(Object.keys($).filter((U)=>K$0.includes(U)));if(Q.size>0)throw new Error("Reserved words used in `router({})` call: "+Array.from(Q).join(", "));let Y=EF({}),X=EF({});function J(U){return{ref:U.ref,load:B$0(async()=>{let q=await U.ref(),w=[...U.path,U.key],V=w.join(".");U.aggregate[U.key]=B(q._def.record,w),delete X[V];for(let[E,A]of Object.entries(q._def.lazy)){let L=[...w,E].join(".");X[L]=J({ref:A.ref,path:w,key:E,aggregate:U.aggregate[U.key]})}})}}function B(U,q=[]){let w=EF({});for(let[V,E]of Object.entries(U??{})){if(G$0(E)){X[[...q,V].join(".")]=J({path:q,ref:E,key:V,aggregate:w});continue}if(W$0(E)){w[V]=B(E._def.record,[...q,V]);continue}if(!M$0(E)){w[V]=B(E,[...q,V]);continue}let A=[...q,V].join(".");if(Y[A])throw new Error(`Duplicate key: ${A}`);Y[A]=E,w[V]=E}return w}let W=B($),z={_config:D,router:!0,procedures:Y,lazy:X,...z$0,record:W};return{...W,_def:z,createCaller:uX()({_def:z})}}return F}function M$0(D){return typeof D==="function"}async function y9(D,F){let{_def:$}=D,Q=$.procedures[F];while(!Q){let Y=Object.keys($.lazy).find((J)=>F.startsWith(J));if(!Y)return null;await $.lazy[Y].load(),Q=$.procedures[F]}return Q}function uX(){return function D(F){let{_def:$}=F;return function Q(Y,X){return h9(async({path:J,args:B})=>{let W=J.join(".");if(J.length===1&&J[0]==="_def")return $;let z=await y9(F,W),M=void 0;try{if(!z)throw new d0({code:"NOT_FOUND",message:`No procedure found on path "${J}"`});return M=NF(Y)?await Promise.resolve(Y()):Y,await z({path:W,getRawInput:async()=>B[0],ctx:M,type:z._def.type,signal:X?.signal})}catch(U){throw X?.onError?.({ctx:M,error:s1(U),input:B[0],path:W,type:z?._def.type??"unknown"}),U}})}}}function rK(...D){let F=qF({},...D.map((X)=>X._def.record)),$=D.reduce((X,J)=>{if(J._def._config.errorFormatter&&J._def._config.errorFormatter!==o6){if(X!==o6&&X!==J._def._config.errorFormatter)throw new Error("You seem to have several error formatters");return J._def._config.errorFormatter}return X},o6),Q=D.reduce((X,J)=>{if(J._def._config.transformer&&J._def._config.transformer!==s6){if(X!==s6&&X!==J._def._config.transformer)throw new Error("You seem to have several transformers");return J._def._config.transformer}return X},s6);return bX({errorFormatter:$,transformer:Q,isDev:D.every((X)=>X._def._config.isDev),allowOutsideOfServer:D.every((X)=>X._def._config.allowOutsideOfServer),isServer:D.every((X)=>X._def._config.isServer),$types:D[0]?._def._config.$types})(F)}function FC(D){try{if(D===null)return null;if(!$1(D))throw new Error("Expected object");let F=Object.entries(D).filter(([$,Q])=>typeof Q!=="string");if(F.length>0)throw new Error(`Expected connectionParams to be string values. Got ${F.map(([$,Q])=>`${$}: ${typeof Q}`).join(", ")}`);return D}catch(F){throw new d0({code:"PARSE_ERROR",message:"Invalid connection params shape",cause:F})}}function tK(D){let F;try{F=JSON.parse(D)}catch($){throw new d0({code:"PARSE_ERROR",message:"Not JSON-parsable query params",cause:$})}return FC(F)}function eK(D){let F=null,$=wF;return{read:async()=>{if($!==wF)return $;if(F===null)F=D().catch((Q)=>{if(Q instanceof d0)throw Q;throw new d0({code:"BAD_REQUEST",message:Q instanceof Error?Q.message:"Invalid input",cause:Q})});return $=await F,F=null,$},result:()=>{return $!==wF?$:void 0}}}var $C={isMatch(D){return!!D.headers.get("content-type")?.startsWith("application/json")},async parse(D){let{req:F}=D,$=D.searchParams.get("batch")==="1",Q=$?D.path.split(","):[D.path],Y=eK(async()=>{let M=void 0;if(F.method==="GET"){let q=D.searchParams.get("input");if(q)M=JSON.parse(q)}else M=await F.json();if(M===void 0)return{};if(!$)return{0:D.router._def._config.transformer.input.deserialize(M)};if(!$1(M))throw new d0({code:"BAD_REQUEST",message:'"input" needs to be an object when doing a batch call'});let U={};for(let q of Q.keys()){let w=M[q];if(w!==void 0)U[q]=D.router._def._config.transformer.input.deserialize(w)}return U}),X=await Promise.all(Q.map(async(M,U)=>{let q=await y9(D.router,M);return{path:M,procedure:q,getRawInput:async()=>{let V=(await Y.read())[U];if(q?._def.type==="subscription"){let E=D.headers.get("last-event-id")??D.searchParams.get("lastEventId")??D.searchParams.get("Last-Event-Id");if(E)if($1(V))V={...V,lastEventId:E};else V??(V={lastEventId:E})}return V},result:()=>{return Y.result()?.[U]}}})),J=new Set(X.map((M)=>M.procedure?._def.type).filter(Boolean));if(J.size>1)throw new d0({code:"BAD_REQUEST",message:`Cannot mix procedure types in call: ${Array.from(J).join(", ")}`});let B=J.values().next().value??"unknown",W=D.searchParams.get("connectionParams");return{isBatchCall:$,accept:F.headers.get("trpc-accept"),calls:X,type:B,connectionParams:W===null?null:tK(W),signal:F.signal,url:D.url}}},U$0={isMatch(D){return!!D.headers.get("content-type")?.startsWith("multipart/form-data")},async parse(D){let{req:F}=D;if(F.method!=="POST")throw new d0({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for multipart/form-data requests"});let $=eK(async()=>{return await F.formData()}),Q=await y9(D.router,D.path);return{accept:null,calls:[{path:D.path,getRawInput:$.read,result:$.result,procedure:Q}],isBatchCall:!1,type:"mutation",connectionParams:null,signal:F.signal,url:D.url}}},V$0={isMatch(D){return!!D.headers.get("content-type")?.startsWith("application/octet-stream")},async parse(D){let{req:F}=D;if(F.method!=="POST")throw new d0({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for application/octet-stream requests"});let $=eK(async()=>{return F.body});return{calls:[{path:D.path,getRawInput:$.read,result:$.result,procedure:await y9(D.router,D.path)}],isBatchCall:!1,accept:null,type:"mutation",connectionParams:null,signal:F.signal,url:D.url}}},w$0=[$C,U$0,V$0];function q$0(D){let F=w$0.find(($)=>$.isMatch(D));if(F)return F;if(!F&&D.method==="GET")return $C;throw new d0({code:"UNSUPPORTED_MEDIA_TYPE",message:D.headers.has("content-type")?`Unsupported content-type "${D.headers.get("content-type")}`:"Missing content-type header"})}async function DM(D){return await q$0(D.req).parse(D)}function ZF(D){return $1(D)&&D.name==="AbortError"}function hX(D="AbortError"){throw new DOMException(D,"AbortError")}function yX(D,F,$){if(F in D)Object.defineProperty(D,F,{value:$,enumerable:!0,configurable:!0,writable:!0});else D[F]=$;return D}var QC,FM=new WeakMap,N$0=()=>{};QC=Symbol.toStringTag;var E$0=QC;class LD{subscribe(){let D,F,{settlement:$}=this;if($===null){if(this.subscribers===null)throw new Error("Unpromise settled but still has subscribers");let Q=Z$0();this.subscribers=x$0(this.subscribers,Q),D=Q.promise,F=()=>{if(this.subscribers!==null)this.subscribers=L$0(this.subscribers,Q)}}else{let{status:Q}=$;if(Q==="fulfilled")D=Promise.resolve($.value);else D=Promise.reject($.reason);F=N$0}return Object.assign(D,{unsubscribe:F})}then(D,F){let $=this.subscribe(),{unsubscribe:Q}=$;return Object.assign($.then(D,F),{unsubscribe:Q})}catch(D){let F=this.subscribe(),{unsubscribe:$}=F;return Object.assign(F.catch(D),{unsubscribe:$})}finally(D){let F=this.subscribe(),{unsubscribe:$}=F;return Object.assign(F.finally(D),{unsubscribe:$})}static proxy(D){let F=LD.getSubscribablePromise(D);return typeof F!=="undefined"?F:LD.createSubscribablePromise(D)}static createSubscribablePromise(D){let F=new LD(D);return FM.set(D,F),FM.set(F,F),F}static getSubscribablePromise(D){return FM.get(D)}static resolve(D){let F=typeof D==="object"&&D!==null&&"then"in D&&typeof D.then==="function"?D:Promise.resolve(D);return LD.proxy(F).subscribe()}static async any(D){let $=(Array.isArray(D)?D:[...D]).map(LD.resolve);try{return await Promise.any($)}finally{$.forEach(({unsubscribe:Q})=>{Q()})}}static async race(D){let $=(Array.isArray(D)?D:[...D]).map(LD.resolve);try{return await Promise.race($)}finally{$.forEach(({unsubscribe:Q})=>{Q()})}}static async raceReferences(D){let F=D.map(A$0);try{return await Promise.race(F)}finally{for(let $ of F)$.unsubscribe()}}constructor(D){if(yX(this,"promise",void 0),yX(this,"subscribers",[]),yX(this,"settlement",null),yX(this,E$0,"Unpromise"),typeof D==="function")this.promise=new Promise(D);else this.promise=D;let F=this.promise.then(($)=>{let{subscribers:Q}=this;this.subscribers=null,this.settlement={status:"fulfilled",value:$},Q?.forEach(({resolve:Y})=>{Y($)})});if("catch"in F)F.catch(($)=>{let{subscribers:Q}=this;this.subscribers=null,this.settlement={status:"rejected",reason:$},Q?.forEach(({reject:Y})=>{Y($)})})}}function A$0(D){return LD.proxy(D).then(()=>[D])}function Z$0(){let D,F;return{promise:new Promise((Q,Y)=>{D=Q,F=Y}),resolve:D,reject:F}}function x$0(D,F){return[...D,F]}function O$0(D,F){return[...D.slice(0,F),...D.slice(F+1)]}function L$0(D,F){let $=D.indexOf(F);if($!==-1)return O$0(D,$);return D}var YC,XC;(YC=Symbol).dispose??(YC.dispose=Symbol());(XC=Symbol).asyncDispose??(XC.asyncDispose=Symbol());function gX(D,F){let $=D,Q=$[Symbol.dispose];return $[Symbol.dispose]=()=>{F(),Q?.()},$}function g9(D,F){let $=D,Q=$[Symbol.asyncDispose];return $[Symbol.asyncDispose]=async()=>{await F(),await Q?.()},$}var D3=Symbol();function m9(D){let F=null;return gX({start(){if(F)throw new Error("Timer already started");return new Promise((Q)=>{F=setTimeout(()=>Q(D3),D)})}},()=>{if(F)clearTimeout(F)})}function mX(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;if($){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");if(Q=F[Symbol.dispose],$)Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else if($)D.stack.push({async:!0});return F}function $M(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return($M=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}function F3(D){let F=D[Symbol.asyncIterator]();return g9(F,async()=>{await F.return?.()})}async function*QM(D,F){let $={stack:[],error:void 0,hasError:!1};try{let Q=mX($,F3(D),!0),X=mX($,m9(F.maxDurationMs),!1).start(),J;while(!0){if(J=await LD.race([Q.next(),X]),J===D3)hX();if(J.done)return J;yield J.value,J=null}}catch(Q){$.error=Q,$.hasError=!0}finally{let Q=$M($);if(Q)await Q}}async function*YM(D,F){let $={stack:[],error:void 0,hasError:!1};try{let Q=mX($,F3(D),!0),Y,X=mX($,m9(F.gracePeriodMs),!1),J=F.count,B=new Promise(()=>{});while(!0){if(Y=await LD.race([Q.next(),B]),Y===D3)hX();if(Y.done)return Y.value;if(yield Y.value,--J===0)B=X.start();Y=null}}catch(Q){$.error=Q,$.hasError=!0}finally{let Q=$M($);if(Q)await Q}}function xF(){let D,F;return{promise:new Promise((Q,Y)=>{D=Q,F=Y}),resolve:D,reject:F}}function R$0(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;{if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");Q=F[Symbol.dispose],Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else D.stack.push({async:!0});return F}function JC(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return(JC=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}function P$0(D,F){let $=D[Symbol.asyncIterator](),Q="idle";function Y(){Q="done",F=()=>{}}function X(){if(Q!=="idle")return;Q="pending",$.next().then((B)=>{if(B.done){Q="done",F({status:"return",value:B.value}),Y();return}Q="idle",F({status:"yield",value:B.value})}).catch((B)=>{F({status:"error",error:B}),Y()})}return{pull:X,destroy:async()=>{Y(),await $.return?.()}}}function HC(){let D="idle",F=xF(),$=[],Q=new Set,Y=[];function X(J){if(D!=="pending")return;let B=P$0(J,(W)=>{if(D!=="pending")return;switch(W.status){case"yield":Y.push([B,W]);break;case"return":Q.delete(B);break;case"error":Y.push([B,W]),Q.delete(B);break}F.resolve()});Q.add(B),B.pull()}return{add(J){switch(D){case"idle":$.push(J);break;case"pending":X(J);break}},async*[Symbol.asyncIterator](){let J={stack:[],error:void 0,hasError:!1};try{if(D!=="idle")throw new Error("Cannot iterate twice");D="pending";let B=R$0(J,g9({},async()=>{D="done";let W=[];if(await Promise.all(Array.from(Q.values()).map(async(z)=>{try{await z.destroy()}catch(M){W.push(M)}})),Y.length=0,Q.clear(),F.resolve(),W.length>0)throw new AggregateError(W)}),!0);while($.length>0)X($.shift());while(Q.size>0){await F.promise;while(Y.length>0){let[W,z]=Y.shift();switch(z.status){case"yield":yield z.value,W.pull();break;case"error":throw z.error}}F=xF()}}catch(B){J.error=B,J.hasError=!0}finally{let B=JC(J);if(B)await B}}}}function cX(D){let F=D[Symbol.asyncIterator]();return new ReadableStream({async cancel(){await F.return?.()},async pull($){let Q=await F.next();if(Q.done){$.close();return}$.enqueue(Q.value)}})}function BC(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;if($){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");if(Q=F[Symbol.dispose],$)Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else if($)D.stack.push({async:!0});return F}function XM(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return(XM=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}var $3=Symbol("ping");async function*iX(D,F){let $={stack:[],error:void 0,hasError:!1};try{let Q=BC($,F3(D),!0),Y,X=Q.next();while(!0){let J={stack:[],error:void 0,hasError:!1};try{let B=BC(J,m9(F),!1);if(Y=await LD.race([X,B.start()]),Y===D3){yield $3;continue}if(Y.done)return Y.value;X=Q.next(),yield Y.value,Y=null}catch(B){J.error=B,J.hasError=!0}finally{XM(J)}}}catch(Q){$.error=Q,$.hasError=!0}finally{let Q=XM($);if(Q)await Q}}function C$0(D,F,$){if(F in D)Object.defineProperty(D,F,{value:$,enumerable:!0,configurable:!0,writable:!0});else D[F]=$;return D}function T$0(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;if($){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");if(Q=F[Symbol.dispose],$)Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else if($)D.stack.push({async:!0});return F}function GC(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return(GC=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}function I$0(D){return Object.prototype.toString.call(D)==="[object Object]"}var _$0=0,j$0=1,S$0=0,f$0=1,v$0=0,k$0=1,b$0=2;function pX(D){return($1(D)||NF(D))&&typeof D?.then==="function"&&typeof D?.catch==="function"}class WC extends Error{constructor(D){super("Max depth reached at path: "+D.join(".")),C$0(this,"path",void 0),this.path=D}}async function*u$0(D){let{data:F}=D,$=0,Q=0,Y=HC();function X(w){let V=$++,E=w(V);return Y.add(E),V}function J(w,V){return X(async function*(E){let A=W(V);if(A)w.catch((L)=>{D.onError?.({error:L,path:V})}),w=Promise.reject(A);try{let L=await w;yield[E,S$0,M(L,V)]}catch(L){D.onError?.({error:L,path:V}),yield[E,f$0,D.formatError?.({error:L,path:V})]}})}function B(w,V){return X(async function*(E){let A={stack:[],error:void 0,hasError:!1};try{let L=W(V);if(L)throw L;let P=T$0(A,F3(w),!0);try{while(!0){let T=await P.next();if(T.done){yield[E,v$0,M(T.value,V)];break}yield[E,k$0,M(T.value,V)]}}catch(T){D.onError?.({error:T,path:V}),yield[E,b$0,D.formatError?.({error:T,path:V})]}}catch(L){A.error=L,A.hasError=!0}finally{let L=GC(A);if(L)await L}})}function W(w){if(D.maxDepth&&w.length>D.maxDepth)return new WC(w);return null}function z(w,V){if(pX(w))return[_$0,J(w,V)];if(e2(w)){if(D.maxDepth&&V.length>=D.maxDepth)throw new Error("Max depth reached");return[j$0,B(w,V)]}return null}function M(w,V){if(w===void 0)return[[]];let E=z(w,V);if(E)return[[Q],[null,...E]];if(!I$0(w))return[[w]];let A={},L=[];for(let[P,T]of Object.entries(w)){let j=z(T,[...V,P]);if(!j){A[P]=T;continue}A[P]=Q,L.push([P,...j])}return[[A],...L]}let U={};for(let[w,V]of Object.entries(F))U[w]=M(V,[w]);yield U;let q=Y;if(D.pingMs)q=iX(Y,D.pingMs);for await(let w of q)yield w}function JM(D){let F=cX(u$0(D)),{serialize:$}=D;if($)F=F.pipeThrough(new TransformStream({transform(Q,Y){if(Q===$3)Y.enqueue($3);else Y.enqueue($(Q))}}));return F.pipeThrough(new TransformStream({transform(Q,Y){if(Q===$3)Y.enqueue(" ");else Y.enqueue(JSON.stringify(Q)+`
|
|
504
|
+
`)}var R9=(D)=>{return o1(D.toLocaleUpperCase())},cx=(D)=>{let F=D.registeredArguments.map((X)=>X.required?nx(X.name()):ix(X.name())).filter((X)=>X!=="").join(" "),$=t7([t7([D.parent&&D.parent.parent?D.parent?.name():void 0,D.name()]),F,D.options.length?ix("options"):""]),Q=D.description()||p2("TODO"),Y=t7([Hz,$,lx(Q,$.length)]);return D._debug?Xz(Y):Y},lx=(D,F)=>{return" ".repeat(Math.max(0,45-F))+D},nx=(D)=>["<",D,">"].join(""),ix=(D)=>["[",D,"]"].join(""),t7=(D)=>D.filter(Boolean).join(" ");class l2 extends eW{debug=!0;examples="";constructor(D){super(D);this.helpCommand(!1)}showDebugCommands(D){return this._enableDebugCommands=D,this}debugCommand(D,F){if(this._enableDebugCommands){let $=super.command(D,F);return $._enableDebugCommands=!0,$._debug=!0,$}else return new eW(D)}helpInformation(D){return px(this)}addExamples(D){this.examples=D}addCommand(D,F){return D._enableDebugCommands=this._enableDebugCommands,D._debug=this._debug,super.addCommand(D,F)}}function A4({flags:D,description:F,defaultValue:$,choices:Q,mandatory:Y}){let X=new Px(D,F);return Y&&X.makeOptionMandatory(),$&&X.default($),Q&&X.choices(Q),X}var e7={name:"@director.run/cli",type:"module",version:"0.0.30",files:["dist","README.md"],bin:{director:"./dist/cli.js"},license:"MIT",repository:{type:"git",url:"https://github.com/director-run/director"},description:"The easiest way to manage and deploy MCP servers",author:"The Working Company <hello@director.run>",homepage:"https://director.run",scripts:{lint:"biome check .",format:"biome format --write .",clean:"rm -rf .turbo dist/*",test:"bun run vitest --fileParallelism=false",cli:"NODE_ENV=development bun run bin/cli.ts",typecheck:"tsc --noEmit",build:"bun build --production --target=node bin/cli.ts --outdir dist",release:"bun publish --access public --omit=peer",prepare:"bun run build",dev:"bun --watch bin/cli.ts"},peerDependencies:{typescript:"^5"},devDependencies:{"@inquirer/prompts":"^7.5.2","type-fest":"^4.40.0","@director.run/gateway":"workspace:*","@director.run/mcp":"workspace:*","@director.run/utilities":"workspace:*",chalk:"^5.4.1","cli-table3":"^0.6.5",commander:"^13.1.0",superjson:"^2.2.2"}};var dx=u0($F(),1);class f0 extends Error{code;props;name="AppError";constructor(D,F,$={}){super(F);this.code=D;this.props=$}}function lY(D){return D instanceof f0}function ax(D){return D instanceof Error&&"statusCode"in D&&dx.isNumber(D.statusCode)}import lF0 from"node:os";import nF0 from"node:path";import Bz from"node:fs";import{existsSync as MD0}from"node:fs";import{dirname as UD0}from"node:path";async function nY(D){if(!MD0(D))throw new f0("NOT_FOUND",`file not found at: ${D}`);let F=await Bz.promises.readFile(D),$=new TextDecoder().decode(F);return JSON.parse($)}async function p6(D,F){return await Bz.promises.mkdir(UD0(D),{recursive:!0}),Bz.promises.writeFile(D,JSON.stringify(F,null,2))}import{exec as mF0,execSync as IX}from"node:child_process";import{existsSync as cF0}from"node:fs";import{promisify as iF0}from"node:util";var CX=u0($F(),1),PX=u0($K(),1),mP=u0(gP(),1);var uF0=process.env.LOG_LEVEL??(V4()?"silent":"info"),hF0=process.env.LOG_PRETTY!=="false",yF0=process.env.LOG_ERROR_STACK==="true",gF0=PX.default({level:uF0.toLowerCase(),messageKey:"message",timestamp:!0,redact:["transport.headers.Authorization","transport.headers.authorization","transport.env.OPENAPI_MCP_HEADERS","transport.env.SLACK_BOT_TOKEN"],serializers:{error:(D)=>{if(lY(D))return{type:D.name,...CX.pick(D,"message","stack","code","props"),...D.cause?{cause:PX.default.stdSerializers.errWithCause(D)}:{}};let F=PX.default.stdSerializers.errWithCause(D);return yF0?F:CX.omit(F,"stack")}}},hF0?mP.default({colorize:!0,translateTime:"HH:MM:ss",ignore:"pid,hostname"}):void 0),h0=(D)=>gF0.child({name:D});function zF(D){return new Promise((F)=>setTimeout(F,D))}var _X=iF0(mF0),TX=h0("restartApp");async function f9(D){if(TX.info(`restarting ${D}...`),!pF0(D)){TX.info(`${D} is not running, skipping restart`);return}await _X(`osascript -e 'tell application "${D}" to quit'`),await zF(2000),await _X(`open -a ${D}`),TX.info(`${D} has been restarted`)}async function v9(D){TX.info(`opening ${D}`),await _X(`code "${D}"`)}function yK(D){if(process.platform==="win32")return!1;try{return IX(`which ${D}`,{stdio:"pipe"}).toString().trim().length>0}catch($){return!1}}function k9(D){let F=process.platform;if(F==="win32")return!1;try{let $;switch(D){case"Claude":$="Claude";break;case"Cursor":$="Cursor";break;case"Visual Studio Code":$="Visual Studio Code";break;default:$=D}if(F==="darwin")return IX(`mdfind "kMDItemDisplayName == '${$}'"`,{stdio:"pipe",encoding:"utf8"}).trim().length>0;else if(F==="linux"){let Q=["/usr/share/applications","/usr/local/share/applications","~/.local/share/applications"];for(let Y of Q)try{if(IX(`find ${Y} -name "*.desktop" -exec grep -l "${$}" {} \\;`,{stdio:"pipe",encoding:"utf8"}).trim().length>0)return!0}catch{continue}}return!1}catch($){return!1}}function b9(D){return cF0(D)}function pF0(D){try{return IX(`pgrep -x "${D}"`,{stdio:"pipe"}),!0}catch(F){return!1}}async function cP(D){if(!D||typeof D!=="string")throw new Error("Invalid URL provided");let F=D.startsWith("http://")||D.startsWith("https://")?D:`https://${D}`,$=process.platform,Q;switch($){case"darwin":Q=`open "${F}"`;break;case"win32":Q=`start "" "${F}"`;break;case"linux":Q=`xdg-open "${F}"`;break;default:throw new Error(`Unsupported platform: ${$}`)}try{await _X(Q)}catch(Y){throw new Error(`Failed to open URL: ${Y instanceof Error?Y.message:"Unknown error"}`)}}var iP="director__";class t2{config;isInitialized;logger;configPath;name;constructor(D){this.configPath=D.configPath,this.isInitialized=!1,this.name=D.name,this.logger=h0(`client-configurator/${this.name}`)}async initialize(){if(this.isInitialized&&this.config)return;if(this.logger.info("initializing"),!await this.isClientPresent())throw new f0("COMMAND_NOT_FOUND",`${this.name} doesn't appear to be installed`,{name:this.name,configPath:this.configPath});if(!await this.isClientConfigPresent())throw new f0("FILE_NOT_FOUND",`${this.name} config file not found at ${this.configPath}`,{name:this.name,configPath:this.configPath});this.config=await nY(this.configPath),this.isInitialized=!0}async getStatus(){return{name:this.name,installed:await this.isClientPresent(),configExists:await this.isClientConfigPresent(),configPath:this.configPath}}createServerConfigKey(D){return`${iP}${D}`}isManagedConfigKey(D){return D.startsWith(iP)}}var dF0=nF0.join(lF0.homedir(),"Library/Application Support/Claude/claude_desktop_config.json");class gK extends t2{async isClientPresent(){return await k9("Claude")}async isClientConfigPresent(){return await b9(this.configPath)}constructor(D){super({configPath:D.configPath||dF0,name:"claude"})}async isInstalled(D){if(!await this.isClientPresent()||!await this.isClientConfigPresent())return!1;return await this.initialize(),this.config?.mcpServers?.[this.createServerConfigKey(D)]!==void 0}async uninstall(D){if(await this.initialize(),!this.isInstalled(D))throw new f0("NOT_FOUND",`server '${D}' is not installed`);this.logger.info(`uninstalling ${D}`);let F={mcpServers:{...this.config?.mcpServers}};delete F.mcpServers?.[this.createServerConfigKey(D)],await this.updateConfig(F)}async install(D){if(await this.initialize(),await this.isInstalled(D.name))throw new f0("BAD_REQUEST",`server '${D.name}' is already installed`);this.logger.info(`installing ${D.name}`);let F={mcpServers:{...this.config?.mcpServers}};F.mcpServers[this.createServerConfigKey(D.name)]={command:"npx",args:["-y","@director.run/cli","http2stdio",D.url],env:{LOG_LEVEL:"silent"}},await this.updateConfig(F)}async reset(){await this.initialize(),this.logger.info("purging claude config");let D={mcpServers:{...this.config?.mcpServers}};D.mcpServers={},await this.updateConfig(D)}async list(){return await this.initialize(),this.logger.info("listing servers"),Object.entries(this.config?.mcpServers??{}).filter(([D])=>this.isManagedConfigKey(D)).map(([D,F])=>({name:D,url:F.args[3]}))}async openConfig(){this.logger.info("opening claude config"),await v9(this.configPath)}async restart(){if(await this.initialize(),!V4())this.logger.info("restarting claude"),await f9("Claude");else this.logger.warn("skipping restart of claude in test environment")}async reload(D){await this.initialize(),this.logger.info(`reloading ${D}`),await this.restart()}async updateConfig(D){this.config=oF0.parse(D),this.logger.info(`writing config to ${this.configPath}`),await p6(this.configPath,this.config),await this.restart()}}var aF0=l.object({command:l.string().describe('The command to execute (e.g., "bun", "node")'),args:l.array(l.string()).describe("Command line arguments"),env:l.record(l.string()).optional().describe("Environment variables")}),oF0=l.object({mcpServers:l.record(l.string(),aF0).describe("Map of MCP server configurations")});import sF0 from"node:os";import rF0 from"node:path";var tF0=rF0.join(sF0.homedir(),".cursor/mcp.json");class mK extends t2{async isClientPresent(){return await k9("Cursor")}async isClientConfigPresent(){return await b9(this.configPath)}constructor(D){super({configPath:D.configPath||tF0,name:"cursor"})}async isInstalled(D){if(!await this.isClientPresent()||!await this.isClientConfigPresent())return!1;return await this.initialize(),this.config?.mcpServers?.[this.createServerConfigKey(D)]!==void 0}async uninstall(D){if(await this.initialize(),!this.isInstalled(D))throw new f0("NOT_FOUND",`server '${D}' is not installed`);this.logger.info(`uninstalling ${D}`);let F={mcpServers:{...this.config?.mcpServers??{}}};delete F.mcpServers[this.createServerConfigKey(D)],await this.updateConfig(F)}async install(D){if(await this.initialize(),await this.isInstalled(D.name))throw new f0("BAD_REQUEST",`server '${D.name}' is already installed`);this.logger.info(`installing ${D.name}`);let F={mcpServers:{...this.config?.mcpServers??{}}};F.mcpServers[this.createServerConfigKey(D.name)]={url:D.url},await this.updateConfig(F)}async restart(){if(await this.initialize(),!V4())this.logger.info("restarting cursor"),await f9("Cursor");else this.logger.warn("skipping restart of cursor in test environment")}async reload(D){await this.initialize(),this.logger.info(`reloading ${D}`);let F=this.config?.mcpServers[this.createServerConfigKey(D)]?.url;if(!F)throw new f0("NOT_FOUND",`server '${D}' is not installed`);await this.uninstall(D),await zF(1000),await this.install({name:D,url:F})}async list(){return await this.initialize(),this.logger.info("listing servers"),Object.entries(this.config?.mcpServers??{}).map(([D,F])=>({name:D,url:F.url}))}async openConfig(){this.logger.info("opening cursor config"),await v9(this.configPath)}async reset(){await this.initialize(),this.logger.info("purging cursor config");let D={mcpServers:{}};await this.updateConfig(D)}async updateConfig(D){this.logger.info(`writing config to ${this.configPath}`),await p6(this.configPath,D),this.config=D}}import eF0 from"node:fs";import D$0 from"node:os";import lP from"node:path";var F$0=lP.join(D$0.homedir(),"Library/Application Support/Code/User/settings.json");class cK extends t2{async isClientPresent(){return await k9("Visual Studio Code")}async isClientConfigPresent(){return await b9(this.configPath)}constructor(D){super({configPath:D.configPath||F$0,name:"vscode"})}async isInstalled(D){if(!await this.isClientPresent()||!await this.isClientConfigPresent())return!1;return await this.initialize(),this.config?.mcp.servers[this.createServerConfigKey(D)]!==void 0}async uninstall(D){if(await this.initialize(),!this.isInstalled(D))throw new f0("NOT_FOUND",`server '${D}' is not installed`);this.logger.info(`uninstalling ${D}`);let F={mcp:{servers:{...this.config?.mcp?.servers??{}}}};delete F.mcp.servers[this.createServerConfigKey(D)],await this.updateConfig(F)}async install(D){if(await this.initialize(),await this.isInstalled(D.name))throw new f0("BAD_REQUEST",`server '${D.name}' is already installed`);this.logger.info(`installing ${D.name}`);let F={mcp:{servers:{...this.config?.mcp?.servers??{}}}};F.mcp.servers[this.createServerConfigKey(D.name)]={url:D.url},await this.updateConfig(F)}async restart(){if(await this.initialize(),!V4())this.logger.info("restarting vscode"),await f9("Visual Studio Code");else this.logger.warn("skipping restart of vscode in test environment")}async reload(D){await this.initialize(),this.logger.info(`reloading ${D}`);let F=this.config?.mcp?.servers[this.createServerConfigKey(D)]?.url;if(!F)throw new f0("NOT_FOUND",`server '${D}' is not installed`);await this.uninstall(D),await zF(1000),await this.install({name:D,url:F})}async list(){return await this.initialize(),this.logger.info("listing servers"),Object.entries(this.config?.mcp.servers??{}).filter(([D])=>this.isManagedConfigKey(D)).map(([D,F])=>({name:D,url:F.url}))}async openConfig(){this.logger.info("opening vscode config"),await v9(this.configPath)}async reset(){await this.initialize(),this.logger.info("purging vscode config");let D={mcp:{servers:{}}};await this.updateConfig(D)}async updateConfig(D){this.logger.info(`writing config to ${this.configPath}`);let F=lP.dirname(this.configPath);await eF0.promises.mkdir(F,{recursive:!0}),await p6(this.configPath,D),this.config=D}}var KF;((Q)=>{Q.Claude="claude";Q.Cursor="cursor";Q.VSCode="vscode"})(KF||={});function GD(D,F={}){switch(D){case"claude":return new gK(F);case"cursor":return new mK(F);case"vscode":return new cK(F);default:throw new f0("BAD_REQUEST",`Client ${D} is not supported`)}}async function jX(){let D=await Promise.all(MF().map((F)=>GD(F)));for(let F of D)if(console.log("resetting",F.name),await F.isClientPresent())await F.reset();else console.log("client not present:",F.name)}async function u9(){return await Promise.all(MF().map((D)=>GD(D)).map((D)=>D.getStatus()))}function MF(){return Object.values(KF)}async function nP(D){let F=await Promise.all(MF().map((Q)=>GD(Q))),$={["claude"]:!1,["cursor"]:!1,["vscode"]:!1};return await Promise.all(F.map(async(Q)=>{let Y=await Q.isInstalled(D);$[Q.name]=Y})),$}function UF(D){return typeof D==="object"&&D!==null&&"subscribe"in D}function WD(D){let F={subscribe($){let Q=null,Y=!1,X=!1,J=!1;function B(){if(Q===null){J=!0;return}if(X)return;if(X=!0,typeof Q==="function")Q();else if(Q)Q.unsubscribe()}if(Q=D({next(W){if(Y)return;$.next?.(W)},error(W){if(Y)return;Y=!0,$.error?.(W),B()},complete(){if(Y)return;Y=!0,$.complete?.(),B()}}),J)B();return{unsubscribe:B}},pipe(...$){return $.reduce($$0,F)}};return F}function $$0(D,F){return F(D)}function iK(D){let F=new AbortController;return new Promise((Q,Y)=>{let X=!1;function J(){if(X)return;X=!0,B.unsubscribe()}F.signal.addEventListener("abort",()=>{Y(F.signal.reason)});let B=D.subscribe({next(W){X=!0,Q(W),J()},error(W){Y(W)},complete(){F.abort(),J()}})})}function Q$0(D,F){let $=null,Q=()=>{$?.unsubscribe(),$=null,F.removeEventListener("abort",Q)};return new ReadableStream({start(Y){if($=D.subscribe({next(X){Y.enqueue({ok:!0,value:X})},error(X){Y.enqueue({ok:!1,error:X}),Y.close()},complete(){Y.close()}}),F.aborted)Q();else F.addEventListener("abort",Q,{once:!0})},cancel(){Q()}})}function SX(D,F){let Q=Q$0(D,F).getReader(),Y={async next(){let X=await Q.read();if(X.done)return{value:void 0,done:!0};let{value:J}=X;if(!J.ok)throw J.error;return{value:J.value,done:!1}},async return(){return await Q.cancel(),{value:void 0,done:!0}}};return{[Symbol.asyncIterator](){return Y}}}function pK(D){return(F)=>{let $=0,Q=null,Y=[];function X(){if(Q)return;Q=F.subscribe({next(B){for(let W of Y)W.next?.(B)},error(B){for(let W of Y)W.error?.(B)},complete(){for(let B of Y)B.complete?.()}})}function J(){if($===0&&Q){let B=Q;Q=null,B.unsubscribe()}}return WD((B)=>{return $++,Y.push(B),X(),{unsubscribe(){$--,J();let W=Y.findIndex((z)=>z===B);if(W>-1)Y.splice(W,1)}}})}}var Lf0=Symbol();function VF(D){let F=D,$=[],Q=(J)=>{if(F!==void 0)J.next(F);$.push(J)},Y=(J)=>{$.splice($.indexOf(J),1)},X=WD((J)=>{return Q(J),()=>{Y(J)}});return X.next=(J)=>{if(F===J)return;F=J;for(let B of $)B.next(J)},X.get=()=>F,X}function lK(D){return WD((F)=>{function $(Y=0,X=D.op){let J=D.links[Y];if(!J)throw new Error("No more links to execute - did you forget to add an ending link?");return J({op:X,next(W){return $(Y+1,W)}})}return $().subscribe(F)})}var aP=()=>{},dP=(D)=>{if(Object.freeze)Object.freeze(D)};function oP(D,F,$){var Q,Y;let X=F.join(".");return(Q=$)[Y=X]??(Q[Y]=new Proxy(aP,{get(J,B){if(typeof B!=="string"||B==="then")return;return oP(D,[...F,B],$)},apply(J,B,W){let z=F[F.length-1],M={args:W,path:F};if(z==="call")M={args:W.length>=2?[W[1]]:[],path:F.slice(0,-1)};else if(z==="apply")M={args:W.length>=2?W[1]:[],path:F.slice(0,-1)};return dP(M.args),dP(M.path),D(M)}})),$[X]}var h9=(D)=>oP(D,[],Object.create(null)),fX=(D)=>{return new Proxy(aP,{get(F,$){if($==="then")return;return D($)}})};var o6=({shape:D})=>{return D};var H6={PARSE_ERROR:-32700,BAD_REQUEST:-32600,INTERNAL_SERVER_ERROR:-32603,NOT_IMPLEMENTED:-32603,BAD_GATEWAY:-32603,SERVICE_UNAVAILABLE:-32603,GATEWAY_TIMEOUT:-32603,UNAUTHORIZED:-32001,FORBIDDEN:-32003,NOT_FOUND:-32004,METHOD_NOT_SUPPORTED:-32005,TIMEOUT:-32008,CONFLICT:-32009,PRECONDITION_FAILED:-32012,PAYLOAD_TOO_LARGE:-32013,UNSUPPORTED_MEDIA_TYPE:-32015,UNPROCESSABLE_CONTENT:-32022,TOO_MANY_REQUESTS:-32029,CLIENT_CLOSED_REQUEST:-32099},vX={[-32700]:"PARSE_ERROR",[-32600]:"BAD_REQUEST",[-32603]:"INTERNAL_SERVER_ERROR",[-32001]:"UNAUTHORIZED",[-32003]:"FORBIDDEN",[-32004]:"NOT_FOUND",[-32005]:"METHOD_NOT_SUPPORTED",[-32008]:"TIMEOUT",[-32009]:"CONFLICT",[-32012]:"PRECONDITION_FAILED",[-32013]:"PAYLOAD_TOO_LARGE",[-32015]:"UNSUPPORTED_MEDIA_TYPE",[-32022]:"UNPROCESSABLE_CONTENT",[-32029]:"TOO_MANY_REQUESTS",[-32099]:"CLIENT_CLOSED_REQUEST"};var wF=Symbol();function qF(D,...F){let $=Object.assign(Object.create(null),D);for(let Q of F)for(let Y in Q){if(Y in $&&$[Y]!==Q[Y])throw new Error(`Duplicate key ${Y}`);$[Y]=Q[Y]}return $}function $1(D){return!!D&&!Array.isArray(D)&&typeof D==="object"}function NF(D){return typeof D==="function"}function EF(D){return Object.assign(Object.create(null),D)}var X$0=typeof Symbol==="function"&&!!Symbol.asyncIterator;function e2(D){return X$0&&$1(D)&&Symbol.asyncIterator in D}var mD=(D)=>D();function nK(D){return D}var sP={PARSE_ERROR:400,BAD_REQUEST:400,UNAUTHORIZED:401,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_SUPPORTED:405,TIMEOUT:408,CONFLICT:409,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,UNSUPPORTED_MEDIA_TYPE:415,UNPROCESSABLE_CONTENT:422,TOO_MANY_REQUESTS:429,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504};function dK(D){return sP[D]??500}function aK(D){let F=Array.isArray(D)?D:[D],$=new Set(F.map((Y)=>{if("error"in Y&&$1(Y.error.data)){if(typeof Y.error.data?.httpStatus==="number")return Y.error.data.httpStatus;let X=vX[Y.error.code];return dK(X)}return 200}));if($.size!==1)return 207;return $.values().next().value}function oK(D){return dK(D.code)}function n8(D){let{path:F,error:$,config:Q}=D,{code:Y}=D.error,X={message:$.message,code:H6[Y],data:{code:Y,httpStatus:oK($)}};if(Q.isDev&&typeof D.error.stack==="string")X.data.stack=D.error.stack;if(typeof F==="string")X.data.path=F;return Q.errorFormatter({...D,shape:X})}function rP(D,F,$){if(F in D)Object.defineProperty(D,F,{value:$,enumerable:!0,configurable:!0,writable:!0});else D[F]=$;return D}class tP extends Error{}function eP(D){if(D instanceof Error)return D;let F=typeof D;if(F==="undefined"||F==="function"||D===null)return;if(F!=="object")return new Error(String(D));if($1(D)){let $=new tP;for(let Q in D)$[Q]=D[Q];return $}return}function s1(D){if(D instanceof d0)return D;if(D instanceof Error&&D.name==="TRPCError")return D;let F=new d0({code:"INTERNAL_SERVER_ERROR",cause:D});if(D instanceof Error&&D.stack)F.stack=D.stack;return F}class d0 extends Error{constructor(D){let F=eP(D.cause),$=D.message??F?.message??D.code;if(super($,{cause:F}),rP(this,"cause",void 0),rP(this,"code",void 0),this.code=D.code,this.name="TRPCError",!this.cause)this.cause=F}}function sK(D){if("input"in D)return D;return{input:D,output:D}}var s6={input:{serialize:(D)=>D,deserialize:(D)=>D},output:{serialize:(D)=>D,deserialize:(D)=>D}};function DC(D,F){if("error"in F)return{...F,error:D.transformer.output.serialize(F.error)};if("data"in F.result)return{...F,result:{...F.result,data:D.transformer.output.serialize(F.result.data)}};return F}function r6(D,F){return Array.isArray(F)?F.map(($)=>DC(D,$)):DC(D,F)}function J$0(D,F){if("error"in D){let Q=F.deserialize(D.error);return{ok:!1,error:{...D,error:Q}}}return{ok:!0,result:{...D.result,...(!D.result.type||D.result.type==="data")&&{type:"data",data:F.deserialize(D.result.data)}}}}class kX extends Error{constructor(){super("Unable to transform response from server")}}function AF(D,F){let $;try{$=J$0(D,F)}catch{throw new kX}if(!$.ok&&(!$1($.error.error)||typeof $.error.error.code!=="number"))throw new kX;if($.ok&&!$1($.result))throw new kX;return $}var H$0=Symbol("lazy");function B$0(D){let F=Symbol(),$=F;return()=>{if($===F)$=D();return $}}function G$0(D){return typeof D==="function"&&H$0 in D}function W$0(D){return $1(D)&&$1(D._def)&&"router"in D._def}var z$0={_ctx:null,_errorShape:null,_meta:null,queries:{},mutations:{},subscriptions:{},errorFormatter:o6,transformer:s6},K$0=["then","call","apply"];function bX(D){function F($){let Q=new Set(Object.keys($).filter((U)=>K$0.includes(U)));if(Q.size>0)throw new Error("Reserved words used in `router({})` call: "+Array.from(Q).join(", "));let Y=EF({}),X=EF({});function J(U){return{ref:U.ref,load:B$0(async()=>{let q=await U.ref(),w=[...U.path,U.key],V=w.join(".");U.aggregate[U.key]=B(q._def.record,w),delete X[V];for(let[E,A]of Object.entries(q._def.lazy)){let L=[...w,E].join(".");X[L]=J({ref:A.ref,path:w,key:E,aggregate:U.aggregate[U.key]})}})}}function B(U,q=[]){let w=EF({});for(let[V,E]of Object.entries(U??{})){if(G$0(E)){X[[...q,V].join(".")]=J({path:q,ref:E,key:V,aggregate:w});continue}if(W$0(E)){w[V]=B(E._def.record,[...q,V]);continue}if(!M$0(E)){w[V]=B(E,[...q,V]);continue}let A=[...q,V].join(".");if(Y[A])throw new Error(`Duplicate key: ${A}`);Y[A]=E,w[V]=E}return w}let W=B($),z={_config:D,router:!0,procedures:Y,lazy:X,...z$0,record:W};return{...W,_def:z,createCaller:uX()({_def:z})}}return F}function M$0(D){return typeof D==="function"}async function y9(D,F){let{_def:$}=D,Q=$.procedures[F];while(!Q){let Y=Object.keys($.lazy).find((J)=>F.startsWith(J));if(!Y)return null;await $.lazy[Y].load(),Q=$.procedures[F]}return Q}function uX(){return function D(F){let{_def:$}=F;return function Q(Y,X){return h9(async({path:J,args:B})=>{let W=J.join(".");if(J.length===1&&J[0]==="_def")return $;let z=await y9(F,W),M=void 0;try{if(!z)throw new d0({code:"NOT_FOUND",message:`No procedure found on path "${J}"`});return M=NF(Y)?await Promise.resolve(Y()):Y,await z({path:W,getRawInput:async()=>B[0],ctx:M,type:z._def.type,signal:X?.signal})}catch(U){throw X?.onError?.({ctx:M,error:s1(U),input:B[0],path:W,type:z?._def.type??"unknown"}),U}})}}}function rK(...D){let F=qF({},...D.map((X)=>X._def.record)),$=D.reduce((X,J)=>{if(J._def._config.errorFormatter&&J._def._config.errorFormatter!==o6){if(X!==o6&&X!==J._def._config.errorFormatter)throw new Error("You seem to have several error formatters");return J._def._config.errorFormatter}return X},o6),Q=D.reduce((X,J)=>{if(J._def._config.transformer&&J._def._config.transformer!==s6){if(X!==s6&&X!==J._def._config.transformer)throw new Error("You seem to have several transformers");return J._def._config.transformer}return X},s6);return bX({errorFormatter:$,transformer:Q,isDev:D.every((X)=>X._def._config.isDev),allowOutsideOfServer:D.every((X)=>X._def._config.allowOutsideOfServer),isServer:D.every((X)=>X._def._config.isServer),$types:D[0]?._def._config.$types})(F)}function FC(D){try{if(D===null)return null;if(!$1(D))throw new Error("Expected object");let F=Object.entries(D).filter(([$,Q])=>typeof Q!=="string");if(F.length>0)throw new Error(`Expected connectionParams to be string values. Got ${F.map(([$,Q])=>`${$}: ${typeof Q}`).join(", ")}`);return D}catch(F){throw new d0({code:"PARSE_ERROR",message:"Invalid connection params shape",cause:F})}}function tK(D){let F;try{F=JSON.parse(D)}catch($){throw new d0({code:"PARSE_ERROR",message:"Not JSON-parsable query params",cause:$})}return FC(F)}function eK(D){let F=null,$=wF;return{read:async()=>{if($!==wF)return $;if(F===null)F=D().catch((Q)=>{if(Q instanceof d0)throw Q;throw new d0({code:"BAD_REQUEST",message:Q instanceof Error?Q.message:"Invalid input",cause:Q})});return $=await F,F=null,$},result:()=>{return $!==wF?$:void 0}}}var $C={isMatch(D){return!!D.headers.get("content-type")?.startsWith("application/json")},async parse(D){let{req:F}=D,$=D.searchParams.get("batch")==="1",Q=$?D.path.split(","):[D.path],Y=eK(async()=>{let M=void 0;if(F.method==="GET"){let q=D.searchParams.get("input");if(q)M=JSON.parse(q)}else M=await F.json();if(M===void 0)return{};if(!$)return{0:D.router._def._config.transformer.input.deserialize(M)};if(!$1(M))throw new d0({code:"BAD_REQUEST",message:'"input" needs to be an object when doing a batch call'});let U={};for(let q of Q.keys()){let w=M[q];if(w!==void 0)U[q]=D.router._def._config.transformer.input.deserialize(w)}return U}),X=await Promise.all(Q.map(async(M,U)=>{let q=await y9(D.router,M);return{path:M,procedure:q,getRawInput:async()=>{let V=(await Y.read())[U];if(q?._def.type==="subscription"){let E=D.headers.get("last-event-id")??D.searchParams.get("lastEventId")??D.searchParams.get("Last-Event-Id");if(E)if($1(V))V={...V,lastEventId:E};else V??(V={lastEventId:E})}return V},result:()=>{return Y.result()?.[U]}}})),J=new Set(X.map((M)=>M.procedure?._def.type).filter(Boolean));if(J.size>1)throw new d0({code:"BAD_REQUEST",message:`Cannot mix procedure types in call: ${Array.from(J).join(", ")}`});let B=J.values().next().value??"unknown",W=D.searchParams.get("connectionParams");return{isBatchCall:$,accept:F.headers.get("trpc-accept"),calls:X,type:B,connectionParams:W===null?null:tK(W),signal:F.signal,url:D.url}}},U$0={isMatch(D){return!!D.headers.get("content-type")?.startsWith("multipart/form-data")},async parse(D){let{req:F}=D;if(F.method!=="POST")throw new d0({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for multipart/form-data requests"});let $=eK(async()=>{return await F.formData()}),Q=await y9(D.router,D.path);return{accept:null,calls:[{path:D.path,getRawInput:$.read,result:$.result,procedure:Q}],isBatchCall:!1,type:"mutation",connectionParams:null,signal:F.signal,url:D.url}}},V$0={isMatch(D){return!!D.headers.get("content-type")?.startsWith("application/octet-stream")},async parse(D){let{req:F}=D;if(F.method!=="POST")throw new d0({code:"METHOD_NOT_SUPPORTED",message:"Only POST requests are supported for application/octet-stream requests"});let $=eK(async()=>{return F.body});return{calls:[{path:D.path,getRawInput:$.read,result:$.result,procedure:await y9(D.router,D.path)}],isBatchCall:!1,accept:null,type:"mutation",connectionParams:null,signal:F.signal,url:D.url}}},w$0=[$C,U$0,V$0];function q$0(D){let F=w$0.find(($)=>$.isMatch(D));if(F)return F;if(!F&&D.method==="GET")return $C;throw new d0({code:"UNSUPPORTED_MEDIA_TYPE",message:D.headers.has("content-type")?`Unsupported content-type "${D.headers.get("content-type")}`:"Missing content-type header"})}async function DM(D){return await q$0(D.req).parse(D)}function ZF(D){return $1(D)&&D.name==="AbortError"}function hX(D="AbortError"){throw new DOMException(D,"AbortError")}function yX(D,F,$){if(F in D)Object.defineProperty(D,F,{value:$,enumerable:!0,configurable:!0,writable:!0});else D[F]=$;return D}var QC,FM=new WeakMap,N$0=()=>{};QC=Symbol.toStringTag;var E$0=QC;class LD{subscribe(){let D,F,{settlement:$}=this;if($===null){if(this.subscribers===null)throw new Error("Unpromise settled but still has subscribers");let Q=Z$0();this.subscribers=x$0(this.subscribers,Q),D=Q.promise,F=()=>{if(this.subscribers!==null)this.subscribers=L$0(this.subscribers,Q)}}else{let{status:Q}=$;if(Q==="fulfilled")D=Promise.resolve($.value);else D=Promise.reject($.reason);F=N$0}return Object.assign(D,{unsubscribe:F})}then(D,F){let $=this.subscribe(),{unsubscribe:Q}=$;return Object.assign($.then(D,F),{unsubscribe:Q})}catch(D){let F=this.subscribe(),{unsubscribe:$}=F;return Object.assign(F.catch(D),{unsubscribe:$})}finally(D){let F=this.subscribe(),{unsubscribe:$}=F;return Object.assign(F.finally(D),{unsubscribe:$})}static proxy(D){let F=LD.getSubscribablePromise(D);return typeof F!=="undefined"?F:LD.createSubscribablePromise(D)}static createSubscribablePromise(D){let F=new LD(D);return FM.set(D,F),FM.set(F,F),F}static getSubscribablePromise(D){return FM.get(D)}static resolve(D){let F=typeof D==="object"&&D!==null&&"then"in D&&typeof D.then==="function"?D:Promise.resolve(D);return LD.proxy(F).subscribe()}static async any(D){let $=(Array.isArray(D)?D:[...D]).map(LD.resolve);try{return await Promise.any($)}finally{$.forEach(({unsubscribe:Q})=>{Q()})}}static async race(D){let $=(Array.isArray(D)?D:[...D]).map(LD.resolve);try{return await Promise.race($)}finally{$.forEach(({unsubscribe:Q})=>{Q()})}}static async raceReferences(D){let F=D.map(A$0);try{return await Promise.race(F)}finally{for(let $ of F)$.unsubscribe()}}constructor(D){if(yX(this,"promise",void 0),yX(this,"subscribers",[]),yX(this,"settlement",null),yX(this,E$0,"Unpromise"),typeof D==="function")this.promise=new Promise(D);else this.promise=D;let F=this.promise.then(($)=>{let{subscribers:Q}=this;this.subscribers=null,this.settlement={status:"fulfilled",value:$},Q?.forEach(({resolve:Y})=>{Y($)})});if("catch"in F)F.catch(($)=>{let{subscribers:Q}=this;this.subscribers=null,this.settlement={status:"rejected",reason:$},Q?.forEach(({reject:Y})=>{Y($)})})}}function A$0(D){return LD.proxy(D).then(()=>[D])}function Z$0(){let D,F;return{promise:new Promise((Q,Y)=>{D=Q,F=Y}),resolve:D,reject:F}}function x$0(D,F){return[...D,F]}function O$0(D,F){return[...D.slice(0,F),...D.slice(F+1)]}function L$0(D,F){let $=D.indexOf(F);if($!==-1)return O$0(D,$);return D}var YC,XC;(YC=Symbol).dispose??(YC.dispose=Symbol());(XC=Symbol).asyncDispose??(XC.asyncDispose=Symbol());function gX(D,F){let $=D,Q=$[Symbol.dispose];return $[Symbol.dispose]=()=>{F(),Q?.()},$}function g9(D,F){let $=D,Q=$[Symbol.asyncDispose];return $[Symbol.asyncDispose]=async()=>{await F(),await Q?.()},$}var D3=Symbol();function m9(D){let F=null;return gX({start(){if(F)throw new Error("Timer already started");return new Promise((Q)=>{F=setTimeout(()=>Q(D3),D)})}},()=>{if(F)clearTimeout(F)})}function mX(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;if($){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");if(Q=F[Symbol.dispose],$)Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else if($)D.stack.push({async:!0});return F}function $M(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return($M=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}function F3(D){let F=D[Symbol.asyncIterator]();return g9(F,async()=>{await F.return?.()})}async function*QM(D,F){let $={stack:[],error:void 0,hasError:!1};try{let Q=mX($,F3(D),!0),X=mX($,m9(F.maxDurationMs),!1).start(),J;while(!0){if(J=await LD.race([Q.next(),X]),J===D3)hX();if(J.done)return J;yield J.value,J=null}}catch(Q){$.error=Q,$.hasError=!0}finally{let Q=$M($);if(Q)await Q}}async function*YM(D,F){let $={stack:[],error:void 0,hasError:!1};try{let Q=mX($,F3(D),!0),Y,X=mX($,m9(F.gracePeriodMs),!1),J=F.count,B=new Promise(()=>{});while(!0){if(Y=await LD.race([Q.next(),B]),Y===D3)hX();if(Y.done)return Y.value;if(yield Y.value,--J===0)B=X.start();Y=null}}catch(Q){$.error=Q,$.hasError=!0}finally{let Q=$M($);if(Q)await Q}}function xF(){let D,F;return{promise:new Promise((Q,Y)=>{D=Q,F=Y}),resolve:D,reject:F}}function R$0(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;{if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");Q=F[Symbol.dispose],Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else D.stack.push({async:!0});return F}function JC(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return(JC=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}function P$0(D,F){let $=D[Symbol.asyncIterator](),Q="idle";function Y(){Q="done",F=()=>{}}function X(){if(Q!=="idle")return;Q="pending",$.next().then((B)=>{if(B.done){Q="done",F({status:"return",value:B.value}),Y();return}Q="idle",F({status:"yield",value:B.value})}).catch((B)=>{F({status:"error",error:B}),Y()})}return{pull:X,destroy:async()=>{Y(),await $.return?.()}}}function HC(){let D="idle",F=xF(),$=[],Q=new Set,Y=[];function X(J){if(D!=="pending")return;let B=P$0(J,(W)=>{if(D!=="pending")return;switch(W.status){case"yield":Y.push([B,W]);break;case"return":Q.delete(B);break;case"error":Y.push([B,W]),Q.delete(B);break}F.resolve()});Q.add(B),B.pull()}return{add(J){switch(D){case"idle":$.push(J);break;case"pending":X(J);break}},async*[Symbol.asyncIterator](){let J={stack:[],error:void 0,hasError:!1};try{if(D!=="idle")throw new Error("Cannot iterate twice");D="pending";let B=R$0(J,g9({},async()=>{D="done";let W=[];if(await Promise.all(Array.from(Q.values()).map(async(z)=>{try{await z.destroy()}catch(M){W.push(M)}})),Y.length=0,Q.clear(),F.resolve(),W.length>0)throw new AggregateError(W)}),!0);while($.length>0)X($.shift());while(Q.size>0){await F.promise;while(Y.length>0){let[W,z]=Y.shift();switch(z.status){case"yield":yield z.value,W.pull();break;case"error":throw z.error}}F=xF()}}catch(B){J.error=B,J.hasError=!0}finally{let B=JC(J);if(B)await B}}}}function cX(D){let F=D[Symbol.asyncIterator]();return new ReadableStream({async cancel(){await F.return?.()},async pull($){let Q=await F.next();if(Q.done){$.close();return}$.enqueue(Q.value)}})}function BC(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;if($){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");if(Q=F[Symbol.dispose],$)Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else if($)D.stack.push({async:!0});return F}function XM(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return(XM=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}var $3=Symbol("ping");async function*iX(D,F){let $={stack:[],error:void 0,hasError:!1};try{let Q=BC($,F3(D),!0),Y,X=Q.next();while(!0){let J={stack:[],error:void 0,hasError:!1};try{let B=BC(J,m9(F),!1);if(Y=await LD.race([X,B.start()]),Y===D3){yield $3;continue}if(Y.done)return Y.value;X=Q.next(),yield Y.value,Y=null}catch(B){J.error=B,J.hasError=!0}finally{XM(J)}}}catch(Q){$.error=Q,$.hasError=!0}finally{let Q=XM($);if(Q)await Q}}function C$0(D,F,$){if(F in D)Object.defineProperty(D,F,{value:$,enumerable:!0,configurable:!0,writable:!0});else D[F]=$;return D}function T$0(D,F,$){if(F!==null&&F!==void 0){if(typeof F!=="object"&&typeof F!=="function")throw new TypeError("Object expected.");var Q,Y;if($){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");Q=F[Symbol.asyncDispose]}if(Q===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");if(Q=F[Symbol.dispose],$)Y=Q}if(typeof Q!=="function")throw new TypeError("Object not disposable.");if(Y)Q=function(){try{Y.call(this)}catch(X){return Promise.reject(X)}};D.stack.push({value:F,dispose:Q,async:$})}else if($)D.stack.push({async:!0});return F}function GC(D){var F=typeof SuppressedError==="function"?SuppressedError:function($,Q,Y){var X=new Error(Y);return X.name="SuppressedError",X.error=$,X.suppressed=Q,X};return(GC=function $(Q){function Y(W){Q.error=Q.hasError?new F(W,Q.error,"An error was suppressed during disposal."):W,Q.hasError=!0}var X,J=0;function B(){while(X=Q.stack.pop())try{if(!X.async&&J===1)return J=0,Q.stack.push(X),Promise.resolve().then(B);if(X.dispose){var W=X.dispose.call(X.value);if(X.async)return J|=2,Promise.resolve(W).then(B,function(z){return Y(z),B()})}else J|=1}catch(z){Y(z)}if(J===1)return Q.hasError?Promise.reject(Q.error):Promise.resolve();if(Q.hasError)throw Q.error}return B()})(D)}function I$0(D){return Object.prototype.toString.call(D)==="[object Object]"}var _$0=0,j$0=1,S$0=0,f$0=1,v$0=0,k$0=1,b$0=2;function pX(D){return($1(D)||NF(D))&&typeof D?.then==="function"&&typeof D?.catch==="function"}class WC extends Error{constructor(D){super("Max depth reached at path: "+D.join(".")),C$0(this,"path",void 0),this.path=D}}async function*u$0(D){let{data:F}=D,$=0,Q=0,Y=HC();function X(w){let V=$++,E=w(V);return Y.add(E),V}function J(w,V){return X(async function*(E){let A=W(V);if(A)w.catch((L)=>{D.onError?.({error:L,path:V})}),w=Promise.reject(A);try{let L=await w;yield[E,S$0,M(L,V)]}catch(L){D.onError?.({error:L,path:V}),yield[E,f$0,D.formatError?.({error:L,path:V})]}})}function B(w,V){return X(async function*(E){let A={stack:[],error:void 0,hasError:!1};try{let L=W(V);if(L)throw L;let P=T$0(A,F3(w),!0);try{while(!0){let T=await P.next();if(T.done){yield[E,v$0,M(T.value,V)];break}yield[E,k$0,M(T.value,V)]}}catch(T){D.onError?.({error:T,path:V}),yield[E,b$0,D.formatError?.({error:T,path:V})]}}catch(L){A.error=L,A.hasError=!0}finally{let L=GC(A);if(L)await L}})}function W(w){if(D.maxDepth&&w.length>D.maxDepth)return new WC(w);return null}function z(w,V){if(pX(w))return[_$0,J(w,V)];if(e2(w)){if(D.maxDepth&&V.length>=D.maxDepth)throw new Error("Max depth reached");return[j$0,B(w,V)]}return null}function M(w,V){if(w===void 0)return[[]];let E=z(w,V);if(E)return[[Q],[null,...E]];if(!I$0(w))return[[w]];let A={},L=[];for(let[P,T]of Object.entries(w)){let j=z(T,[...V,P]);if(!j){A[P]=T;continue}A[P]=Q,L.push([P,...j])}return[[A],...L]}let U={};for(let[w,V]of Object.entries(F))U[w]=M(V,[w]);yield U;let q=Y;if(D.pingMs)q=iX(Y,D.pingMs);for await(let w of q)yield w}function JM(D){let F=cX(u$0(D)),{serialize:$}=D;if($)F=F.pipeThrough(new TransformStream({transform(Q,Y){if(Q===$3)Y.enqueue($3);else Y.enqueue($(Q))}}));return F.pipeThrough(new TransformStream({transform(Q,Y){if(Q===$3)Y.enqueue(" ");else Y.enqueue(JSON.stringify(Q)+`
|
|
505
505
|
`)}})).pipeThrough(new TextEncoderStream)}var h$0=Symbol();function lX(D){return Array.isArray(D)&&D[2]===h$0}var y$0="ping",g$0="serialized-error",m$0="connected",c$0="return";function HM(D){let{serialize:F=nK}=D,$={enabled:D.ping?.enabled??!1,intervalMs:D.ping?.intervalMs??1000},Q=D.client??{};if($.enabled&&Q.reconnectAfterInactivityMs&&$.intervalMs>Q.reconnectAfterInactivityMs)throw new Error(`Ping interval must be less than client reconnect interval to prevent unnecessary reconnection - ping.intervalMs: ${$.intervalMs} client.reconnectAfterInactivityMs: ${Q.reconnectAfterInactivityMs}`);async function*Y(){yield{event:m$0,data:JSON.stringify(Q)};let B=D.data;if(D.emitAndEndImmediately)B=YM(B,{count:1,gracePeriodMs:1});if(D.maxDurationMs&&D.maxDurationMs>0&&D.maxDurationMs!==1/0)B=QM(B,{maxDurationMs:D.maxDurationMs});if($.enabled&&$.intervalMs!==1/0&&$.intervalMs>0)B=iX(B,$.intervalMs);let W,z;for await(W of B){if(W===$3){yield{event:y$0,data:""};continue}z=lX(W)?{id:W[0],data:W[1]}:{data:W},z.data=JSON.stringify(F(z.data)),yield z,W=null,z=null}}async function*X(){try{yield*Y(),yield{event:c$0,data:""}}catch(B){if(ZF(B))return;let W=s1(B),z=D.formatError?.({error:W})??null;yield{event:g$0,data:JSON.stringify(F(z))}}}return cX(X()).pipeThrough(new TransformStream({transform(B,W){if("event"in B)W.enqueue(`event: ${B.event}
|
|
506
506
|
`);if("data"in B)W.enqueue(`data: ${B.data}
|
|
507
507
|
`);if("id"in B)W.enqueue(`id: ${B.id}
|