@interactive-inc/claude-funnel 0.65.0 → 0.66.0
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/bin.js +127 -127
- package/dist/broadcaster-DVNcw00K.d.ts +138 -0
- package/dist/channel.d.ts +161 -0
- package/dist/channel.js +203 -0
- package/dist/{channels-CRGb6B5_.d.ts → channels-DR90RmUP.d.ts} +5 -4
- package/dist/claude.d.ts +4 -4
- package/dist/{connector-descriptor-BFIhyTfa.d.ts → connector-descriptor-CmyHlEiT.d.ts} +3 -26
- package/dist/connectors/discord.d.ts +4 -3
- package/dist/connectors/gh.d.ts +4 -3
- package/dist/connectors/schedule.d.ts +4 -3
- package/dist/connectors/slack.d.ts +4 -3
- package/dist/diagnostics.d.ts +1 -1
- package/dist/docs.d.ts +1 -1
- package/dist/doctor.d.ts +1 -1
- package/dist/{file-process-guard-tVcgckH6.d.ts → file-process-guard-CiBwXjzm.d.ts} +5 -4
- package/dist/{flume-source-listener-BNyAII7N.d.ts → flume-source-listener-FzR5lGpL.d.ts} +2 -1
- package/dist/{funnel-diagnostics-b9ar0Ing.d.ts → funnel-diagnostics-kbd27d7I.d.ts} +1 -1
- package/dist/{funnel-doctor-CnRQi4kM.d.ts → funnel-doctor-CVTNUtDn.d.ts} +2 -2
- package/dist/{funnel-recovery-CMhY8Jfk.d.ts → funnel-recovery-D8MkiTpk.d.ts} +1 -1
- package/dist/gateway/daemon.js +16 -16
- package/dist/gateway.d.ts +3 -2
- package/dist/{index-Ds6sHhA-.d.ts → index-BU1TtuFy.d.ts} +6 -139
- package/dist/index.d.ts +19 -17
- package/dist/local-config.d.ts +2 -2
- package/dist/logger-Bc_Ooypb.d.ts +25 -0
- package/dist/{memory-token-prompter-BoV8Hf-n.d.ts → memory-token-prompter-D0kIdhar.d.ts} +2 -2
- package/dist/{profiles-cVZQkM69.d.ts → profiles-M24JrcOh.d.ts} +3 -3
- package/dist/profiles.d.ts +1 -1
- package/dist/recovery.d.ts +1 -1
- package/dist/{settings-reader-BNxjsxCB.d.ts → settings-reader-BnKIbmsD.d.ts} +1 -1
- package/package.json +7 -2
- /package/dist/{discord-connector-schema-D-bOVAKt.d.ts → discord-connector-schema-D1dyxhXk.d.ts} +0 -0
- /package/dist/{file-system-VhwwXZbm.d.ts → file-system-DHgbuTFb.d.ts} +0 -0
- /package/dist/{funnel-docs-CNklHvbt.d.ts → funnel-docs-Cd66sKyV.d.ts} +0 -0
- /package/dist/{gh-connector-schema-DWQaB6gX.d.ts → gh-connector-schema-BCHEqpUg.d.ts} +0 -0
- /package/dist/{schedule-connector-schema-Z0RXLgPI.d.ts → schedule-connector-schema-D7ZEKvit.d.ts} +0 -0
- /package/dist/{settings-schema-BL_c2Udm.d.ts → settings-schema-IShSMm5G.d.ts} +0 -0
- /package/dist/{slack-event-processor-BhCf5Wiy.d.ts → slack-event-processor-BDTr62cN.d.ts} +0 -0
package/dist/bin.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var Af=Object.create;var{getPrototypeOf:Pf,defineProperty:OG,getOwnPropertyNames:jf}=Object;var Nf=Object.prototype.hasOwnProperty;function Sf($){return this[$]}var Mf,_f,jP=($,v,U)=>{var I=$!=null&&typeof $==="object";if(I){var b=v?Mf??=new WeakMap:_f??=new WeakMap,D=b.get($);if(D)return D}U=$!=null?Af(Pf($)):{};let u=v||!$||!$.__esModule?OG(U,"default",{value:$,enumerable:!0}):U;for(let w of jf($))if(!Nf.call(u,w))OG(u,w,{get:Sf.bind($,w),enumerable:!0});if(I)b.set($,u);return u};var P=($,v)=>()=>(v||$((v={exports:{}}).exports,v),v.exports);var Ff=($)=>$;function Zf($,v){this[$]=Ff.bind(null,v)}var e$=($,v)=>{for(var U in v)OG($,U,{get:v[U],enumerable:!0,configurable:!0,set:Zf.bind(v,U)})};var Wu=import.meta.require;var DD=P((Ik)=>{Object.defineProperty(Ik,"__esModule",{value:!0});Ik.regexpCode=Ik.getEsmExportName=Ik.getProperty=Ik.safeStringify=Ik.stringify=Ik.strConcat=Ik.addCodeArg=Ik.str=Ik._=Ik.nil=Ik._Code=Ik.Name=Ik.IDENTIFIER=Ik._CodeOrName=void 0;class PX{}Ik._CodeOrName=PX;Ik.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class PI extends PX{constructor($){super();if(!Ik.IDENTIFIER.test($))throw Error("CodeGen: name must be a valid identifier");this.str=$}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}Ik.Name=PI;class O4 extends PX{constructor($){super();this._items=typeof $==="string"?[$]:$}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let $=this._items[0];return $===""||$==='""'}get str(){var $;return($=this._str)!==null&&$!==void 0?$:this._str=this._items.reduce((v,U)=>`${v}${U}`,"")}get names(){var $;return($=this._names)!==null&&$!==void 0?$:this._names=this._items.reduce((v,U)=>{if(U instanceof PI)v[U.str]=(v[U.str]||0)+1;return v},{})}}Ik._Code=O4;Ik.nil=new O4("");function bk($,...v){let U=[$[0]],I=0;while(I<v.length)sK(U,v[I]),U.push($[++I]);return new O4(U)}Ik._=bk;var eK=new O4("+");function Uk($,...v){let U=[ID($[0])],I=0;while(I<v.length)U.push(eK),sK(U,v[I]),U.push(eK,ID($[++I]));return os(U),new O4(U)}Ik.str=Uk;function sK($,v){if(v instanceof O4)$.push(...v._items);else if(v instanceof PI)$.push(v);else $.push(ps(v))}Ik.addCodeArg=sK;function os($){let v=1;while(v<$.length-1){if($[v]===eK){let U=ts($[v-1],$[v+1]);if(U!==void 0){$.splice(v-1,3,U);continue}$[v++]="+"}v++}}function ts($,v){if(v==='""')return $;if($==='""')return v;if(typeof $=="string"){if(v instanceof PI||$[$.length-1]!=='"')return;if(typeof v!="string")return`${$.slice(0,-1)}${v}"`;if(v[0]==='"')return $.slice(0,-1)+v.slice(1);return}if(typeof v=="string"&&v[0]==='"'&&!($ instanceof PI))return`"${$}${v.slice(1)}`;return}function ds($,v){return v.emptyStr()?$:$.emptyStr()?v:Uk`${$}${v}`}Ik.strConcat=ds;function ps($){return typeof $=="number"||typeof $=="boolean"||$===null?$:ID(Array.isArray($)?$.join(","):$)}function as($){return new O4(ID($))}Ik.stringify=as;function ID($){return JSON.stringify($).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Ik.safeStringify=ID;function es($){return typeof $=="string"&&Ik.IDENTIFIER.test($)?new O4(`.${$}`):bk`[${$}]`}Ik.getProperty=es;function ss($){if(typeof $=="string"&&Ik.IDENTIFIER.test($))return new O4(`${$}`);throw Error(`CodeGen: invalid export name: ${$}, use explicit $id name mapping`)}Ik.getEsmExportName=ss;function $$$($){return new O4($.toString())}Ik.regexpCode=$$$});var Uq=P((gk)=>{Object.defineProperty(gk,"__esModule",{value:!0});gk.ValueScope=gk.ValueScopeName=gk.Scope=gk.varKinds=gk.UsedValueState=void 0;var Cv=DD();class uk extends Error{constructor($){super(`CodeGen: "code" for ${$} not defined`);this.value=$.value}}var NX;(function($){$[$.Started=0]="Started",$[$.Completed=1]="Completed"})(NX||(gk.UsedValueState=NX={}));gk.varKinds={const:new Cv.Name("const"),let:new Cv.Name("let"),var:new Cv.Name("var")};class vq{constructor({prefixes:$,parent:v}={}){this._names={},this._prefixes=$,this._parent=v}toName($){return $ instanceof Cv.Name?$:this.name($)}name($){return new Cv.Name(this._newName($))}_newName($){let v=this._names[$]||this._nameGroup($);return`${$}${v.index++}`}_nameGroup($){var v,U;if(((U=(v=this._parent)===null||v===void 0?void 0:v._prefixes)===null||U===void 0?void 0:U.has($))||this._prefixes&&!this._prefixes.has($))throw Error(`CodeGen: prefix "${$}" is not allowed in this scope`);return this._names[$]={prefix:$,index:0}}}gk.Scope=vq;class bq extends Cv.Name{constructor($,v){super(v);this.prefix=$}setValue($,{property:v,itemIndex:U}){this.value=$,this.scopePath=Cv._`.${new Cv.Name(v)}[${U}]`}}gk.ValueScopeName=bq;var O$$=Cv._`\n`;class wk extends vq{constructor($){super($);this._values={},this._scope=$.scope,this.opts={...$,_n:$.lines?O$$:Cv.nil}}get(){return this._scope}name($){return new bq($,this._newName($))}value($,v){var U;if(v.ref===void 0)throw Error("CodeGen: ref must be passed in value");let I=this.toName($),{prefix:b}=I,D=(U=v.key)!==null&&U!==void 0?U:v.ref,u=this._values[b];if(u){let J=u.get(D);if(J)return J}else u=this._values[b]=new Map;u.set(D,I);let w=this._scope[b]||(this._scope[b]=[]),g=w.length;return w[g]=v.ref,I.setValue(v,{property:b,itemIndex:g}),I}getValue($,v){let U=this._values[$];if(!U)return;return U.get(v)}scopeRefs($,v=this._values){return this._reduceValues(v,(U)=>{if(U.scopePath===void 0)throw Error(`CodeGen: name "${U}" has no value`);return Cv._`${$}${U.scopePath}`})}scopeCode($=this._values,v,U){return this._reduceValues($,(I)=>{if(I.value===void 0)throw Error(`CodeGen: name "${I}" has no value`);return I.value.code},v,U)}_reduceValues($,v,U={},I){let b=Cv.nil;for(let D in $){let u=$[D];if(!u)continue;let w=U[D]=U[D]||new Map;u.forEach((g)=>{if(w.has(g))return;w.set(g,NX.Started);let J=v(g);if(J){let X=this.opts.es5?gk.varKinds.var:gk.varKinds.const;b=Cv._`${b}${X} ${g} = ${J};${this.opts._n}`}else if(J=I===null||I===void 0?void 0:I(g))b=Cv._`${b}${J}${this.opts._n}`;else throw new uk(g);w.set(g,NX.Completed)})}return b}}gk.ValueScope=wk});var w$=P((iv)=>{Object.defineProperty(iv,"__esModule",{value:!0});iv.or=iv.and=iv.not=iv.CodeGen=iv.operators=iv.varKinds=iv.ValueScopeName=iv.ValueScope=iv.Scope=iv.Name=iv.regexpCode=iv.stringify=iv.getProperty=iv.nil=iv.strConcat=iv.str=iv._=void 0;var H$=DD(),H4=Uq(),t6=DD();Object.defineProperty(iv,"_",{enumerable:!0,get:function(){return t6._}});Object.defineProperty(iv,"str",{enumerable:!0,get:function(){return t6.str}});Object.defineProperty(iv,"strConcat",{enumerable:!0,get:function(){return t6.strConcat}});Object.defineProperty(iv,"nil",{enumerable:!0,get:function(){return t6.nil}});Object.defineProperty(iv,"getProperty",{enumerable:!0,get:function(){return t6.getProperty}});Object.defineProperty(iv,"stringify",{enumerable:!0,get:function(){return t6.stringify}});Object.defineProperty(iv,"regexpCode",{enumerable:!0,get:function(){return t6.regexpCode}});Object.defineProperty(iv,"Name",{enumerable:!0,get:function(){return t6.Name}});var TX=Uq();Object.defineProperty(iv,"Scope",{enumerable:!0,get:function(){return TX.Scope}});Object.defineProperty(iv,"ValueScope",{enumerable:!0,get:function(){return TX.ValueScope}});Object.defineProperty(iv,"ValueScopeName",{enumerable:!0,get:function(){return TX.ValueScopeName}});Object.defineProperty(iv,"varKinds",{enumerable:!0,get:function(){return TX.varKinds}});iv.operators={GT:new H$._Code(">"),GTE:new H$._Code(">="),LT:new H$._Code("<"),LTE:new H$._Code("<="),EQ:new H$._Code("==="),NEQ:new H$._Code("!=="),NOT:new H$._Code("!"),OR:new H$._Code("||"),AND:new H$._Code("&&"),ADD:new H$._Code("+")};class d6{optimizeNodes(){return this}optimizeNames($,v){return this}}class Xk extends d6{constructor($,v,U){super();this.varKind=$,this.name=v,this.rhs=U}render({es5:$,_n:v}){let U=$?H4.varKinds.var:this.varKind,I=this.rhs===void 0?"":` = ${this.rhs}`;return`${U} ${this.name}${I};`+v}optimizeNames($,v){if(!$[this.name.str])return;if(this.rhs)this.rhs=NI(this.rhs,$,v);return this}get names(){return this.rhs instanceof H$._CodeOrName?this.rhs.names:{}}}class uq extends d6{constructor($,v,U){super();this.lhs=$,this.rhs=v,this.sideEffects=U}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,v){if(this.lhs instanceof H$.Name&&!$[this.lhs.str]&&!this.sideEffects)return;return this.rhs=NI(this.rhs,$,v),this}get names(){let $=this.lhs instanceof H$.Name?{}:{...this.lhs.names};return ZX($,this.rhs)}}class Wk extends uq{constructor($,v,U,I){super($,U,I);this.op=v}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class Gk extends d6{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class Ok extends d6{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class Hk extends d6{constructor($){super();this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class zk extends d6{constructor($){super();this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,v){return this.code=NI(this.code,$,v),this}get names(){return this.code instanceof H$._CodeOrName?this.code.names:{}}}class kX extends d6{constructor($=[]){super();this.nodes=$}render($){return this.nodes.reduce((v,U)=>v+U.render($),"")}optimizeNodes(){let{nodes:$}=this,v=$.length;while(v--){let U=$[v].optimizeNodes();if(Array.isArray(U))$.splice(v,1,...U);else if(U)$[v]=U;else $.splice(v,1)}return $.length>0?this:void 0}optimizeNames($,v){let{nodes:U}=this,I=U.length;while(I--){let b=U[I];if(b.optimizeNames($,v))continue;Y$$($,b.names),U.splice(I,1)}return U.length>0?this:void 0}get names(){return this.nodes.reduce(($,v)=>fb($,v.names),{})}}class p6 extends kX{render($){return"{"+$._n+super.render($)+"}"+$._n}}class Qk extends kX{}class uD extends p6{}uD.kind="else";class w6 extends p6{constructor($,v){super(v);this.condition=$}render($){let v=`if(${this.condition})`+super.render($);if(this.else)v+="else "+this.else.render($);return v}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let v=this.else;if(v){let U=v.optimizeNodes();v=this.else=Array.isArray(U)?new uD(U):U}if(v){if($===!1)return v instanceof w6?v:v.nodes;if(this.nodes.length)return this;return new w6(qk($),v instanceof w6?[v]:v.nodes)}if($===!1||!this.nodes.length)return;return this}optimizeNames($,v){var U;if(this.else=(U=this.else)===null||U===void 0?void 0:U.optimizeNames($,v),!(super.optimizeNames($,v)||this.else))return;return this.condition=NI(this.condition,$,v),this}get names(){let $=super.names;if(ZX($,this.condition),this.else)fb($,this.else.names);return $}}w6.kind="if";class jI extends p6{}jI.kind="for";class Yk extends jI{constructor($){super();this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,v){if(!super.optimizeNames($,v))return;return this.iteration=NI(this.iteration,$,v),this}get names(){return fb(super.names,this.iteration.names)}}class Vk extends jI{constructor($,v,U,I){super();this.varKind=$,this.name=v,this.from=U,this.to=I}render($){let v=$.es5?H4.varKinds.var:this.varKind,{name:U,from:I,to:b}=this;return`for(${v} ${U}=${I}; ${U}<${b}; ${U}++)`+super.render($)}get names(){let $=ZX(super.names,this.from);return ZX($,this.to)}}class Iq extends jI{constructor($,v,U,I){super();this.loop=$,this.varKind=v,this.name=U,this.iterable=I}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,v){if(!super.optimizeNames($,v))return;return this.iterable=NI(this.iterable,$,v),this}get names(){return fb(super.names,this.iterable.names)}}class SX extends p6{constructor($,v,U){super();this.name=$,this.args=v,this.async=U}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}SX.kind="func";class MX extends kX{render($){return"return "+super.render($)}}MX.kind="return";class Lk extends p6{render($){let v="try"+super.render($);if(this.catch)v+=this.catch.render($);if(this.finally)v+=this.finally.render($);return v}optimizeNodes(){var $,v;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(v=this.finally)===null||v===void 0||v.optimizeNodes(),this}optimizeNames($,v){var U,I;return super.optimizeNames($,v),(U=this.catch)===null||U===void 0||U.optimizeNames($,v),(I=this.finally)===null||I===void 0||I.optimizeNames($,v),this}get names(){let $=super.names;if(this.catch)fb($,this.catch.names);if(this.finally)fb($,this.finally.names);return $}}class _X extends p6{constructor($){super();this.error=$}render($){return`catch(${this.error})`+super.render($)}}_X.kind="catch";class FX extends p6{render($){return"finally"+super.render($)}}FX.kind="finally";class Kk{constructor($,v={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...v,_n:v.lines?`
|
|
4
|
-
`:""},this._extScope=$,this._scope=new H4.Scope({parent:$}),this._nodes=[new Qk]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,v){let U=this._extScope.value($,v);return(this._values[U.prefix]||(this._values[U.prefix]=new Set)).add(U),U}getScopeValue($,v){return this._extScope.getValue($,v)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,v,U,I){let b=this._scope.toName(v);if(U!==void 0&&I)this._constants[b.str]=U;return this._leafNode(new Xk($,b,U)),b}const($,v,U){return this._def(H4.varKinds.const,$,v,U)}let($,v,U){return this._def(H4.varKinds.let,$,v,U)}var($,v,U){return this._def(H4.varKinds.var,$,v,U)}assign($,v,U){return this._leafNode(new uq($,v,U))}add($,v){return this._leafNode(new Wk($,iv.operators.ADD,v))}code($){if(typeof $=="function")$();else if($!==H$.nil)this._leafNode(new zk($));return this}object(...$){let v=["{"];for(let[U,I]of $){if(v.length>1)v.push(",");if(v.push(U),U!==I||this.opts.es5)v.push(":"),(0,H$.addCodeArg)(v,I)}return v.push("}"),new H$._Code(v)}if($,v,U){if(this._blockNode(new w6($)),v&&U)this.code(v).else().code(U).endIf();else if(v)this.code(v).endIf();else if(U)throw Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new w6($))}else(){return this._elseNode(new uD)}endIf(){return this._endBlockNode(w6,uD)}_for($,v){if(this._blockNode($),v)this.code(v).endFor();return this}for($,v){return this._for(new Yk($),v)}forRange($,v,U,I,b=this.opts.es5?H4.varKinds.var:H4.varKinds.let){let D=this._scope.toName($);return this._for(new Vk(b,D,v,U),()=>I(D))}forOf($,v,U,I=H4.varKinds.const){let b=this._scope.toName($);if(this.opts.es5){let D=v instanceof H$.Name?v:this.var("_arr",v);return this.forRange("_i",0,H$._`${D}.length`,(u)=>{this.var(b,H$._`${D}[${u}]`),U(b)})}return this._for(new Iq("of",I,b,v),()=>U(b))}forIn($,v,U,I=this.opts.es5?H4.varKinds.var:H4.varKinds.const){if(this.opts.ownProperties)return this.forOf($,H$._`Object.keys(${v})`,U);let b=this._scope.toName($);return this._for(new Iq("in",I,b,v),()=>U(b))}endFor(){return this._endBlockNode(jI)}label($){return this._leafNode(new Gk($))}break($){return this._leafNode(new Ok($))}return($){let v=new MX;if(this._blockNode(v),this.code($),v.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(MX)}try($,v,U){if(!v&&!U)throw Error('CodeGen: "try" without "catch" and "finally"');let I=new Lk;if(this._blockNode(I),this.code($),v){let b=this.name("e");this._currNode=I.catch=new _X(b),v(b)}if(U)this._currNode=I.finally=new FX,this.code(U);return this._endBlockNode(_X,FX)}throw($){return this._leafNode(new Hk($))}block($,v){if(this._blockStarts.push(this._nodes.length),$)this.code($).endBlock(v);return this}endBlock($){let v=this._blockStarts.pop();if(v===void 0)throw Error("CodeGen: not in self-balancing block");let U=this._nodes.length-v;if(U<0||$!==void 0&&U!==$)throw Error(`CodeGen: wrong number of nodes: ${U} vs ${$} expected`);return this._nodes.length=v,this}func($,v=H$.nil,U,I){if(this._blockNode(new SX($,v,U)),I)this.code(I).endFunc();return this}endFunc(){return this._endBlockNode(SX)}optimize($=1){while($-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,v){let U=this._currNode;if(U instanceof $||v&&U instanceof v)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${v?`${$.kind}/${v.kind}`:$.kind}"`)}_elseNode($){let v=this._currNode;if(!(v instanceof w6))throw Error('CodeGen: "else" without "if"');return this._currNode=v.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let v=this._nodes;v[v.length-1]=$}}iv.CodeGen=Kk;function fb($,v){for(let U in v)$[U]=($[U]||0)+(v[U]||0);return $}function ZX($,v){return v instanceof H$._CodeOrName?fb($,v.names):$}function NI($,v,U){if($ instanceof H$.Name)return I($);if(!b($))return $;return new H$._Code($._items.reduce((D,u)=>{if(u instanceof H$.Name)u=I(u);if(u instanceof H$._Code)D.push(...u._items);else D.push(u);return D},[]));function I(D){let u=U[D.str];if(u===void 0||v[D.str]!==1)return D;return delete v[D.str],u}function b(D){return D instanceof H$._Code&&D._items.some((u)=>u instanceof H$.Name&&v[u.str]===1&&U[u.str]!==void 0)}}function Y$$($,v){for(let U in v)$[U]=($[U]||0)-(v[U]||0)}function qk($){return typeof $=="boolean"||typeof $=="number"||$===null?!$:H$._`!${Dq($)}`}iv.not=qk;var V$$=Bk(iv.operators.AND);function L$$(...$){return $.reduce(V$$)}iv.and=L$$;var K$$=Bk(iv.operators.OR);function q$$(...$){return $.reduce(K$$)}iv.or=q$$;function Bk($){return(v,U)=>v===H$.nil?U:U===H$.nil?v:H$._`${Dq(v)} ${$} ${Dq(U)}`}function Dq($){return $ instanceof H$.Name?$:H$._`(${$})`}});var Q$=P((Zk)=>{Object.defineProperty(Zk,"__esModule",{value:!0});Zk.checkStrictMode=Zk.getErrorPath=Zk.Type=Zk.useFunc=Zk.setEvaluated=Zk.evaluatedPropsToName=Zk.mergeEvaluated=Zk.eachItem=Zk.unescapeJsonPointer=Zk.escapeJsonPointer=Zk.escapeFragment=Zk.unescapeFragment=Zk.schemaRefOrVal=Zk.schemaHasRulesButRef=Zk.schemaHasRules=Zk.checkUnknownRules=Zk.alwaysValidSchema=Zk.toHash=void 0;var k$=w$(),j$$=DD();function N$$($){let v={};for(let U of $)v[U]=!0;return v}Zk.toHash=N$$;function S$$($,v){if(typeof v=="boolean")return v;if(Object.keys(v).length===0)return!0;return Nk($,v),!Sk(v,$.self.RULES.all)}Zk.alwaysValidSchema=S$$;function Nk($,v=$.schema){let{opts:U,self:I}=$;if(!U.strictSchema)return;if(typeof v==="boolean")return;let b=I.RULES.keywords;for(let D in v)if(!b[D])Fk($,`unknown keyword: "${D}"`)}Zk.checkUnknownRules=Nk;function Sk($,v){if(typeof $=="boolean")return!$;for(let U in $)if(v[U])return!0;return!1}Zk.schemaHasRules=Sk;function M$$($,v){if(typeof $=="boolean")return!$;for(let U in $)if(U!=="$ref"&&v.all[U])return!0;return!1}Zk.schemaHasRulesButRef=M$$;function _$$({topSchemaRef:$,schemaPath:v},U,I,b){if(!b){if(typeof U=="number"||typeof U=="boolean")return U;if(typeof U=="string")return k$._`${U}`}return k$._`${$}${v}${(0,k$.getProperty)(I)}`}Zk.schemaRefOrVal=_$$;function F$$($){return Mk(decodeURIComponent($))}Zk.unescapeFragment=F$$;function Z$$($){return encodeURIComponent(gq($))}Zk.escapeFragment=Z$$;function gq($){if(typeof $=="number")return`${$}`;return $.replace(/~/g,"~0").replace(/\//g,"~1")}Zk.escapeJsonPointer=gq;function Mk($){return $.replace(/~1/g,"/").replace(/~0/g,"~")}Zk.unescapeJsonPointer=Mk;function T$$($,v){if(Array.isArray($))for(let U of $)v(U);else v($)}Zk.eachItem=T$$;function Pk({mergeNames:$,mergeToName:v,mergeValues:U,resultToName:I}){return(b,D,u,w)=>{let g=u===void 0?D:u instanceof k$.Name?(D instanceof k$.Name?$(b,D,u):v(b,D,u),u):D instanceof k$.Name?(v(b,u,D),D):U(D,u);return w===k$.Name&&!(g instanceof k$.Name)?I(b,g):g}}Zk.mergeEvaluated={props:Pk({mergeNames:($,v,U)=>$.if(k$._`${U} !== true && ${v} !== undefined`,()=>{$.if(k$._`${v} === true`,()=>$.assign(U,!0),()=>$.assign(U,k$._`${U} || {}`).code(k$._`Object.assign(${U}, ${v})`))}),mergeToName:($,v,U)=>$.if(k$._`${U} !== true`,()=>{if(v===!0)$.assign(U,!0);else $.assign(U,k$._`${U} || {}`),Jq($,U,v)}),mergeValues:($,v)=>$===!0?!0:{...$,...v},resultToName:_k}),items:Pk({mergeNames:($,v,U)=>$.if(k$._`${U} !== true && ${v} !== undefined`,()=>$.assign(U,k$._`${v} === true ? true : ${U} > ${v} ? ${U} : ${v}`)),mergeToName:($,v,U)=>$.if(k$._`${U} !== true`,()=>$.assign(U,v===!0?!0:k$._`${U} > ${v} ? ${U} : ${v}`)),mergeValues:($,v)=>$===!0?!0:Math.max($,v),resultToName:($,v)=>$.var("items",v)})};function _k($,v){if(v===!0)return $.var("props",!0);let U=$.var("props",k$._`{}`);if(v!==void 0)Jq($,U,v);return U}Zk.evaluatedPropsToName=_k;function Jq($,v,U){Object.keys(U).forEach((I)=>$.assign(k$._`${v}${(0,k$.getProperty)(I)}`,!0))}Zk.setEvaluated=Jq;var jk={};function k$$($,v){return $.scopeValue("func",{ref:v,code:jk[v.code]||(jk[v.code]=new j$$._Code(v.code))})}Zk.useFunc=k$$;var wq;(function($){$[$.Num=0]="Num",$[$.Str=1]="Str"})(wq||(Zk.Type=wq={}));function E$$($,v,U){if($ instanceof k$.Name){let I=v===wq.Num;return U?I?k$._`"[" + ${$} + "]"`:k$._`"['" + ${$} + "']"`:I?k$._`"/" + ${$}`:k$._`"/" + ${$}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return U?(0,k$.getProperty)($).toString():"/"+gq($)}Zk.getErrorPath=E$$;function Fk($,v,U=$.opts.strictSchema){if(!U)return;if(v=`strict mode: ${v}`,U===!0)throw Error(v);$.self.logger.warn(v)}Zk.checkStrictMode=Fk});var g6=P((kk)=>{Object.defineProperty(kk,"__esModule",{value:!0});var zv=w$(),e$$={data:new zv.Name("data"),valCxt:new zv.Name("valCxt"),instancePath:new zv.Name("instancePath"),parentData:new zv.Name("parentData"),parentDataProperty:new zv.Name("parentDataProperty"),rootData:new zv.Name("rootData"),dynamicAnchors:new zv.Name("dynamicAnchors"),vErrors:new zv.Name("vErrors"),errors:new zv.Name("errors"),this:new zv.Name("this"),self:new zv.Name("self"),scope:new zv.Name("scope"),json:new zv.Name("json"),jsonPos:new zv.Name("jsonPos"),jsonLen:new zv.Name("jsonLen"),jsonPart:new zv.Name("jsonPart")};kk.default=e$$});var wD=P((rk)=>{Object.defineProperty(rk,"__esModule",{value:!0});rk.extendErrors=rk.resetErrorsCount=rk.reportExtraError=rk.reportError=rk.keyword$DataError=rk.keywordError=void 0;var Y$=w$(),RX=Q$(),_v=g6();rk.keywordError={message:({keyword:$})=>Y$.str`must pass "${$}" keyword validation`};rk.keyword$DataError={message:({keyword:$,schemaType:v})=>v?Y$.str`"${$}" keyword must be ${v} ($data)`:Y$.str`"${$}" keyword is invalid ($data)`};function $v$($,v=rk.keywordError,U,I){let{it:b}=$,{gen:D,compositeRule:u,allErrors:w}=b,g=nk($,v,U);if(I!==null&&I!==void 0?I:u||w)Ek(D,g);else Rk(b,Y$._`[${g}]`)}rk.reportError=$v$;function vv$($,v=rk.keywordError,U){let{it:I}=$,{gen:b,compositeRule:D,allErrors:u}=I,w=nk($,v,U);if(Ek(b,w),!(D||u))Rk(I,_v.default.vErrors)}rk.reportExtraError=vv$;function bv$($,v){$.assign(_v.default.errors,v),$.if(Y$._`${_v.default.vErrors} !== null`,()=>$.if(v,()=>$.assign(Y$._`${_v.default.vErrors}.length`,v),()=>$.assign(_v.default.vErrors,null)))}rk.resetErrorsCount=bv$;function Uv$({gen:$,keyword:v,schemaValue:U,data:I,errsCount:b,it:D}){if(b===void 0)throw Error("ajv implementation error");let u=$.name("err");$.forRange("i",b,_v.default.errors,(w)=>{if($.const(u,Y$._`${_v.default.vErrors}[${w}]`),$.if(Y$._`${u}.instancePath === undefined`,()=>$.assign(Y$._`${u}.instancePath`,(0,Y$.strConcat)(_v.default.instancePath,D.errorPath))),$.assign(Y$._`${u}.schemaPath`,Y$.str`${D.errSchemaPath}/${v}`),D.opts.verbose)$.assign(Y$._`${u}.schema`,U),$.assign(Y$._`${u}.data`,I)})}rk.extendErrors=Uv$;function Ek($,v){let U=$.const("err",v);$.if(Y$._`${_v.default.vErrors} === null`,()=>$.assign(_v.default.vErrors,Y$._`[${U}]`),Y$._`${_v.default.vErrors}.push(${U})`),$.code(Y$._`${_v.default.errors}++`)}function Rk($,v){let{gen:U,validateName:I,schemaEnv:b}=$;if(b.$async)U.throw(Y$._`new ${$.ValidationError}(${v})`);else U.assign(Y$._`${I}.errors`,v),U.return(!1)}var yb={keyword:new Y$.Name("keyword"),schemaPath:new Y$.Name("schemaPath"),params:new Y$.Name("params"),propertyName:new Y$.Name("propertyName"),message:new Y$.Name("message"),schema:new Y$.Name("schema"),parentSchema:new Y$.Name("parentSchema")};function nk($,v,U){let{createErrors:I}=$.it;if(I===!1)return Y$._`{}`;return Iv$($,v,U)}function Iv$($,v,U={}){let{gen:I,it:b}=$,D=[Dv$(b,U),uv$($,U)];return wv$($,v,D),I.object(...D)}function Dv$({errorPath:$},{instancePath:v}){let U=v?Y$.str`${$}${(0,RX.getErrorPath)(v,RX.Type.Str)}`:$;return[_v.default.instancePath,(0,Y$.strConcat)(_v.default.instancePath,U)]}function uv$({keyword:$,it:{errSchemaPath:v}},{schemaPath:U,parentSchema:I}){let b=I?v:Y$.str`${v}/${$}`;if(U)b=Y$.str`${b}${(0,RX.getErrorPath)(U,RX.Type.Str)}`;return[yb.schemaPath,b]}function wv$($,{params:v,message:U},I){let{keyword:b,data:D,schemaValue:u,it:w}=$,{opts:g,propertyName:J,topSchemaRef:X,schemaPath:W}=w;if(I.push([yb.keyword,b],[yb.params,typeof v=="function"?v($):v||Y$._`{}`]),g.messages)I.push([yb.message,typeof U=="function"?U($):U]);if(g.verbose)I.push([yb.schema,u],[yb.parentSchema,Y$._`${X}${W}`],[_v.default.data,D]);if(J)I.push([yb.propertyName,J])}});var fk=P((xk)=>{Object.defineProperty(xk,"__esModule",{value:!0});xk.boolOrEmptySchema=xk.topBoolOrEmptySchema=void 0;var Gv$=wD(),Ov$=w$(),Hv$=g6(),zv$={message:"boolean schema is false"};function Qv$($){let{gen:v,schema:U,validateName:I}=$;if(U===!1)ik($,!1);else if(typeof U=="object"&&U.$async===!0)v.return(Hv$.default.data);else v.assign(Ov$._`${I}.errors`,null),v.return(!0)}xk.topBoolOrEmptySchema=Qv$;function Yv$($,v){let{gen:U,schema:I}=$;if(I===!1)U.var(v,!1),ik($);else U.var(v,!0)}xk.boolOrEmptySchema=Yv$;function ik($,v){let{gen:U,data:I}=$,b={gen:U,keyword:"false schema",data:I,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:$};(0,Gv$.reportError)(b,zv$,void 0,v)}});var Wq=P((yk)=>{Object.defineProperty(yk,"__esModule",{value:!0});yk.getRules=yk.isJSONType=void 0;var Lv$=["string","number","integer","boolean","null","object","array"],Kv$=new Set(Lv$);function qv$($){return typeof $=="string"&&Kv$.has($)}yk.isJSONType=qv$;function Bv$(){let $={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...$,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},$.number,$.string,$.array,$.object],post:{rules:[]},all:{},keywords:{}}}yk.getRules=Bv$});var Gq=P((ok)=>{Object.defineProperty(ok,"__esModule",{value:!0});ok.shouldUseRule=ok.shouldUseGroup=ok.schemaHasRulesForType=void 0;function Pv$({schema:$,self:v},U){let I=v.RULES.types[U];return I&&I!==!0&&mk($,I)}ok.schemaHasRulesForType=Pv$;function mk($,v){return v.rules.some((U)=>ck($,U))}ok.shouldUseGroup=mk;function ck($,v){var U;return $[v.keyword]!==void 0||((U=v.definition.implements)===null||U===void 0?void 0:U.some((I)=>$[I]!==void 0))}ok.shouldUseRule=ck});var gD=P((ek)=>{Object.defineProperty(ek,"__esModule",{value:!0});ek.reportTypeError=ek.checkDataTypes=ek.checkDataType=ek.coerceAndCheckDataType=ek.getJSONTypes=ek.getSchemaTypes=ek.DataType=void 0;var Sv$=Wq(),Mv$=Gq(),_v$=wD(),u$=w$(),dk=Q$(),SI;(function($){$[$.Correct=0]="Correct",$[$.Wrong=1]="Wrong"})(SI||(ek.DataType=SI={}));function Fv$($){let v=pk($.type);if(v.includes("null")){if($.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!v.length&&$.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');if($.nullable===!0)v.push("null")}return v}ek.getSchemaTypes=Fv$;function pk($){let v=Array.isArray($)?$:$?[$]:[];if(v.every(Sv$.isJSONType))return v;throw Error("type must be JSONType or JSONType[]: "+v.join(","))}ek.getJSONTypes=pk;function Zv$($,v){let{gen:U,data:I,opts:b}=$,D=Tv$(v,b.coerceTypes),u=v.length>0&&!(D.length===0&&v.length===1&&(0,Mv$.schemaHasRulesForType)($,v[0]));if(u){let w=Hq(v,I,b.strictNumbers,SI.Wrong);U.if(w,()=>{if(D.length)kv$($,v,D);else zq($)})}return u}ek.coerceAndCheckDataType=Zv$;var ak=new Set(["string","number","integer","boolean","null"]);function Tv$($,v){return v?$.filter((U)=>ak.has(U)||v==="array"&&U==="array"):[]}function kv$($,v,U){let{gen:I,data:b,opts:D}=$,u=I.let("dataType",u$._`typeof ${b}`),w=I.let("coerced",u$._`undefined`);if(D.coerceTypes==="array")I.if(u$._`${u} == 'object' && Array.isArray(${b}) && ${b}.length == 1`,()=>I.assign(b,u$._`${b}[0]`).assign(u,u$._`typeof ${b}`).if(Hq(v,b,D.strictNumbers),()=>I.assign(w,b)));I.if(u$._`${w} !== undefined`);for(let J of U)if(ak.has(J)||J==="array"&&D.coerceTypes==="array")g(J);I.else(),zq($),I.endIf(),I.if(u$._`${w} !== undefined`,()=>{I.assign(b,w),Ev$($,w)});function g(J){switch(J){case"string":I.elseIf(u$._`${u} == "number" || ${u} == "boolean"`).assign(w,u$._`"" + ${b}`).elseIf(u$._`${b} === null`).assign(w,u$._`""`);return;case"number":I.elseIf(u$._`${u} == "boolean" || ${b} === null
|
|
3
|
+
var Af=Object.create;var{getPrototypeOf:Pf,defineProperty:OG,getOwnPropertyNames:jf}=Object;var Nf=Object.prototype.hasOwnProperty;function Sf($){return this[$]}var Mf,_f,jP=($,v,U)=>{var I=$!=null&&typeof $==="object";if(I){var b=v?Mf??=new WeakMap:_f??=new WeakMap,D=b.get($);if(D)return D}U=$!=null?Af(Pf($)):{};let u=v||!$||!$.__esModule?OG(U,"default",{value:$,enumerable:!0}):U;for(let w of jf($))if(!Nf.call(u,w))OG(u,w,{get:Sf.bind($,w),enumerable:!0});if(I)b.set($,u);return u};var P=($,v)=>()=>(v||$((v={exports:{}}).exports,v),v.exports);var Ff=($)=>$;function Zf($,v){this[$]=Ff.bind(null,v)}var e$=($,v)=>{for(var U in v)OG($,U,{get:v[U],enumerable:!0,configurable:!0,set:Zf.bind(v,U)})};var Wu=import.meta.require;var DD=P((Ik)=>{Object.defineProperty(Ik,"__esModule",{value:!0});Ik.regexpCode=Ik.getEsmExportName=Ik.getProperty=Ik.safeStringify=Ik.stringify=Ik.strConcat=Ik.addCodeArg=Ik.str=Ik._=Ik.nil=Ik._Code=Ik.Name=Ik.IDENTIFIER=Ik._CodeOrName=void 0;class PX{}Ik._CodeOrName=PX;Ik.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class PI extends PX{constructor($){super();if(!Ik.IDENTIFIER.test($))throw Error("CodeGen: name must be a valid identifier");this.str=$}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}Ik.Name=PI;class O4 extends PX{constructor($){super();this._items=typeof $==="string"?[$]:$}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let $=this._items[0];return $===""||$==='""'}get str(){var $;return($=this._str)!==null&&$!==void 0?$:this._str=this._items.reduce((v,U)=>`${v}${U}`,"")}get names(){var $;return($=this._names)!==null&&$!==void 0?$:this._names=this._items.reduce((v,U)=>{if(U instanceof PI)v[U.str]=(v[U.str]||0)+1;return v},{})}}Ik._Code=O4;Ik.nil=new O4("");function bk($,...v){let U=[$[0]],I=0;while(I<v.length)sK(U,v[I]),U.push($[++I]);return new O4(U)}Ik._=bk;var eK=new O4("+");function Uk($,...v){let U=[ID($[0])],I=0;while(I<v.length)U.push(eK),sK(U,v[I]),U.push(eK,ID($[++I]));return cs(U),new O4(U)}Ik.str=Uk;function sK($,v){if(v instanceof O4)$.push(...v._items);else if(v instanceof PI)$.push(v);else $.push(ds(v))}Ik.addCodeArg=sK;function cs($){let v=1;while(v<$.length-1){if($[v]===eK){let U=os($[v-1],$[v+1]);if(U!==void 0){$.splice(v-1,3,U);continue}$[v++]="+"}v++}}function os($,v){if(v==='""')return $;if($==='""')return v;if(typeof $=="string"){if(v instanceof PI||$[$.length-1]!=='"')return;if(typeof v!="string")return`${$.slice(0,-1)}${v}"`;if(v[0]==='"')return $.slice(0,-1)+v.slice(1);return}if(typeof v=="string"&&v[0]==='"'&&!($ instanceof PI))return`"${$}${v.slice(1)}`;return}function ts($,v){return v.emptyStr()?$:$.emptyStr()?v:Uk`${$}${v}`}Ik.strConcat=ts;function ds($){return typeof $=="number"||typeof $=="boolean"||$===null?$:ID(Array.isArray($)?$.join(","):$)}function ps($){return new O4(ID($))}Ik.stringify=ps;function ID($){return JSON.stringify($).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}Ik.safeStringify=ID;function as($){return typeof $=="string"&&Ik.IDENTIFIER.test($)?new O4(`.${$}`):bk`[${$}]`}Ik.getProperty=as;function es($){if(typeof $=="string"&&Ik.IDENTIFIER.test($))return new O4(`${$}`);throw Error(`CodeGen: invalid export name: ${$}, use explicit $id name mapping`)}Ik.getEsmExportName=es;function ss($){return new O4($.toString())}Ik.regexpCode=ss});var Uq=P((gk)=>{Object.defineProperty(gk,"__esModule",{value:!0});gk.ValueScope=gk.ValueScopeName=gk.Scope=gk.varKinds=gk.UsedValueState=void 0;var Cv=DD();class uk extends Error{constructor($){super(`CodeGen: "code" for ${$} not defined`);this.value=$.value}}var NX;(function($){$[$.Started=0]="Started",$[$.Completed=1]="Completed"})(NX||(gk.UsedValueState=NX={}));gk.varKinds={const:new Cv.Name("const"),let:new Cv.Name("let"),var:new Cv.Name("var")};class vq{constructor({prefixes:$,parent:v}={}){this._names={},this._prefixes=$,this._parent=v}toName($){return $ instanceof Cv.Name?$:this.name($)}name($){return new Cv.Name(this._newName($))}_newName($){let v=this._names[$]||this._nameGroup($);return`${$}${v.index++}`}_nameGroup($){var v,U;if(((U=(v=this._parent)===null||v===void 0?void 0:v._prefixes)===null||U===void 0?void 0:U.has($))||this._prefixes&&!this._prefixes.has($))throw Error(`CodeGen: prefix "${$}" is not allowed in this scope`);return this._names[$]={prefix:$,index:0}}}gk.Scope=vq;class bq extends Cv.Name{constructor($,v){super(v);this.prefix=$}setValue($,{property:v,itemIndex:U}){this.value=$,this.scopePath=Cv._`.${new Cv.Name(v)}[${U}]`}}gk.ValueScopeName=bq;var G$$=Cv._`\n`;class wk extends vq{constructor($){super($);this._values={},this._scope=$.scope,this.opts={...$,_n:$.lines?G$$:Cv.nil}}get(){return this._scope}name($){return new bq($,this._newName($))}value($,v){var U;if(v.ref===void 0)throw Error("CodeGen: ref must be passed in value");let I=this.toName($),{prefix:b}=I,D=(U=v.key)!==null&&U!==void 0?U:v.ref,u=this._values[b];if(u){let J=u.get(D);if(J)return J}else u=this._values[b]=new Map;u.set(D,I);let w=this._scope[b]||(this._scope[b]=[]),g=w.length;return w[g]=v.ref,I.setValue(v,{property:b,itemIndex:g}),I}getValue($,v){let U=this._values[$];if(!U)return;return U.get(v)}scopeRefs($,v=this._values){return this._reduceValues(v,(U)=>{if(U.scopePath===void 0)throw Error(`CodeGen: name "${U}" has no value`);return Cv._`${$}${U.scopePath}`})}scopeCode($=this._values,v,U){return this._reduceValues($,(I)=>{if(I.value===void 0)throw Error(`CodeGen: name "${I}" has no value`);return I.value.code},v,U)}_reduceValues($,v,U={},I){let b=Cv.nil;for(let D in $){let u=$[D];if(!u)continue;let w=U[D]=U[D]||new Map;u.forEach((g)=>{if(w.has(g))return;w.set(g,NX.Started);let J=v(g);if(J){let X=this.opts.es5?gk.varKinds.var:gk.varKinds.const;b=Cv._`${b}${X} ${g} = ${J};${this.opts._n}`}else if(J=I===null||I===void 0?void 0:I(g))b=Cv._`${b}${J}${this.opts._n}`;else throw new uk(g);w.set(g,NX.Completed)})}return b}}gk.ValueScope=wk});var w$=P((iv)=>{Object.defineProperty(iv,"__esModule",{value:!0});iv.or=iv.and=iv.not=iv.CodeGen=iv.operators=iv.varKinds=iv.ValueScopeName=iv.ValueScope=iv.Scope=iv.Name=iv.regexpCode=iv.stringify=iv.getProperty=iv.nil=iv.strConcat=iv.str=iv._=void 0;var H$=DD(),H4=Uq(),t6=DD();Object.defineProperty(iv,"_",{enumerable:!0,get:function(){return t6._}});Object.defineProperty(iv,"str",{enumerable:!0,get:function(){return t6.str}});Object.defineProperty(iv,"strConcat",{enumerable:!0,get:function(){return t6.strConcat}});Object.defineProperty(iv,"nil",{enumerable:!0,get:function(){return t6.nil}});Object.defineProperty(iv,"getProperty",{enumerable:!0,get:function(){return t6.getProperty}});Object.defineProperty(iv,"stringify",{enumerable:!0,get:function(){return t6.stringify}});Object.defineProperty(iv,"regexpCode",{enumerable:!0,get:function(){return t6.regexpCode}});Object.defineProperty(iv,"Name",{enumerable:!0,get:function(){return t6.Name}});var TX=Uq();Object.defineProperty(iv,"Scope",{enumerable:!0,get:function(){return TX.Scope}});Object.defineProperty(iv,"ValueScope",{enumerable:!0,get:function(){return TX.ValueScope}});Object.defineProperty(iv,"ValueScopeName",{enumerable:!0,get:function(){return TX.ValueScopeName}});Object.defineProperty(iv,"varKinds",{enumerable:!0,get:function(){return TX.varKinds}});iv.operators={GT:new H$._Code(">"),GTE:new H$._Code(">="),LT:new H$._Code("<"),LTE:new H$._Code("<="),EQ:new H$._Code("==="),NEQ:new H$._Code("!=="),NOT:new H$._Code("!"),OR:new H$._Code("||"),AND:new H$._Code("&&"),ADD:new H$._Code("+")};class d6{optimizeNodes(){return this}optimizeNames($,v){return this}}class Xk extends d6{constructor($,v,U){super();this.varKind=$,this.name=v,this.rhs=U}render({es5:$,_n:v}){let U=$?H4.varKinds.var:this.varKind,I=this.rhs===void 0?"":` = ${this.rhs}`;return`${U} ${this.name}${I};`+v}optimizeNames($,v){if(!$[this.name.str])return;if(this.rhs)this.rhs=NI(this.rhs,$,v);return this}get names(){return this.rhs instanceof H$._CodeOrName?this.rhs.names:{}}}class uq extends d6{constructor($,v,U){super();this.lhs=$,this.rhs=v,this.sideEffects=U}render({_n:$}){return`${this.lhs} = ${this.rhs};`+$}optimizeNames($,v){if(this.lhs instanceof H$.Name&&!$[this.lhs.str]&&!this.sideEffects)return;return this.rhs=NI(this.rhs,$,v),this}get names(){let $=this.lhs instanceof H$.Name?{}:{...this.lhs.names};return ZX($,this.rhs)}}class Wk extends uq{constructor($,v,U,I){super($,U,I);this.op=v}render({_n:$}){return`${this.lhs} ${this.op}= ${this.rhs};`+$}}class Gk extends d6{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`${this.label}:`+$}}class Ok extends d6{constructor($){super();this.label=$,this.names={}}render({_n:$}){return`break${this.label?` ${this.label}`:""};`+$}}class Hk extends d6{constructor($){super();this.error=$}render({_n:$}){return`throw ${this.error};`+$}get names(){return this.error.names}}class zk extends d6{constructor($){super();this.code=$}render({_n:$}){return`${this.code};`+$}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames($,v){return this.code=NI(this.code,$,v),this}get names(){return this.code instanceof H$._CodeOrName?this.code.names:{}}}class kX extends d6{constructor($=[]){super();this.nodes=$}render($){return this.nodes.reduce((v,U)=>v+U.render($),"")}optimizeNodes(){let{nodes:$}=this,v=$.length;while(v--){let U=$[v].optimizeNodes();if(Array.isArray(U))$.splice(v,1,...U);else if(U)$[v]=U;else $.splice(v,1)}return $.length>0?this:void 0}optimizeNames($,v){let{nodes:U}=this,I=U.length;while(I--){let b=U[I];if(b.optimizeNames($,v))continue;Q$$($,b.names),U.splice(I,1)}return U.length>0?this:void 0}get names(){return this.nodes.reduce(($,v)=>fb($,v.names),{})}}class p6 extends kX{render($){return"{"+$._n+super.render($)+"}"+$._n}}class Qk extends kX{}class uD extends p6{}uD.kind="else";class w6 extends p6{constructor($,v){super(v);this.condition=$}render($){let v=`if(${this.condition})`+super.render($);if(this.else)v+="else "+this.else.render($);return v}optimizeNodes(){super.optimizeNodes();let $=this.condition;if($===!0)return this.nodes;let v=this.else;if(v){let U=v.optimizeNodes();v=this.else=Array.isArray(U)?new uD(U):U}if(v){if($===!1)return v instanceof w6?v:v.nodes;if(this.nodes.length)return this;return new w6(qk($),v instanceof w6?[v]:v.nodes)}if($===!1||!this.nodes.length)return;return this}optimizeNames($,v){var U;if(this.else=(U=this.else)===null||U===void 0?void 0:U.optimizeNames($,v),!(super.optimizeNames($,v)||this.else))return;return this.condition=NI(this.condition,$,v),this}get names(){let $=super.names;if(ZX($,this.condition),this.else)fb($,this.else.names);return $}}w6.kind="if";class jI extends p6{}jI.kind="for";class Yk extends jI{constructor($){super();this.iteration=$}render($){return`for(${this.iteration})`+super.render($)}optimizeNames($,v){if(!super.optimizeNames($,v))return;return this.iteration=NI(this.iteration,$,v),this}get names(){return fb(super.names,this.iteration.names)}}class Vk extends jI{constructor($,v,U,I){super();this.varKind=$,this.name=v,this.from=U,this.to=I}render($){let v=$.es5?H4.varKinds.var:this.varKind,{name:U,from:I,to:b}=this;return`for(${v} ${U}=${I}; ${U}<${b}; ${U}++)`+super.render($)}get names(){let $=ZX(super.names,this.from);return ZX($,this.to)}}class Iq extends jI{constructor($,v,U,I){super();this.loop=$,this.varKind=v,this.name=U,this.iterable=I}render($){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render($)}optimizeNames($,v){if(!super.optimizeNames($,v))return;return this.iterable=NI(this.iterable,$,v),this}get names(){return fb(super.names,this.iterable.names)}}class SX extends p6{constructor($,v,U){super();this.name=$,this.args=v,this.async=U}render($){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render($)}}SX.kind="func";class MX extends kX{render($){return"return "+super.render($)}}MX.kind="return";class Lk extends p6{render($){let v="try"+super.render($);if(this.catch)v+=this.catch.render($);if(this.finally)v+=this.finally.render($);return v}optimizeNodes(){var $,v;return super.optimizeNodes(),($=this.catch)===null||$===void 0||$.optimizeNodes(),(v=this.finally)===null||v===void 0||v.optimizeNodes(),this}optimizeNames($,v){var U,I;return super.optimizeNames($,v),(U=this.catch)===null||U===void 0||U.optimizeNames($,v),(I=this.finally)===null||I===void 0||I.optimizeNames($,v),this}get names(){let $=super.names;if(this.catch)fb($,this.catch.names);if(this.finally)fb($,this.finally.names);return $}}class _X extends p6{constructor($){super();this.error=$}render($){return`catch(${this.error})`+super.render($)}}_X.kind="catch";class FX extends p6{render($){return"finally"+super.render($)}}FX.kind="finally";class Kk{constructor($,v={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...v,_n:v.lines?`
|
|
4
|
+
`:""},this._extScope=$,this._scope=new H4.Scope({parent:$}),this._nodes=[new Qk]}toString(){return this._root.render(this.opts)}name($){return this._scope.name($)}scopeName($){return this._extScope.name($)}scopeValue($,v){let U=this._extScope.value($,v);return(this._values[U.prefix]||(this._values[U.prefix]=new Set)).add(U),U}getScopeValue($,v){return this._extScope.getValue($,v)}scopeRefs($){return this._extScope.scopeRefs($,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def($,v,U,I){let b=this._scope.toName(v);if(U!==void 0&&I)this._constants[b.str]=U;return this._leafNode(new Xk($,b,U)),b}const($,v,U){return this._def(H4.varKinds.const,$,v,U)}let($,v,U){return this._def(H4.varKinds.let,$,v,U)}var($,v,U){return this._def(H4.varKinds.var,$,v,U)}assign($,v,U){return this._leafNode(new uq($,v,U))}add($,v){return this._leafNode(new Wk($,iv.operators.ADD,v))}code($){if(typeof $=="function")$();else if($!==H$.nil)this._leafNode(new zk($));return this}object(...$){let v=["{"];for(let[U,I]of $){if(v.length>1)v.push(",");if(v.push(U),U!==I||this.opts.es5)v.push(":"),(0,H$.addCodeArg)(v,I)}return v.push("}"),new H$._Code(v)}if($,v,U){if(this._blockNode(new w6($)),v&&U)this.code(v).else().code(U).endIf();else if(v)this.code(v).endIf();else if(U)throw Error('CodeGen: "else" body without "then" body');return this}elseIf($){return this._elseNode(new w6($))}else(){return this._elseNode(new uD)}endIf(){return this._endBlockNode(w6,uD)}_for($,v){if(this._blockNode($),v)this.code(v).endFor();return this}for($,v){return this._for(new Yk($),v)}forRange($,v,U,I,b=this.opts.es5?H4.varKinds.var:H4.varKinds.let){let D=this._scope.toName($);return this._for(new Vk(b,D,v,U),()=>I(D))}forOf($,v,U,I=H4.varKinds.const){let b=this._scope.toName($);if(this.opts.es5){let D=v instanceof H$.Name?v:this.var("_arr",v);return this.forRange("_i",0,H$._`${D}.length`,(u)=>{this.var(b,H$._`${D}[${u}]`),U(b)})}return this._for(new Iq("of",I,b,v),()=>U(b))}forIn($,v,U,I=this.opts.es5?H4.varKinds.var:H4.varKinds.const){if(this.opts.ownProperties)return this.forOf($,H$._`Object.keys(${v})`,U);let b=this._scope.toName($);return this._for(new Iq("in",I,b,v),()=>U(b))}endFor(){return this._endBlockNode(jI)}label($){return this._leafNode(new Gk($))}break($){return this._leafNode(new Ok($))}return($){let v=new MX;if(this._blockNode(v),this.code($),v.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(MX)}try($,v,U){if(!v&&!U)throw Error('CodeGen: "try" without "catch" and "finally"');let I=new Lk;if(this._blockNode(I),this.code($),v){let b=this.name("e");this._currNode=I.catch=new _X(b),v(b)}if(U)this._currNode=I.finally=new FX,this.code(U);return this._endBlockNode(_X,FX)}throw($){return this._leafNode(new Hk($))}block($,v){if(this._blockStarts.push(this._nodes.length),$)this.code($).endBlock(v);return this}endBlock($){let v=this._blockStarts.pop();if(v===void 0)throw Error("CodeGen: not in self-balancing block");let U=this._nodes.length-v;if(U<0||$!==void 0&&U!==$)throw Error(`CodeGen: wrong number of nodes: ${U} vs ${$} expected`);return this._nodes.length=v,this}func($,v=H$.nil,U,I){if(this._blockNode(new SX($,v,U)),I)this.code(I).endFunc();return this}endFunc(){return this._endBlockNode(SX)}optimize($=1){while($-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode($){return this._currNode.nodes.push($),this}_blockNode($){this._currNode.nodes.push($),this._nodes.push($)}_endBlockNode($,v){let U=this._currNode;if(U instanceof $||v&&U instanceof v)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${v?`${$.kind}/${v.kind}`:$.kind}"`)}_elseNode($){let v=this._currNode;if(!(v instanceof w6))throw Error('CodeGen: "else" without "if"');return this._currNode=v.else=$,this}get _root(){return this._nodes[0]}get _currNode(){let $=this._nodes;return $[$.length-1]}set _currNode($){let v=this._nodes;v[v.length-1]=$}}iv.CodeGen=Kk;function fb($,v){for(let U in v)$[U]=($[U]||0)+(v[U]||0);return $}function ZX($,v){return v instanceof H$._CodeOrName?fb($,v.names):$}function NI($,v,U){if($ instanceof H$.Name)return I($);if(!b($))return $;return new H$._Code($._items.reduce((D,u)=>{if(u instanceof H$.Name)u=I(u);if(u instanceof H$._Code)D.push(...u._items);else D.push(u);return D},[]));function I(D){let u=U[D.str];if(u===void 0||v[D.str]!==1)return D;return delete v[D.str],u}function b(D){return D instanceof H$._Code&&D._items.some((u)=>u instanceof H$.Name&&v[u.str]===1&&U[u.str]!==void 0)}}function Q$$($,v){for(let U in v)$[U]=($[U]||0)-(v[U]||0)}function qk($){return typeof $=="boolean"||typeof $=="number"||$===null?!$:H$._`!${Dq($)}`}iv.not=qk;var Y$$=Bk(iv.operators.AND);function V$$(...$){return $.reduce(Y$$)}iv.and=V$$;var L$$=Bk(iv.operators.OR);function K$$(...$){return $.reduce(L$$)}iv.or=K$$;function Bk($){return(v,U)=>v===H$.nil?U:U===H$.nil?v:H$._`${Dq(v)} ${$} ${Dq(U)}`}function Dq($){return $ instanceof H$.Name?$:H$._`(${$})`}});var Q$=P((Zk)=>{Object.defineProperty(Zk,"__esModule",{value:!0});Zk.checkStrictMode=Zk.getErrorPath=Zk.Type=Zk.useFunc=Zk.setEvaluated=Zk.evaluatedPropsToName=Zk.mergeEvaluated=Zk.eachItem=Zk.unescapeJsonPointer=Zk.escapeJsonPointer=Zk.escapeFragment=Zk.unescapeFragment=Zk.schemaRefOrVal=Zk.schemaHasRulesButRef=Zk.schemaHasRules=Zk.checkUnknownRules=Zk.alwaysValidSchema=Zk.toHash=void 0;var k$=w$(),P$$=DD();function j$$($){let v={};for(let U of $)v[U]=!0;return v}Zk.toHash=j$$;function N$$($,v){if(typeof v=="boolean")return v;if(Object.keys(v).length===0)return!0;return Nk($,v),!Sk(v,$.self.RULES.all)}Zk.alwaysValidSchema=N$$;function Nk($,v=$.schema){let{opts:U,self:I}=$;if(!U.strictSchema)return;if(typeof v==="boolean")return;let b=I.RULES.keywords;for(let D in v)if(!b[D])Fk($,`unknown keyword: "${D}"`)}Zk.checkUnknownRules=Nk;function Sk($,v){if(typeof $=="boolean")return!$;for(let U in $)if(v[U])return!0;return!1}Zk.schemaHasRules=Sk;function S$$($,v){if(typeof $=="boolean")return!$;for(let U in $)if(U!=="$ref"&&v.all[U])return!0;return!1}Zk.schemaHasRulesButRef=S$$;function M$$({topSchemaRef:$,schemaPath:v},U,I,b){if(!b){if(typeof U=="number"||typeof U=="boolean")return U;if(typeof U=="string")return k$._`${U}`}return k$._`${$}${v}${(0,k$.getProperty)(I)}`}Zk.schemaRefOrVal=M$$;function _$$($){return Mk(decodeURIComponent($))}Zk.unescapeFragment=_$$;function F$$($){return encodeURIComponent(gq($))}Zk.escapeFragment=F$$;function gq($){if(typeof $=="number")return`${$}`;return $.replace(/~/g,"~0").replace(/\//g,"~1")}Zk.escapeJsonPointer=gq;function Mk($){return $.replace(/~1/g,"/").replace(/~0/g,"~")}Zk.unescapeJsonPointer=Mk;function Z$$($,v){if(Array.isArray($))for(let U of $)v(U);else v($)}Zk.eachItem=Z$$;function Pk({mergeNames:$,mergeToName:v,mergeValues:U,resultToName:I}){return(b,D,u,w)=>{let g=u===void 0?D:u instanceof k$.Name?(D instanceof k$.Name?$(b,D,u):v(b,D,u),u):D instanceof k$.Name?(v(b,u,D),D):U(D,u);return w===k$.Name&&!(g instanceof k$.Name)?I(b,g):g}}Zk.mergeEvaluated={props:Pk({mergeNames:($,v,U)=>$.if(k$._`${U} !== true && ${v} !== undefined`,()=>{$.if(k$._`${v} === true`,()=>$.assign(U,!0),()=>$.assign(U,k$._`${U} || {}`).code(k$._`Object.assign(${U}, ${v})`))}),mergeToName:($,v,U)=>$.if(k$._`${U} !== true`,()=>{if(v===!0)$.assign(U,!0);else $.assign(U,k$._`${U} || {}`),Jq($,U,v)}),mergeValues:($,v)=>$===!0?!0:{...$,...v},resultToName:_k}),items:Pk({mergeNames:($,v,U)=>$.if(k$._`${U} !== true && ${v} !== undefined`,()=>$.assign(U,k$._`${v} === true ? true : ${U} > ${v} ? ${U} : ${v}`)),mergeToName:($,v,U)=>$.if(k$._`${U} !== true`,()=>$.assign(U,v===!0?!0:k$._`${U} > ${v} ? ${U} : ${v}`)),mergeValues:($,v)=>$===!0?!0:Math.max($,v),resultToName:($,v)=>$.var("items",v)})};function _k($,v){if(v===!0)return $.var("props",!0);let U=$.var("props",k$._`{}`);if(v!==void 0)Jq($,U,v);return U}Zk.evaluatedPropsToName=_k;function Jq($,v,U){Object.keys(U).forEach((I)=>$.assign(k$._`${v}${(0,k$.getProperty)(I)}`,!0))}Zk.setEvaluated=Jq;var jk={};function T$$($,v){return $.scopeValue("func",{ref:v,code:jk[v.code]||(jk[v.code]=new P$$._Code(v.code))})}Zk.useFunc=T$$;var wq;(function($){$[$.Num=0]="Num",$[$.Str=1]="Str"})(wq||(Zk.Type=wq={}));function k$$($,v,U){if($ instanceof k$.Name){let I=v===wq.Num;return U?I?k$._`"[" + ${$} + "]"`:k$._`"['" + ${$} + "']"`:I?k$._`"/" + ${$}`:k$._`"/" + ${$}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return U?(0,k$.getProperty)($).toString():"/"+gq($)}Zk.getErrorPath=k$$;function Fk($,v,U=$.opts.strictSchema){if(!U)return;if(v=`strict mode: ${v}`,U===!0)throw Error(v);$.self.logger.warn(v)}Zk.checkStrictMode=Fk});var g6=P((kk)=>{Object.defineProperty(kk,"__esModule",{value:!0});var zv=w$(),a$$={data:new zv.Name("data"),valCxt:new zv.Name("valCxt"),instancePath:new zv.Name("instancePath"),parentData:new zv.Name("parentData"),parentDataProperty:new zv.Name("parentDataProperty"),rootData:new zv.Name("rootData"),dynamicAnchors:new zv.Name("dynamicAnchors"),vErrors:new zv.Name("vErrors"),errors:new zv.Name("errors"),this:new zv.Name("this"),self:new zv.Name("self"),scope:new zv.Name("scope"),json:new zv.Name("json"),jsonPos:new zv.Name("jsonPos"),jsonLen:new zv.Name("jsonLen"),jsonPart:new zv.Name("jsonPart")};kk.default=a$$});var wD=P((rk)=>{Object.defineProperty(rk,"__esModule",{value:!0});rk.extendErrors=rk.resetErrorsCount=rk.reportExtraError=rk.reportError=rk.keyword$DataError=rk.keywordError=void 0;var Y$=w$(),RX=Q$(),_v=g6();rk.keywordError={message:({keyword:$})=>Y$.str`must pass "${$}" keyword validation`};rk.keyword$DataError={message:({keyword:$,schemaType:v})=>v?Y$.str`"${$}" keyword must be ${v} ($data)`:Y$.str`"${$}" keyword is invalid ($data)`};function s$$($,v=rk.keywordError,U,I){let{it:b}=$,{gen:D,compositeRule:u,allErrors:w}=b,g=nk($,v,U);if(I!==null&&I!==void 0?I:u||w)Ek(D,g);else Rk(b,Y$._`[${g}]`)}rk.reportError=s$$;function $v$($,v=rk.keywordError,U){let{it:I}=$,{gen:b,compositeRule:D,allErrors:u}=I,w=nk($,v,U);if(Ek(b,w),!(D||u))Rk(I,_v.default.vErrors)}rk.reportExtraError=$v$;function vv$($,v){$.assign(_v.default.errors,v),$.if(Y$._`${_v.default.vErrors} !== null`,()=>$.if(v,()=>$.assign(Y$._`${_v.default.vErrors}.length`,v),()=>$.assign(_v.default.vErrors,null)))}rk.resetErrorsCount=vv$;function bv$({gen:$,keyword:v,schemaValue:U,data:I,errsCount:b,it:D}){if(b===void 0)throw Error("ajv implementation error");let u=$.name("err");$.forRange("i",b,_v.default.errors,(w)=>{if($.const(u,Y$._`${_v.default.vErrors}[${w}]`),$.if(Y$._`${u}.instancePath === undefined`,()=>$.assign(Y$._`${u}.instancePath`,(0,Y$.strConcat)(_v.default.instancePath,D.errorPath))),$.assign(Y$._`${u}.schemaPath`,Y$.str`${D.errSchemaPath}/${v}`),D.opts.verbose)$.assign(Y$._`${u}.schema`,U),$.assign(Y$._`${u}.data`,I)})}rk.extendErrors=bv$;function Ek($,v){let U=$.const("err",v);$.if(Y$._`${_v.default.vErrors} === null`,()=>$.assign(_v.default.vErrors,Y$._`[${U}]`),Y$._`${_v.default.vErrors}.push(${U})`),$.code(Y$._`${_v.default.errors}++`)}function Rk($,v){let{gen:U,validateName:I,schemaEnv:b}=$;if(b.$async)U.throw(Y$._`new ${$.ValidationError}(${v})`);else U.assign(Y$._`${I}.errors`,v),U.return(!1)}var yb={keyword:new Y$.Name("keyword"),schemaPath:new Y$.Name("schemaPath"),params:new Y$.Name("params"),propertyName:new Y$.Name("propertyName"),message:new Y$.Name("message"),schema:new Y$.Name("schema"),parentSchema:new Y$.Name("parentSchema")};function nk($,v,U){let{createErrors:I}=$.it;if(I===!1)return Y$._`{}`;return Uv$($,v,U)}function Uv$($,v,U={}){let{gen:I,it:b}=$,D=[Iv$(b,U),Dv$($,U)];return uv$($,v,D),I.object(...D)}function Iv$({errorPath:$},{instancePath:v}){let U=v?Y$.str`${$}${(0,RX.getErrorPath)(v,RX.Type.Str)}`:$;return[_v.default.instancePath,(0,Y$.strConcat)(_v.default.instancePath,U)]}function Dv$({keyword:$,it:{errSchemaPath:v}},{schemaPath:U,parentSchema:I}){let b=I?v:Y$.str`${v}/${$}`;if(U)b=Y$.str`${b}${(0,RX.getErrorPath)(U,RX.Type.Str)}`;return[yb.schemaPath,b]}function uv$($,{params:v,message:U},I){let{keyword:b,data:D,schemaValue:u,it:w}=$,{opts:g,propertyName:J,topSchemaRef:X,schemaPath:W}=w;if(I.push([yb.keyword,b],[yb.params,typeof v=="function"?v($):v||Y$._`{}`]),g.messages)I.push([yb.message,typeof U=="function"?U($):U]);if(g.verbose)I.push([yb.schema,u],[yb.parentSchema,Y$._`${X}${W}`],[_v.default.data,D]);if(J)I.push([yb.propertyName,J])}});var fk=P((xk)=>{Object.defineProperty(xk,"__esModule",{value:!0});xk.boolOrEmptySchema=xk.topBoolOrEmptySchema=void 0;var Wv$=wD(),Gv$=w$(),Ov$=g6(),Hv$={message:"boolean schema is false"};function zv$($){let{gen:v,schema:U,validateName:I}=$;if(U===!1)ik($,!1);else if(typeof U=="object"&&U.$async===!0)v.return(Ov$.default.data);else v.assign(Gv$._`${I}.errors`,null),v.return(!0)}xk.topBoolOrEmptySchema=zv$;function Qv$($,v){let{gen:U,schema:I}=$;if(I===!1)U.var(v,!1),ik($);else U.var(v,!0)}xk.boolOrEmptySchema=Qv$;function ik($,v){let{gen:U,data:I}=$,b={gen:U,keyword:"false schema",data:I,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:$};(0,Wv$.reportError)(b,Hv$,void 0,v)}});var Wq=P((yk)=>{Object.defineProperty(yk,"__esModule",{value:!0});yk.getRules=yk.isJSONType=void 0;var Vv$=["string","number","integer","boolean","null","object","array"],Lv$=new Set(Vv$);function Kv$($){return typeof $=="string"&&Lv$.has($)}yk.isJSONType=Kv$;function qv$(){let $={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...$,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},$.number,$.string,$.array,$.object],post:{rules:[]},all:{},keywords:{}}}yk.getRules=qv$});var Gq=P((ok)=>{Object.defineProperty(ok,"__esModule",{value:!0});ok.shouldUseRule=ok.shouldUseGroup=ok.schemaHasRulesForType=void 0;function Av$({schema:$,self:v},U){let I=v.RULES.types[U];return I&&I!==!0&&mk($,I)}ok.schemaHasRulesForType=Av$;function mk($,v){return v.rules.some((U)=>ck($,U))}ok.shouldUseGroup=mk;function ck($,v){var U;return $[v.keyword]!==void 0||((U=v.definition.implements)===null||U===void 0?void 0:U.some((I)=>$[I]!==void 0))}ok.shouldUseRule=ck});var gD=P((ek)=>{Object.defineProperty(ek,"__esModule",{value:!0});ek.reportTypeError=ek.checkDataTypes=ek.checkDataType=ek.coerceAndCheckDataType=ek.getJSONTypes=ek.getSchemaTypes=ek.DataType=void 0;var Nv$=Wq(),Sv$=Gq(),Mv$=wD(),u$=w$(),dk=Q$(),SI;(function($){$[$.Correct=0]="Correct",$[$.Wrong=1]="Wrong"})(SI||(ek.DataType=SI={}));function _v$($){let v=pk($.type);if(v.includes("null")){if($.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!v.length&&$.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');if($.nullable===!0)v.push("null")}return v}ek.getSchemaTypes=_v$;function pk($){let v=Array.isArray($)?$:$?[$]:[];if(v.every(Nv$.isJSONType))return v;throw Error("type must be JSONType or JSONType[]: "+v.join(","))}ek.getJSONTypes=pk;function Fv$($,v){let{gen:U,data:I,opts:b}=$,D=Zv$(v,b.coerceTypes),u=v.length>0&&!(D.length===0&&v.length===1&&(0,Sv$.schemaHasRulesForType)($,v[0]));if(u){let w=Hq(v,I,b.strictNumbers,SI.Wrong);U.if(w,()=>{if(D.length)Tv$($,v,D);else zq($)})}return u}ek.coerceAndCheckDataType=Fv$;var ak=new Set(["string","number","integer","boolean","null"]);function Zv$($,v){return v?$.filter((U)=>ak.has(U)||v==="array"&&U==="array"):[]}function Tv$($,v,U){let{gen:I,data:b,opts:D}=$,u=I.let("dataType",u$._`typeof ${b}`),w=I.let("coerced",u$._`undefined`);if(D.coerceTypes==="array")I.if(u$._`${u} == 'object' && Array.isArray(${b}) && ${b}.length == 1`,()=>I.assign(b,u$._`${b}[0]`).assign(u,u$._`typeof ${b}`).if(Hq(v,b,D.strictNumbers),()=>I.assign(w,b)));I.if(u$._`${w} !== undefined`);for(let J of U)if(ak.has(J)||J==="array"&&D.coerceTypes==="array")g(J);I.else(),zq($),I.endIf(),I.if(u$._`${w} !== undefined`,()=>{I.assign(b,w),kv$($,w)});function g(J){switch(J){case"string":I.elseIf(u$._`${u} == "number" || ${u} == "boolean"`).assign(w,u$._`"" + ${b}`).elseIf(u$._`${b} === null`).assign(w,u$._`""`);return;case"number":I.elseIf(u$._`${u} == "boolean" || ${b} === null
|
|
5
5
|
|| (${u} == "string" && ${b} && ${b} == +${b})`).assign(w,u$._`+${b}`);return;case"integer":I.elseIf(u$._`${u} === "boolean" || ${b} === null
|
|
6
6
|
|| (${u} === "string" && ${b} && ${b} == +${b} && !(${b} % 1))`).assign(w,u$._`+${b}`);return;case"boolean":I.elseIf(u$._`${b} === "false" || ${b} === 0 || ${b} === null`).assign(w,!1).elseIf(u$._`${b} === "true" || ${b} === 1`).assign(w,!0);return;case"null":I.elseIf(u$._`${b} === "" || ${b} === 0 || ${b} === false`),I.assign(w,null);return;case"array":I.elseIf(u$._`${u} === "string" || ${u} === "number"
|
|
7
|
-
|| ${u} === "boolean" || ${b} === null`).assign(w,u$._`[${b}]`)}}}function Ev$({gen:$,parentData:v,parentDataProperty:U},I){$.if(u$._`${v} !== undefined`,()=>$.assign(u$._`${v}[${U}]`,I))}function Oq($,v,U,I=SI.Correct){let b=I===SI.Correct?u$.operators.EQ:u$.operators.NEQ,D;switch($){case"null":return u$._`${v} ${b} null`;case"array":D=u$._`Array.isArray(${v})`;break;case"object":D=u$._`${v} && typeof ${v} == "object" && !Array.isArray(${v})`;break;case"integer":D=u(u$._`!(${v} % 1) && !isNaN(${v})`);break;case"number":D=u();break;default:return u$._`typeof ${v} ${b} ${$}`}return I===SI.Correct?D:(0,u$.not)(D);function u(w=u$.nil){return(0,u$.and)(u$._`typeof ${v} == "number"`,w,U?u$._`isFinite(${v})`:u$.nil)}}ek.checkDataType=Oq;function Hq($,v,U,I){if($.length===1)return Oq($[0],v,U,I);let b,D=(0,dk.toHash)($);if(D.array&&D.object){let u=u$._`typeof ${v} != "object"`;b=D.null?u:u$._`!${v} || ${u}`,delete D.null,delete D.array,delete D.object}else b=u$.nil;if(D.number)delete D.integer;for(let u in D)b=(0,u$.and)(b,Oq(u,v,U,I));return b}ek.checkDataTypes=Hq;var Rv$={message:({schema:$})=>`must be ${$}`,params:({schema:$,schemaValue:v})=>typeof $=="string"?u$._`{type: ${$}}`:u$._`{type: ${v}}`};function zq($){let v=nv$($);(0,_v$.reportError)(v,Rv$)}ek.reportTypeError=zq;function nv$($){let{gen:v,data:U,schema:I}=$,b=(0,dk.schemaRefOrVal)($,I,"type");return{gen:v,keyword:"type",data:U,schema:I.type,schemaCode:b,schemaValue:b,parentSchema:I,params:{},it:$}}});var UE=P((vE)=>{Object.defineProperty(vE,"__esModule",{value:!0});vE.assignDefaults=void 0;var MI=w$(),yv$=Q$();function hv$($,v){let{properties:U,items:I}=$.schema;if(v==="object"&&U)for(let b in U)$E($,b,U[b].default);else if(v==="array"&&Array.isArray(I))I.forEach((b,D)=>$E($,D,b.default))}vE.assignDefaults=hv$;function $E($,v,U){let{gen:I,compositeRule:b,data:D,opts:u}=$;if(U===void 0)return;let w=MI._`${D}${(0,MI.getProperty)(v)}`;if(b){(0,yv$.checkStrictMode)($,`default is ignored for: ${w}`);return}let g=MI._`${w} === undefined`;if(u.useDefaults==="empty")g=MI._`${g} || ${w} === null || ${w} === ""`;I.if(g,MI._`${w} = ${(0,MI.stringify)(U)}`)}});var U4=P((uE)=>{Object.defineProperty(uE,"__esModule",{value:!0});uE.validateUnion=uE.validateArray=uE.usePattern=uE.callValidateCode=uE.schemaProperties=uE.allSchemaProperties=uE.noPropertyInData=uE.propertyInData=uE.isOwnProperty=uE.hasPropFunc=uE.reportMissingProp=uE.checkMissingProp=uE.checkReportMissingProp=void 0;var i$=w$(),Qq=Q$(),a6=g6(),mv$=Q$();function cv$($,v){let{gen:U,data:I,it:b}=$;U.if(Vq(U,I,v,b.opts.ownProperties),()=>{$.setParams({missingProperty:i$._`${v}`},!0),$.error()})}uE.checkReportMissingProp=cv$;function ov$({gen:$,data:v,it:{opts:U}},I,b){return(0,i$.or)(...I.map((D)=>(0,i$.and)(Vq($,v,D,U.ownProperties),i$._`${b} = ${D}`)))}uE.checkMissingProp=ov$;function tv$($,v){$.setParams({missingProperty:v},!0),$.error()}uE.reportMissingProp=tv$;function IE($){return $.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:i$._`Object.prototype.hasOwnProperty`})}uE.hasPropFunc=IE;function Yq($,v,U){return i$._`${IE($)}.call(${v}, ${U})`}uE.isOwnProperty=Yq;function dv$($,v,U,I){let b=i$._`${v}${(0,i$.getProperty)(U)} !== undefined`;return I?i$._`${b} && ${Yq($,v,U)}`:b}uE.propertyInData=dv$;function Vq($,v,U,I){let b=i$._`${v}${(0,i$.getProperty)(U)} === undefined`;return I?(0,i$.or)(b,(0,i$.not)(Yq($,v,U))):b}uE.noPropertyInData=Vq;function DE($){return $?Object.keys($).filter((v)=>v!=="__proto__"):[]}uE.allSchemaProperties=DE;function pv$($,v){return DE(v).filter((U)=>!(0,Qq.alwaysValidSchema)($,v[U]))}uE.schemaProperties=pv$;function av$({schemaCode:$,data:v,it:{gen:U,topSchemaRef:I,schemaPath:b,errorPath:D},it:u},w,g,J){let X=J?i$._`${$}, ${v}, ${I}${b}`:v,W=[[a6.default.instancePath,(0,i$.strConcat)(a6.default.instancePath,D)],[a6.default.parentData,u.parentData],[a6.default.parentDataProperty,u.parentDataProperty],[a6.default.rootData,a6.default.rootData]];if(u.opts.dynamicRef)W.push([a6.default.dynamicAnchors,a6.default.dynamicAnchors]);let G=i$._`${X}, ${U.object(...W)}`;return g!==i$.nil?i$._`${w}.call(${g}, ${G})`:i$._`${w}(${G})`}uE.callValidateCode=av$;var ev$=i$._`new RegExp`;function sv$({gen:$,it:{opts:v}},U){let I=v.unicodeRegExp?"u":"",{regExp:b}=v.code,D=b(U,I);return $.scopeValue("pattern",{key:D.toString(),ref:D,code:i$._`${b.code==="new RegExp"?ev$:(0,mv$.useFunc)($,b)}(${U}, ${I})`})}uE.usePattern=sv$;function $4$($){let{gen:v,data:U,keyword:I,it:b}=$,D=v.name("valid");if(b.allErrors){let w=v.let("valid",!0);return u(()=>v.assign(w,!1)),w}return v.var(D,!0),u(()=>v.break()),D;function u(w){let g=v.const("len",i$._`${U}.length`);v.forRange("i",0,g,(J)=>{$.subschema({keyword:I,dataProp:J,dataPropType:Qq.Type.Num},D),v.if((0,i$.not)(D),w)})}}uE.validateArray=$4$;function v4$($){let{gen:v,schema:U,keyword:I,it:b}=$;if(!Array.isArray(U))throw Error("ajv implementation error");if(U.some((g)=>(0,Qq.alwaysValidSchema)(b,g))&&!b.opts.unevaluated)return;let u=v.let("valid",!1),w=v.name("_valid");v.block(()=>U.forEach((g,J)=>{let X=$.subschema({keyword:I,schemaProp:J,compositeRule:!0},w);if(v.assign(u,i$._`${u} || ${w}`),!$.mergeValidEvaluated(X,w))v.if((0,i$.not)(u))})),$.result(u,()=>$.reset(),()=>$.error(!0))}uE.validateUnion=v4$});var GE=P((XE)=>{Object.defineProperty(XE,"__esModule",{value:!0});XE.validateKeywordUsage=XE.validSchemaType=XE.funcKeywordCode=XE.macroKeywordCode=void 0;var Fv=w$(),hb=g6(),H4$=U4(),z4$=wD();function Q4$($,v){let{gen:U,keyword:I,schema:b,parentSchema:D,it:u}=$,w=v.macro.call(u.self,b,D,u),g=JE(U,I,w);if(u.opts.validateSchema!==!1)u.self.validateSchema(w,!0);let J=U.name("valid");$.subschema({schema:w,schemaPath:Fv.nil,errSchemaPath:`${u.errSchemaPath}/${I}`,topSchemaRef:g,compositeRule:!0},J),$.pass(J,()=>$.error(!0))}XE.macroKeywordCode=Q4$;function Y4$($,v){var U;let{gen:I,keyword:b,schema:D,parentSchema:u,$data:w,it:g}=$;L4$(g,v);let J=!w&&v.compile?v.compile.call(g.self,D,u,g):v.validate,X=JE(I,b,J),W=I.let("valid");$.block$data(W,G),$.ok((U=v.valid)!==null&&U!==void 0?U:W);function G(){if(v.errors===!1){if(Q(),v.modifying)gE($);Y(()=>$.error())}else{let K=v.async?O():z();if(v.modifying)gE($);Y(()=>V4$($,K))}}function O(){let K=I.let("ruleErrs",null);return I.try(()=>Q(Fv._`await `),(F)=>I.assign(W,!1).if(Fv._`${F} instanceof ${g.ValidationError}`,()=>I.assign(K,Fv._`${F}.errors`),()=>I.throw(F))),K}function z(){let K=Fv._`${X}.errors`;return I.assign(K,null),Q(Fv.nil),K}function Q(K=v.async?Fv._`await `:Fv.nil){let F=g.opts.passContext?hb.default.this:hb.default.self,S=!(("compile"in v)&&!w||v.schema===!1);I.assign(W,Fv._`${K}${(0,H4$.callValidateCode)($,X,F,S)}`,v.modifying)}function Y(K){var F;I.if((0,Fv.not)((F=v.valid)!==null&&F!==void 0?F:W),K)}}XE.funcKeywordCode=Y4$;function gE($){let{gen:v,data:U,it:I}=$;v.if(I.parentData,()=>v.assign(U,Fv._`${I.parentData}[${I.parentDataProperty}]`))}function V4$($,v){let{gen:U}=$;U.if(Fv._`Array.isArray(${v})`,()=>{U.assign(hb.default.vErrors,Fv._`${hb.default.vErrors} === null ? ${v} : ${hb.default.vErrors}.concat(${v})`).assign(hb.default.errors,Fv._`${hb.default.vErrors}.length`),(0,z4$.extendErrors)($)},()=>$.error())}function L4$({schemaEnv:$},v){if(v.async&&!$.$async)throw Error("async keyword in sync schema")}function JE($,v,U){if(U===void 0)throw Error(`keyword "${v}" failed to compile`);return $.scopeValue("keyword",typeof U=="function"?{ref:U}:{ref:U,code:(0,Fv.stringify)(U)})}function K4$($,v,U=!1){return!v.length||v.some((I)=>I==="array"?Array.isArray($):I==="object"?$&&typeof $=="object"&&!Array.isArray($):typeof $==I||U&&typeof $>"u")}XE.validSchemaType=K4$;function q4$({schema:$,opts:v,self:U,errSchemaPath:I},b,D){if(Array.isArray(b.keyword)?!b.keyword.includes(D):b.keyword!==D)throw Error("ajv implementation error");let u=b.dependencies;if(u===null||u===void 0?void 0:u.some((w)=>!Object.prototype.hasOwnProperty.call($,w)))throw Error(`parent schema must have dependencies of ${D}: ${u.join(",")}`);if(b.validateSchema){if(!b.validateSchema($[D])){let g=`keyword "${D}" value is invalid at path "${I}": `+U.errorsText(b.validateSchema.errors);if(v.validateSchema==="log")U.logger.error(g);else throw Error(g)}}}XE.validateKeywordUsage=q4$});var QE=P((HE)=>{Object.defineProperty(HE,"__esModule",{value:!0});HE.extendSubschemaMode=HE.extendSubschemaData=HE.getSubschema=void 0;var r4=w$(),OE=Q$();function j4$($,{keyword:v,schemaProp:U,schema:I,schemaPath:b,errSchemaPath:D,topSchemaRef:u}){if(v!==void 0&&I!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(v!==void 0){let w=$.schema[v];return U===void 0?{schema:w,schemaPath:r4._`${$.schemaPath}${(0,r4.getProperty)(v)}`,errSchemaPath:`${$.errSchemaPath}/${v}`}:{schema:w[U],schemaPath:r4._`${$.schemaPath}${(0,r4.getProperty)(v)}${(0,r4.getProperty)(U)}`,errSchemaPath:`${$.errSchemaPath}/${v}/${(0,OE.escapeFragment)(U)}`}}if(I!==void 0){if(b===void 0||D===void 0||u===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:I,schemaPath:b,topSchemaRef:u,errSchemaPath:D}}throw Error('either "keyword" or "schema" must be passed')}HE.getSubschema=j4$;function N4$($,v,{dataProp:U,dataPropType:I,data:b,dataTypes:D,propertyName:u}){if(b!==void 0&&U!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:w}=v;if(U!==void 0){let{errorPath:J,dataPathArr:X,opts:W}=v,G=w.let("data",r4._`${v.data}${(0,r4.getProperty)(U)}`,!0);g(G),$.errorPath=r4.str`${J}${(0,OE.getErrorPath)(U,I,W.jsPropertySyntax)}`,$.parentDataProperty=r4._`${U}`,$.dataPathArr=[...X,$.parentDataProperty]}if(b!==void 0){let J=b instanceof r4.Name?b:w.let("data",b,!0);if(g(J),u!==void 0)$.propertyName=u}if(D)$.dataTypes=D;function g(J){$.data=J,$.dataLevel=v.dataLevel+1,$.dataTypes=[],v.definedProperties=new Set,$.parentData=v.data,$.dataNames=[...v.dataNames,J]}}HE.extendSubschemaData=N4$;function S4$($,{jtdDiscriminator:v,jtdMetadata:U,compositeRule:I,createErrors:b,allErrors:D}){if(I!==void 0)$.compositeRule=I;if(b!==void 0)$.createErrors=b;if(D!==void 0)$.allErrors=D;$.jtdDiscriminator=v,$.jtdMetadata=U}HE.extendSubschemaMode=S4$});var Lq=P((f_$,YE)=>{YE.exports=function $(v,U){if(v===U)return!0;if(v&&U&&typeof v=="object"&&typeof U=="object"){if(v.constructor!==U.constructor)return!1;var I,b,D;if(Array.isArray(v)){if(I=v.length,I!=U.length)return!1;for(b=I;b--!==0;)if(!$(v[b],U[b]))return!1;return!0}if(v.constructor===RegExp)return v.source===U.source&&v.flags===U.flags;if(v.valueOf!==Object.prototype.valueOf)return v.valueOf()===U.valueOf();if(v.toString!==Object.prototype.toString)return v.toString()===U.toString();if(D=Object.keys(v),I=D.length,I!==Object.keys(U).length)return!1;for(b=I;b--!==0;)if(!Object.prototype.hasOwnProperty.call(U,D[b]))return!1;for(b=I;b--!==0;){var u=D[b];if(!$(v[u],U[u]))return!1}return!0}return v!==v&&U!==U}});var LE=P((y_$,VE)=>{var e6=VE.exports=function($,v,U){if(typeof v=="function")U=v,v={};U=v.cb||U;var I=typeof U=="function"?U:U.pre||function(){},b=U.post||function(){};nX(v,I,b,$,"",$)};e6.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};e6.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};e6.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};e6.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function nX($,v,U,I,b,D,u,w,g,J){if(I&&typeof I=="object"&&!Array.isArray(I)){v(I,b,D,u,w,g,J);for(var X in I){var W=I[X];if(Array.isArray(W)){if(X in e6.arrayKeywords)for(var G=0;G<W.length;G++)nX($,v,U,W[G],b+"/"+X+"/"+G,D,b,X,I,G)}else if(X in e6.propsKeywords){if(W&&typeof W=="object")for(var O in W)nX($,v,U,W[O],b+"/"+X+"/"+F4$(O),D,b,X,I,O)}else if(X in e6.keywords||$.allKeys&&!(X in e6.skipKeywords))nX($,v,U,W,b+"/"+X,D,b,X,I)}U(I,b,D,u,w,g,J)}}function F4$($){return $.replace(/~/g,"~0").replace(/\//g,"~1")}});var JD=P((AE)=>{Object.defineProperty(AE,"__esModule",{value:!0});AE.getSchemaRefs=AE.resolveUrl=AE.normalizeId=AE._getFullPath=AE.getFullPath=AE.inlineRef=void 0;var Z4$=Q$(),T4$=Lq(),k4$=LE(),E4$=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function R4$($,v=!0){if(typeof $=="boolean")return!0;if(v===!0)return!Kq($);if(!v)return!1;return KE($)<=v}AE.inlineRef=R4$;var n4$=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Kq($){for(let v in $){if(n4$.has(v))return!0;let U=$[v];if(Array.isArray(U)&&U.some(Kq))return!0;if(typeof U=="object"&&Kq(U))return!0}return!1}function KE($){let v=0;for(let U in $){if(U==="$ref")return 1/0;if(v++,E4$.has(U))continue;if(typeof $[U]=="object")(0,Z4$.eachItem)($[U],(I)=>v+=KE(I));if(v===1/0)return 1/0}return v}function qE($,v="",U){if(U!==!1)v=_I(v);let I=$.parse(v);return BE($,I)}AE.getFullPath=qE;function BE($,v){return $.serialize(v).split("#")[0]+"#"}AE._getFullPath=BE;var r4$=/#\/?$/;function _I($){return $?$.replace(r4$,""):""}AE.normalizeId=_I;function C4$($,v,U){return U=_I(U),$.resolve(v,U)}AE.resolveUrl=C4$;var i4$=/^[a-z_][-a-z0-9._]*$/i;function x4$($,v){if(typeof $=="boolean")return{};let{schemaId:U,uriResolver:I}=this.opts,b=_I($[U]||v),D={"":b},u=qE(I,b,!1),w={},g=new Set;return k4$($,{allKeys:!0},(W,G,O,z)=>{if(z===void 0)return;let Q=u+G,Y=D[z];if(typeof W[U]=="string")Y=K.call(this,W[U]);F.call(this,W.$anchor),F.call(this,W.$dynamicAnchor),D[G]=Y;function K(S){let j=this.opts.uriResolver.resolve;if(S=_I(Y?j(Y,S):S),g.has(S))throw X(S);g.add(S);let A=this.refs[S];if(typeof A=="string")A=this.refs[A];if(typeof A=="object")J(W,A.schema,S);else if(S!==_I(Q))if(S[0]==="#")J(W,w[S],S),w[S]=W;else this.refs[S]=Q;return S}function F(S){if(typeof S=="string"){if(!i4$.test(S))throw Error(`invalid anchor "${S}"`);K.call(this,`#${S}`)}}}),w;function J(W,G,O){if(G!==void 0&&!T4$(W,G))throw X(O)}function X(W){return Error(`reference "${W}" resolves to more than one schema`)}}AE.getSchemaRefs=x4$});var GD=P((iE)=>{Object.defineProperty(iE,"__esModule",{value:!0});iE.getData=iE.KeywordCxt=iE.validateFunctionCode=void 0;var _E=fk(),jE=gD(),Bq=Gq(),rX=gD(),c4$=UE(),WD=GE(),qq=QE(),t=w$(),b$=g6(),o4$=JD(),J6=Q$(),XD=wD();function t4$($){if(TE($)){if(kE($),ZE($)){a4$($);return}}FE($,()=>(0,_E.topBoolOrEmptySchema)($))}iE.validateFunctionCode=t4$;function FE({gen:$,validateName:v,schema:U,schemaEnv:I,opts:b},D){if(b.code.es5)$.func(v,t._`${b$.default.data}, ${b$.default.valCxt}`,I.$async,()=>{$.code(t._`"use strict"; ${NE(U,b)}`),p4$($,b),$.code(D)});else $.func(v,t._`${b$.default.data}, ${d4$(b)}`,I.$async,()=>$.code(NE(U,b)).code(D))}function d4$($){return t._`{${b$.default.instancePath}="", ${b$.default.parentData}, ${b$.default.parentDataProperty}, ${b$.default.rootData}=${b$.default.data}${$.dynamicRef?t._`, ${b$.default.dynamicAnchors}={}`:t.nil}}={}`}function p4$($,v){$.if(b$.default.valCxt,()=>{if($.var(b$.default.instancePath,t._`${b$.default.valCxt}.${b$.default.instancePath}`),$.var(b$.default.parentData,t._`${b$.default.valCxt}.${b$.default.parentData}`),$.var(b$.default.parentDataProperty,t._`${b$.default.valCxt}.${b$.default.parentDataProperty}`),$.var(b$.default.rootData,t._`${b$.default.valCxt}.${b$.default.rootData}`),v.dynamicRef)$.var(b$.default.dynamicAnchors,t._`${b$.default.valCxt}.${b$.default.dynamicAnchors}`)},()=>{if($.var(b$.default.instancePath,t._`""`),$.var(b$.default.parentData,t._`undefined`),$.var(b$.default.parentDataProperty,t._`undefined`),$.var(b$.default.rootData,b$.default.data),v.dynamicRef)$.var(b$.default.dynamicAnchors,t._`{}`)})}function a4$($){let{schema:v,opts:U,gen:I}=$;FE($,()=>{if(U.$comment&&v.$comment)RE($);if(b6$($),I.let(b$.default.vErrors,null),I.let(b$.default.errors,0),U.unevaluated)e4$($);EE($),D6$($)});return}function e4$($){let{gen:v,validateName:U}=$;$.evaluated=v.const("evaluated",t._`${U}.evaluated`),v.if(t._`${$.evaluated}.dynamicProps`,()=>v.assign(t._`${$.evaluated}.props`,t._`undefined`)),v.if(t._`${$.evaluated}.dynamicItems`,()=>v.assign(t._`${$.evaluated}.items`,t._`undefined`))}function NE($,v){let U=typeof $=="object"&&$[v.schemaId];return U&&(v.code.source||v.code.process)?t._`/*# sourceURL=${U} */`:t.nil}function s4$($,v){if(TE($)){if(kE($),ZE($)){$6$($,v);return}}(0,_E.boolOrEmptySchema)($,v)}function ZE({schema:$,self:v}){if(typeof $=="boolean")return!$;for(let U in $)if(v.RULES.all[U])return!0;return!1}function TE($){return typeof $.schema!="boolean"}function $6$($,v){let{schema:U,gen:I,opts:b}=$;if(b.$comment&&U.$comment)RE($);U6$($),I6$($);let D=I.const("_errs",b$.default.errors);EE($,D),I.var(v,t._`${D} === ${b$.default.errors}`)}function kE($){(0,J6.checkUnknownRules)($),v6$($)}function EE($,v){if($.opts.jtd)return SE($,[],!1,v);let U=(0,jE.getSchemaTypes)($.schema),I=(0,jE.coerceAndCheckDataType)($,U);SE($,U,!I,v)}function v6$($){let{schema:v,errSchemaPath:U,opts:I,self:b}=$;if(v.$ref&&I.ignoreKeywordsWithRef&&(0,J6.schemaHasRulesButRef)(v,b.RULES))b.logger.warn(`$ref: keywords ignored in schema at path "${U}"`)}function b6$($){let{schema:v,opts:U}=$;if(v.default!==void 0&&U.useDefaults&&U.strictSchema)(0,J6.checkStrictMode)($,"default is ignored in the schema root")}function U6$($){let v=$.schema[$.opts.schemaId];if(v)$.baseId=(0,o4$.resolveUrl)($.opts.uriResolver,$.baseId,v)}function I6$($){if($.schema.$async&&!$.schemaEnv.$async)throw Error("async schema in sync schema")}function RE({gen:$,schemaEnv:v,schema:U,errSchemaPath:I,opts:b}){let D=U.$comment;if(b.$comment===!0)$.code(t._`${b$.default.self}.logger.log(${D})`);else if(typeof b.$comment=="function"){let u=t.str`${I}/$comment`,w=$.scopeValue("root",{ref:v.root});$.code(t._`${b$.default.self}.opts.$comment(${D}, ${u}, ${w}.schema)`)}}function D6$($){let{gen:v,schemaEnv:U,validateName:I,ValidationError:b,opts:D}=$;if(U.$async)v.if(t._`${b$.default.errors} === 0`,()=>v.return(b$.default.data),()=>v.throw(t._`new ${b}(${b$.default.vErrors})`));else{if(v.assign(t._`${I}.errors`,b$.default.vErrors),D.unevaluated)u6$($);v.return(t._`${b$.default.errors} === 0`)}}function u6$({gen:$,evaluated:v,props:U,items:I}){if(U instanceof t.Name)$.assign(t._`${v}.props`,U);if(I instanceof t.Name)$.assign(t._`${v}.items`,I)}function SE($,v,U,I){let{gen:b,schema:D,data:u,allErrors:w,opts:g,self:J}=$,{RULES:X}=J;if(D.$ref&&(g.ignoreKeywordsWithRef||!(0,J6.schemaHasRulesButRef)(D,X))){b.block(()=>rE($,"$ref",X.all.$ref.definition));return}if(!g.jtd)w6$($,v);b.block(()=>{for(let G of X.rules)W(G);W(X.post)});function W(G){if(!(0,Bq.shouldUseGroup)(D,G))return;if(G.type){if(b.if((0,rX.checkDataType)(G.type,u,g.strictNumbers)),ME($,G),v.length===1&&v[0]===G.type&&U)b.else(),(0,rX.reportTypeError)($);b.endIf()}else ME($,G);if(!w)b.if(t._`${b$.default.errors} === ${I||0}`)}}function ME($,v){let{gen:U,schema:I,opts:{useDefaults:b}}=$;if(b)(0,c4$.assignDefaults)($,v.type);U.block(()=>{for(let D of v.rules)if((0,Bq.shouldUseRule)(I,D))rE($,D.keyword,D.definition,v.type)})}function w6$($,v){if($.schemaEnv.meta||!$.opts.strictTypes)return;if(g6$($,v),!$.opts.allowUnionTypes)J6$($,v);X6$($,$.dataTypes)}function g6$($,v){if(!v.length)return;if(!$.dataTypes.length){$.dataTypes=v;return}v.forEach((U)=>{if(!nE($.dataTypes,U))Aq($,`type "${U}" not allowed by context "${$.dataTypes.join(",")}"`)}),G6$($,v)}function J6$($,v){if(v.length>1&&!(v.length===2&&v.includes("null")))Aq($,"use allowUnionTypes to allow union type keyword")}function X6$($,v){let U=$.self.RULES.all;for(let I in U){let b=U[I];if(typeof b=="object"&&(0,Bq.shouldUseRule)($.schema,b)){let{type:D}=b.definition;if(D.length&&!D.some((u)=>W6$(v,u)))Aq($,`missing type "${D.join(",")}" for keyword "${I}"`)}}}function W6$($,v){return $.includes(v)||v==="number"&&$.includes("integer")}function nE($,v){return $.includes(v)||v==="integer"&&$.includes("number")}function G6$($,v){let U=[];for(let I of $.dataTypes)if(nE(v,I))U.push(I);else if(v.includes("integer")&&I==="number")U.push("integer");$.dataTypes=U}function Aq($,v){let U=$.schemaEnv.baseId+$.errSchemaPath;v+=` at "${U}" (strictTypes)`,(0,J6.checkStrictMode)($,v,$.opts.strictTypes)}class Pq{constructor($,v,U){if((0,WD.validateKeywordUsage)($,v,U),this.gen=$.gen,this.allErrors=$.allErrors,this.keyword=U,this.data=$.data,this.schema=$.schema[U],this.$data=v.$data&&$.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,J6.schemaRefOrVal)($,this.schema,U,this.$data),this.schemaType=v.schemaType,this.parentSchema=$.schema,this.params={},this.it=$,this.def=v,this.$data)this.schemaCode=$.gen.const("vSchema",CE(this.$data,$));else if(this.schemaCode=this.schemaValue,!(0,WD.validSchemaType)(this.schema,v.schemaType,v.allowUndefined))throw Error(`${U} value must be ${JSON.stringify(v.schemaType)}`);if("code"in v?v.trackErrors:v.errors!==!1)this.errsCount=$.gen.const("_errs",b$.default.errors)}result($,v,U){this.failResult((0,t.not)($),v,U)}failResult($,v,U){if(this.gen.if($),U)U();else this.error();if(v){if(this.gen.else(),v(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass($,v){this.failResult((0,t.not)($),void 0,v)}fail($){if($===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if($),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data($){if(!this.$data)return this.fail($);let{schemaCode:v}=this;this.fail(t._`${v} !== undefined && (${(0,t.or)(this.invalid$data(),$)})`)}error($,v,U){if(v){this.setParams(v),this._error($,U),this.setParams({});return}this._error($,U)}_error($,v){($?XD.reportExtraError:XD.reportError)(this,this.def.error,v)}$dataError(){(0,XD.reportError)(this,this.def.$dataError||XD.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,XD.resetErrorsCount)(this.gen,this.errsCount)}ok($){if(!this.allErrors)this.gen.if($)}setParams($,v){if(v)Object.assign(this.params,$);else this.params=$}block$data($,v,U=t.nil){this.gen.block(()=>{this.check$data($,U),v()})}check$data($=t.nil,v=t.nil){if(!this.$data)return;let{gen:U,schemaCode:I,schemaType:b,def:D}=this;if(U.if((0,t.or)(t._`${I} === undefined`,v)),$!==t.nil)U.assign($,!0);if(b.length||D.validateSchema){if(U.elseIf(this.invalid$data()),this.$dataError(),$!==t.nil)U.assign($,!1)}U.else()}invalid$data(){let{gen:$,schemaCode:v,schemaType:U,def:I,it:b}=this;return(0,t.or)(D(),u());function D(){if(U.length){if(!(v instanceof t.Name))throw Error("ajv implementation error");let w=Array.isArray(U)?U:[U];return t._`${(0,rX.checkDataTypes)(w,v,b.opts.strictNumbers,rX.DataType.Wrong)}`}return t.nil}function u(){if(I.validateSchema){let w=$.scopeValue("validate$data",{ref:I.validateSchema});return t._`!${w}(${v})`}return t.nil}}subschema($,v){let U=(0,qq.getSubschema)(this.it,$);(0,qq.extendSubschemaData)(U,this.it,$),(0,qq.extendSubschemaMode)(U,$);let I={...this.it,...U,items:void 0,props:void 0};return s4$(I,v),I}mergeEvaluated($,v){let{it:U,gen:I}=this;if(!U.opts.unevaluated)return;if(U.props!==!0&&$.props!==void 0)U.props=J6.mergeEvaluated.props(I,$.props,U.props,v);if(U.items!==!0&&$.items!==void 0)U.items=J6.mergeEvaluated.items(I,$.items,U.items,v)}mergeValidEvaluated($,v){let{it:U,gen:I}=this;if(U.opts.unevaluated&&(U.props!==!0||U.items!==!0))return I.if(v,()=>this.mergeEvaluated($,t.Name)),!0}}iE.KeywordCxt=Pq;function rE($,v,U,I){let b=new Pq($,U,v);if("code"in U)U.code(b,I);else if(b.$data&&U.validate)(0,WD.funcKeywordCode)(b,U);else if("macro"in U)(0,WD.macroKeywordCode)(b,U);else if(U.compile||U.validate)(0,WD.funcKeywordCode)(b,U)}var O6$=/^\/(?:[^~]|~0|~1)*$/,H6$=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function CE($,{dataLevel:v,dataNames:U,dataPathArr:I}){let b,D;if($==="")return b$.default.rootData;if($[0]==="/"){if(!O6$.test($))throw Error(`Invalid JSON-pointer: ${$}`);b=$,D=b$.default.rootData}else{let J=H6$.exec($);if(!J)throw Error(`Invalid JSON-pointer: ${$}`);let X=+J[1];if(b=J[2],b==="#"){if(X>=v)throw Error(g("property/index",X));return I[v-X]}if(X>v)throw Error(g("data",X));if(D=U[v-X],!b)return D}let u=D,w=b.split("/");for(let J of w)if(J)D=t._`${D}${(0,t.getProperty)((0,J6.unescapeJsonPointer)(J))}`,u=t._`${u} && ${D}`;return u;function g(J,X){return`Cannot access ${J} ${X} levels up, current level is ${v}`}}iE.getData=CE});var CX=P((fE)=>{Object.defineProperty(fE,"__esModule",{value:!0});class lE extends Error{constructor($){super("validation failed");this.errors=$,this.ajv=this.validation=!0}}fE.default=lE});var OD=P((hE)=>{Object.defineProperty(hE,"__esModule",{value:!0});var jq=JD();class yE extends Error{constructor($,v,U,I){super(I||`can't resolve reference ${U} from id ${v}`);this.missingRef=(0,jq.resolveUrl)($,v,U),this.missingSchema=(0,jq.normalizeId)((0,jq.getFullPath)($,this.missingRef))}}hE.default=yE});var xX=P((oE)=>{Object.defineProperty(oE,"__esModule",{value:!0});oE.resolveSchema=oE.getCompilingSchema=oE.resolveRef=oE.compileSchema=oE.SchemaEnv=void 0;var z4=w$(),L6$=CX(),mb=g6(),Q4=JD(),mE=Q$(),K6$=GD();class HD{constructor($){var v;this.refs={},this.dynamicAnchors={};let U;if(typeof $.schema=="object")U=$.schema;this.schema=$.schema,this.schemaId=$.schemaId,this.root=$.root||this,this.baseId=(v=$.baseId)!==null&&v!==void 0?v:(0,Q4.normalizeId)(U===null||U===void 0?void 0:U[$.schemaId||"$id"]),this.schemaPath=$.schemaPath,this.localRefs=$.localRefs,this.meta=$.meta,this.$async=U===null||U===void 0?void 0:U.$async,this.refs={}}}oE.SchemaEnv=HD;function Sq($){let v=cE.call(this,$);if(v)return v;let U=(0,Q4.getFullPath)(this.opts.uriResolver,$.root.baseId),{es5:I,lines:b}=this.opts.code,{ownProperties:D}=this.opts,u=new z4.CodeGen(this.scope,{es5:I,lines:b,ownProperties:D}),w;if($.$async)w=u.scopeValue("Error",{ref:L6$.default,code:z4._`require("ajv/dist/runtime/validation_error").default`});let g=u.scopeName("validate");$.validateName=g;let J={gen:u,allErrors:this.opts.allErrors,data:mb.default.data,parentData:mb.default.parentData,parentDataProperty:mb.default.parentDataProperty,dataNames:[mb.default.data],dataPathArr:[z4.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:u.scopeValue("schema",this.opts.code.source===!0?{ref:$.schema,code:(0,z4.stringify)($.schema)}:{ref:$.schema}),validateName:g,ValidationError:w,schema:$.schema,schemaEnv:$,rootId:U,baseId:$.baseId||U,schemaPath:z4.nil,errSchemaPath:$.schemaPath||(this.opts.jtd?"":"#"),errorPath:z4._`""`,opts:this.opts,self:this},X;try{this._compilations.add($),(0,K6$.validateFunctionCode)(J),u.optimize(this.opts.code.optimize);let W=u.toString();if(X=`${u.scopeRefs(mb.default.scope)}return ${W}`,this.opts.code.process)X=this.opts.code.process(X,$);let O=Function(`${mb.default.self}`,`${mb.default.scope}`,X)(this,this.scope.get());if(this.scope.value(g,{ref:O}),O.errors=null,O.schema=$.schema,O.schemaEnv=$,$.$async)O.$async=!0;if(this.opts.code.source===!0)O.source={validateName:g,validateCode:W,scopeValues:u._values};if(this.opts.unevaluated){let{props:z,items:Q}=J;if(O.evaluated={props:z instanceof z4.Name?void 0:z,items:Q instanceof z4.Name?void 0:Q,dynamicProps:z instanceof z4.Name,dynamicItems:Q instanceof z4.Name},O.source)O.source.evaluated=(0,z4.stringify)(O.evaluated)}return $.validate=O,$}catch(W){if(delete $.validate,delete $.validateName,X)this.logger.error("Error compiling schema, function code:",X);throw W}finally{this._compilations.delete($)}}oE.compileSchema=Sq;function q6$($,v,U){var I;U=(0,Q4.resolveUrl)(this.opts.uriResolver,v,U);let b=$.refs[U];if(b)return b;let D=P6$.call(this,$,U);if(D===void 0){let u=(I=$.localRefs)===null||I===void 0?void 0:I[U],{schemaId:w}=this.opts;if(u)D=new HD({schema:u,schemaId:w,root:$,baseId:v})}if(D===void 0)return;return $.refs[U]=B6$.call(this,D)}oE.resolveRef=q6$;function B6$($){if((0,Q4.inlineRef)($.schema,this.opts.inlineRefs))return $.schema;return $.validate?$:Sq.call(this,$)}function cE($){for(let v of this._compilations)if(A6$(v,$))return v}oE.getCompilingSchema=cE;function A6$($,v){return $.schema===v.schema&&$.root===v.root&&$.baseId===v.baseId}function P6$($,v){let U;while(typeof(U=this.refs[v])=="string")v=U;return U||this.schemas[v]||iX.call(this,$,v)}function iX($,v){let U=this.opts.uriResolver.parse(v),I=(0,Q4._getFullPath)(this.opts.uriResolver,U),b=(0,Q4.getFullPath)(this.opts.uriResolver,$.baseId,void 0);if(Object.keys($.schema).length>0&&I===b)return Nq.call(this,U,$);let D=(0,Q4.normalizeId)(I),u=this.refs[D]||this.schemas[D];if(typeof u=="string"){let w=iX.call(this,$,u);if(typeof(w===null||w===void 0?void 0:w.schema)!=="object")return;return Nq.call(this,U,w)}if(typeof(u===null||u===void 0?void 0:u.schema)!=="object")return;if(!u.validate)Sq.call(this,u);if(D===(0,Q4.normalizeId)(v)){let{schema:w}=u,{schemaId:g}=this.opts,J=w[g];if(J)b=(0,Q4.resolveUrl)(this.opts.uriResolver,b,J);return new HD({schema:w,schemaId:g,root:$,baseId:b})}return Nq.call(this,U,u)}oE.resolveSchema=iX;var j6$=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Nq($,{baseId:v,schema:U,root:I}){var b;if(((b=$.fragment)===null||b===void 0?void 0:b[0])!=="/")return;for(let w of $.fragment.slice(1).split("/")){if(typeof U==="boolean")return;let g=U[(0,mE.unescapeFragment)(w)];if(g===void 0)return;U=g;let J=typeof U==="object"&&U[this.opts.schemaId];if(!j6$.has(w)&&J)v=(0,Q4.resolveUrl)(this.opts.uriResolver,v,J)}let D;if(typeof U!="boolean"&&U.$ref&&!(0,mE.schemaHasRulesButRef)(U,this.RULES)){let w=(0,Q4.resolveUrl)(this.opts.uriResolver,v,U.$ref);D=iX.call(this,I,w)}let{schemaId:u}=this.opts;if(D=D||new HD({schema:U,schemaId:u,root:I,baseId:v}),D.schema!==D.root.schema)return D;return}});var dE=P((d_$,F6$)=>{F6$.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var _q=P((p_$,sE)=>{var Z6$=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),aE=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function Mq($){let v="",U=0,I=0;for(I=0;I<$.length;I++){if(U=$[I].charCodeAt(0),U===48)continue;if(!(U>=48&&U<=57||U>=65&&U<=70||U>=97&&U<=102))return"";v+=$[I];break}for(I+=1;I<$.length;I++){if(U=$[I].charCodeAt(0),!(U>=48&&U<=57||U>=65&&U<=70||U>=97&&U<=102))return"";v+=$[I]}return v}var T6$=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function pE($){return $.length=0,!0}function k6$($,v,U){if($.length){let I=Mq($);if(I!=="")v.push(I);else return U.error=!0,!1;$.length=0}return!0}function E6$($){let v=0,U={error:!1,address:"",zone:""},I=[],b=[],D=!1,u=!1,w=k6$;for(let g=0;g<$.length;g++){let J=$[g];if(J==="["||J==="]")continue;if(J===":"){if(D===!0)u=!0;if(!w(b,I,U))break;if(++v>7){U.error=!0;break}if(g>0&&$[g-1]===":")D=!0;I.push(":");continue}else if(J==="%"){if(!w(b,I,U))break;w=pE}else{b.push(J);continue}}if(b.length)if(w===pE)U.zone=b.join("");else if(u)I.push(b.join(""));else I.push(Mq(b));return U.address=I.join(""),U}function eE($){if(R6$($,":")<2)return{host:$,isIPV6:!1};let v=E6$($);if(!v.error){let{address:U,address:I}=v;if(v.zone)U+="%"+v.zone,I+="%25"+v.zone;return{host:U,isIPV6:!0,escapedHost:I}}else return{host:$,isIPV6:!1}}function R6$($,v){let U=0;for(let I=0;I<$.length;I++)if($[I]===v)U++;return U}function n6$($){let v=$,U=[],I=-1,b=0;while(b=v.length){if(b===1)if(v===".")break;else if(v==="/"){U.push("/");break}else{U.push(v);break}else if(b===2){if(v[0]==="."){if(v[1]===".")break;else if(v[1]==="/"){v=v.slice(2);continue}}else if(v[0]==="/"){if(v[1]==="."||v[1]==="/"){U.push("/");break}}}else if(b===3){if(v==="/.."){if(U.length!==0)U.pop();U.push("/");break}}if(v[0]==="."){if(v[1]==="."){if(v[2]==="/"){v=v.slice(3);continue}}else if(v[1]==="/"){v=v.slice(2);continue}}else if(v[0]==="/"){if(v[1]==="."){if(v[2]==="/"){v=v.slice(2);continue}else if(v[2]==="."){if(v[3]==="/"){if(v=v.slice(3),U.length!==0)U.pop();continue}}}}if((I=v.indexOf("/",1))===-1){U.push(v);break}else U.push(v.slice(0,I)),v=v.slice(I)}return U.join("")}function r6$($,v){let U=v!==!0?escape:unescape;if($.scheme!==void 0)$.scheme=U($.scheme);if($.userinfo!==void 0)$.userinfo=U($.userinfo);if($.host!==void 0)$.host=U($.host);if($.path!==void 0)$.path=U($.path);if($.query!==void 0)$.query=U($.query);if($.fragment!==void 0)$.fragment=U($.fragment);return $}function C6$($){let v=[];if($.userinfo!==void 0)v.push($.userinfo),v.push("@");if($.host!==void 0){let U=unescape($.host);if(!aE(U)){let I=eE(U);if(I.isIPV6===!0)U=`[${I.escapedHost}]`;else U=$.host}v.push(U)}if(typeof $.port==="number"||typeof $.port==="string")v.push(":"),v.push(String($.port));return v.length?v.join(""):void 0}sE.exports={nonSimpleDomain:T6$,recomposeAuthority:C6$,normalizeComponentEncoding:r6$,removeDotSegments:n6$,isIPv4:aE,isUUID:Z6$,normalizeIPv6:eE,stringArrayToHexStripped:Mq}});var IR=P((a_$,UR)=>{var{isUUID:i6$}=_q(),x6$=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,l6$=["http","https","ws","wss","urn","urn:uuid"];function f6$($){return l6$.indexOf($)!==-1}function Fq($){if($.secure===!0)return!0;else if($.secure===!1)return!1;else if($.scheme)return $.scheme.length===3&&($.scheme[0]==="w"||$.scheme[0]==="W")&&($.scheme[1]==="s"||$.scheme[1]==="S")&&($.scheme[2]==="s"||$.scheme[2]==="S");else return!1}function $R($){if(!$.host)$.error=$.error||"HTTP URIs must have a host.";return $}function vR($){let v=String($.scheme).toLowerCase()==="https";if($.port===(v?443:80)||$.port==="")$.port=void 0;if(!$.path)$.path="/";return $}function y6$($){return $.secure=Fq($),$.resourceName=($.path||"/")+($.query?"?"+$.query:""),$.path=void 0,$.query=void 0,$}function h6$($){if($.port===(Fq($)?443:80)||$.port==="")$.port=void 0;if(typeof $.secure==="boolean")$.scheme=$.secure?"wss":"ws",$.secure=void 0;if($.resourceName){let[v,U]=$.resourceName.split("?");$.path=v&&v!=="/"?v:void 0,$.query=U,$.resourceName=void 0}return $.fragment=void 0,$}function m6$($,v){if(!$.path)return $.error="URN can not be parsed",$;let U=$.path.match(x6$);if(U){let I=v.scheme||$.scheme||"urn";$.nid=U[1].toLowerCase(),$.nss=U[2];let b=`${I}:${v.nid||$.nid}`,D=Zq(b);if($.path=void 0,D)$=D.parse($,v)}else $.error=$.error||"URN can not be parsed.";return $}function c6$($,v){if($.nid===void 0)throw Error("URN without nid cannot be serialized");let U=v.scheme||$.scheme||"urn",I=$.nid.toLowerCase(),b=`${U}:${v.nid||I}`,D=Zq(b);if(D)$=D.serialize($,v);let u=$,w=$.nss;return u.path=`${I||v.nid}:${w}`,v.skipEscape=!0,u}function o6$($,v){let U=$;if(U.uuid=U.nss,U.nss=void 0,!v.tolerant&&(!U.uuid||!i6$(U.uuid)))U.error=U.error||"UUID is not valid.";return U}function t6$($){let v=$;return v.nss=($.uuid||"").toLowerCase(),v}var bR={scheme:"http",domainHost:!0,parse:$R,serialize:vR},d6$={scheme:"https",domainHost:bR.domainHost,parse:$R,serialize:vR},lX={scheme:"ws",domainHost:!0,parse:y6$,serialize:h6$},p6$={scheme:"wss",domainHost:lX.domainHost,parse:lX.parse,serialize:lX.serialize},a6$={scheme:"urn",parse:m6$,serialize:c6$,skipNormalize:!0},e6$={scheme:"urn:uuid",parse:o6$,serialize:t6$,skipNormalize:!0},fX={http:bR,https:d6$,ws:lX,wss:p6$,urn:a6$,"urn:uuid":e6$};Object.setPrototypeOf(fX,null);function Zq($){return $&&(fX[$]||fX[$.toLowerCase()])||void 0}UR.exports={wsIsSecure:Fq,SCHEMES:fX,isValidSchemeName:f6$,getSchemeHandler:Zq}});var wR=P((e_$,hX)=>{var{normalizeIPv6:s6$,removeDotSegments:zD,recomposeAuthority:$b$,normalizeComponentEncoding:yX,isIPv4:vb$,nonSimpleDomain:bb$}=_q(),{SCHEMES:Ub$,getSchemeHandler:DR}=IR();function Ib$($,v){if(typeof $==="string")$=C4(X6($,v),v);else if(typeof $==="object")$=X6(C4($,v),v);return $}function Db$($,v,U){let I=U?Object.assign({scheme:"null"},U):{scheme:"null"},b=uR(X6($,I),X6(v,I),I,!0);return I.skipEscape=!0,C4(b,I)}function uR($,v,U,I){let b={};if(!I)$=X6(C4($,U),U),v=X6(C4(v,U),U);if(U=U||{},!U.tolerant&&v.scheme)b.scheme=v.scheme,b.userinfo=v.userinfo,b.host=v.host,b.port=v.port,b.path=zD(v.path||""),b.query=v.query;else{if(v.userinfo!==void 0||v.host!==void 0||v.port!==void 0)b.userinfo=v.userinfo,b.host=v.host,b.port=v.port,b.path=zD(v.path||""),b.query=v.query;else{if(!v.path)if(b.path=$.path,v.query!==void 0)b.query=v.query;else b.query=$.query;else{if(v.path[0]==="/")b.path=zD(v.path);else{if(($.userinfo!==void 0||$.host!==void 0||$.port!==void 0)&&!$.path)b.path="/"+v.path;else if(!$.path)b.path=v.path;else b.path=$.path.slice(0,$.path.lastIndexOf("/")+1)+v.path;b.path=zD(b.path)}b.query=v.query}b.userinfo=$.userinfo,b.host=$.host,b.port=$.port}b.scheme=$.scheme}return b.fragment=v.fragment,b}function ub$($,v,U){if(typeof $==="string")$=unescape($),$=C4(yX(X6($,U),!0),{...U,skipEscape:!0});else if(typeof $==="object")$=C4(yX($,!0),{...U,skipEscape:!0});if(typeof v==="string")v=unescape(v),v=C4(yX(X6(v,U),!0),{...U,skipEscape:!0});else if(typeof v==="object")v=C4(yX(v,!0),{...U,skipEscape:!0});return $.toLowerCase()===v.toLowerCase()}function C4($,v){let U={host:$.host,scheme:$.scheme,userinfo:$.userinfo,port:$.port,path:$.path,query:$.query,nid:$.nid,nss:$.nss,uuid:$.uuid,fragment:$.fragment,reference:$.reference,resourceName:$.resourceName,secure:$.secure,error:""},I=Object.assign({},v),b=[],D=DR(I.scheme||U.scheme);if(D&&D.serialize)D.serialize(U,I);if(U.path!==void 0)if(!I.skipEscape){if(U.path=escape(U.path),U.scheme!==void 0)U.path=U.path.split("%3A").join(":")}else U.path=unescape(U.path);if(I.reference!=="suffix"&&U.scheme)b.push(U.scheme,":");let u=$b$(U);if(u!==void 0){if(I.reference!=="suffix")b.push("//");if(b.push(u),U.path&&U.path[0]!=="/")b.push("/")}if(U.path!==void 0){let w=U.path;if(!I.absolutePath&&(!D||!D.absolutePath))w=zD(w);if(u===void 0&&w[0]==="/"&&w[1]==="/")w="/%2F"+w.slice(2);b.push(w)}if(U.query!==void 0)b.push("?",U.query);if(U.fragment!==void 0)b.push("#",U.fragment);return b.join("")}var wb$=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function X6($,v){let U=Object.assign({},v),I={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},b=!1;if(U.reference==="suffix")if(U.scheme)$=U.scheme+":"+$;else $="//"+$;let D=$.match(wb$);if(D){if(I.scheme=D[1],I.userinfo=D[3],I.host=D[4],I.port=parseInt(D[5],10),I.path=D[6]||"",I.query=D[7],I.fragment=D[8],isNaN(I.port))I.port=D[5];if(I.host)if(vb$(I.host)===!1){let g=s6$(I.host);I.host=g.host.toLowerCase(),b=g.isIPV6}else b=!0;if(I.scheme===void 0&&I.userinfo===void 0&&I.host===void 0&&I.port===void 0&&I.query===void 0&&!I.path)I.reference="same-document";else if(I.scheme===void 0)I.reference="relative";else if(I.fragment===void 0)I.reference="absolute";else I.reference="uri";if(U.reference&&U.reference!=="suffix"&&U.reference!==I.reference)I.error=I.error||"URI is not a "+U.reference+" reference.";let u=DR(U.scheme||I.scheme);if(!U.unicodeSupport&&(!u||!u.unicodeSupport)){if(I.host&&(U.domainHost||u&&u.domainHost)&&b===!1&&bb$(I.host))try{I.host=URL.domainToASCII(I.host.toLowerCase())}catch(w){I.error=I.error||"Host's domain name can not be converted to ASCII: "+w}}if(!u||u&&!u.skipNormalize){if($.indexOf("%")!==-1){if(I.scheme!==void 0)I.scheme=unescape(I.scheme);if(I.host!==void 0)I.host=unescape(I.host)}if(I.path)I.path=escape(unescape(I.path));if(I.fragment)I.fragment=encodeURI(decodeURIComponent(I.fragment))}if(u&&u.parse)u.parse(I,U)}else I.error=I.error||"URI can not be parsed.";return I}var Tq={SCHEMES:Ub$,normalize:Ib$,resolve:Db$,resolveComponent:uR,equal:ub$,serialize:C4,parse:X6};hX.exports=Tq;hX.exports.default=Tq;hX.exports.fastUri=Tq});var XR=P((JR)=>{Object.defineProperty(JR,"__esModule",{value:!0});var gR=wR();gR.code='require("ajv/dist/runtime/uri").default';JR.default=gR});var VR=P((W6)=>{Object.defineProperty(W6,"__esModule",{value:!0});W6.CodeGen=W6.Name=W6.nil=W6.stringify=W6.str=W6._=W6.KeywordCxt=void 0;var Jb$=GD();Object.defineProperty(W6,"KeywordCxt",{enumerable:!0,get:function(){return Jb$.KeywordCxt}});var FI=w$();Object.defineProperty(W6,"_",{enumerable:!0,get:function(){return FI._}});Object.defineProperty(W6,"str",{enumerable:!0,get:function(){return FI.str}});Object.defineProperty(W6,"stringify",{enumerable:!0,get:function(){return FI.stringify}});Object.defineProperty(W6,"nil",{enumerable:!0,get:function(){return FI.nil}});Object.defineProperty(W6,"Name",{enumerable:!0,get:function(){return FI.Name}});Object.defineProperty(W6,"CodeGen",{enumerable:!0,get:function(){return FI.CodeGen}});var Xb$=CX(),zR=OD(),Wb$=Wq(),QD=xX(),Gb$=w$(),YD=JD(),mX=gD(),Eq=Q$(),WR=dE(),Ob$=XR(),QR=($,v)=>new RegExp($,v);QR.code="new RegExp";var Hb$=["removeAdditional","useDefaults","coerceTypes"],zb$=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Qb$={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Yb$={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},GR=200;function Vb$($){var v,U,I,b,D,u,w,g,J,X,W,G,O,z,Q,Y,K,F,S,j,A,h,s,l,W$;let X$=$.strict,m$=(v=$.code)===null||v===void 0?void 0:v.optimize,E$=m$===!0||m$===void 0?1:m$||0,P4=(I=(U=$.code)===null||U===void 0?void 0:U.regExp)!==null&&I!==void 0?I:QR,Wb=(b=$.uriResolver)!==null&&b!==void 0?b:Ob$.default;return{strictSchema:(u=(D=$.strictSchema)!==null&&D!==void 0?D:X$)!==null&&u!==void 0?u:!0,strictNumbers:(g=(w=$.strictNumbers)!==null&&w!==void 0?w:X$)!==null&&g!==void 0?g:!0,strictTypes:(X=(J=$.strictTypes)!==null&&J!==void 0?J:X$)!==null&&X!==void 0?X:"log",strictTuples:(G=(W=$.strictTuples)!==null&&W!==void 0?W:X$)!==null&&G!==void 0?G:"log",strictRequired:(z=(O=$.strictRequired)!==null&&O!==void 0?O:X$)!==null&&z!==void 0?z:!1,code:$.code?{...$.code,optimize:E$,regExp:P4}:{optimize:E$,regExp:P4},loopRequired:(Q=$.loopRequired)!==null&&Q!==void 0?Q:GR,loopEnum:(Y=$.loopEnum)!==null&&Y!==void 0?Y:GR,meta:(K=$.meta)!==null&&K!==void 0?K:!0,messages:(F=$.messages)!==null&&F!==void 0?F:!0,inlineRefs:(S=$.inlineRefs)!==null&&S!==void 0?S:!0,schemaId:(j=$.schemaId)!==null&&j!==void 0?j:"$id",addUsedSchema:(A=$.addUsedSchema)!==null&&A!==void 0?A:!0,validateSchema:(h=$.validateSchema)!==null&&h!==void 0?h:!0,validateFormats:(s=$.validateFormats)!==null&&s!==void 0?s:!0,unicodeRegExp:(l=$.unicodeRegExp)!==null&&l!==void 0?l:!0,int32range:(W$=$.int32range)!==null&&W$!==void 0?W$:!0,uriResolver:Wb}}class cX{constructor($={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,$=this.opts={...$,...Vb$($)};let{es5:v,lines:U}=this.opts.code;this.scope=new Gb$.ValueScope({scope:{},prefixes:zb$,es5:v,lines:U}),this.logger=Pb$($.logger);let I=$.validateFormats;if($.validateFormats=!1,this.RULES=(0,Wb$.getRules)(),OR.call(this,Qb$,$,"NOT SUPPORTED"),OR.call(this,Yb$,$,"DEPRECATED","warn"),this._metaOpts=Bb$.call(this),$.formats)Kb$.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),$.keywords)qb$.call(this,$.keywords);if(typeof $.meta=="object")this.addMetaSchema($.meta);Lb$.call(this),$.validateFormats=I}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:$,meta:v,schemaId:U}=this.opts,I=WR;if(U==="id")I={...WR},I.id=I.$id,delete I.$id;if(v&&$)this.addMetaSchema(I,I[U],!1)}defaultMeta(){let{meta:$,schemaId:v}=this.opts;return this.opts.defaultMeta=typeof $=="object"?$[v]||$:void 0}validate($,v){let U;if(typeof $=="string"){if(U=this.getSchema($),!U)throw Error(`no schema with key or ref "${$}"`)}else U=this.compile($);let I=U(v);if(!("$async"in U))this.errors=U.errors;return I}compile($,v){let U=this._addSchema($,v);return U.validate||this._compileSchemaEnv(U)}compileAsync($,v){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:U}=this.opts;return I.call(this,$,v);async function I(J,X){await b.call(this,J.$schema);let W=this._addSchema(J,X);return W.validate||D.call(this,W)}async function b(J){if(J&&!this.getSchema(J))await I.call(this,{$ref:J},!0)}async function D(J){try{return this._compileSchemaEnv(J)}catch(X){if(!(X instanceof zR.default))throw X;return u.call(this,X),await w.call(this,X.missingSchema),D.call(this,J)}}function u({missingSchema:J,missingRef:X}){if(this.refs[J])throw Error(`AnySchema ${J} is loaded but ${X} cannot be resolved`)}async function w(J){let X=await g.call(this,J);if(!this.refs[J])await b.call(this,X.$schema);if(!this.refs[J])this.addSchema(X,J,v)}async function g(J){let X=this._loading[J];if(X)return X;try{return await(this._loading[J]=U(J))}finally{delete this._loading[J]}}}addSchema($,v,U,I=this.opts.validateSchema){if(Array.isArray($)){for(let D of $)this.addSchema(D,void 0,U,I);return this}let b;if(typeof $==="object"){let{schemaId:D}=this.opts;if(b=$[D],b!==void 0&&typeof b!="string")throw Error(`schema ${D} must be string`)}return v=(0,YD.normalizeId)(v||b),this._checkUnique(v),this.schemas[v]=this._addSchema($,U,v,I,!0),this}addMetaSchema($,v,U=this.opts.validateSchema){return this.addSchema($,v,!0,U),this}validateSchema($,v){if(typeof $=="boolean")return!0;let U;if(U=$.$schema,U!==void 0&&typeof U!="string")throw Error("$schema must be a string");if(U=U||this.opts.defaultMeta||this.defaultMeta(),!U)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let I=this.validate(U,$);if(!I&&v){let b="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(b);else throw Error(b)}return I}getSchema($){let v;while(typeof(v=HR.call(this,$))=="string")$=v;if(v===void 0){let{schemaId:U}=this.opts,I=new QD.SchemaEnv({schema:{},schemaId:U});if(v=QD.resolveSchema.call(this,I,$),!v)return;this.refs[$]=v}return v.validate||this._compileSchemaEnv(v)}removeSchema($){if($ instanceof RegExp)return this._removeAllSchemas(this.schemas,$),this._removeAllSchemas(this.refs,$),this;switch(typeof $){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let v=HR.call(this,$);if(typeof v=="object")this._cache.delete(v.schema);return delete this.schemas[$],delete this.refs[$],this}case"object":{let v=$;this._cache.delete(v);let U=$[this.opts.schemaId];if(U)U=(0,YD.normalizeId)(U),delete this.schemas[U],delete this.refs[U];return this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary($){for(let v of $)this.addKeyword(v);return this}addKeyword($,v){let U;if(typeof $=="string"){if(U=$,typeof v=="object")this.logger.warn("these parameters are deprecated, see docs for addKeyword"),v.keyword=U}else if(typeof $=="object"&&v===void 0){if(v=$,U=v.keyword,Array.isArray(U)&&!U.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(Nb$.call(this,U,v),!v)return(0,Eq.eachItem)(U,(b)=>kq.call(this,b)),this;Mb$.call(this,v);let I={...v,type:(0,mX.getJSONTypes)(v.type),schemaType:(0,mX.getJSONTypes)(v.schemaType)};return(0,Eq.eachItem)(U,I.type.length===0?(b)=>kq.call(this,b,I):(b)=>I.type.forEach((D)=>kq.call(this,b,I,D))),this}getKeyword($){let v=this.RULES.all[$];return typeof v=="object"?v.definition:!!v}removeKeyword($){let{RULES:v}=this;delete v.keywords[$],delete v.all[$];for(let U of v.rules){let I=U.rules.findIndex((b)=>b.keyword===$);if(I>=0)U.rules.splice(I,1)}return this}addFormat($,v){if(typeof v=="string")v=new RegExp(v);return this.formats[$]=v,this}errorsText($=this.errors,{separator:v=", ",dataVar:U="data"}={}){if(!$||$.length===0)return"No errors";return $.map((I)=>`${U}${I.instancePath} ${I.message}`).reduce((I,b)=>I+v+b)}$dataMetaSchema($,v){let U=this.RULES.all;$=JSON.parse(JSON.stringify($));for(let I of v){let b=I.split("/").slice(1),D=$;for(let u of b)D=D[u];for(let u in U){let w=U[u];if(typeof w!="object")continue;let{$data:g}=w.definition,J=D[u];if(g&&J)D[u]=YR(J)}}return $}_removeAllSchemas($,v){for(let U in $){let I=$[U];if(!v||v.test(U)){if(typeof I=="string")delete $[U];else if(I&&!I.meta)this._cache.delete(I.schema),delete $[U]}}}_addSchema($,v,U,I=this.opts.validateSchema,b=this.opts.addUsedSchema){let D,{schemaId:u}=this.opts;if(typeof $=="object")D=$[u];else if(this.opts.jtd)throw Error("schema must be object");else if(typeof $!="boolean")throw Error("schema must be object or boolean");let w=this._cache.get($);if(w!==void 0)return w;U=(0,YD.normalizeId)(D||U);let g=YD.getSchemaRefs.call(this,$,U);if(w=new QD.SchemaEnv({schema:$,schemaId:u,meta:v,baseId:U,localRefs:g}),this._cache.set(w.schema,w),b&&!U.startsWith("#")){if(U)this._checkUnique(U);this.refs[U]=w}if(I)this.validateSchema($,!0);return w}_checkUnique($){if(this.schemas[$]||this.refs[$])throw Error(`schema with key or id "${$}" already exists`)}_compileSchemaEnv($){if($.meta)this._compileMetaSchema($);else QD.compileSchema.call(this,$);if(!$.validate)throw Error("ajv implementation error");return $.validate}_compileMetaSchema($){let v=this.opts;this.opts=this._metaOpts;try{QD.compileSchema.call(this,$)}finally{this.opts=v}}}cX.ValidationError=Xb$.default;cX.MissingRefError=zR.default;W6.default=cX;function OR($,v,U,I="error"){for(let b in $){let D=b;if(D in v)this.logger[I](`${U}: option ${b}. ${$[D]}`)}}function HR($){return $=(0,YD.normalizeId)($),this.schemas[$]||this.refs[$]}function Lb$(){let $=this.opts.schemas;if(!$)return;if(Array.isArray($))this.addSchema($);else for(let v in $)this.addSchema($[v],v)}function Kb$(){for(let $ in this.opts.formats){let v=this.opts.formats[$];if(v)this.addFormat($,v)}}function qb$($){if(Array.isArray($)){this.addVocabulary($);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let v in $){let U=$[v];if(!U.keyword)U.keyword=v;this.addKeyword(U)}}function Bb$(){let $={...this.opts};for(let v of Hb$)delete $[v];return $}var Ab$={log(){},warn(){},error(){}};function Pb$($){if($===!1)return Ab$;if($===void 0)return console;if($.log&&$.warn&&$.error)return $;throw Error("logger must implement log, warn and error methods")}var jb$=/^[a-z_$][a-z0-9_$:-]*$/i;function Nb$($,v){let{RULES:U}=this;if((0,Eq.eachItem)($,(I)=>{if(U.keywords[I])throw Error(`Keyword ${I} is already defined`);if(!jb$.test(I))throw Error(`Keyword ${I} has invalid name`)}),!v)return;if(v.$data&&!(("code"in v)||("validate"in v)))throw Error('$data keyword must have "code" or "validate" function')}function kq($,v,U){var I;let b=v===null||v===void 0?void 0:v.post;if(U&&b)throw Error('keyword with "post" flag cannot have "type"');let{RULES:D}=this,u=b?D.post:D.rules.find(({type:g})=>g===U);if(!u)u={type:U,rules:[]},D.rules.push(u);if(D.keywords[$]=!0,!v)return;let w={keyword:$,definition:{...v,type:(0,mX.getJSONTypes)(v.type),schemaType:(0,mX.getJSONTypes)(v.schemaType)}};if(v.before)Sb$.call(this,u,w,v.before);else u.rules.push(w);D.all[$]=w,(I=v.implements)===null||I===void 0||I.forEach((g)=>this.addKeyword(g))}function Sb$($,v,U){let I=$.rules.findIndex((b)=>b.keyword===U);if(I>=0)$.rules.splice(I,0,v);else $.rules.push(v),this.logger.warn(`rule ${U} is not defined`)}function Mb$($){let{metaSchema:v}=$;if(v===void 0)return;if($.$data&&this.opts.$data)v=YR(v);$.validateSchema=this.compile(v,!0)}var _b$={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function YR($){return{anyOf:[$,_b$]}}});var KR=P((LR)=>{Object.defineProperty(LR,"__esModule",{value:!0});var Tb$={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};LR.default=Tb$});var NR=P((PR)=>{Object.defineProperty(PR,"__esModule",{value:!0});PR.callRef=PR.getValidate=void 0;var Eb$=OD(),qR=U4(),xv=w$(),ZI=g6(),BR=xX(),oX=Q$(),Rb$={keyword:"$ref",schemaType:"string",code($){let{gen:v,schema:U,it:I}=$,{baseId:b,schemaEnv:D,validateName:u,opts:w,self:g}=I,{root:J}=D;if((U==="#"||U==="#/")&&b===J.baseId)return W();let X=BR.resolveRef.call(g,J,b,U);if(X===void 0)throw new Eb$.default(I.opts.uriResolver,b,U);if(X instanceof BR.SchemaEnv)return G(X);return O(X);function W(){if(D===J)return tX($,u,D,D.$async);let z=v.scopeValue("root",{ref:J});return tX($,xv._`${z}.validate`,J,J.$async)}function G(z){let Q=AR($,z);tX($,Q,z,z.$async)}function O(z){let Q=v.scopeValue("schema",w.code.source===!0?{ref:z,code:(0,xv.stringify)(z)}:{ref:z}),Y=v.name("valid"),K=$.subschema({schema:z,dataTypes:[],schemaPath:xv.nil,topSchemaRef:Q,errSchemaPath:U},Y);$.mergeEvaluated(K),$.ok(Y)}}};function AR($,v){let{gen:U}=$;return v.validate?U.scopeValue("validate",{ref:v.validate}):xv._`${U.scopeValue("wrapper",{ref:v})}.validate`}PR.getValidate=AR;function tX($,v,U,I){let{gen:b,it:D}=$,{allErrors:u,schemaEnv:w,opts:g}=D,J=g.passContext?ZI.default.this:xv.nil;if(I)X();else W();function X(){if(!w.$async)throw Error("async schema referenced by sync schema");let z=b.let("valid");b.try(()=>{if(b.code(xv._`await ${(0,qR.callValidateCode)($,v,J)}`),O(v),!u)b.assign(z,!0)},(Q)=>{if(b.if(xv._`!(${Q} instanceof ${D.ValidationError})`,()=>b.throw(Q)),G(Q),!u)b.assign(z,!1)}),$.ok(z)}function W(){$.result((0,qR.callValidateCode)($,v,J),()=>O(v),()=>G(v))}function G(z){let Q=xv._`${z}.errors`;b.assign(ZI.default.vErrors,xv._`${ZI.default.vErrors} === null ? ${Q} : ${ZI.default.vErrors}.concat(${Q})`),b.assign(ZI.default.errors,xv._`${ZI.default.vErrors}.length`)}function O(z){var Q;if(!D.opts.unevaluated)return;let Y=(Q=U===null||U===void 0?void 0:U.validate)===null||Q===void 0?void 0:Q.evaluated;if(D.props!==!0)if(Y&&!Y.dynamicProps){if(Y.props!==void 0)D.props=oX.mergeEvaluated.props(b,Y.props,D.props)}else{let K=b.var("props",xv._`${z}.evaluated.props`);D.props=oX.mergeEvaluated.props(b,K,D.props,xv.Name)}if(D.items!==!0)if(Y&&!Y.dynamicItems){if(Y.items!==void 0)D.items=oX.mergeEvaluated.items(b,Y.items,D.items)}else{let K=b.var("items",xv._`${z}.evaluated.items`);D.items=oX.mergeEvaluated.items(b,K,D.items,xv.Name)}}}PR.callRef=tX;PR.default=Rb$});var MR=P((SR)=>{Object.defineProperty(SR,"__esModule",{value:!0});var Cb$=KR(),ib$=NR(),xb$=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",Cb$.default,ib$.default];SR.default=xb$});var FR=P((_R)=>{Object.defineProperty(_R,"__esModule",{value:!0});var dX=w$(),s6=dX.operators,pX={maximum:{okStr:"<=",ok:s6.LTE,fail:s6.GT},minimum:{okStr:">=",ok:s6.GTE,fail:s6.LT},exclusiveMaximum:{okStr:"<",ok:s6.LT,fail:s6.GTE},exclusiveMinimum:{okStr:">",ok:s6.GT,fail:s6.LTE}},fb$={message:({keyword:$,schemaCode:v})=>dX.str`must be ${pX[$].okStr} ${v}`,params:({keyword:$,schemaCode:v})=>dX._`{comparison: ${pX[$].okStr}, limit: ${v}}`},yb$={keyword:Object.keys(pX),type:"number",schemaType:"number",$data:!0,error:fb$,code($){let{keyword:v,data:U,schemaCode:I}=$;$.fail$data(dX._`${U} ${pX[v].fail} ${I} || isNaN(${U})`)}};_R.default=yb$});var TR=P((ZR)=>{Object.defineProperty(ZR,"__esModule",{value:!0});var VD=w$(),mb$={message:({schemaCode:$})=>VD.str`must be multiple of ${$}`,params:({schemaCode:$})=>VD._`{multipleOf: ${$}}`},cb$={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:mb$,code($){let{gen:v,data:U,schemaCode:I,it:b}=$,D=b.opts.multipleOfPrecision,u=v.let("res"),w=D?VD._`Math.abs(Math.round(${u}) - ${u}) > 1e-${D}`:VD._`${u} !== parseInt(${u})`;$.fail$data(VD._`(${I} === 0 || (${u} = ${U}/${I}, ${w}))`)}};ZR.default=cb$});var RR=P((ER)=>{Object.defineProperty(ER,"__esModule",{value:!0});function kR($){let v=$.length,U=0,I=0,b;while(I<v)if(U++,b=$.charCodeAt(I++),b>=55296&&b<=56319&&I<v){if(b=$.charCodeAt(I),(b&64512)===56320)I++}return U}ER.default=kR;kR.code='require("ajv/dist/runtime/ucs2length").default'});var rR=P((nR)=>{Object.defineProperty(nR,"__esModule",{value:!0});var cb=w$(),db$=Q$(),pb$=RR(),ab$={message({keyword:$,schemaCode:v}){let U=$==="maxLength"?"more":"fewer";return cb.str`must NOT have ${U} than ${v} characters`},params:({schemaCode:$})=>cb._`{limit: ${$}}`},eb$={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:ab$,code($){let{keyword:v,data:U,schemaCode:I,it:b}=$,D=v==="maxLength"?cb.operators.GT:cb.operators.LT,u=b.opts.unicode===!1?cb._`${U}.length`:cb._`${(0,db$.useFunc)($.gen,pb$.default)}(${U})`;$.fail$data(cb._`${u} ${D} ${I}`)}};nR.default=eb$});var iR=P((CR)=>{Object.defineProperty(CR,"__esModule",{value:!0});var $U$=U4(),vU$=Q$(),TI=w$(),bU$={message:({schemaCode:$})=>TI.str`must match pattern "${$}"`,params:({schemaCode:$})=>TI._`{pattern: ${$}}`},UU$={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:bU$,code($){let{gen:v,data:U,$data:I,schema:b,schemaCode:D,it:u}=$,w=u.opts.unicodeRegExp?"u":"";if(I){let{regExp:g}=u.opts.code,J=g.code==="new RegExp"?TI._`new RegExp`:(0,vU$.useFunc)(v,g),X=v.let("valid");v.try(()=>v.assign(X,TI._`${J}(${D}, ${w}).test(${U})`),()=>v.assign(X,!1)),$.fail$data(TI._`!${X}`)}else{let g=(0,$U$.usePattern)($,b);$.fail$data(TI._`!${g}.test(${U})`)}}};CR.default=UU$});var lR=P((xR)=>{Object.defineProperty(xR,"__esModule",{value:!0});var LD=w$(),DU$={message({keyword:$,schemaCode:v}){let U=$==="maxProperties"?"more":"fewer";return LD.str`must NOT have ${U} than ${v} properties`},params:({schemaCode:$})=>LD._`{limit: ${$}}`},uU$={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:DU$,code($){let{keyword:v,data:U,schemaCode:I}=$,b=v==="maxProperties"?LD.operators.GT:LD.operators.LT;$.fail$data(LD._`Object.keys(${U}).length ${b} ${I}`)}};xR.default=uU$});var yR=P((fR)=>{Object.defineProperty(fR,"__esModule",{value:!0});var KD=U4(),qD=w$(),gU$=Q$(),JU$={message:({params:{missingProperty:$}})=>qD.str`must have required property '${$}'`,params:({params:{missingProperty:$}})=>qD._`{missingProperty: ${$}}`},XU$={keyword:"required",type:"object",schemaType:"array",$data:!0,error:JU$,code($){let{gen:v,schema:U,schemaCode:I,data:b,$data:D,it:u}=$,{opts:w}=u;if(!D&&U.length===0)return;let g=U.length>=w.loopRequired;if(u.allErrors)J();else X();if(w.strictRequired){let O=$.parentSchema.properties,{definedProperties:z}=$.it;for(let Q of U)if((O===null||O===void 0?void 0:O[Q])===void 0&&!z.has(Q)){let Y=u.schemaEnv.baseId+u.errSchemaPath,K=`required property "${Q}" is not defined at "${Y}" (strictRequired)`;(0,gU$.checkStrictMode)(u,K,u.opts.strictRequired)}}function J(){if(g||D)$.block$data(qD.nil,W);else for(let O of U)(0,KD.checkReportMissingProp)($,O)}function X(){let O=v.let("missing");if(g||D){let z=v.let("valid",!0);$.block$data(z,()=>G(O,z)),$.ok(z)}else v.if((0,KD.checkMissingProp)($,U,O)),(0,KD.reportMissingProp)($,O),v.else()}function W(){v.forOf("prop",I,(O)=>{$.setParams({missingProperty:O}),v.if((0,KD.noPropertyInData)(v,b,O,w.ownProperties),()=>$.error())})}function G(O,z){$.setParams({missingProperty:O}),v.forOf(O,I,()=>{v.assign(z,(0,KD.propertyInData)(v,b,O,w.ownProperties)),v.if((0,qD.not)(z),()=>{$.error(),v.break()})},qD.nil)}}};fR.default=XU$});var mR=P((hR)=>{Object.defineProperty(hR,"__esModule",{value:!0});var BD=w$(),GU$={message({keyword:$,schemaCode:v}){let U=$==="maxItems"?"more":"fewer";return BD.str`must NOT have ${U} than ${v} items`},params:({schemaCode:$})=>BD._`{limit: ${$}}`},OU$={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:GU$,code($){let{keyword:v,data:U,schemaCode:I}=$,b=v==="maxItems"?BD.operators.GT:BD.operators.LT;$.fail$data(BD._`${U}.length ${b} ${I}`)}};hR.default=OU$});var aX=P((oR)=>{Object.defineProperty(oR,"__esModule",{value:!0});var cR=Lq();cR.code='require("ajv/dist/runtime/equal").default';oR.default=cR});var dR=P((tR)=>{Object.defineProperty(tR,"__esModule",{value:!0});var Rq=gD(),Wv=w$(),QU$=Q$(),YU$=aX(),VU$={message:({params:{i:$,j:v}})=>Wv.str`must NOT have duplicate items (items ## ${v} and ${$} are identical)`,params:({params:{i:$,j:v}})=>Wv._`{i: ${$}, j: ${v}}`},LU$={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:VU$,code($){let{gen:v,data:U,$data:I,schema:b,parentSchema:D,schemaCode:u,it:w}=$;if(!I&&!b)return;let g=v.let("valid"),J=D.items?(0,Rq.getSchemaTypes)(D.items):[];$.block$data(g,X,Wv._`${u} === false`),$.ok(g);function X(){let z=v.let("i",Wv._`${U}.length`),Q=v.let("j");$.setParams({i:z,j:Q}),v.assign(g,!0),v.if(Wv._`${z} > 1`,()=>(W()?G:O)(z,Q))}function W(){return J.length>0&&!J.some((z)=>z==="object"||z==="array")}function G(z,Q){let Y=v.name("item"),K=(0,Rq.checkDataTypes)(J,Y,w.opts.strictNumbers,Rq.DataType.Wrong),F=v.const("indices",Wv._`{}`);v.for(Wv._`;${z}--;`,()=>{if(v.let(Y,Wv._`${U}[${z}]`),v.if(K,Wv._`continue`),J.length>1)v.if(Wv._`typeof ${Y} == "string"`,Wv._`${Y} += "_"`);v.if(Wv._`typeof ${F}[${Y}] == "number"`,()=>{v.assign(Q,Wv._`${F}[${Y}]`),$.error(),v.assign(g,!1).break()}).code(Wv._`${F}[${Y}] = ${z}`)})}function O(z,Q){let Y=(0,QU$.useFunc)(v,YU$.default),K=v.name("outer");v.label(K).for(Wv._`;${z}--;`,()=>v.for(Wv._`${Q} = ${z}; ${Q}--;`,()=>v.if(Wv._`${Y}(${U}[${z}], ${U}[${Q}])`,()=>{$.error(),v.assign(g,!1).break(K)})))}}};tR.default=LU$});var aR=P((pR)=>{Object.defineProperty(pR,"__esModule",{value:!0});var nq=w$(),qU$=Q$(),BU$=aX(),AU$={message:"must be equal to constant",params:({schemaCode:$})=>nq._`{allowedValue: ${$}}`},PU$={keyword:"const",$data:!0,error:AU$,code($){let{gen:v,data:U,$data:I,schemaCode:b,schema:D}=$;if(I||D&&typeof D=="object")$.fail$data(nq._`!${(0,qU$.useFunc)(v,BU$.default)}(${U}, ${b})`);else $.fail(nq._`${D} !== ${U}`)}};pR.default=PU$});var sR=P((eR)=>{Object.defineProperty(eR,"__esModule",{value:!0});var AD=w$(),NU$=Q$(),SU$=aX(),MU$={message:"must be equal to one of the allowed values",params:({schemaCode:$})=>AD._`{allowedValues: ${$}}`},_U$={keyword:"enum",schemaType:"array",$data:!0,error:MU$,code($){let{gen:v,data:U,$data:I,schema:b,schemaCode:D,it:u}=$;if(!I&&b.length===0)throw Error("enum must have non-empty array");let w=b.length>=u.opts.loopEnum,g,J=()=>g!==null&&g!==void 0?g:g=(0,NU$.useFunc)(v,SU$.default),X;if(w||I)X=v.let("valid"),$.block$data(X,W);else{if(!Array.isArray(b))throw Error("ajv implementation error");let O=v.const("vSchema",D);X=(0,AD.or)(...b.map((z,Q)=>G(O,Q)))}$.pass(X);function W(){v.assign(X,!1),v.forOf("v",D,(O)=>v.if(AD._`${J()}(${U}, ${O})`,()=>v.assign(X,!0).break()))}function G(O,z){let Q=b[z];return typeof Q==="object"&&Q!==null?AD._`${J()}(${U}, ${O}[${z}])`:AD._`${U} === ${Q}`}}};eR.default=_U$});var vn=P(($n)=>{Object.defineProperty($n,"__esModule",{value:!0});var ZU$=FR(),TU$=TR(),kU$=rR(),EU$=iR(),RU$=lR(),nU$=yR(),rU$=mR(),CU$=dR(),iU$=aR(),xU$=sR(),lU$=[ZU$.default,TU$.default,kU$.default,EU$.default,RU$.default,nU$.default,rU$.default,CU$.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},iU$.default,xU$.default];$n.default=lU$});var Cq=P((Un)=>{Object.defineProperty(Un,"__esModule",{value:!0});Un.validateAdditionalItems=void 0;var ob=w$(),rq=Q$(),yU$={message:({params:{len:$}})=>ob.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>ob._`{limit: ${$}}`},hU$={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:yU$,code($){let{parentSchema:v,it:U}=$,{items:I}=v;if(!Array.isArray(I)){(0,rq.checkStrictMode)(U,'"additionalItems" is ignored when "items" is not an array of schemas');return}bn($,I)}};function bn($,v){let{gen:U,schema:I,data:b,keyword:D,it:u}=$;u.items=!0;let w=U.const("len",ob._`${b}.length`);if(I===!1)$.setParams({len:v.length}),$.pass(ob._`${w} <= ${v.length}`);else if(typeof I=="object"&&!(0,rq.alwaysValidSchema)(u,I)){let J=U.var("valid",ob._`${w} <= ${v.length}`);U.if((0,ob.not)(J),()=>g(J)),$.ok(J)}function g(J){U.forRange("i",v.length,w,(X)=>{if($.subschema({keyword:D,dataProp:X,dataPropType:rq.Type.Num},J),!u.allErrors)U.if((0,ob.not)(J),()=>U.break())})}}Un.validateAdditionalItems=bn;Un.default=hU$});var iq=P((wn)=>{Object.defineProperty(wn,"__esModule",{value:!0});wn.validateTuple=void 0;var Dn=w$(),eX=Q$(),cU$=U4(),oU$={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code($){let{schema:v,it:U}=$;if(Array.isArray(v))return un($,"additionalItems",v);if(U.items=!0,(0,eX.alwaysValidSchema)(U,v))return;$.ok((0,cU$.validateArray)($))}};function un($,v,U=$.schema){let{gen:I,parentSchema:b,data:D,keyword:u,it:w}=$;if(X(b),w.opts.unevaluated&&U.length&&w.items!==!0)w.items=eX.mergeEvaluated.items(I,U.length,w.items);let g=I.name("valid"),J=I.const("len",Dn._`${D}.length`);U.forEach((W,G)=>{if((0,eX.alwaysValidSchema)(w,W))return;I.if(Dn._`${J} > ${G}`,()=>$.subschema({keyword:u,schemaProp:G,dataProp:G},g)),$.ok(g)});function X(W){let{opts:G,errSchemaPath:O}=w,z=U.length,Q=z===W.minItems&&(z===W.maxItems||W[v]===!1);if(G.strictTuples&&!Q){let Y=`"${u}" is ${z}-tuple, but minItems or maxItems/${v} are not specified or different at path "${O}"`;(0,eX.checkStrictMode)(w,Y,G.strictTuples)}}}wn.validateTuple=un;wn.default=oU$});var Xn=P((Jn)=>{Object.defineProperty(Jn,"__esModule",{value:!0});var dU$=iq(),pU$={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:($)=>(0,dU$.validateTuple)($,"items")};Jn.default=pU$});var On=P((Gn)=>{Object.defineProperty(Gn,"__esModule",{value:!0});var Wn=w$(),eU$=Q$(),sU$=U4(),$I$=Cq(),vI$={message:({params:{len:$}})=>Wn.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>Wn._`{limit: ${$}}`},bI$={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:vI$,code($){let{schema:v,parentSchema:U,it:I}=$,{prefixItems:b}=U;if(I.items=!0,(0,eU$.alwaysValidSchema)(I,v))return;if(b)(0,$I$.validateAdditionalItems)($,b);else $.ok((0,sU$.validateArray)($))}};Gn.default=bI$});var zn=P((Hn)=>{Object.defineProperty(Hn,"__esModule",{value:!0});var I4=w$(),sX=Q$(),II$={message:({params:{min:$,max:v}})=>v===void 0?I4.str`must contain at least ${$} valid item(s)`:I4.str`must contain at least ${$} and no more than ${v} valid item(s)`,params:({params:{min:$,max:v}})=>v===void 0?I4._`{minContains: ${$}}`:I4._`{minContains: ${$}, maxContains: ${v}}`},DI$={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:II$,code($){let{gen:v,schema:U,parentSchema:I,data:b,it:D}=$,u,w,{minContains:g,maxContains:J}=I;if(D.opts.next)u=g===void 0?1:g,w=J;else u=1;let X=v.const("len",I4._`${b}.length`);if($.setParams({min:u,max:w}),w===void 0&&u===0){(0,sX.checkStrictMode)(D,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(w!==void 0&&u>w){(0,sX.checkStrictMode)(D,'"minContains" > "maxContains" is always invalid'),$.fail();return}if((0,sX.alwaysValidSchema)(D,U)){let Q=I4._`${X} >= ${u}`;if(w!==void 0)Q=I4._`${Q} && ${X} <= ${w}`;$.pass(Q);return}D.items=!0;let W=v.name("valid");if(w===void 0&&u===1)O(W,()=>v.if(W,()=>v.break()));else if(u===0){if(v.let(W,!0),w!==void 0)v.if(I4._`${b}.length > 0`,G)}else v.let(W,!1),G();$.result(W,()=>$.reset());function G(){let Q=v.name("_valid"),Y=v.let("count",0);O(Q,()=>v.if(Q,()=>z(Y)))}function O(Q,Y){v.forRange("i",0,X,(K)=>{$.subschema({keyword:"contains",dataProp:K,dataPropType:sX.Type.Num,compositeRule:!0},Q),Y()})}function z(Q){if(v.code(I4._`${Q}++`),w===void 0)v.if(I4._`${Q} >= ${u}`,()=>v.assign(W,!0).break());else if(v.if(I4._`${Q} > ${w}`,()=>v.assign(W,!1).break()),u===1)v.assign(W,!0);else v.if(I4._`${Q} >= ${u}`,()=>v.assign(W,!0))}}};Hn.default=DI$});var qn=P((Vn)=>{Object.defineProperty(Vn,"__esModule",{value:!0});Vn.validateSchemaDeps=Vn.validatePropertyDeps=Vn.error=void 0;var xq=w$(),wI$=Q$(),PD=U4();Vn.error={message:({params:{property:$,depsCount:v,deps:U}})=>{let I=v===1?"property":"properties";return xq.str`must have ${I} ${U} when property ${$} is present`},params:({params:{property:$,depsCount:v,deps:U,missingProperty:I}})=>xq._`{property: ${$},
|
|
7
|
+
|| ${u} === "boolean" || ${b} === null`).assign(w,u$._`[${b}]`)}}}function kv$({gen:$,parentData:v,parentDataProperty:U},I){$.if(u$._`${v} !== undefined`,()=>$.assign(u$._`${v}[${U}]`,I))}function Oq($,v,U,I=SI.Correct){let b=I===SI.Correct?u$.operators.EQ:u$.operators.NEQ,D;switch($){case"null":return u$._`${v} ${b} null`;case"array":D=u$._`Array.isArray(${v})`;break;case"object":D=u$._`${v} && typeof ${v} == "object" && !Array.isArray(${v})`;break;case"integer":D=u(u$._`!(${v} % 1) && !isNaN(${v})`);break;case"number":D=u();break;default:return u$._`typeof ${v} ${b} ${$}`}return I===SI.Correct?D:(0,u$.not)(D);function u(w=u$.nil){return(0,u$.and)(u$._`typeof ${v} == "number"`,w,U?u$._`isFinite(${v})`:u$.nil)}}ek.checkDataType=Oq;function Hq($,v,U,I){if($.length===1)return Oq($[0],v,U,I);let b,D=(0,dk.toHash)($);if(D.array&&D.object){let u=u$._`typeof ${v} != "object"`;b=D.null?u:u$._`!${v} || ${u}`,delete D.null,delete D.array,delete D.object}else b=u$.nil;if(D.number)delete D.integer;for(let u in D)b=(0,u$.and)(b,Oq(u,v,U,I));return b}ek.checkDataTypes=Hq;var Ev$={message:({schema:$})=>`must be ${$}`,params:({schema:$,schemaValue:v})=>typeof $=="string"?u$._`{type: ${$}}`:u$._`{type: ${v}}`};function zq($){let v=Rv$($);(0,Mv$.reportError)(v,Ev$)}ek.reportTypeError=zq;function Rv$($){let{gen:v,data:U,schema:I}=$,b=(0,dk.schemaRefOrVal)($,I,"type");return{gen:v,keyword:"type",data:U,schema:I.type,schemaCode:b,schemaValue:b,parentSchema:I,params:{},it:$}}});var UE=P((vE)=>{Object.defineProperty(vE,"__esModule",{value:!0});vE.assignDefaults=void 0;var MI=w$(),fv$=Q$();function yv$($,v){let{properties:U,items:I}=$.schema;if(v==="object"&&U)for(let b in U)$E($,b,U[b].default);else if(v==="array"&&Array.isArray(I))I.forEach((b,D)=>$E($,D,b.default))}vE.assignDefaults=yv$;function $E($,v,U){let{gen:I,compositeRule:b,data:D,opts:u}=$;if(U===void 0)return;let w=MI._`${D}${(0,MI.getProperty)(v)}`;if(b){(0,fv$.checkStrictMode)($,`default is ignored for: ${w}`);return}let g=MI._`${w} === undefined`;if(u.useDefaults==="empty")g=MI._`${g} || ${w} === null || ${w} === ""`;I.if(g,MI._`${w} = ${(0,MI.stringify)(U)}`)}});var U4=P((uE)=>{Object.defineProperty(uE,"__esModule",{value:!0});uE.validateUnion=uE.validateArray=uE.usePattern=uE.callValidateCode=uE.schemaProperties=uE.allSchemaProperties=uE.noPropertyInData=uE.propertyInData=uE.isOwnProperty=uE.hasPropFunc=uE.reportMissingProp=uE.checkMissingProp=uE.checkReportMissingProp=void 0;var i$=w$(),Qq=Q$(),a6=g6(),hv$=Q$();function mv$($,v){let{gen:U,data:I,it:b}=$;U.if(Vq(U,I,v,b.opts.ownProperties),()=>{$.setParams({missingProperty:i$._`${v}`},!0),$.error()})}uE.checkReportMissingProp=mv$;function cv$({gen:$,data:v,it:{opts:U}},I,b){return(0,i$.or)(...I.map((D)=>(0,i$.and)(Vq($,v,D,U.ownProperties),i$._`${b} = ${D}`)))}uE.checkMissingProp=cv$;function ov$($,v){$.setParams({missingProperty:v},!0),$.error()}uE.reportMissingProp=ov$;function IE($){return $.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:i$._`Object.prototype.hasOwnProperty`})}uE.hasPropFunc=IE;function Yq($,v,U){return i$._`${IE($)}.call(${v}, ${U})`}uE.isOwnProperty=Yq;function tv$($,v,U,I){let b=i$._`${v}${(0,i$.getProperty)(U)} !== undefined`;return I?i$._`${b} && ${Yq($,v,U)}`:b}uE.propertyInData=tv$;function Vq($,v,U,I){let b=i$._`${v}${(0,i$.getProperty)(U)} === undefined`;return I?(0,i$.or)(b,(0,i$.not)(Yq($,v,U))):b}uE.noPropertyInData=Vq;function DE($){return $?Object.keys($).filter((v)=>v!=="__proto__"):[]}uE.allSchemaProperties=DE;function dv$($,v){return DE(v).filter((U)=>!(0,Qq.alwaysValidSchema)($,v[U]))}uE.schemaProperties=dv$;function pv$({schemaCode:$,data:v,it:{gen:U,topSchemaRef:I,schemaPath:b,errorPath:D},it:u},w,g,J){let X=J?i$._`${$}, ${v}, ${I}${b}`:v,W=[[a6.default.instancePath,(0,i$.strConcat)(a6.default.instancePath,D)],[a6.default.parentData,u.parentData],[a6.default.parentDataProperty,u.parentDataProperty],[a6.default.rootData,a6.default.rootData]];if(u.opts.dynamicRef)W.push([a6.default.dynamicAnchors,a6.default.dynamicAnchors]);let G=i$._`${X}, ${U.object(...W)}`;return g!==i$.nil?i$._`${w}.call(${g}, ${G})`:i$._`${w}(${G})`}uE.callValidateCode=pv$;var av$=i$._`new RegExp`;function ev$({gen:$,it:{opts:v}},U){let I=v.unicodeRegExp?"u":"",{regExp:b}=v.code,D=b(U,I);return $.scopeValue("pattern",{key:D.toString(),ref:D,code:i$._`${b.code==="new RegExp"?av$:(0,hv$.useFunc)($,b)}(${U}, ${I})`})}uE.usePattern=ev$;function sv$($){let{gen:v,data:U,keyword:I,it:b}=$,D=v.name("valid");if(b.allErrors){let w=v.let("valid",!0);return u(()=>v.assign(w,!1)),w}return v.var(D,!0),u(()=>v.break()),D;function u(w){let g=v.const("len",i$._`${U}.length`);v.forRange("i",0,g,(J)=>{$.subschema({keyword:I,dataProp:J,dataPropType:Qq.Type.Num},D),v.if((0,i$.not)(D),w)})}}uE.validateArray=sv$;function $4$($){let{gen:v,schema:U,keyword:I,it:b}=$;if(!Array.isArray(U))throw Error("ajv implementation error");if(U.some((g)=>(0,Qq.alwaysValidSchema)(b,g))&&!b.opts.unevaluated)return;let u=v.let("valid",!1),w=v.name("_valid");v.block(()=>U.forEach((g,J)=>{let X=$.subschema({keyword:I,schemaProp:J,compositeRule:!0},w);if(v.assign(u,i$._`${u} || ${w}`),!$.mergeValidEvaluated(X,w))v.if((0,i$.not)(u))})),$.result(u,()=>$.reset(),()=>$.error(!0))}uE.validateUnion=$4$});var GE=P((XE)=>{Object.defineProperty(XE,"__esModule",{value:!0});XE.validateKeywordUsage=XE.validSchemaType=XE.funcKeywordCode=XE.macroKeywordCode=void 0;var Fv=w$(),hb=g6(),O4$=U4(),H4$=wD();function z4$($,v){let{gen:U,keyword:I,schema:b,parentSchema:D,it:u}=$,w=v.macro.call(u.self,b,D,u),g=JE(U,I,w);if(u.opts.validateSchema!==!1)u.self.validateSchema(w,!0);let J=U.name("valid");$.subschema({schema:w,schemaPath:Fv.nil,errSchemaPath:`${u.errSchemaPath}/${I}`,topSchemaRef:g,compositeRule:!0},J),$.pass(J,()=>$.error(!0))}XE.macroKeywordCode=z4$;function Q4$($,v){var U;let{gen:I,keyword:b,schema:D,parentSchema:u,$data:w,it:g}=$;V4$(g,v);let J=!w&&v.compile?v.compile.call(g.self,D,u,g):v.validate,X=JE(I,b,J),W=I.let("valid");$.block$data(W,G),$.ok((U=v.valid)!==null&&U!==void 0?U:W);function G(){if(v.errors===!1){if(Q(),v.modifying)gE($);Y(()=>$.error())}else{let K=v.async?O():z();if(v.modifying)gE($);Y(()=>Y4$($,K))}}function O(){let K=I.let("ruleErrs",null);return I.try(()=>Q(Fv._`await `),(F)=>I.assign(W,!1).if(Fv._`${F} instanceof ${g.ValidationError}`,()=>I.assign(K,Fv._`${F}.errors`),()=>I.throw(F))),K}function z(){let K=Fv._`${X}.errors`;return I.assign(K,null),Q(Fv.nil),K}function Q(K=v.async?Fv._`await `:Fv.nil){let F=g.opts.passContext?hb.default.this:hb.default.self,S=!(("compile"in v)&&!w||v.schema===!1);I.assign(W,Fv._`${K}${(0,O4$.callValidateCode)($,X,F,S)}`,v.modifying)}function Y(K){var F;I.if((0,Fv.not)((F=v.valid)!==null&&F!==void 0?F:W),K)}}XE.funcKeywordCode=Q4$;function gE($){let{gen:v,data:U,it:I}=$;v.if(I.parentData,()=>v.assign(U,Fv._`${I.parentData}[${I.parentDataProperty}]`))}function Y4$($,v){let{gen:U}=$;U.if(Fv._`Array.isArray(${v})`,()=>{U.assign(hb.default.vErrors,Fv._`${hb.default.vErrors} === null ? ${v} : ${hb.default.vErrors}.concat(${v})`).assign(hb.default.errors,Fv._`${hb.default.vErrors}.length`),(0,H4$.extendErrors)($)},()=>$.error())}function V4$({schemaEnv:$},v){if(v.async&&!$.$async)throw Error("async keyword in sync schema")}function JE($,v,U){if(U===void 0)throw Error(`keyword "${v}" failed to compile`);return $.scopeValue("keyword",typeof U=="function"?{ref:U}:{ref:U,code:(0,Fv.stringify)(U)})}function L4$($,v,U=!1){return!v.length||v.some((I)=>I==="array"?Array.isArray($):I==="object"?$&&typeof $=="object"&&!Array.isArray($):typeof $==I||U&&typeof $>"u")}XE.validSchemaType=L4$;function K4$({schema:$,opts:v,self:U,errSchemaPath:I},b,D){if(Array.isArray(b.keyword)?!b.keyword.includes(D):b.keyword!==D)throw Error("ajv implementation error");let u=b.dependencies;if(u===null||u===void 0?void 0:u.some((w)=>!Object.prototype.hasOwnProperty.call($,w)))throw Error(`parent schema must have dependencies of ${D}: ${u.join(",")}`);if(b.validateSchema){if(!b.validateSchema($[D])){let g=`keyword "${D}" value is invalid at path "${I}": `+U.errorsText(b.validateSchema.errors);if(v.validateSchema==="log")U.logger.error(g);else throw Error(g)}}}XE.validateKeywordUsage=K4$});var QE=P((HE)=>{Object.defineProperty(HE,"__esModule",{value:!0});HE.extendSubschemaMode=HE.extendSubschemaData=HE.getSubschema=void 0;var r4=w$(),OE=Q$();function P4$($,{keyword:v,schemaProp:U,schema:I,schemaPath:b,errSchemaPath:D,topSchemaRef:u}){if(v!==void 0&&I!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(v!==void 0){let w=$.schema[v];return U===void 0?{schema:w,schemaPath:r4._`${$.schemaPath}${(0,r4.getProperty)(v)}`,errSchemaPath:`${$.errSchemaPath}/${v}`}:{schema:w[U],schemaPath:r4._`${$.schemaPath}${(0,r4.getProperty)(v)}${(0,r4.getProperty)(U)}`,errSchemaPath:`${$.errSchemaPath}/${v}/${(0,OE.escapeFragment)(U)}`}}if(I!==void 0){if(b===void 0||D===void 0||u===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:I,schemaPath:b,topSchemaRef:u,errSchemaPath:D}}throw Error('either "keyword" or "schema" must be passed')}HE.getSubschema=P4$;function j4$($,v,{dataProp:U,dataPropType:I,data:b,dataTypes:D,propertyName:u}){if(b!==void 0&&U!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:w}=v;if(U!==void 0){let{errorPath:J,dataPathArr:X,opts:W}=v,G=w.let("data",r4._`${v.data}${(0,r4.getProperty)(U)}`,!0);g(G),$.errorPath=r4.str`${J}${(0,OE.getErrorPath)(U,I,W.jsPropertySyntax)}`,$.parentDataProperty=r4._`${U}`,$.dataPathArr=[...X,$.parentDataProperty]}if(b!==void 0){let J=b instanceof r4.Name?b:w.let("data",b,!0);if(g(J),u!==void 0)$.propertyName=u}if(D)$.dataTypes=D;function g(J){$.data=J,$.dataLevel=v.dataLevel+1,$.dataTypes=[],v.definedProperties=new Set,$.parentData=v.data,$.dataNames=[...v.dataNames,J]}}HE.extendSubschemaData=j4$;function N4$($,{jtdDiscriminator:v,jtdMetadata:U,compositeRule:I,createErrors:b,allErrors:D}){if(I!==void 0)$.compositeRule=I;if(b!==void 0)$.createErrors=b;if(D!==void 0)$.allErrors=D;$.jtdDiscriminator=v,$.jtdMetadata=U}HE.extendSubschemaMode=N4$});var Lq=P((l_$,YE)=>{YE.exports=function $(v,U){if(v===U)return!0;if(v&&U&&typeof v=="object"&&typeof U=="object"){if(v.constructor!==U.constructor)return!1;var I,b,D;if(Array.isArray(v)){if(I=v.length,I!=U.length)return!1;for(b=I;b--!==0;)if(!$(v[b],U[b]))return!1;return!0}if(v.constructor===RegExp)return v.source===U.source&&v.flags===U.flags;if(v.valueOf!==Object.prototype.valueOf)return v.valueOf()===U.valueOf();if(v.toString!==Object.prototype.toString)return v.toString()===U.toString();if(D=Object.keys(v),I=D.length,I!==Object.keys(U).length)return!1;for(b=I;b--!==0;)if(!Object.prototype.hasOwnProperty.call(U,D[b]))return!1;for(b=I;b--!==0;){var u=D[b];if(!$(v[u],U[u]))return!1}return!0}return v!==v&&U!==U}});var LE=P((f_$,VE)=>{var e6=VE.exports=function($,v,U){if(typeof v=="function")U=v,v={};U=v.cb||U;var I=typeof U=="function"?U:U.pre||function(){},b=U.post||function(){};nX(v,I,b,$,"",$)};e6.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};e6.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};e6.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};e6.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function nX($,v,U,I,b,D,u,w,g,J){if(I&&typeof I=="object"&&!Array.isArray(I)){v(I,b,D,u,w,g,J);for(var X in I){var W=I[X];if(Array.isArray(W)){if(X in e6.arrayKeywords)for(var G=0;G<W.length;G++)nX($,v,U,W[G],b+"/"+X+"/"+G,D,b,X,I,G)}else if(X in e6.propsKeywords){if(W&&typeof W=="object")for(var O in W)nX($,v,U,W[O],b+"/"+X+"/"+_4$(O),D,b,X,I,O)}else if(X in e6.keywords||$.allKeys&&!(X in e6.skipKeywords))nX($,v,U,W,b+"/"+X,D,b,X,I)}U(I,b,D,u,w,g,J)}}function _4$($){return $.replace(/~/g,"~0").replace(/\//g,"~1")}});var JD=P((AE)=>{Object.defineProperty(AE,"__esModule",{value:!0});AE.getSchemaRefs=AE.resolveUrl=AE.normalizeId=AE._getFullPath=AE.getFullPath=AE.inlineRef=void 0;var F4$=Q$(),Z4$=Lq(),T4$=LE(),k4$=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function E4$($,v=!0){if(typeof $=="boolean")return!0;if(v===!0)return!Kq($);if(!v)return!1;return KE($)<=v}AE.inlineRef=E4$;var R4$=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Kq($){for(let v in $){if(R4$.has(v))return!0;let U=$[v];if(Array.isArray(U)&&U.some(Kq))return!0;if(typeof U=="object"&&Kq(U))return!0}return!1}function KE($){let v=0;for(let U in $){if(U==="$ref")return 1/0;if(v++,k4$.has(U))continue;if(typeof $[U]=="object")(0,F4$.eachItem)($[U],(I)=>v+=KE(I));if(v===1/0)return 1/0}return v}function qE($,v="",U){if(U!==!1)v=_I(v);let I=$.parse(v);return BE($,I)}AE.getFullPath=qE;function BE($,v){return $.serialize(v).split("#")[0]+"#"}AE._getFullPath=BE;var n4$=/#\/?$/;function _I($){return $?$.replace(n4$,""):""}AE.normalizeId=_I;function r4$($,v,U){return U=_I(U),$.resolve(v,U)}AE.resolveUrl=r4$;var C4$=/^[a-z_][-a-z0-9._]*$/i;function i4$($,v){if(typeof $=="boolean")return{};let{schemaId:U,uriResolver:I}=this.opts,b=_I($[U]||v),D={"":b},u=qE(I,b,!1),w={},g=new Set;return T4$($,{allKeys:!0},(W,G,O,z)=>{if(z===void 0)return;let Q=u+G,Y=D[z];if(typeof W[U]=="string")Y=K.call(this,W[U]);F.call(this,W.$anchor),F.call(this,W.$dynamicAnchor),D[G]=Y;function K(S){let j=this.opts.uriResolver.resolve;if(S=_I(Y?j(Y,S):S),g.has(S))throw X(S);g.add(S);let A=this.refs[S];if(typeof A=="string")A=this.refs[A];if(typeof A=="object")J(W,A.schema,S);else if(S!==_I(Q))if(S[0]==="#")J(W,w[S],S),w[S]=W;else this.refs[S]=Q;return S}function F(S){if(typeof S=="string"){if(!C4$.test(S))throw Error(`invalid anchor "${S}"`);K.call(this,`#${S}`)}}}),w;function J(W,G,O){if(G!==void 0&&!Z4$(W,G))throw X(O)}function X(W){return Error(`reference "${W}" resolves to more than one schema`)}}AE.getSchemaRefs=i4$});var GD=P((iE)=>{Object.defineProperty(iE,"__esModule",{value:!0});iE.getData=iE.KeywordCxt=iE.validateFunctionCode=void 0;var _E=fk(),jE=gD(),Bq=Gq(),rX=gD(),m4$=UE(),WD=GE(),qq=QE(),t=w$(),b$=g6(),c4$=JD(),J6=Q$(),XD=wD();function o4$($){if(TE($)){if(kE($),ZE($)){p4$($);return}}FE($,()=>(0,_E.topBoolOrEmptySchema)($))}iE.validateFunctionCode=o4$;function FE({gen:$,validateName:v,schema:U,schemaEnv:I,opts:b},D){if(b.code.es5)$.func(v,t._`${b$.default.data}, ${b$.default.valCxt}`,I.$async,()=>{$.code(t._`"use strict"; ${NE(U,b)}`),d4$($,b),$.code(D)});else $.func(v,t._`${b$.default.data}, ${t4$(b)}`,I.$async,()=>$.code(NE(U,b)).code(D))}function t4$($){return t._`{${b$.default.instancePath}="", ${b$.default.parentData}, ${b$.default.parentDataProperty}, ${b$.default.rootData}=${b$.default.data}${$.dynamicRef?t._`, ${b$.default.dynamicAnchors}={}`:t.nil}}={}`}function d4$($,v){$.if(b$.default.valCxt,()=>{if($.var(b$.default.instancePath,t._`${b$.default.valCxt}.${b$.default.instancePath}`),$.var(b$.default.parentData,t._`${b$.default.valCxt}.${b$.default.parentData}`),$.var(b$.default.parentDataProperty,t._`${b$.default.valCxt}.${b$.default.parentDataProperty}`),$.var(b$.default.rootData,t._`${b$.default.valCxt}.${b$.default.rootData}`),v.dynamicRef)$.var(b$.default.dynamicAnchors,t._`${b$.default.valCxt}.${b$.default.dynamicAnchors}`)},()=>{if($.var(b$.default.instancePath,t._`""`),$.var(b$.default.parentData,t._`undefined`),$.var(b$.default.parentDataProperty,t._`undefined`),$.var(b$.default.rootData,b$.default.data),v.dynamicRef)$.var(b$.default.dynamicAnchors,t._`{}`)})}function p4$($){let{schema:v,opts:U,gen:I}=$;FE($,()=>{if(U.$comment&&v.$comment)RE($);if(v6$($),I.let(b$.default.vErrors,null),I.let(b$.default.errors,0),U.unevaluated)a4$($);EE($),I6$($)});return}function a4$($){let{gen:v,validateName:U}=$;$.evaluated=v.const("evaluated",t._`${U}.evaluated`),v.if(t._`${$.evaluated}.dynamicProps`,()=>v.assign(t._`${$.evaluated}.props`,t._`undefined`)),v.if(t._`${$.evaluated}.dynamicItems`,()=>v.assign(t._`${$.evaluated}.items`,t._`undefined`))}function NE($,v){let U=typeof $=="object"&&$[v.schemaId];return U&&(v.code.source||v.code.process)?t._`/*# sourceURL=${U} */`:t.nil}function e4$($,v){if(TE($)){if(kE($),ZE($)){s4$($,v);return}}(0,_E.boolOrEmptySchema)($,v)}function ZE({schema:$,self:v}){if(typeof $=="boolean")return!$;for(let U in $)if(v.RULES.all[U])return!0;return!1}function TE($){return typeof $.schema!="boolean"}function s4$($,v){let{schema:U,gen:I,opts:b}=$;if(b.$comment&&U.$comment)RE($);b6$($),U6$($);let D=I.const("_errs",b$.default.errors);EE($,D),I.var(v,t._`${D} === ${b$.default.errors}`)}function kE($){(0,J6.checkUnknownRules)($),$6$($)}function EE($,v){if($.opts.jtd)return SE($,[],!1,v);let U=(0,jE.getSchemaTypes)($.schema),I=(0,jE.coerceAndCheckDataType)($,U);SE($,U,!I,v)}function $6$($){let{schema:v,errSchemaPath:U,opts:I,self:b}=$;if(v.$ref&&I.ignoreKeywordsWithRef&&(0,J6.schemaHasRulesButRef)(v,b.RULES))b.logger.warn(`$ref: keywords ignored in schema at path "${U}"`)}function v6$($){let{schema:v,opts:U}=$;if(v.default!==void 0&&U.useDefaults&&U.strictSchema)(0,J6.checkStrictMode)($,"default is ignored in the schema root")}function b6$($){let v=$.schema[$.opts.schemaId];if(v)$.baseId=(0,c4$.resolveUrl)($.opts.uriResolver,$.baseId,v)}function U6$($){if($.schema.$async&&!$.schemaEnv.$async)throw Error("async schema in sync schema")}function RE({gen:$,schemaEnv:v,schema:U,errSchemaPath:I,opts:b}){let D=U.$comment;if(b.$comment===!0)$.code(t._`${b$.default.self}.logger.log(${D})`);else if(typeof b.$comment=="function"){let u=t.str`${I}/$comment`,w=$.scopeValue("root",{ref:v.root});$.code(t._`${b$.default.self}.opts.$comment(${D}, ${u}, ${w}.schema)`)}}function I6$($){let{gen:v,schemaEnv:U,validateName:I,ValidationError:b,opts:D}=$;if(U.$async)v.if(t._`${b$.default.errors} === 0`,()=>v.return(b$.default.data),()=>v.throw(t._`new ${b}(${b$.default.vErrors})`));else{if(v.assign(t._`${I}.errors`,b$.default.vErrors),D.unevaluated)D6$($);v.return(t._`${b$.default.errors} === 0`)}}function D6$({gen:$,evaluated:v,props:U,items:I}){if(U instanceof t.Name)$.assign(t._`${v}.props`,U);if(I instanceof t.Name)$.assign(t._`${v}.items`,I)}function SE($,v,U,I){let{gen:b,schema:D,data:u,allErrors:w,opts:g,self:J}=$,{RULES:X}=J;if(D.$ref&&(g.ignoreKeywordsWithRef||!(0,J6.schemaHasRulesButRef)(D,X))){b.block(()=>rE($,"$ref",X.all.$ref.definition));return}if(!g.jtd)u6$($,v);b.block(()=>{for(let G of X.rules)W(G);W(X.post)});function W(G){if(!(0,Bq.shouldUseGroup)(D,G))return;if(G.type){if(b.if((0,rX.checkDataType)(G.type,u,g.strictNumbers)),ME($,G),v.length===1&&v[0]===G.type&&U)b.else(),(0,rX.reportTypeError)($);b.endIf()}else ME($,G);if(!w)b.if(t._`${b$.default.errors} === ${I||0}`)}}function ME($,v){let{gen:U,schema:I,opts:{useDefaults:b}}=$;if(b)(0,m4$.assignDefaults)($,v.type);U.block(()=>{for(let D of v.rules)if((0,Bq.shouldUseRule)(I,D))rE($,D.keyword,D.definition,v.type)})}function u6$($,v){if($.schemaEnv.meta||!$.opts.strictTypes)return;if(w6$($,v),!$.opts.allowUnionTypes)g6$($,v);J6$($,$.dataTypes)}function w6$($,v){if(!v.length)return;if(!$.dataTypes.length){$.dataTypes=v;return}v.forEach((U)=>{if(!nE($.dataTypes,U))Aq($,`type "${U}" not allowed by context "${$.dataTypes.join(",")}"`)}),W6$($,v)}function g6$($,v){if(v.length>1&&!(v.length===2&&v.includes("null")))Aq($,"use allowUnionTypes to allow union type keyword")}function J6$($,v){let U=$.self.RULES.all;for(let I in U){let b=U[I];if(typeof b=="object"&&(0,Bq.shouldUseRule)($.schema,b)){let{type:D}=b.definition;if(D.length&&!D.some((u)=>X6$(v,u)))Aq($,`missing type "${D.join(",")}" for keyword "${I}"`)}}}function X6$($,v){return $.includes(v)||v==="number"&&$.includes("integer")}function nE($,v){return $.includes(v)||v==="integer"&&$.includes("number")}function W6$($,v){let U=[];for(let I of $.dataTypes)if(nE(v,I))U.push(I);else if(v.includes("integer")&&I==="number")U.push("integer");$.dataTypes=U}function Aq($,v){let U=$.schemaEnv.baseId+$.errSchemaPath;v+=` at "${U}" (strictTypes)`,(0,J6.checkStrictMode)($,v,$.opts.strictTypes)}class Pq{constructor($,v,U){if((0,WD.validateKeywordUsage)($,v,U),this.gen=$.gen,this.allErrors=$.allErrors,this.keyword=U,this.data=$.data,this.schema=$.schema[U],this.$data=v.$data&&$.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,J6.schemaRefOrVal)($,this.schema,U,this.$data),this.schemaType=v.schemaType,this.parentSchema=$.schema,this.params={},this.it=$,this.def=v,this.$data)this.schemaCode=$.gen.const("vSchema",CE(this.$data,$));else if(this.schemaCode=this.schemaValue,!(0,WD.validSchemaType)(this.schema,v.schemaType,v.allowUndefined))throw Error(`${U} value must be ${JSON.stringify(v.schemaType)}`);if("code"in v?v.trackErrors:v.errors!==!1)this.errsCount=$.gen.const("_errs",b$.default.errors)}result($,v,U){this.failResult((0,t.not)($),v,U)}failResult($,v,U){if(this.gen.if($),U)U();else this.error();if(v){if(this.gen.else(),v(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass($,v){this.failResult((0,t.not)($),void 0,v)}fail($){if($===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if($),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data($){if(!this.$data)return this.fail($);let{schemaCode:v}=this;this.fail(t._`${v} !== undefined && (${(0,t.or)(this.invalid$data(),$)})`)}error($,v,U){if(v){this.setParams(v),this._error($,U),this.setParams({});return}this._error($,U)}_error($,v){($?XD.reportExtraError:XD.reportError)(this,this.def.error,v)}$dataError(){(0,XD.reportError)(this,this.def.$dataError||XD.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,XD.resetErrorsCount)(this.gen,this.errsCount)}ok($){if(!this.allErrors)this.gen.if($)}setParams($,v){if(v)Object.assign(this.params,$);else this.params=$}block$data($,v,U=t.nil){this.gen.block(()=>{this.check$data($,U),v()})}check$data($=t.nil,v=t.nil){if(!this.$data)return;let{gen:U,schemaCode:I,schemaType:b,def:D}=this;if(U.if((0,t.or)(t._`${I} === undefined`,v)),$!==t.nil)U.assign($,!0);if(b.length||D.validateSchema){if(U.elseIf(this.invalid$data()),this.$dataError(),$!==t.nil)U.assign($,!1)}U.else()}invalid$data(){let{gen:$,schemaCode:v,schemaType:U,def:I,it:b}=this;return(0,t.or)(D(),u());function D(){if(U.length){if(!(v instanceof t.Name))throw Error("ajv implementation error");let w=Array.isArray(U)?U:[U];return t._`${(0,rX.checkDataTypes)(w,v,b.opts.strictNumbers,rX.DataType.Wrong)}`}return t.nil}function u(){if(I.validateSchema){let w=$.scopeValue("validate$data",{ref:I.validateSchema});return t._`!${w}(${v})`}return t.nil}}subschema($,v){let U=(0,qq.getSubschema)(this.it,$);(0,qq.extendSubschemaData)(U,this.it,$),(0,qq.extendSubschemaMode)(U,$);let I={...this.it,...U,items:void 0,props:void 0};return e4$(I,v),I}mergeEvaluated($,v){let{it:U,gen:I}=this;if(!U.opts.unevaluated)return;if(U.props!==!0&&$.props!==void 0)U.props=J6.mergeEvaluated.props(I,$.props,U.props,v);if(U.items!==!0&&$.items!==void 0)U.items=J6.mergeEvaluated.items(I,$.items,U.items,v)}mergeValidEvaluated($,v){let{it:U,gen:I}=this;if(U.opts.unevaluated&&(U.props!==!0||U.items!==!0))return I.if(v,()=>this.mergeEvaluated($,t.Name)),!0}}iE.KeywordCxt=Pq;function rE($,v,U,I){let b=new Pq($,U,v);if("code"in U)U.code(b,I);else if(b.$data&&U.validate)(0,WD.funcKeywordCode)(b,U);else if("macro"in U)(0,WD.macroKeywordCode)(b,U);else if(U.compile||U.validate)(0,WD.funcKeywordCode)(b,U)}var G6$=/^\/(?:[^~]|~0|~1)*$/,O6$=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function CE($,{dataLevel:v,dataNames:U,dataPathArr:I}){let b,D;if($==="")return b$.default.rootData;if($[0]==="/"){if(!G6$.test($))throw Error(`Invalid JSON-pointer: ${$}`);b=$,D=b$.default.rootData}else{let J=O6$.exec($);if(!J)throw Error(`Invalid JSON-pointer: ${$}`);let X=+J[1];if(b=J[2],b==="#"){if(X>=v)throw Error(g("property/index",X));return I[v-X]}if(X>v)throw Error(g("data",X));if(D=U[v-X],!b)return D}let u=D,w=b.split("/");for(let J of w)if(J)D=t._`${D}${(0,t.getProperty)((0,J6.unescapeJsonPointer)(J))}`,u=t._`${u} && ${D}`;return u;function g(J,X){return`Cannot access ${J} ${X} levels up, current level is ${v}`}}iE.getData=CE});var CX=P((fE)=>{Object.defineProperty(fE,"__esModule",{value:!0});class lE extends Error{constructor($){super("validation failed");this.errors=$,this.ajv=this.validation=!0}}fE.default=lE});var OD=P((hE)=>{Object.defineProperty(hE,"__esModule",{value:!0});var jq=JD();class yE extends Error{constructor($,v,U,I){super(I||`can't resolve reference ${U} from id ${v}`);this.missingRef=(0,jq.resolveUrl)($,v,U),this.missingSchema=(0,jq.normalizeId)((0,jq.getFullPath)($,this.missingRef))}}hE.default=yE});var xX=P((oE)=>{Object.defineProperty(oE,"__esModule",{value:!0});oE.resolveSchema=oE.getCompilingSchema=oE.resolveRef=oE.compileSchema=oE.SchemaEnv=void 0;var z4=w$(),V6$=CX(),mb=g6(),Q4=JD(),mE=Q$(),L6$=GD();class HD{constructor($){var v;this.refs={},this.dynamicAnchors={};let U;if(typeof $.schema=="object")U=$.schema;this.schema=$.schema,this.schemaId=$.schemaId,this.root=$.root||this,this.baseId=(v=$.baseId)!==null&&v!==void 0?v:(0,Q4.normalizeId)(U===null||U===void 0?void 0:U[$.schemaId||"$id"]),this.schemaPath=$.schemaPath,this.localRefs=$.localRefs,this.meta=$.meta,this.$async=U===null||U===void 0?void 0:U.$async,this.refs={}}}oE.SchemaEnv=HD;function Sq($){let v=cE.call(this,$);if(v)return v;let U=(0,Q4.getFullPath)(this.opts.uriResolver,$.root.baseId),{es5:I,lines:b}=this.opts.code,{ownProperties:D}=this.opts,u=new z4.CodeGen(this.scope,{es5:I,lines:b,ownProperties:D}),w;if($.$async)w=u.scopeValue("Error",{ref:V6$.default,code:z4._`require("ajv/dist/runtime/validation_error").default`});let g=u.scopeName("validate");$.validateName=g;let J={gen:u,allErrors:this.opts.allErrors,data:mb.default.data,parentData:mb.default.parentData,parentDataProperty:mb.default.parentDataProperty,dataNames:[mb.default.data],dataPathArr:[z4.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:u.scopeValue("schema",this.opts.code.source===!0?{ref:$.schema,code:(0,z4.stringify)($.schema)}:{ref:$.schema}),validateName:g,ValidationError:w,schema:$.schema,schemaEnv:$,rootId:U,baseId:$.baseId||U,schemaPath:z4.nil,errSchemaPath:$.schemaPath||(this.opts.jtd?"":"#"),errorPath:z4._`""`,opts:this.opts,self:this},X;try{this._compilations.add($),(0,L6$.validateFunctionCode)(J),u.optimize(this.opts.code.optimize);let W=u.toString();if(X=`${u.scopeRefs(mb.default.scope)}return ${W}`,this.opts.code.process)X=this.opts.code.process(X,$);let O=Function(`${mb.default.self}`,`${mb.default.scope}`,X)(this,this.scope.get());if(this.scope.value(g,{ref:O}),O.errors=null,O.schema=$.schema,O.schemaEnv=$,$.$async)O.$async=!0;if(this.opts.code.source===!0)O.source={validateName:g,validateCode:W,scopeValues:u._values};if(this.opts.unevaluated){let{props:z,items:Q}=J;if(O.evaluated={props:z instanceof z4.Name?void 0:z,items:Q instanceof z4.Name?void 0:Q,dynamicProps:z instanceof z4.Name,dynamicItems:Q instanceof z4.Name},O.source)O.source.evaluated=(0,z4.stringify)(O.evaluated)}return $.validate=O,$}catch(W){if(delete $.validate,delete $.validateName,X)this.logger.error("Error compiling schema, function code:",X);throw W}finally{this._compilations.delete($)}}oE.compileSchema=Sq;function K6$($,v,U){var I;U=(0,Q4.resolveUrl)(this.opts.uriResolver,v,U);let b=$.refs[U];if(b)return b;let D=A6$.call(this,$,U);if(D===void 0){let u=(I=$.localRefs)===null||I===void 0?void 0:I[U],{schemaId:w}=this.opts;if(u)D=new HD({schema:u,schemaId:w,root:$,baseId:v})}if(D===void 0)return;return $.refs[U]=q6$.call(this,D)}oE.resolveRef=K6$;function q6$($){if((0,Q4.inlineRef)($.schema,this.opts.inlineRefs))return $.schema;return $.validate?$:Sq.call(this,$)}function cE($){for(let v of this._compilations)if(B6$(v,$))return v}oE.getCompilingSchema=cE;function B6$($,v){return $.schema===v.schema&&$.root===v.root&&$.baseId===v.baseId}function A6$($,v){let U;while(typeof(U=this.refs[v])=="string")v=U;return U||this.schemas[v]||iX.call(this,$,v)}function iX($,v){let U=this.opts.uriResolver.parse(v),I=(0,Q4._getFullPath)(this.opts.uriResolver,U),b=(0,Q4.getFullPath)(this.opts.uriResolver,$.baseId,void 0);if(Object.keys($.schema).length>0&&I===b)return Nq.call(this,U,$);let D=(0,Q4.normalizeId)(I),u=this.refs[D]||this.schemas[D];if(typeof u=="string"){let w=iX.call(this,$,u);if(typeof(w===null||w===void 0?void 0:w.schema)!=="object")return;return Nq.call(this,U,w)}if(typeof(u===null||u===void 0?void 0:u.schema)!=="object")return;if(!u.validate)Sq.call(this,u);if(D===(0,Q4.normalizeId)(v)){let{schema:w}=u,{schemaId:g}=this.opts,J=w[g];if(J)b=(0,Q4.resolveUrl)(this.opts.uriResolver,b,J);return new HD({schema:w,schemaId:g,root:$,baseId:b})}return Nq.call(this,U,u)}oE.resolveSchema=iX;var P6$=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function Nq($,{baseId:v,schema:U,root:I}){var b;if(((b=$.fragment)===null||b===void 0?void 0:b[0])!=="/")return;for(let w of $.fragment.slice(1).split("/")){if(typeof U==="boolean")return;let g=U[(0,mE.unescapeFragment)(w)];if(g===void 0)return;U=g;let J=typeof U==="object"&&U[this.opts.schemaId];if(!P6$.has(w)&&J)v=(0,Q4.resolveUrl)(this.opts.uriResolver,v,J)}let D;if(typeof U!="boolean"&&U.$ref&&!(0,mE.schemaHasRulesButRef)(U,this.RULES)){let w=(0,Q4.resolveUrl)(this.opts.uriResolver,v,U.$ref);D=iX.call(this,I,w)}let{schemaId:u}=this.opts;if(D=D||new HD({schema:U,schemaId:u,root:I,baseId:v}),D.schema!==D.root.schema)return D;return}});var dE=P((t_$,_6$)=>{_6$.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var _q=P((d_$,sE)=>{var F6$=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),aE=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function Mq($){let v="",U=0,I=0;for(I=0;I<$.length;I++){if(U=$[I].charCodeAt(0),U===48)continue;if(!(U>=48&&U<=57||U>=65&&U<=70||U>=97&&U<=102))return"";v+=$[I];break}for(I+=1;I<$.length;I++){if(U=$[I].charCodeAt(0),!(U>=48&&U<=57||U>=65&&U<=70||U>=97&&U<=102))return"";v+=$[I]}return v}var Z6$=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function pE($){return $.length=0,!0}function T6$($,v,U){if($.length){let I=Mq($);if(I!=="")v.push(I);else return U.error=!0,!1;$.length=0}return!0}function k6$($){let v=0,U={error:!1,address:"",zone:""},I=[],b=[],D=!1,u=!1,w=T6$;for(let g=0;g<$.length;g++){let J=$[g];if(J==="["||J==="]")continue;if(J===":"){if(D===!0)u=!0;if(!w(b,I,U))break;if(++v>7){U.error=!0;break}if(g>0&&$[g-1]===":")D=!0;I.push(":");continue}else if(J==="%"){if(!w(b,I,U))break;w=pE}else{b.push(J);continue}}if(b.length)if(w===pE)U.zone=b.join("");else if(u)I.push(b.join(""));else I.push(Mq(b));return U.address=I.join(""),U}function eE($){if(E6$($,":")<2)return{host:$,isIPV6:!1};let v=k6$($);if(!v.error){let{address:U,address:I}=v;if(v.zone)U+="%"+v.zone,I+="%25"+v.zone;return{host:U,isIPV6:!0,escapedHost:I}}else return{host:$,isIPV6:!1}}function E6$($,v){let U=0;for(let I=0;I<$.length;I++)if($[I]===v)U++;return U}function R6$($){let v=$,U=[],I=-1,b=0;while(b=v.length){if(b===1)if(v===".")break;else if(v==="/"){U.push("/");break}else{U.push(v);break}else if(b===2){if(v[0]==="."){if(v[1]===".")break;else if(v[1]==="/"){v=v.slice(2);continue}}else if(v[0]==="/"){if(v[1]==="."||v[1]==="/"){U.push("/");break}}}else if(b===3){if(v==="/.."){if(U.length!==0)U.pop();U.push("/");break}}if(v[0]==="."){if(v[1]==="."){if(v[2]==="/"){v=v.slice(3);continue}}else if(v[1]==="/"){v=v.slice(2);continue}}else if(v[0]==="/"){if(v[1]==="."){if(v[2]==="/"){v=v.slice(2);continue}else if(v[2]==="."){if(v[3]==="/"){if(v=v.slice(3),U.length!==0)U.pop();continue}}}}if((I=v.indexOf("/",1))===-1){U.push(v);break}else U.push(v.slice(0,I)),v=v.slice(I)}return U.join("")}function n6$($,v){let U=v!==!0?escape:unescape;if($.scheme!==void 0)$.scheme=U($.scheme);if($.userinfo!==void 0)$.userinfo=U($.userinfo);if($.host!==void 0)$.host=U($.host);if($.path!==void 0)$.path=U($.path);if($.query!==void 0)$.query=U($.query);if($.fragment!==void 0)$.fragment=U($.fragment);return $}function r6$($){let v=[];if($.userinfo!==void 0)v.push($.userinfo),v.push("@");if($.host!==void 0){let U=unescape($.host);if(!aE(U)){let I=eE(U);if(I.isIPV6===!0)U=`[${I.escapedHost}]`;else U=$.host}v.push(U)}if(typeof $.port==="number"||typeof $.port==="string")v.push(":"),v.push(String($.port));return v.length?v.join(""):void 0}sE.exports={nonSimpleDomain:Z6$,recomposeAuthority:r6$,normalizeComponentEncoding:n6$,removeDotSegments:R6$,isIPv4:aE,isUUID:F6$,normalizeIPv6:eE,stringArrayToHexStripped:Mq}});var IR=P((p_$,UR)=>{var{isUUID:C6$}=_q(),i6$=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,x6$=["http","https","ws","wss","urn","urn:uuid"];function l6$($){return x6$.indexOf($)!==-1}function Fq($){if($.secure===!0)return!0;else if($.secure===!1)return!1;else if($.scheme)return $.scheme.length===3&&($.scheme[0]==="w"||$.scheme[0]==="W")&&($.scheme[1]==="s"||$.scheme[1]==="S")&&($.scheme[2]==="s"||$.scheme[2]==="S");else return!1}function $R($){if(!$.host)$.error=$.error||"HTTP URIs must have a host.";return $}function vR($){let v=String($.scheme).toLowerCase()==="https";if($.port===(v?443:80)||$.port==="")$.port=void 0;if(!$.path)$.path="/";return $}function f6$($){return $.secure=Fq($),$.resourceName=($.path||"/")+($.query?"?"+$.query:""),$.path=void 0,$.query=void 0,$}function y6$($){if($.port===(Fq($)?443:80)||$.port==="")$.port=void 0;if(typeof $.secure==="boolean")$.scheme=$.secure?"wss":"ws",$.secure=void 0;if($.resourceName){let[v,U]=$.resourceName.split("?");$.path=v&&v!=="/"?v:void 0,$.query=U,$.resourceName=void 0}return $.fragment=void 0,$}function h6$($,v){if(!$.path)return $.error="URN can not be parsed",$;let U=$.path.match(i6$);if(U){let I=v.scheme||$.scheme||"urn";$.nid=U[1].toLowerCase(),$.nss=U[2];let b=`${I}:${v.nid||$.nid}`,D=Zq(b);if($.path=void 0,D)$=D.parse($,v)}else $.error=$.error||"URN can not be parsed.";return $}function m6$($,v){if($.nid===void 0)throw Error("URN without nid cannot be serialized");let U=v.scheme||$.scheme||"urn",I=$.nid.toLowerCase(),b=`${U}:${v.nid||I}`,D=Zq(b);if(D)$=D.serialize($,v);let u=$,w=$.nss;return u.path=`${I||v.nid}:${w}`,v.skipEscape=!0,u}function c6$($,v){let U=$;if(U.uuid=U.nss,U.nss=void 0,!v.tolerant&&(!U.uuid||!C6$(U.uuid)))U.error=U.error||"UUID is not valid.";return U}function o6$($){let v=$;return v.nss=($.uuid||"").toLowerCase(),v}var bR={scheme:"http",domainHost:!0,parse:$R,serialize:vR},t6$={scheme:"https",domainHost:bR.domainHost,parse:$R,serialize:vR},lX={scheme:"ws",domainHost:!0,parse:f6$,serialize:y6$},d6$={scheme:"wss",domainHost:lX.domainHost,parse:lX.parse,serialize:lX.serialize},p6$={scheme:"urn",parse:h6$,serialize:m6$,skipNormalize:!0},a6$={scheme:"urn:uuid",parse:c6$,serialize:o6$,skipNormalize:!0},fX={http:bR,https:t6$,ws:lX,wss:d6$,urn:p6$,"urn:uuid":a6$};Object.setPrototypeOf(fX,null);function Zq($){return $&&(fX[$]||fX[$.toLowerCase()])||void 0}UR.exports={wsIsSecure:Fq,SCHEMES:fX,isValidSchemeName:l6$,getSchemeHandler:Zq}});var wR=P((a_$,hX)=>{var{normalizeIPv6:e6$,removeDotSegments:zD,recomposeAuthority:s6$,normalizeComponentEncoding:yX,isIPv4:$b$,nonSimpleDomain:vb$}=_q(),{SCHEMES:bb$,getSchemeHandler:DR}=IR();function Ub$($,v){if(typeof $==="string")$=C4(X6($,v),v);else if(typeof $==="object")$=X6(C4($,v),v);return $}function Ib$($,v,U){let I=U?Object.assign({scheme:"null"},U):{scheme:"null"},b=uR(X6($,I),X6(v,I),I,!0);return I.skipEscape=!0,C4(b,I)}function uR($,v,U,I){let b={};if(!I)$=X6(C4($,U),U),v=X6(C4(v,U),U);if(U=U||{},!U.tolerant&&v.scheme)b.scheme=v.scheme,b.userinfo=v.userinfo,b.host=v.host,b.port=v.port,b.path=zD(v.path||""),b.query=v.query;else{if(v.userinfo!==void 0||v.host!==void 0||v.port!==void 0)b.userinfo=v.userinfo,b.host=v.host,b.port=v.port,b.path=zD(v.path||""),b.query=v.query;else{if(!v.path)if(b.path=$.path,v.query!==void 0)b.query=v.query;else b.query=$.query;else{if(v.path[0]==="/")b.path=zD(v.path);else{if(($.userinfo!==void 0||$.host!==void 0||$.port!==void 0)&&!$.path)b.path="/"+v.path;else if(!$.path)b.path=v.path;else b.path=$.path.slice(0,$.path.lastIndexOf("/")+1)+v.path;b.path=zD(b.path)}b.query=v.query}b.userinfo=$.userinfo,b.host=$.host,b.port=$.port}b.scheme=$.scheme}return b.fragment=v.fragment,b}function Db$($,v,U){if(typeof $==="string")$=unescape($),$=C4(yX(X6($,U),!0),{...U,skipEscape:!0});else if(typeof $==="object")$=C4(yX($,!0),{...U,skipEscape:!0});if(typeof v==="string")v=unescape(v),v=C4(yX(X6(v,U),!0),{...U,skipEscape:!0});else if(typeof v==="object")v=C4(yX(v,!0),{...U,skipEscape:!0});return $.toLowerCase()===v.toLowerCase()}function C4($,v){let U={host:$.host,scheme:$.scheme,userinfo:$.userinfo,port:$.port,path:$.path,query:$.query,nid:$.nid,nss:$.nss,uuid:$.uuid,fragment:$.fragment,reference:$.reference,resourceName:$.resourceName,secure:$.secure,error:""},I=Object.assign({},v),b=[],D=DR(I.scheme||U.scheme);if(D&&D.serialize)D.serialize(U,I);if(U.path!==void 0)if(!I.skipEscape){if(U.path=escape(U.path),U.scheme!==void 0)U.path=U.path.split("%3A").join(":")}else U.path=unescape(U.path);if(I.reference!=="suffix"&&U.scheme)b.push(U.scheme,":");let u=s6$(U);if(u!==void 0){if(I.reference!=="suffix")b.push("//");if(b.push(u),U.path&&U.path[0]!=="/")b.push("/")}if(U.path!==void 0){let w=U.path;if(!I.absolutePath&&(!D||!D.absolutePath))w=zD(w);if(u===void 0&&w[0]==="/"&&w[1]==="/")w="/%2F"+w.slice(2);b.push(w)}if(U.query!==void 0)b.push("?",U.query);if(U.fragment!==void 0)b.push("#",U.fragment);return b.join("")}var ub$=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function X6($,v){let U=Object.assign({},v),I={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},b=!1;if(U.reference==="suffix")if(U.scheme)$=U.scheme+":"+$;else $="//"+$;let D=$.match(ub$);if(D){if(I.scheme=D[1],I.userinfo=D[3],I.host=D[4],I.port=parseInt(D[5],10),I.path=D[6]||"",I.query=D[7],I.fragment=D[8],isNaN(I.port))I.port=D[5];if(I.host)if($b$(I.host)===!1){let g=e6$(I.host);I.host=g.host.toLowerCase(),b=g.isIPV6}else b=!0;if(I.scheme===void 0&&I.userinfo===void 0&&I.host===void 0&&I.port===void 0&&I.query===void 0&&!I.path)I.reference="same-document";else if(I.scheme===void 0)I.reference="relative";else if(I.fragment===void 0)I.reference="absolute";else I.reference="uri";if(U.reference&&U.reference!=="suffix"&&U.reference!==I.reference)I.error=I.error||"URI is not a "+U.reference+" reference.";let u=DR(U.scheme||I.scheme);if(!U.unicodeSupport&&(!u||!u.unicodeSupport)){if(I.host&&(U.domainHost||u&&u.domainHost)&&b===!1&&vb$(I.host))try{I.host=URL.domainToASCII(I.host.toLowerCase())}catch(w){I.error=I.error||"Host's domain name can not be converted to ASCII: "+w}}if(!u||u&&!u.skipNormalize){if($.indexOf("%")!==-1){if(I.scheme!==void 0)I.scheme=unescape(I.scheme);if(I.host!==void 0)I.host=unescape(I.host)}if(I.path)I.path=escape(unescape(I.path));if(I.fragment)I.fragment=encodeURI(decodeURIComponent(I.fragment))}if(u&&u.parse)u.parse(I,U)}else I.error=I.error||"URI can not be parsed.";return I}var Tq={SCHEMES:bb$,normalize:Ub$,resolve:Ib$,resolveComponent:uR,equal:Db$,serialize:C4,parse:X6};hX.exports=Tq;hX.exports.default=Tq;hX.exports.fastUri=Tq});var XR=P((JR)=>{Object.defineProperty(JR,"__esModule",{value:!0});var gR=wR();gR.code='require("ajv/dist/runtime/uri").default';JR.default=gR});var VR=P((W6)=>{Object.defineProperty(W6,"__esModule",{value:!0});W6.CodeGen=W6.Name=W6.nil=W6.stringify=W6.str=W6._=W6.KeywordCxt=void 0;var gb$=GD();Object.defineProperty(W6,"KeywordCxt",{enumerable:!0,get:function(){return gb$.KeywordCxt}});var FI=w$();Object.defineProperty(W6,"_",{enumerable:!0,get:function(){return FI._}});Object.defineProperty(W6,"str",{enumerable:!0,get:function(){return FI.str}});Object.defineProperty(W6,"stringify",{enumerable:!0,get:function(){return FI.stringify}});Object.defineProperty(W6,"nil",{enumerable:!0,get:function(){return FI.nil}});Object.defineProperty(W6,"Name",{enumerable:!0,get:function(){return FI.Name}});Object.defineProperty(W6,"CodeGen",{enumerable:!0,get:function(){return FI.CodeGen}});var Jb$=CX(),zR=OD(),Xb$=Wq(),QD=xX(),Wb$=w$(),YD=JD(),mX=gD(),Eq=Q$(),WR=dE(),Gb$=XR(),QR=($,v)=>new RegExp($,v);QR.code="new RegExp";var Ob$=["removeAdditional","useDefaults","coerceTypes"],Hb$=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),zb$={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Qb$={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},GR=200;function Yb$($){var v,U,I,b,D,u,w,g,J,X,W,G,O,z,Q,Y,K,F,S,j,A,h,s,l,W$;let X$=$.strict,m$=(v=$.code)===null||v===void 0?void 0:v.optimize,E$=m$===!0||m$===void 0?1:m$||0,P4=(I=(U=$.code)===null||U===void 0?void 0:U.regExp)!==null&&I!==void 0?I:QR,Wb=(b=$.uriResolver)!==null&&b!==void 0?b:Gb$.default;return{strictSchema:(u=(D=$.strictSchema)!==null&&D!==void 0?D:X$)!==null&&u!==void 0?u:!0,strictNumbers:(g=(w=$.strictNumbers)!==null&&w!==void 0?w:X$)!==null&&g!==void 0?g:!0,strictTypes:(X=(J=$.strictTypes)!==null&&J!==void 0?J:X$)!==null&&X!==void 0?X:"log",strictTuples:(G=(W=$.strictTuples)!==null&&W!==void 0?W:X$)!==null&&G!==void 0?G:"log",strictRequired:(z=(O=$.strictRequired)!==null&&O!==void 0?O:X$)!==null&&z!==void 0?z:!1,code:$.code?{...$.code,optimize:E$,regExp:P4}:{optimize:E$,regExp:P4},loopRequired:(Q=$.loopRequired)!==null&&Q!==void 0?Q:GR,loopEnum:(Y=$.loopEnum)!==null&&Y!==void 0?Y:GR,meta:(K=$.meta)!==null&&K!==void 0?K:!0,messages:(F=$.messages)!==null&&F!==void 0?F:!0,inlineRefs:(S=$.inlineRefs)!==null&&S!==void 0?S:!0,schemaId:(j=$.schemaId)!==null&&j!==void 0?j:"$id",addUsedSchema:(A=$.addUsedSchema)!==null&&A!==void 0?A:!0,validateSchema:(h=$.validateSchema)!==null&&h!==void 0?h:!0,validateFormats:(s=$.validateFormats)!==null&&s!==void 0?s:!0,unicodeRegExp:(l=$.unicodeRegExp)!==null&&l!==void 0?l:!0,int32range:(W$=$.int32range)!==null&&W$!==void 0?W$:!0,uriResolver:Wb}}class cX{constructor($={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,$=this.opts={...$,...Yb$($)};let{es5:v,lines:U}=this.opts.code;this.scope=new Wb$.ValueScope({scope:{},prefixes:Hb$,es5:v,lines:U}),this.logger=Ab$($.logger);let I=$.validateFormats;if($.validateFormats=!1,this.RULES=(0,Xb$.getRules)(),OR.call(this,zb$,$,"NOT SUPPORTED"),OR.call(this,Qb$,$,"DEPRECATED","warn"),this._metaOpts=qb$.call(this),$.formats)Lb$.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),$.keywords)Kb$.call(this,$.keywords);if(typeof $.meta=="object")this.addMetaSchema($.meta);Vb$.call(this),$.validateFormats=I}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:$,meta:v,schemaId:U}=this.opts,I=WR;if(U==="id")I={...WR},I.id=I.$id,delete I.$id;if(v&&$)this.addMetaSchema(I,I[U],!1)}defaultMeta(){let{meta:$,schemaId:v}=this.opts;return this.opts.defaultMeta=typeof $=="object"?$[v]||$:void 0}validate($,v){let U;if(typeof $=="string"){if(U=this.getSchema($),!U)throw Error(`no schema with key or ref "${$}"`)}else U=this.compile($);let I=U(v);if(!("$async"in U))this.errors=U.errors;return I}compile($,v){let U=this._addSchema($,v);return U.validate||this._compileSchemaEnv(U)}compileAsync($,v){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:U}=this.opts;return I.call(this,$,v);async function I(J,X){await b.call(this,J.$schema);let W=this._addSchema(J,X);return W.validate||D.call(this,W)}async function b(J){if(J&&!this.getSchema(J))await I.call(this,{$ref:J},!0)}async function D(J){try{return this._compileSchemaEnv(J)}catch(X){if(!(X instanceof zR.default))throw X;return u.call(this,X),await w.call(this,X.missingSchema),D.call(this,J)}}function u({missingSchema:J,missingRef:X}){if(this.refs[J])throw Error(`AnySchema ${J} is loaded but ${X} cannot be resolved`)}async function w(J){let X=await g.call(this,J);if(!this.refs[J])await b.call(this,X.$schema);if(!this.refs[J])this.addSchema(X,J,v)}async function g(J){let X=this._loading[J];if(X)return X;try{return await(this._loading[J]=U(J))}finally{delete this._loading[J]}}}addSchema($,v,U,I=this.opts.validateSchema){if(Array.isArray($)){for(let D of $)this.addSchema(D,void 0,U,I);return this}let b;if(typeof $==="object"){let{schemaId:D}=this.opts;if(b=$[D],b!==void 0&&typeof b!="string")throw Error(`schema ${D} must be string`)}return v=(0,YD.normalizeId)(v||b),this._checkUnique(v),this.schemas[v]=this._addSchema($,U,v,I,!0),this}addMetaSchema($,v,U=this.opts.validateSchema){return this.addSchema($,v,!0,U),this}validateSchema($,v){if(typeof $=="boolean")return!0;let U;if(U=$.$schema,U!==void 0&&typeof U!="string")throw Error("$schema must be a string");if(U=U||this.opts.defaultMeta||this.defaultMeta(),!U)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let I=this.validate(U,$);if(!I&&v){let b="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(b);else throw Error(b)}return I}getSchema($){let v;while(typeof(v=HR.call(this,$))=="string")$=v;if(v===void 0){let{schemaId:U}=this.opts,I=new QD.SchemaEnv({schema:{},schemaId:U});if(v=QD.resolveSchema.call(this,I,$),!v)return;this.refs[$]=v}return v.validate||this._compileSchemaEnv(v)}removeSchema($){if($ instanceof RegExp)return this._removeAllSchemas(this.schemas,$),this._removeAllSchemas(this.refs,$),this;switch(typeof $){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let v=HR.call(this,$);if(typeof v=="object")this._cache.delete(v.schema);return delete this.schemas[$],delete this.refs[$],this}case"object":{let v=$;this._cache.delete(v);let U=$[this.opts.schemaId];if(U)U=(0,YD.normalizeId)(U),delete this.schemas[U],delete this.refs[U];return this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary($){for(let v of $)this.addKeyword(v);return this}addKeyword($,v){let U;if(typeof $=="string"){if(U=$,typeof v=="object")this.logger.warn("these parameters are deprecated, see docs for addKeyword"),v.keyword=U}else if(typeof $=="object"&&v===void 0){if(v=$,U=v.keyword,Array.isArray(U)&&!U.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(jb$.call(this,U,v),!v)return(0,Eq.eachItem)(U,(b)=>kq.call(this,b)),this;Sb$.call(this,v);let I={...v,type:(0,mX.getJSONTypes)(v.type),schemaType:(0,mX.getJSONTypes)(v.schemaType)};return(0,Eq.eachItem)(U,I.type.length===0?(b)=>kq.call(this,b,I):(b)=>I.type.forEach((D)=>kq.call(this,b,I,D))),this}getKeyword($){let v=this.RULES.all[$];return typeof v=="object"?v.definition:!!v}removeKeyword($){let{RULES:v}=this;delete v.keywords[$],delete v.all[$];for(let U of v.rules){let I=U.rules.findIndex((b)=>b.keyword===$);if(I>=0)U.rules.splice(I,1)}return this}addFormat($,v){if(typeof v=="string")v=new RegExp(v);return this.formats[$]=v,this}errorsText($=this.errors,{separator:v=", ",dataVar:U="data"}={}){if(!$||$.length===0)return"No errors";return $.map((I)=>`${U}${I.instancePath} ${I.message}`).reduce((I,b)=>I+v+b)}$dataMetaSchema($,v){let U=this.RULES.all;$=JSON.parse(JSON.stringify($));for(let I of v){let b=I.split("/").slice(1),D=$;for(let u of b)D=D[u];for(let u in U){let w=U[u];if(typeof w!="object")continue;let{$data:g}=w.definition,J=D[u];if(g&&J)D[u]=YR(J)}}return $}_removeAllSchemas($,v){for(let U in $){let I=$[U];if(!v||v.test(U)){if(typeof I=="string")delete $[U];else if(I&&!I.meta)this._cache.delete(I.schema),delete $[U]}}}_addSchema($,v,U,I=this.opts.validateSchema,b=this.opts.addUsedSchema){let D,{schemaId:u}=this.opts;if(typeof $=="object")D=$[u];else if(this.opts.jtd)throw Error("schema must be object");else if(typeof $!="boolean")throw Error("schema must be object or boolean");let w=this._cache.get($);if(w!==void 0)return w;U=(0,YD.normalizeId)(D||U);let g=YD.getSchemaRefs.call(this,$,U);if(w=new QD.SchemaEnv({schema:$,schemaId:u,meta:v,baseId:U,localRefs:g}),this._cache.set(w.schema,w),b&&!U.startsWith("#")){if(U)this._checkUnique(U);this.refs[U]=w}if(I)this.validateSchema($,!0);return w}_checkUnique($){if(this.schemas[$]||this.refs[$])throw Error(`schema with key or id "${$}" already exists`)}_compileSchemaEnv($){if($.meta)this._compileMetaSchema($);else QD.compileSchema.call(this,$);if(!$.validate)throw Error("ajv implementation error");return $.validate}_compileMetaSchema($){let v=this.opts;this.opts=this._metaOpts;try{QD.compileSchema.call(this,$)}finally{this.opts=v}}}cX.ValidationError=Jb$.default;cX.MissingRefError=zR.default;W6.default=cX;function OR($,v,U,I="error"){for(let b in $){let D=b;if(D in v)this.logger[I](`${U}: option ${b}. ${$[D]}`)}}function HR($){return $=(0,YD.normalizeId)($),this.schemas[$]||this.refs[$]}function Vb$(){let $=this.opts.schemas;if(!$)return;if(Array.isArray($))this.addSchema($);else for(let v in $)this.addSchema($[v],v)}function Lb$(){for(let $ in this.opts.formats){let v=this.opts.formats[$];if(v)this.addFormat($,v)}}function Kb$($){if(Array.isArray($)){this.addVocabulary($);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let v in $){let U=$[v];if(!U.keyword)U.keyword=v;this.addKeyword(U)}}function qb$(){let $={...this.opts};for(let v of Ob$)delete $[v];return $}var Bb$={log(){},warn(){},error(){}};function Ab$($){if($===!1)return Bb$;if($===void 0)return console;if($.log&&$.warn&&$.error)return $;throw Error("logger must implement log, warn and error methods")}var Pb$=/^[a-z_$][a-z0-9_$:-]*$/i;function jb$($,v){let{RULES:U}=this;if((0,Eq.eachItem)($,(I)=>{if(U.keywords[I])throw Error(`Keyword ${I} is already defined`);if(!Pb$.test(I))throw Error(`Keyword ${I} has invalid name`)}),!v)return;if(v.$data&&!(("code"in v)||("validate"in v)))throw Error('$data keyword must have "code" or "validate" function')}function kq($,v,U){var I;let b=v===null||v===void 0?void 0:v.post;if(U&&b)throw Error('keyword with "post" flag cannot have "type"');let{RULES:D}=this,u=b?D.post:D.rules.find(({type:g})=>g===U);if(!u)u={type:U,rules:[]},D.rules.push(u);if(D.keywords[$]=!0,!v)return;let w={keyword:$,definition:{...v,type:(0,mX.getJSONTypes)(v.type),schemaType:(0,mX.getJSONTypes)(v.schemaType)}};if(v.before)Nb$.call(this,u,w,v.before);else u.rules.push(w);D.all[$]=w,(I=v.implements)===null||I===void 0||I.forEach((g)=>this.addKeyword(g))}function Nb$($,v,U){let I=$.rules.findIndex((b)=>b.keyword===U);if(I>=0)$.rules.splice(I,0,v);else $.rules.push(v),this.logger.warn(`rule ${U} is not defined`)}function Sb$($){let{metaSchema:v}=$;if(v===void 0)return;if($.$data&&this.opts.$data)v=YR(v);$.validateSchema=this.compile(v,!0)}var Mb$={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function YR($){return{anyOf:[$,Mb$]}}});var KR=P((LR)=>{Object.defineProperty(LR,"__esModule",{value:!0});var Zb$={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};LR.default=Zb$});var NR=P((PR)=>{Object.defineProperty(PR,"__esModule",{value:!0});PR.callRef=PR.getValidate=void 0;var kb$=OD(),qR=U4(),xv=w$(),ZI=g6(),BR=xX(),oX=Q$(),Eb$={keyword:"$ref",schemaType:"string",code($){let{gen:v,schema:U,it:I}=$,{baseId:b,schemaEnv:D,validateName:u,opts:w,self:g}=I,{root:J}=D;if((U==="#"||U==="#/")&&b===J.baseId)return W();let X=BR.resolveRef.call(g,J,b,U);if(X===void 0)throw new kb$.default(I.opts.uriResolver,b,U);if(X instanceof BR.SchemaEnv)return G(X);return O(X);function W(){if(D===J)return tX($,u,D,D.$async);let z=v.scopeValue("root",{ref:J});return tX($,xv._`${z}.validate`,J,J.$async)}function G(z){let Q=AR($,z);tX($,Q,z,z.$async)}function O(z){let Q=v.scopeValue("schema",w.code.source===!0?{ref:z,code:(0,xv.stringify)(z)}:{ref:z}),Y=v.name("valid"),K=$.subschema({schema:z,dataTypes:[],schemaPath:xv.nil,topSchemaRef:Q,errSchemaPath:U},Y);$.mergeEvaluated(K),$.ok(Y)}}};function AR($,v){let{gen:U}=$;return v.validate?U.scopeValue("validate",{ref:v.validate}):xv._`${U.scopeValue("wrapper",{ref:v})}.validate`}PR.getValidate=AR;function tX($,v,U,I){let{gen:b,it:D}=$,{allErrors:u,schemaEnv:w,opts:g}=D,J=g.passContext?ZI.default.this:xv.nil;if(I)X();else W();function X(){if(!w.$async)throw Error("async schema referenced by sync schema");let z=b.let("valid");b.try(()=>{if(b.code(xv._`await ${(0,qR.callValidateCode)($,v,J)}`),O(v),!u)b.assign(z,!0)},(Q)=>{if(b.if(xv._`!(${Q} instanceof ${D.ValidationError})`,()=>b.throw(Q)),G(Q),!u)b.assign(z,!1)}),$.ok(z)}function W(){$.result((0,qR.callValidateCode)($,v,J),()=>O(v),()=>G(v))}function G(z){let Q=xv._`${z}.errors`;b.assign(ZI.default.vErrors,xv._`${ZI.default.vErrors} === null ? ${Q} : ${ZI.default.vErrors}.concat(${Q})`),b.assign(ZI.default.errors,xv._`${ZI.default.vErrors}.length`)}function O(z){var Q;if(!D.opts.unevaluated)return;let Y=(Q=U===null||U===void 0?void 0:U.validate)===null||Q===void 0?void 0:Q.evaluated;if(D.props!==!0)if(Y&&!Y.dynamicProps){if(Y.props!==void 0)D.props=oX.mergeEvaluated.props(b,Y.props,D.props)}else{let K=b.var("props",xv._`${z}.evaluated.props`);D.props=oX.mergeEvaluated.props(b,K,D.props,xv.Name)}if(D.items!==!0)if(Y&&!Y.dynamicItems){if(Y.items!==void 0)D.items=oX.mergeEvaluated.items(b,Y.items,D.items)}else{let K=b.var("items",xv._`${z}.evaluated.items`);D.items=oX.mergeEvaluated.items(b,K,D.items,xv.Name)}}}PR.callRef=tX;PR.default=Eb$});var MR=P((SR)=>{Object.defineProperty(SR,"__esModule",{value:!0});var rb$=KR(),Cb$=NR(),ib$=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",rb$.default,Cb$.default];SR.default=ib$});var FR=P((_R)=>{Object.defineProperty(_R,"__esModule",{value:!0});var dX=w$(),s6=dX.operators,pX={maximum:{okStr:"<=",ok:s6.LTE,fail:s6.GT},minimum:{okStr:">=",ok:s6.GTE,fail:s6.LT},exclusiveMaximum:{okStr:"<",ok:s6.LT,fail:s6.GTE},exclusiveMinimum:{okStr:">",ok:s6.GT,fail:s6.LTE}},lb$={message:({keyword:$,schemaCode:v})=>dX.str`must be ${pX[$].okStr} ${v}`,params:({keyword:$,schemaCode:v})=>dX._`{comparison: ${pX[$].okStr}, limit: ${v}}`},fb$={keyword:Object.keys(pX),type:"number",schemaType:"number",$data:!0,error:lb$,code($){let{keyword:v,data:U,schemaCode:I}=$;$.fail$data(dX._`${U} ${pX[v].fail} ${I} || isNaN(${U})`)}};_R.default=fb$});var TR=P((ZR)=>{Object.defineProperty(ZR,"__esModule",{value:!0});var VD=w$(),hb$={message:({schemaCode:$})=>VD.str`must be multiple of ${$}`,params:({schemaCode:$})=>VD._`{multipleOf: ${$}}`},mb$={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:hb$,code($){let{gen:v,data:U,schemaCode:I,it:b}=$,D=b.opts.multipleOfPrecision,u=v.let("res"),w=D?VD._`Math.abs(Math.round(${u}) - ${u}) > 1e-${D}`:VD._`${u} !== parseInt(${u})`;$.fail$data(VD._`(${I} === 0 || (${u} = ${U}/${I}, ${w}))`)}};ZR.default=mb$});var RR=P((ER)=>{Object.defineProperty(ER,"__esModule",{value:!0});function kR($){let v=$.length,U=0,I=0,b;while(I<v)if(U++,b=$.charCodeAt(I++),b>=55296&&b<=56319&&I<v){if(b=$.charCodeAt(I),(b&64512)===56320)I++}return U}ER.default=kR;kR.code='require("ajv/dist/runtime/ucs2length").default'});var rR=P((nR)=>{Object.defineProperty(nR,"__esModule",{value:!0});var cb=w$(),tb$=Q$(),db$=RR(),pb$={message({keyword:$,schemaCode:v}){let U=$==="maxLength"?"more":"fewer";return cb.str`must NOT have ${U} than ${v} characters`},params:({schemaCode:$})=>cb._`{limit: ${$}}`},ab$={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:pb$,code($){let{keyword:v,data:U,schemaCode:I,it:b}=$,D=v==="maxLength"?cb.operators.GT:cb.operators.LT,u=b.opts.unicode===!1?cb._`${U}.length`:cb._`${(0,tb$.useFunc)($.gen,db$.default)}(${U})`;$.fail$data(cb._`${u} ${D} ${I}`)}};nR.default=ab$});var iR=P((CR)=>{Object.defineProperty(CR,"__esModule",{value:!0});var sb$=U4(),$U$=Q$(),TI=w$(),vU$={message:({schemaCode:$})=>TI.str`must match pattern "${$}"`,params:({schemaCode:$})=>TI._`{pattern: ${$}}`},bU$={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:vU$,code($){let{gen:v,data:U,$data:I,schema:b,schemaCode:D,it:u}=$,w=u.opts.unicodeRegExp?"u":"";if(I){let{regExp:g}=u.opts.code,J=g.code==="new RegExp"?TI._`new RegExp`:(0,$U$.useFunc)(v,g),X=v.let("valid");v.try(()=>v.assign(X,TI._`${J}(${D}, ${w}).test(${U})`),()=>v.assign(X,!1)),$.fail$data(TI._`!${X}`)}else{let g=(0,sb$.usePattern)($,b);$.fail$data(TI._`!${g}.test(${U})`)}}};CR.default=bU$});var lR=P((xR)=>{Object.defineProperty(xR,"__esModule",{value:!0});var LD=w$(),IU$={message({keyword:$,schemaCode:v}){let U=$==="maxProperties"?"more":"fewer";return LD.str`must NOT have ${U} than ${v} properties`},params:({schemaCode:$})=>LD._`{limit: ${$}}`},DU$={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:IU$,code($){let{keyword:v,data:U,schemaCode:I}=$,b=v==="maxProperties"?LD.operators.GT:LD.operators.LT;$.fail$data(LD._`Object.keys(${U}).length ${b} ${I}`)}};xR.default=DU$});var yR=P((fR)=>{Object.defineProperty(fR,"__esModule",{value:!0});var KD=U4(),qD=w$(),wU$=Q$(),gU$={message:({params:{missingProperty:$}})=>qD.str`must have required property '${$}'`,params:({params:{missingProperty:$}})=>qD._`{missingProperty: ${$}}`},JU$={keyword:"required",type:"object",schemaType:"array",$data:!0,error:gU$,code($){let{gen:v,schema:U,schemaCode:I,data:b,$data:D,it:u}=$,{opts:w}=u;if(!D&&U.length===0)return;let g=U.length>=w.loopRequired;if(u.allErrors)J();else X();if(w.strictRequired){let O=$.parentSchema.properties,{definedProperties:z}=$.it;for(let Q of U)if((O===null||O===void 0?void 0:O[Q])===void 0&&!z.has(Q)){let Y=u.schemaEnv.baseId+u.errSchemaPath,K=`required property "${Q}" is not defined at "${Y}" (strictRequired)`;(0,wU$.checkStrictMode)(u,K,u.opts.strictRequired)}}function J(){if(g||D)$.block$data(qD.nil,W);else for(let O of U)(0,KD.checkReportMissingProp)($,O)}function X(){let O=v.let("missing");if(g||D){let z=v.let("valid",!0);$.block$data(z,()=>G(O,z)),$.ok(z)}else v.if((0,KD.checkMissingProp)($,U,O)),(0,KD.reportMissingProp)($,O),v.else()}function W(){v.forOf("prop",I,(O)=>{$.setParams({missingProperty:O}),v.if((0,KD.noPropertyInData)(v,b,O,w.ownProperties),()=>$.error())})}function G(O,z){$.setParams({missingProperty:O}),v.forOf(O,I,()=>{v.assign(z,(0,KD.propertyInData)(v,b,O,w.ownProperties)),v.if((0,qD.not)(z),()=>{$.error(),v.break()})},qD.nil)}}};fR.default=JU$});var mR=P((hR)=>{Object.defineProperty(hR,"__esModule",{value:!0});var BD=w$(),WU$={message({keyword:$,schemaCode:v}){let U=$==="maxItems"?"more":"fewer";return BD.str`must NOT have ${U} than ${v} items`},params:({schemaCode:$})=>BD._`{limit: ${$}}`},GU$={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:WU$,code($){let{keyword:v,data:U,schemaCode:I}=$,b=v==="maxItems"?BD.operators.GT:BD.operators.LT;$.fail$data(BD._`${U}.length ${b} ${I}`)}};hR.default=GU$});var aX=P((oR)=>{Object.defineProperty(oR,"__esModule",{value:!0});var cR=Lq();cR.code='require("ajv/dist/runtime/equal").default';oR.default=cR});var dR=P((tR)=>{Object.defineProperty(tR,"__esModule",{value:!0});var Rq=gD(),Wv=w$(),zU$=Q$(),QU$=aX(),YU$={message:({params:{i:$,j:v}})=>Wv.str`must NOT have duplicate items (items ## ${v} and ${$} are identical)`,params:({params:{i:$,j:v}})=>Wv._`{i: ${$}, j: ${v}}`},VU$={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:YU$,code($){let{gen:v,data:U,$data:I,schema:b,parentSchema:D,schemaCode:u,it:w}=$;if(!I&&!b)return;let g=v.let("valid"),J=D.items?(0,Rq.getSchemaTypes)(D.items):[];$.block$data(g,X,Wv._`${u} === false`),$.ok(g);function X(){let z=v.let("i",Wv._`${U}.length`),Q=v.let("j");$.setParams({i:z,j:Q}),v.assign(g,!0),v.if(Wv._`${z} > 1`,()=>(W()?G:O)(z,Q))}function W(){return J.length>0&&!J.some((z)=>z==="object"||z==="array")}function G(z,Q){let Y=v.name("item"),K=(0,Rq.checkDataTypes)(J,Y,w.opts.strictNumbers,Rq.DataType.Wrong),F=v.const("indices",Wv._`{}`);v.for(Wv._`;${z}--;`,()=>{if(v.let(Y,Wv._`${U}[${z}]`),v.if(K,Wv._`continue`),J.length>1)v.if(Wv._`typeof ${Y} == "string"`,Wv._`${Y} += "_"`);v.if(Wv._`typeof ${F}[${Y}] == "number"`,()=>{v.assign(Q,Wv._`${F}[${Y}]`),$.error(),v.assign(g,!1).break()}).code(Wv._`${F}[${Y}] = ${z}`)})}function O(z,Q){let Y=(0,zU$.useFunc)(v,QU$.default),K=v.name("outer");v.label(K).for(Wv._`;${z}--;`,()=>v.for(Wv._`${Q} = ${z}; ${Q}--;`,()=>v.if(Wv._`${Y}(${U}[${z}], ${U}[${Q}])`,()=>{$.error(),v.assign(g,!1).break(K)})))}}};tR.default=VU$});var aR=P((pR)=>{Object.defineProperty(pR,"__esModule",{value:!0});var nq=w$(),KU$=Q$(),qU$=aX(),BU$={message:"must be equal to constant",params:({schemaCode:$})=>nq._`{allowedValue: ${$}}`},AU$={keyword:"const",$data:!0,error:BU$,code($){let{gen:v,data:U,$data:I,schemaCode:b,schema:D}=$;if(I||D&&typeof D=="object")$.fail$data(nq._`!${(0,KU$.useFunc)(v,qU$.default)}(${U}, ${b})`);else $.fail(nq._`${D} !== ${U}`)}};pR.default=AU$});var sR=P((eR)=>{Object.defineProperty(eR,"__esModule",{value:!0});var AD=w$(),jU$=Q$(),NU$=aX(),SU$={message:"must be equal to one of the allowed values",params:({schemaCode:$})=>AD._`{allowedValues: ${$}}`},MU$={keyword:"enum",schemaType:"array",$data:!0,error:SU$,code($){let{gen:v,data:U,$data:I,schema:b,schemaCode:D,it:u}=$;if(!I&&b.length===0)throw Error("enum must have non-empty array");let w=b.length>=u.opts.loopEnum,g,J=()=>g!==null&&g!==void 0?g:g=(0,jU$.useFunc)(v,NU$.default),X;if(w||I)X=v.let("valid"),$.block$data(X,W);else{if(!Array.isArray(b))throw Error("ajv implementation error");let O=v.const("vSchema",D);X=(0,AD.or)(...b.map((z,Q)=>G(O,Q)))}$.pass(X);function W(){v.assign(X,!1),v.forOf("v",D,(O)=>v.if(AD._`${J()}(${U}, ${O})`,()=>v.assign(X,!0).break()))}function G(O,z){let Q=b[z];return typeof Q==="object"&&Q!==null?AD._`${J()}(${U}, ${O}[${z}])`:AD._`${U} === ${Q}`}}};eR.default=MU$});var vn=P(($n)=>{Object.defineProperty($n,"__esModule",{value:!0});var FU$=FR(),ZU$=TR(),TU$=rR(),kU$=iR(),EU$=lR(),RU$=yR(),nU$=mR(),rU$=dR(),CU$=aR(),iU$=sR(),xU$=[FU$.default,ZU$.default,TU$.default,kU$.default,EU$.default,RU$.default,nU$.default,rU$.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},CU$.default,iU$.default];$n.default=xU$});var Cq=P((Un)=>{Object.defineProperty(Un,"__esModule",{value:!0});Un.validateAdditionalItems=void 0;var ob=w$(),rq=Q$(),fU$={message:({params:{len:$}})=>ob.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>ob._`{limit: ${$}}`},yU$={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:fU$,code($){let{parentSchema:v,it:U}=$,{items:I}=v;if(!Array.isArray(I)){(0,rq.checkStrictMode)(U,'"additionalItems" is ignored when "items" is not an array of schemas');return}bn($,I)}};function bn($,v){let{gen:U,schema:I,data:b,keyword:D,it:u}=$;u.items=!0;let w=U.const("len",ob._`${b}.length`);if(I===!1)$.setParams({len:v.length}),$.pass(ob._`${w} <= ${v.length}`);else if(typeof I=="object"&&!(0,rq.alwaysValidSchema)(u,I)){let J=U.var("valid",ob._`${w} <= ${v.length}`);U.if((0,ob.not)(J),()=>g(J)),$.ok(J)}function g(J){U.forRange("i",v.length,w,(X)=>{if($.subschema({keyword:D,dataProp:X,dataPropType:rq.Type.Num},J),!u.allErrors)U.if((0,ob.not)(J),()=>U.break())})}}Un.validateAdditionalItems=bn;Un.default=yU$});var iq=P((wn)=>{Object.defineProperty(wn,"__esModule",{value:!0});wn.validateTuple=void 0;var Dn=w$(),eX=Q$(),mU$=U4(),cU$={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code($){let{schema:v,it:U}=$;if(Array.isArray(v))return un($,"additionalItems",v);if(U.items=!0,(0,eX.alwaysValidSchema)(U,v))return;$.ok((0,mU$.validateArray)($))}};function un($,v,U=$.schema){let{gen:I,parentSchema:b,data:D,keyword:u,it:w}=$;if(X(b),w.opts.unevaluated&&U.length&&w.items!==!0)w.items=eX.mergeEvaluated.items(I,U.length,w.items);let g=I.name("valid"),J=I.const("len",Dn._`${D}.length`);U.forEach((W,G)=>{if((0,eX.alwaysValidSchema)(w,W))return;I.if(Dn._`${J} > ${G}`,()=>$.subschema({keyword:u,schemaProp:G,dataProp:G},g)),$.ok(g)});function X(W){let{opts:G,errSchemaPath:O}=w,z=U.length,Q=z===W.minItems&&(z===W.maxItems||W[v]===!1);if(G.strictTuples&&!Q){let Y=`"${u}" is ${z}-tuple, but minItems or maxItems/${v} are not specified or different at path "${O}"`;(0,eX.checkStrictMode)(w,Y,G.strictTuples)}}}wn.validateTuple=un;wn.default=cU$});var Xn=P((Jn)=>{Object.defineProperty(Jn,"__esModule",{value:!0});var tU$=iq(),dU$={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:($)=>(0,tU$.validateTuple)($,"items")};Jn.default=dU$});var On=P((Gn)=>{Object.defineProperty(Gn,"__esModule",{value:!0});var Wn=w$(),aU$=Q$(),eU$=U4(),sU$=Cq(),$I$={message:({params:{len:$}})=>Wn.str`must NOT have more than ${$} items`,params:({params:{len:$}})=>Wn._`{limit: ${$}}`},vI$={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:$I$,code($){let{schema:v,parentSchema:U,it:I}=$,{prefixItems:b}=U;if(I.items=!0,(0,aU$.alwaysValidSchema)(I,v))return;if(b)(0,sU$.validateAdditionalItems)($,b);else $.ok((0,eU$.validateArray)($))}};Gn.default=vI$});var zn=P((Hn)=>{Object.defineProperty(Hn,"__esModule",{value:!0});var I4=w$(),sX=Q$(),UI$={message:({params:{min:$,max:v}})=>v===void 0?I4.str`must contain at least ${$} valid item(s)`:I4.str`must contain at least ${$} and no more than ${v} valid item(s)`,params:({params:{min:$,max:v}})=>v===void 0?I4._`{minContains: ${$}}`:I4._`{minContains: ${$}, maxContains: ${v}}`},II$={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:UI$,code($){let{gen:v,schema:U,parentSchema:I,data:b,it:D}=$,u,w,{minContains:g,maxContains:J}=I;if(D.opts.next)u=g===void 0?1:g,w=J;else u=1;let X=v.const("len",I4._`${b}.length`);if($.setParams({min:u,max:w}),w===void 0&&u===0){(0,sX.checkStrictMode)(D,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(w!==void 0&&u>w){(0,sX.checkStrictMode)(D,'"minContains" > "maxContains" is always invalid'),$.fail();return}if((0,sX.alwaysValidSchema)(D,U)){let Q=I4._`${X} >= ${u}`;if(w!==void 0)Q=I4._`${Q} && ${X} <= ${w}`;$.pass(Q);return}D.items=!0;let W=v.name("valid");if(w===void 0&&u===1)O(W,()=>v.if(W,()=>v.break()));else if(u===0){if(v.let(W,!0),w!==void 0)v.if(I4._`${b}.length > 0`,G)}else v.let(W,!1),G();$.result(W,()=>$.reset());function G(){let Q=v.name("_valid"),Y=v.let("count",0);O(Q,()=>v.if(Q,()=>z(Y)))}function O(Q,Y){v.forRange("i",0,X,(K)=>{$.subschema({keyword:"contains",dataProp:K,dataPropType:sX.Type.Num,compositeRule:!0},Q),Y()})}function z(Q){if(v.code(I4._`${Q}++`),w===void 0)v.if(I4._`${Q} >= ${u}`,()=>v.assign(W,!0).break());else if(v.if(I4._`${Q} > ${w}`,()=>v.assign(W,!1).break()),u===1)v.assign(W,!0);else v.if(I4._`${Q} >= ${u}`,()=>v.assign(W,!0))}}};Hn.default=II$});var qn=P((Vn)=>{Object.defineProperty(Vn,"__esModule",{value:!0});Vn.validateSchemaDeps=Vn.validatePropertyDeps=Vn.error=void 0;var xq=w$(),uI$=Q$(),PD=U4();Vn.error={message:({params:{property:$,depsCount:v,deps:U}})=>{let I=v===1?"property":"properties";return xq.str`must have ${I} ${U} when property ${$} is present`},params:({params:{property:$,depsCount:v,deps:U,missingProperty:I}})=>xq._`{property: ${$},
|
|
8
8
|
missingProperty: ${I},
|
|
9
9
|
depsCount: ${v},
|
|
10
|
-
deps: ${U}}`};var gI$={keyword:"dependencies",type:"object",schemaType:"object",error:Vn.error,code($){let[v,U]=JI$($);Qn($,v),Yn($,U)}};function JI$({schema:$}){let v={},U={};for(let I in $){if(I==="__proto__")continue;let b=Array.isArray($[I])?v:U;b[I]=$[I]}return[v,U]}function Qn($,v=$.schema){let{gen:U,data:I,it:b}=$;if(Object.keys(v).length===0)return;let D=U.let("missing");for(let u in v){let w=v[u];if(w.length===0)continue;let g=(0,PD.propertyInData)(U,I,u,b.opts.ownProperties);if($.setParams({property:u,depsCount:w.length,deps:w.join(", ")}),b.allErrors)U.if(g,()=>{for(let J of w)(0,PD.checkReportMissingProp)($,J)});else U.if(xq._`${g} && (${(0,PD.checkMissingProp)($,w,D)})`),(0,PD.reportMissingProp)($,D),U.else()}}Vn.validatePropertyDeps=Qn;function Yn($,v=$.schema){let{gen:U,data:I,keyword:b,it:D}=$,u=U.name("valid");for(let w in v){if((0,wI$.alwaysValidSchema)(D,v[w]))continue;U.if((0,PD.propertyInData)(U,I,w,D.opts.ownProperties),()=>{let g=$.subschema({keyword:b,schemaProp:w},u);$.mergeValidEvaluated(g,u)},()=>U.var(u,!0)),$.ok(u)}}Vn.validateSchemaDeps=Yn;Vn.default=gI$});var Pn=P((An)=>{Object.defineProperty(An,"__esModule",{value:!0});var Bn=w$(),GI$=Q$(),OI$={message:"property name must be valid",params:({params:$})=>Bn._`{propertyName: ${$.propertyName}}`},HI$={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:OI$,code($){let{gen:v,schema:U,data:I,it:b}=$;if((0,GI$.alwaysValidSchema)(b,U))return;let D=v.name("valid");v.forIn("key",I,(u)=>{$.setParams({propertyName:u}),$.subschema({keyword:"propertyNames",data:u,dataTypes:["string"],propertyName:u,compositeRule:!0},D),v.if((0,Bn.not)(D),()=>{if($.error(!0),!b.allErrors)v.break()})}),$.ok(D)}};An.default=HI$});var lq=P((jn)=>{Object.defineProperty(jn,"__esModule",{value:!0});var $W=U4(),Y4=w$(),QI$=g6(),vW=Q$(),YI$={message:"must NOT have additional properties",params:({params:$})=>Y4._`{additionalProperty: ${$.additionalProperty}}`},VI$={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:YI$,code($){let{gen:v,schema:U,parentSchema:I,data:b,errsCount:D,it:u}=$;if(!D)throw Error("ajv implementation error");let{allErrors:w,opts:g}=u;if(u.props=!0,g.removeAdditional!=="all"&&(0,vW.alwaysValidSchema)(u,U))return;let J=(0,$W.allSchemaProperties)(I.properties),X=(0,$W.allSchemaProperties)(I.patternProperties);W(),$.ok(Y4._`${D} === ${QI$.default.errors}`);function W(){v.forIn("key",b,(Y)=>{if(!J.length&&!X.length)z(Y);else v.if(G(Y),()=>z(Y))})}function G(Y){let K;if(J.length>8){let F=(0,vW.schemaRefOrVal)(u,I.properties,"properties");K=(0,$W.isOwnProperty)(v,F,Y)}else if(J.length)K=(0,Y4.or)(...J.map((F)=>Y4._`${Y} === ${F}`));else K=Y4.nil;if(X.length)K=(0,Y4.or)(K,...X.map((F)=>Y4._`${(0,$W.usePattern)($,F)}.test(${Y})`));return(0,Y4.not)(K)}function O(Y){v.code(Y4._`delete ${b}[${Y}]`)}function z(Y){if(g.removeAdditional==="all"||g.removeAdditional&&U===!1){O(Y);return}if(U===!1){if($.setParams({additionalProperty:Y}),$.error(),!w)v.break();return}if(typeof U=="object"&&!(0,vW.alwaysValidSchema)(u,U)){let K=v.name("valid");if(g.removeAdditional==="failing")Q(Y,K,!1),v.if((0,Y4.not)(K),()=>{$.reset(),O(Y)});else if(Q(Y,K),!w)v.if((0,Y4.not)(K),()=>v.break())}}function Q(Y,K,F){let S={keyword:"additionalProperties",dataProp:Y,dataPropType:vW.Type.Str};if(F===!1)Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1});$.subschema(S,K)}}};jn.default=VI$});var _n=P((Mn)=>{Object.defineProperty(Mn,"__esModule",{value:!0});var KI$=GD(),Nn=U4(),fq=Q$(),Sn=lq(),qI$={keyword:"properties",type:"object",schemaType:"object",code($){let{gen:v,schema:U,parentSchema:I,data:b,it:D}=$;if(D.opts.removeAdditional==="all"&&I.additionalProperties===void 0)Sn.default.code(new KI$.KeywordCxt(D,Sn.default,"additionalProperties"));let u=(0,Nn.allSchemaProperties)(U);for(let W of u)D.definedProperties.add(W);if(D.opts.unevaluated&&u.length&&D.props!==!0)D.props=fq.mergeEvaluated.props(v,(0,fq.toHash)(u),D.props);let w=u.filter((W)=>!(0,fq.alwaysValidSchema)(D,U[W]));if(w.length===0)return;let g=v.name("valid");for(let W of w){if(J(W))X(W);else{if(v.if((0,Nn.propertyInData)(v,b,W,D.opts.ownProperties)),X(W),!D.allErrors)v.else().var(g,!0);v.endIf()}$.it.definedProperties.add(W),$.ok(g)}function J(W){return D.opts.useDefaults&&!D.compositeRule&&U[W].default!==void 0}function X(W){$.subschema({keyword:"properties",schemaProp:W,dataProp:W},g)}}};Mn.default=qI$});var En=P((kn)=>{Object.defineProperty(kn,"__esModule",{value:!0});var Fn=U4(),bW=w$(),Zn=Q$(),Tn=Q$(),AI$={keyword:"patternProperties",type:"object",schemaType:"object",code($){let{gen:v,schema:U,data:I,parentSchema:b,it:D}=$,{opts:u}=D,w=(0,Fn.allSchemaProperties)(U),g=w.filter((Q)=>(0,Zn.alwaysValidSchema)(D,U[Q]));if(w.length===0||g.length===w.length&&(!D.opts.unevaluated||D.props===!0))return;let J=u.strictSchema&&!u.allowMatchingProperties&&b.properties,X=v.name("valid");if(D.props!==!0&&!(D.props instanceof bW.Name))D.props=(0,Tn.evaluatedPropsToName)(v,D.props);let{props:W}=D;G();function G(){for(let Q of w){if(J)O(Q);if(D.allErrors)z(Q);else v.var(X,!0),z(Q),v.if(X)}}function O(Q){for(let Y in J)if(new RegExp(Q).test(Y))(0,Zn.checkStrictMode)(D,`property ${Y} matches pattern ${Q} (use allowMatchingProperties)`)}function z(Q){v.forIn("key",I,(Y)=>{v.if(bW._`${(0,Fn.usePattern)($,Q)}.test(${Y})`,()=>{let K=g.includes(Q);if(!K)$.subschema({keyword:"patternProperties",schemaProp:Q,dataProp:Y,dataPropType:Tn.Type.Str},X);if(D.opts.unevaluated&&W!==!0)v.assign(bW._`${W}[${Y}]`,!0);else if(!K&&!D.allErrors)v.if((0,bW.not)(X),()=>v.break())})})}}};kn.default=AI$});var nn=P((Rn)=>{Object.defineProperty(Rn,"__esModule",{value:!0});var jI$=Q$(),NI$={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code($){let{gen:v,schema:U,it:I}=$;if((0,jI$.alwaysValidSchema)(I,U)){$.fail();return}let b=v.name("valid");$.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},b),$.failResult(b,()=>$.reset(),()=>$.error())},error:{message:"must NOT be valid"}};Rn.default=NI$});var Cn=P((rn)=>{Object.defineProperty(rn,"__esModule",{value:!0});var MI$=U4(),_I$={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:MI$.validateUnion,error:{message:"must match a schema in anyOf"}};rn.default=_I$});var ln=P((xn)=>{Object.defineProperty(xn,"__esModule",{value:!0});var UW=w$(),ZI$=Q$(),TI$={message:"must match exactly one schema in oneOf",params:({params:$})=>UW._`{passingSchemas: ${$.passing}}`},kI$={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:TI$,code($){let{gen:v,schema:U,parentSchema:I,it:b}=$;if(!Array.isArray(U))throw Error("ajv implementation error");if(b.opts.discriminator&&I.discriminator)return;let D=U,u=v.let("valid",!1),w=v.let("passing",null),g=v.name("_valid");$.setParams({passing:w}),v.block(J),$.result(u,()=>$.reset(),()=>$.error(!0));function J(){D.forEach((X,W)=>{let G;if((0,ZI$.alwaysValidSchema)(b,X))v.var(g,!0);else G=$.subschema({keyword:"oneOf",schemaProp:W,compositeRule:!0},g);if(W>0)v.if(UW._`${g} && ${u}`).assign(u,!1).assign(w,UW._`[${w}, ${W}]`).else();v.if(g,()=>{if(v.assign(u,!0),v.assign(w,W),G)$.mergeEvaluated(G,UW.Name)})})}}};xn.default=kI$});var yn=P((fn)=>{Object.defineProperty(fn,"__esModule",{value:!0});var RI$=Q$(),nI$={keyword:"allOf",schemaType:"array",code($){let{gen:v,schema:U,it:I}=$;if(!Array.isArray(U))throw Error("ajv implementation error");let b=v.name("valid");U.forEach((D,u)=>{if((0,RI$.alwaysValidSchema)(I,D))return;let w=$.subschema({keyword:"allOf",schemaProp:u},b);$.ok(b),$.mergeEvaluated(w)})}};fn.default=nI$});var on=P((cn)=>{Object.defineProperty(cn,"__esModule",{value:!0});var IW=w$(),mn=Q$(),CI$={message:({params:$})=>IW.str`must match "${$.ifClause}" schema`,params:({params:$})=>IW._`{failingKeyword: ${$.ifClause}}`},iI$={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:CI$,code($){let{gen:v,parentSchema:U,it:I}=$;if(U.then===void 0&&U.else===void 0)(0,mn.checkStrictMode)(I,'"if" without "then" and "else" is ignored');let b=hn(I,"then"),D=hn(I,"else");if(!b&&!D)return;let u=v.let("valid",!0),w=v.name("_valid");if(g(),$.reset(),b&&D){let X=v.let("ifClause");$.setParams({ifClause:X}),v.if(w,J("then",X),J("else",X))}else if(b)v.if(w,J("then"));else v.if((0,IW.not)(w),J("else"));$.pass(u,()=>$.error(!0));function g(){let X=$.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},w);$.mergeEvaluated(X)}function J(X,W){return()=>{let G=$.subschema({keyword:X},w);if(v.assign(u,w),$.mergeValidEvaluated(G,u),W)v.assign(W,IW._`${X}`);else $.setParams({ifClause:X})}}}};function hn($,v){let U=$.schema[v];return U!==void 0&&!(0,mn.alwaysValidSchema)($,U)}cn.default=iI$});var dn=P((tn)=>{Object.defineProperty(tn,"__esModule",{value:!0});var lI$=Q$(),fI$={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:$,parentSchema:v,it:U}){if(v.if===void 0)(0,lI$.checkStrictMode)(U,`"${$}" without "if" is ignored`)}};tn.default=fI$});var an=P((pn)=>{Object.defineProperty(pn,"__esModule",{value:!0});var hI$=Cq(),mI$=Xn(),cI$=iq(),oI$=On(),tI$=zn(),dI$=qn(),pI$=Pn(),aI$=lq(),eI$=_n(),sI$=En(),$1$=nn(),v1$=Cn(),b1$=ln(),U1$=yn(),I1$=on(),D1$=dn();function u1$($=!1){let v=[$1$.default,v1$.default,b1$.default,U1$.default,I1$.default,D1$.default,pI$.default,aI$.default,dI$.default,eI$.default,sI$.default];if($)v.push(mI$.default,oI$.default);else v.push(hI$.default,cI$.default);return v.push(tI$.default),v}pn.default=u1$});var sn=P((en)=>{Object.defineProperty(en,"__esModule",{value:!0});var a$=w$(),g1$={message:({schemaCode:$})=>a$.str`must match format "${$}"`,params:({schemaCode:$})=>a$._`{format: ${$}}`},J1$={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:g1$,code($,v){let{gen:U,data:I,$data:b,schema:D,schemaCode:u,it:w}=$,{opts:g,errSchemaPath:J,schemaEnv:X,self:W}=w;if(!g.validateFormats)return;if(b)G();else O();function G(){let z=U.scopeValue("formats",{ref:W.formats,code:g.code.formats}),Q=U.const("fDef",a$._`${z}[${u}]`),Y=U.let("fType"),K=U.let("format");U.if(a$._`typeof ${Q} == "object" && !(${Q} instanceof RegExp)`,()=>U.assign(Y,a$._`${Q}.type || "string"`).assign(K,a$._`${Q}.validate`),()=>U.assign(Y,a$._`"string"`).assign(K,Q)),$.fail$data((0,a$.or)(F(),S()));function F(){if(g.strictSchema===!1)return a$.nil;return a$._`${u} && !${K}`}function S(){let j=X.$async?a$._`(${Q}.async ? await ${K}(${I}) : ${K}(${I}))`:a$._`${K}(${I})`,A=a$._`(typeof ${K} == "function" ? ${j} : ${K}.test(${I}))`;return a$._`${K} && ${K} !== true && ${Y} === ${v} && !${A}`}}function O(){let z=W.formats[D];if(!z){F();return}if(z===!0)return;let[Q,Y,K]=S(z);if(Q===v)$.pass(j());function F(){if(g.strictSchema===!1){W.logger.warn(A());return}throw Error(A());function A(){return`unknown format "${D}" ignored in schema at path "${J}"`}}function S(A){let h=A instanceof RegExp?(0,a$.regexpCode)(A):g.code.formats?a$._`${g.code.formats}${(0,a$.getProperty)(D)}`:void 0,s=U.scopeValue("formats",{key:D,ref:A,code:h});if(typeof A=="object"&&!(A instanceof RegExp))return[A.type||"string",A.validate,a$._`${s}.validate`];return["string",A,s]}function j(){if(typeof z=="object"&&!(z instanceof RegExp)&&z.async){if(!X.$async)throw Error("async format in sync schema");return a$._`await ${K}(${I})`}return typeof Y=="function"?a$._`${K}(${I})`:a$._`${K}.test(${I})`}}}};en.default=J1$});var vr=P(($r)=>{Object.defineProperty($r,"__esModule",{value:!0});var W1$=sn(),G1$=[W1$.default];$r.default=G1$});var Ir=P((br)=>{Object.defineProperty(br,"__esModule",{value:!0});br.contentVocabulary=br.metadataVocabulary=void 0;br.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];br.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var wr=P((ur)=>{Object.defineProperty(ur,"__esModule",{value:!0});var z1$=MR(),Q1$=vn(),Y1$=an(),V1$=vr(),Dr=Ir(),L1$=[z1$.default,Q1$.default,(0,Y1$.default)(),V1$.default,Dr.metadataVocabulary,Dr.contentVocabulary];ur.default=L1$});var Wr=P((Jr)=>{Object.defineProperty(Jr,"__esModule",{value:!0});Jr.DiscrError=void 0;var gr;(function($){$.Tag="tag",$.Mapping="mapping"})(gr||(Jr.DiscrError=gr={}))});var Hr=P((Or)=>{Object.defineProperty(Or,"__esModule",{value:!0});var kI=w$(),yq=Wr(),Gr=xX(),q1$=OD(),B1$=Q$(),A1$={message:({params:{discrError:$,tagName:v}})=>$===yq.DiscrError.Tag?`tag "${v}" must be string`:`value of tag "${v}" must be in oneOf`,params:({params:{discrError:$,tag:v,tagName:U}})=>kI._`{error: ${$}, tag: ${U}, tagValue: ${v}}`},P1$={keyword:"discriminator",type:"object",schemaType:"object",error:A1$,code($){let{gen:v,data:U,schema:I,parentSchema:b,it:D}=$,{oneOf:u}=b;if(!D.opts.discriminator)throw Error("discriminator: requires discriminator option");let w=I.propertyName;if(typeof w!="string")throw Error("discriminator: requires propertyName");if(I.mapping)throw Error("discriminator: mapping is not supported");if(!u)throw Error("discriminator: requires oneOf keyword");let g=v.let("valid",!1),J=v.const("tag",kI._`${U}${(0,kI.getProperty)(w)}`);v.if(kI._`typeof ${J} == "string"`,()=>X(),()=>$.error(!1,{discrError:yq.DiscrError.Tag,tag:J,tagName:w})),$.ok(g);function X(){let O=G();v.if(!1);for(let z in O)v.elseIf(kI._`${J} === ${z}`),v.assign(g,W(O[z]));v.else(),$.error(!1,{discrError:yq.DiscrError.Mapping,tag:J,tagName:w}),v.endIf()}function W(O){let z=v.name("valid"),Q=$.subschema({keyword:"oneOf",schemaProp:O},z);return $.mergeEvaluated(Q,kI.Name),z}function G(){var O;let z={},Q=K(b),Y=!0;for(let j=0;j<u.length;j++){let A=u[j];if((A===null||A===void 0?void 0:A.$ref)&&!(0,B1$.schemaHasRulesButRef)(A,D.self.RULES)){let s=A.$ref;if(A=Gr.resolveRef.call(D.self,D.schemaEnv.root,D.baseId,s),A instanceof Gr.SchemaEnv)A=A.schema;if(A===void 0)throw new q1$.default(D.opts.uriResolver,D.baseId,s)}let h=(O=A===null||A===void 0?void 0:A.properties)===null||O===void 0?void 0:O[w];if(typeof h!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${w}"`);Y=Y&&(Q||K(A)),F(h,j)}if(!Y)throw Error(`discriminator: "${w}" must be required`);return z;function K({required:j}){return Array.isArray(j)&&j.includes(w)}function F(j,A){if(j.const)S(j.const,A);else if(j.enum)for(let h of j.enum)S(h,A);else throw Error(`discriminator: "properties/${w}" must have "const" or "enum"`)}function S(j,A){if(typeof j!="string"||j in z)throw Error(`discriminator: "${w}" values must be unique strings`);z[j]=A}}}};Or.default=P1$});var zr=P((cF$,N1$)=>{N1$.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var mq=P((lv,hq)=>{Object.defineProperty(lv,"__esModule",{value:!0});lv.MissingRefError=lv.ValidationError=lv.CodeGen=lv.Name=lv.nil=lv.stringify=lv.str=lv._=lv.KeywordCxt=lv.Ajv=void 0;var S1$=VR(),M1$=wr(),_1$=Hr(),Qr=zr(),F1$=["/properties"],DW="http://json-schema.org/draft-07/schema";class jD extends S1$.default{_addVocabularies(){if(super._addVocabularies(),M1$.default.forEach(($)=>this.addVocabulary($)),this.opts.discriminator)this.addKeyword(_1$.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let $=this.opts.$data?this.$dataMetaSchema(Qr,F1$):Qr;this.addMetaSchema($,DW,!1),this.refs["http://json-schema.org/schema"]=DW}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(DW)?DW:void 0)}}lv.Ajv=jD;hq.exports=lv=jD;hq.exports.Ajv=jD;Object.defineProperty(lv,"__esModule",{value:!0});lv.default=jD;var Z1$=GD();Object.defineProperty(lv,"KeywordCxt",{enumerable:!0,get:function(){return Z1$.KeywordCxt}});var EI=w$();Object.defineProperty(lv,"_",{enumerable:!0,get:function(){return EI._}});Object.defineProperty(lv,"str",{enumerable:!0,get:function(){return EI.str}});Object.defineProperty(lv,"stringify",{enumerable:!0,get:function(){return EI.stringify}});Object.defineProperty(lv,"nil",{enumerable:!0,get:function(){return EI.nil}});Object.defineProperty(lv,"Name",{enumerable:!0,get:function(){return EI.Name}});Object.defineProperty(lv,"CodeGen",{enumerable:!0,get:function(){return EI.CodeGen}});var T1$=CX();Object.defineProperty(lv,"ValidationError",{enumerable:!0,get:function(){return T1$.default}});var k1$=OD();Object.defineProperty(lv,"MissingRefError",{enumerable:!0,get:function(){return k1$.default}})});var Nr=P((Pr)=>{Object.defineProperty(Pr,"__esModule",{value:!0});Pr.formatNames=Pr.fastFormats=Pr.fullFormats=void 0;function i4($,v){return{validate:$,compare:v}}Pr.fullFormats={date:i4(Kr,dq),time:i4(oq(!0),pq),"date-time":i4(Yr(!0),Br),"iso-time":i4(oq(),qr),"iso-date-time":i4(Yr(),Ar),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:l1$,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:t1$,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:f1$,int32:{type:"number",validate:m1$},int64:{type:"number",validate:c1$},float:{type:"number",validate:Lr},double:{type:"number",validate:Lr},password:!0,binary:!0};Pr.fastFormats={...Pr.fullFormats,date:i4(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,dq),time:i4(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,pq),"date-time":i4(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Br),"iso-time":i4(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,qr),"iso-date-time":i4(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Ar),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Pr.formatNames=Object.keys(Pr.fullFormats);function n1$($){return $%4===0&&($%100!==0||$%400===0)}var r1$=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,C1$=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Kr($){let v=r1$.exec($);if(!v)return!1;let U=+v[1],I=+v[2],b=+v[3];return I>=1&&I<=12&&b>=1&&b<=(I===2&&n1$(U)?29:C1$[I])}function dq($,v){if(!($&&v))return;if($>v)return 1;if($<v)return-1;return 0}var cq=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function oq($){return function(U){let I=cq.exec(U);if(!I)return!1;let b=+I[1],D=+I[2],u=+I[3],w=I[4],g=I[5]==="-"?-1:1,J=+(I[6]||0),X=+(I[7]||0);if(J>23||X>59||$&&!w)return!1;if(b<=23&&D<=59&&u<60)return!0;let W=D-X*g,G=b-J*g-(W<0?1:0);return(G===23||G===-1)&&(W===59||W===-1)&&u<61}}function pq($,v){if(!($&&v))return;let U=new Date("2020-01-01T"+$).valueOf(),I=new Date("2020-01-01T"+v).valueOf();if(!(U&&I))return;return U-I}function qr($,v){if(!($&&v))return;let U=cq.exec($),I=cq.exec(v);if(!(U&&I))return;if($=U[1]+U[2]+U[3],v=I[1]+I[2]+I[3],$>v)return 1;if($<v)return-1;return 0}var tq=/t|\s/i;function Yr($){let v=oq($);return function(I){let b=I.split(tq);return b.length===2&&Kr(b[0])&&v(b[1])}}function Br($,v){if(!($&&v))return;let U=new Date($).valueOf(),I=new Date(v).valueOf();if(!(U&&I))return;return U-I}function Ar($,v){if(!($&&v))return;let[U,I]=$.split(tq),[b,D]=v.split(tq),u=dq(U,b);if(u===void 0)return;return u||pq(I,D)}var i1$=/\/|:/,x1$=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function l1$($){return i1$.test($)&&x1$.test($)}var Vr=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function f1$($){return Vr.lastIndex=0,Vr.test($)}var y1$=-2147483648,h1$=2147483647;function m1$($){return Number.isInteger($)&&$<=h1$&&$>=y1$}function c1$($){return Number.isInteger($)}function Lr(){return!0}var o1$=/[^\\]\\Z/;function t1$($){if(o1$.test($))return!1;try{return new RegExp($),!0}catch(v){return!1}}});var Mr=P((Sr)=>{Object.defineProperty(Sr,"__esModule",{value:!0});Sr.formatLimitDefinition=void 0;var p1$=mq(),V4=w$(),$b=V4.operators,uW={formatMaximum:{okStr:"<=",ok:$b.LTE,fail:$b.GT},formatMinimum:{okStr:">=",ok:$b.GTE,fail:$b.LT},formatExclusiveMaximum:{okStr:"<",ok:$b.LT,fail:$b.GTE},formatExclusiveMinimum:{okStr:">",ok:$b.GT,fail:$b.LTE}},a1$={message:({keyword:$,schemaCode:v})=>V4.str`should be ${uW[$].okStr} ${v}`,params:({keyword:$,schemaCode:v})=>V4._`{comparison: ${uW[$].okStr}, limit: ${v}}`};Sr.formatLimitDefinition={keyword:Object.keys(uW),type:"string",schemaType:"string",$data:!0,error:a1$,code($){let{gen:v,data:U,schemaCode:I,keyword:b,it:D}=$,{opts:u,self:w}=D;if(!u.validateFormats)return;let g=new p1$.KeywordCxt(D,w.RULES.all.format.definition,"format");if(g.$data)J();else X();function J(){let G=v.scopeValue("formats",{ref:w.formats,code:u.code.formats}),O=v.const("fmt",V4._`${G}[${g.schemaCode}]`);$.fail$data((0,V4.or)(V4._`typeof ${O} != "object"`,V4._`${O} instanceof RegExp`,V4._`typeof ${O}.compare != "function"`,W(O)))}function X(){let G=g.schema,O=w.formats[G];if(!O||O===!0)return;if(typeof O!="object"||O instanceof RegExp||typeof O.compare!="function")throw Error(`"${b}": format "${G}" does not define "compare" function`);let z=v.scopeValue("formats",{key:G,ref:O,code:u.code.formats?V4._`${u.code.formats}${(0,V4.getProperty)(G)}`:void 0});$.fail$data(W(z))}function W(G){return V4._`${G}.compare(${U}, ${I}) ${uW[b].fail} 0`}},dependencies:["format"]};var e1$=($)=>{return $.addKeyword(Sr.formatLimitDefinition),$};Sr.default=e1$});var Tr=P((ND,Zr)=>{Object.defineProperty(ND,"__esModule",{value:!0});var RI=Nr(),$0$=Mr(),sq=w$(),_r=new sq.Name("fullFormats"),v0$=new sq.Name("fastFormats"),$B=($,v={keywords:!0})=>{if(Array.isArray(v))return Fr($,v,RI.fullFormats,_r),$;let[U,I]=v.mode==="fast"?[RI.fastFormats,v0$]:[RI.fullFormats,_r],b=v.formats||RI.formatNames;if(Fr($,b,U,I),v.keywords)(0,$0$.default)($);return $};$B.get=($,v="full")=>{let I=(v==="fast"?RI.fastFormats:RI.fullFormats)[$];if(!I)throw Error(`Unknown format "${$}"`);return I};function Fr($,v,U,I){var b,D;(b=(D=$.opts.code).formats)!==null&&b!==void 0||(D.formats=sq._`require("ajv-formats/dist/formats").${I}`);for(let u of v)$.addFormat(u,U[u])}Zr.exports=ND=$B;Object.defineProperty(ND,"__esModule",{value:!0});ND.default=$B});var V$=P((W0$)=>{var uB=Symbol.for("yaml.alias"),ir=Symbol.for("yaml.document"),wW=Symbol.for("yaml.map"),xr=Symbol.for("yaml.pair"),wB=Symbol.for("yaml.scalar"),gW=Symbol.for("yaml.seq"),G6=Symbol.for("yaml.node.type"),I0$=($)=>!!$&&typeof $==="object"&&$[G6]===uB,D0$=($)=>!!$&&typeof $==="object"&&$[G6]===ir,u0$=($)=>!!$&&typeof $==="object"&&$[G6]===wW,w0$=($)=>!!$&&typeof $==="object"&&$[G6]===xr,lr=($)=>!!$&&typeof $==="object"&&$[G6]===wB,g0$=($)=>!!$&&typeof $==="object"&&$[G6]===gW;function fr($){if($&&typeof $==="object")switch($[G6]){case wW:case gW:return!0}return!1}function J0$($){if($&&typeof $==="object")switch($[G6]){case uB:case wW:case wB:case gW:return!0}return!1}var X0$=($)=>(lr($)||fr($))&&!!$.anchor;W0$.ALIAS=uB;W0$.DOC=ir;W0$.MAP=wW;W0$.NODE_TYPE=G6;W0$.PAIR=xr;W0$.SCALAR=wB;W0$.SEQ=gW;W0$.hasAnchor=X0$;W0$.isAlias=I0$;W0$.isCollection=fr;W0$.isDocument=D0$;W0$.isMap=u0$;W0$.isNode=J0$;W0$.isPair=w0$;W0$.isScalar=lr;W0$.isSeq=g0$});var SD=P((M0$)=>{var bv=V$(),fv=Symbol("break visit"),yr=Symbol("skip children"),x4=Symbol("remove node");function JW($,v){let U=hr(v);if(bv.isDocument($)){if(nI(null,$.contents,U,Object.freeze([$]))===x4)$.contents=null}else nI(null,$,U,Object.freeze([]))}JW.BREAK=fv;JW.SKIP=yr;JW.REMOVE=x4;function nI($,v,U,I){let b=mr($,v,U,I);if(bv.isNode(b)||bv.isPair(b))return cr($,I,b),nI($,b,U,I);if(typeof b!=="symbol"){if(bv.isCollection(v)){I=Object.freeze(I.concat(v));for(let D=0;D<v.items.length;++D){let u=nI(D,v.items[D],U,I);if(typeof u==="number")D=u-1;else if(u===fv)return fv;else if(u===x4)v.items.splice(D,1),D-=1}}else if(bv.isPair(v)){I=Object.freeze(I.concat(v));let D=nI("key",v.key,U,I);if(D===fv)return fv;else if(D===x4)v.key=null;let u=nI("value",v.value,U,I);if(u===fv)return fv;else if(u===x4)v.value=null}}return b}async function XW($,v){let U=hr(v);if(bv.isDocument($)){if(await rI(null,$.contents,U,Object.freeze([$]))===x4)$.contents=null}else await rI(null,$,U,Object.freeze([]))}XW.BREAK=fv;XW.SKIP=yr;XW.REMOVE=x4;async function rI($,v,U,I){let b=await mr($,v,U,I);if(bv.isNode(b)||bv.isPair(b))return cr($,I,b),rI($,b,U,I);if(typeof b!=="symbol"){if(bv.isCollection(v)){I=Object.freeze(I.concat(v));for(let D=0;D<v.items.length;++D){let u=await rI(D,v.items[D],U,I);if(typeof u==="number")D=u-1;else if(u===fv)return fv;else if(u===x4)v.items.splice(D,1),D-=1}}else if(bv.isPair(v)){I=Object.freeze(I.concat(v));let D=await rI("key",v.key,U,I);if(D===fv)return fv;else if(D===x4)v.key=null;let u=await rI("value",v.value,U,I);if(u===fv)return fv;else if(u===x4)v.value=null}}return b}function hr($){if(typeof $==="object"&&($.Collection||$.Node||$.Value))return Object.assign({Alias:$.Node,Map:$.Node,Scalar:$.Node,Seq:$.Node},$.Value&&{Map:$.Value,Scalar:$.Value,Seq:$.Value},$.Collection&&{Map:$.Collection,Seq:$.Collection},$);return $}function mr($,v,U,I){if(typeof U==="function")return U($,v,I);if(bv.isMap(v))return U.Map?.($,v,I);if(bv.isSeq(v))return U.Seq?.($,v,I);if(bv.isPair(v))return U.Pair?.($,v,I);if(bv.isScalar(v))return U.Scalar?.($,v,I);if(bv.isAlias(v))return U.Alias?.($,v,I);return}function cr($,v,U){let I=v[v.length-1];if(bv.isCollection(I))I.items[$]=U;else if(bv.isPair(I))if($==="key")I.key=U;else I.value=U;else if(bv.isDocument(I))I.contents=U;else{let b=bv.isAlias(I)?"alias":"scalar";throw Error(`Cannot replace node with ${b} parent`)}}M0$.visit=JW;M0$.visitAsync=XW});var gB=P((E0$)=>{var or=V$(),Z0$=SD(),T0$={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},k0$=($)=>$.replace(/[!,[\]{}]/g,(v)=>T0$[v]);class D4{constructor($,v){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},D4.defaultYaml,$),this.tags=Object.assign({},D4.defaultTags,v)}clone(){let $=new D4(this.yaml,this.tags);return $.docStart=this.docStart,$}atDocument(){let $=new D4(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:D4.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},D4.defaultTags);break}return $}add($,v){if(this.atNextDocument)this.yaml={explicit:D4.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},D4.defaultTags),this.atNextDocument=!1;let U=$.trim().split(/[ \t]+/),I=U.shift();switch(I){case"%TAG":{if(U.length!==2){if(v(0,"%TAG directive should contain exactly two parts"),U.length<2)return!1}let[b,D]=U;return this.tags[b]=D,!0}case"%YAML":{if(this.yaml.explicit=!0,U.length!==1)return v(0,"%YAML directive should contain exactly one part"),!1;let[b]=U;if(b==="1.1"||b==="1.2")return this.yaml.version=b,!0;else{let D=/^\d+\.\d+$/.test(b);return v(6,`Unsupported YAML version ${b}`,D),!1}}default:return v(0,`Unknown directive ${I}`,!0),!1}}tagName($,v){if($==="!")return"!";if($[0]!=="!")return v(`Not a valid tag: ${$}`),null;if($[1]==="<"){let D=$.slice(2,-1);if(D==="!"||D==="!!")return v(`Verbatim tags aren't resolved, so ${$} is invalid.`),null;if($[$.length-1]!==">")v("Verbatim tags must end with a >");return D}let[,U,I]=$.match(/^(.*!)([^!]*)$/s);if(!I)v(`The ${$} tag has no suffix`);let b=this.tags[U];if(b)try{return b+decodeURIComponent(I)}catch(D){return v(String(D)),null}if(U==="!")return $;return v(`Could not resolve tag: ${$}`),null}tagString($){for(let[v,U]of Object.entries(this.tags))if($.startsWith(U))return v+k0$($.substring(U.length));return $[0]==="!"?$:`!<${$}>`}toString($){let v=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],U=Object.entries(this.tags),I;if($&&U.length>0&&or.isNode($.contents)){let b={};Z0$.visit($.contents,(D,u)=>{if(or.isNode(u)&&u.tag)b[u.tag]=!0}),I=Object.keys(b)}else I=[];for(let[b,D]of U){if(b==="!!"&&D==="tag:yaml.org,2002:")continue;if(!$||I.some((u)=>u.startsWith(D)))v.push(`%TAG ${b} ${D}`)}return v.join(`
|
|
11
|
-
`)}}D4.defaultYaml={explicit:!1,version:"1.2"};D4.defaultTags={"!!":"tag:yaml.org,2002:"};
|
|
10
|
+
deps: ${U}}`};var wI$={keyword:"dependencies",type:"object",schemaType:"object",error:Vn.error,code($){let[v,U]=gI$($);Qn($,v),Yn($,U)}};function gI$({schema:$}){let v={},U={};for(let I in $){if(I==="__proto__")continue;let b=Array.isArray($[I])?v:U;b[I]=$[I]}return[v,U]}function Qn($,v=$.schema){let{gen:U,data:I,it:b}=$;if(Object.keys(v).length===0)return;let D=U.let("missing");for(let u in v){let w=v[u];if(w.length===0)continue;let g=(0,PD.propertyInData)(U,I,u,b.opts.ownProperties);if($.setParams({property:u,depsCount:w.length,deps:w.join(", ")}),b.allErrors)U.if(g,()=>{for(let J of w)(0,PD.checkReportMissingProp)($,J)});else U.if(xq._`${g} && (${(0,PD.checkMissingProp)($,w,D)})`),(0,PD.reportMissingProp)($,D),U.else()}}Vn.validatePropertyDeps=Qn;function Yn($,v=$.schema){let{gen:U,data:I,keyword:b,it:D}=$,u=U.name("valid");for(let w in v){if((0,uI$.alwaysValidSchema)(D,v[w]))continue;U.if((0,PD.propertyInData)(U,I,w,D.opts.ownProperties),()=>{let g=$.subschema({keyword:b,schemaProp:w},u);$.mergeValidEvaluated(g,u)},()=>U.var(u,!0)),$.ok(u)}}Vn.validateSchemaDeps=Yn;Vn.default=wI$});var Pn=P((An)=>{Object.defineProperty(An,"__esModule",{value:!0});var Bn=w$(),WI$=Q$(),GI$={message:"property name must be valid",params:({params:$})=>Bn._`{propertyName: ${$.propertyName}}`},OI$={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:GI$,code($){let{gen:v,schema:U,data:I,it:b}=$;if((0,WI$.alwaysValidSchema)(b,U))return;let D=v.name("valid");v.forIn("key",I,(u)=>{$.setParams({propertyName:u}),$.subschema({keyword:"propertyNames",data:u,dataTypes:["string"],propertyName:u,compositeRule:!0},D),v.if((0,Bn.not)(D),()=>{if($.error(!0),!b.allErrors)v.break()})}),$.ok(D)}};An.default=OI$});var lq=P((jn)=>{Object.defineProperty(jn,"__esModule",{value:!0});var $W=U4(),Y4=w$(),zI$=g6(),vW=Q$(),QI$={message:"must NOT have additional properties",params:({params:$})=>Y4._`{additionalProperty: ${$.additionalProperty}}`},YI$={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:QI$,code($){let{gen:v,schema:U,parentSchema:I,data:b,errsCount:D,it:u}=$;if(!D)throw Error("ajv implementation error");let{allErrors:w,opts:g}=u;if(u.props=!0,g.removeAdditional!=="all"&&(0,vW.alwaysValidSchema)(u,U))return;let J=(0,$W.allSchemaProperties)(I.properties),X=(0,$W.allSchemaProperties)(I.patternProperties);W(),$.ok(Y4._`${D} === ${zI$.default.errors}`);function W(){v.forIn("key",b,(Y)=>{if(!J.length&&!X.length)z(Y);else v.if(G(Y),()=>z(Y))})}function G(Y){let K;if(J.length>8){let F=(0,vW.schemaRefOrVal)(u,I.properties,"properties");K=(0,$W.isOwnProperty)(v,F,Y)}else if(J.length)K=(0,Y4.or)(...J.map((F)=>Y4._`${Y} === ${F}`));else K=Y4.nil;if(X.length)K=(0,Y4.or)(K,...X.map((F)=>Y4._`${(0,$W.usePattern)($,F)}.test(${Y})`));return(0,Y4.not)(K)}function O(Y){v.code(Y4._`delete ${b}[${Y}]`)}function z(Y){if(g.removeAdditional==="all"||g.removeAdditional&&U===!1){O(Y);return}if(U===!1){if($.setParams({additionalProperty:Y}),$.error(),!w)v.break();return}if(typeof U=="object"&&!(0,vW.alwaysValidSchema)(u,U)){let K=v.name("valid");if(g.removeAdditional==="failing")Q(Y,K,!1),v.if((0,Y4.not)(K),()=>{$.reset(),O(Y)});else if(Q(Y,K),!w)v.if((0,Y4.not)(K),()=>v.break())}}function Q(Y,K,F){let S={keyword:"additionalProperties",dataProp:Y,dataPropType:vW.Type.Str};if(F===!1)Object.assign(S,{compositeRule:!0,createErrors:!1,allErrors:!1});$.subschema(S,K)}}};jn.default=YI$});var _n=P((Mn)=>{Object.defineProperty(Mn,"__esModule",{value:!0});var LI$=GD(),Nn=U4(),fq=Q$(),Sn=lq(),KI$={keyword:"properties",type:"object",schemaType:"object",code($){let{gen:v,schema:U,parentSchema:I,data:b,it:D}=$;if(D.opts.removeAdditional==="all"&&I.additionalProperties===void 0)Sn.default.code(new LI$.KeywordCxt(D,Sn.default,"additionalProperties"));let u=(0,Nn.allSchemaProperties)(U);for(let W of u)D.definedProperties.add(W);if(D.opts.unevaluated&&u.length&&D.props!==!0)D.props=fq.mergeEvaluated.props(v,(0,fq.toHash)(u),D.props);let w=u.filter((W)=>!(0,fq.alwaysValidSchema)(D,U[W]));if(w.length===0)return;let g=v.name("valid");for(let W of w){if(J(W))X(W);else{if(v.if((0,Nn.propertyInData)(v,b,W,D.opts.ownProperties)),X(W),!D.allErrors)v.else().var(g,!0);v.endIf()}$.it.definedProperties.add(W),$.ok(g)}function J(W){return D.opts.useDefaults&&!D.compositeRule&&U[W].default!==void 0}function X(W){$.subschema({keyword:"properties",schemaProp:W,dataProp:W},g)}}};Mn.default=KI$});var En=P((kn)=>{Object.defineProperty(kn,"__esModule",{value:!0});var Fn=U4(),bW=w$(),Zn=Q$(),Tn=Q$(),BI$={keyword:"patternProperties",type:"object",schemaType:"object",code($){let{gen:v,schema:U,data:I,parentSchema:b,it:D}=$,{opts:u}=D,w=(0,Fn.allSchemaProperties)(U),g=w.filter((Q)=>(0,Zn.alwaysValidSchema)(D,U[Q]));if(w.length===0||g.length===w.length&&(!D.opts.unevaluated||D.props===!0))return;let J=u.strictSchema&&!u.allowMatchingProperties&&b.properties,X=v.name("valid");if(D.props!==!0&&!(D.props instanceof bW.Name))D.props=(0,Tn.evaluatedPropsToName)(v,D.props);let{props:W}=D;G();function G(){for(let Q of w){if(J)O(Q);if(D.allErrors)z(Q);else v.var(X,!0),z(Q),v.if(X)}}function O(Q){for(let Y in J)if(new RegExp(Q).test(Y))(0,Zn.checkStrictMode)(D,`property ${Y} matches pattern ${Q} (use allowMatchingProperties)`)}function z(Q){v.forIn("key",I,(Y)=>{v.if(bW._`${(0,Fn.usePattern)($,Q)}.test(${Y})`,()=>{let K=g.includes(Q);if(!K)$.subschema({keyword:"patternProperties",schemaProp:Q,dataProp:Y,dataPropType:Tn.Type.Str},X);if(D.opts.unevaluated&&W!==!0)v.assign(bW._`${W}[${Y}]`,!0);else if(!K&&!D.allErrors)v.if((0,bW.not)(X),()=>v.break())})})}}};kn.default=BI$});var nn=P((Rn)=>{Object.defineProperty(Rn,"__esModule",{value:!0});var PI$=Q$(),jI$={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code($){let{gen:v,schema:U,it:I}=$;if((0,PI$.alwaysValidSchema)(I,U)){$.fail();return}let b=v.name("valid");$.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},b),$.failResult(b,()=>$.reset(),()=>$.error())},error:{message:"must NOT be valid"}};Rn.default=jI$});var Cn=P((rn)=>{Object.defineProperty(rn,"__esModule",{value:!0});var SI$=U4(),MI$={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:SI$.validateUnion,error:{message:"must match a schema in anyOf"}};rn.default=MI$});var ln=P((xn)=>{Object.defineProperty(xn,"__esModule",{value:!0});var UW=w$(),FI$=Q$(),ZI$={message:"must match exactly one schema in oneOf",params:({params:$})=>UW._`{passingSchemas: ${$.passing}}`},TI$={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:ZI$,code($){let{gen:v,schema:U,parentSchema:I,it:b}=$;if(!Array.isArray(U))throw Error("ajv implementation error");if(b.opts.discriminator&&I.discriminator)return;let D=U,u=v.let("valid",!1),w=v.let("passing",null),g=v.name("_valid");$.setParams({passing:w}),v.block(J),$.result(u,()=>$.reset(),()=>$.error(!0));function J(){D.forEach((X,W)=>{let G;if((0,FI$.alwaysValidSchema)(b,X))v.var(g,!0);else G=$.subschema({keyword:"oneOf",schemaProp:W,compositeRule:!0},g);if(W>0)v.if(UW._`${g} && ${u}`).assign(u,!1).assign(w,UW._`[${w}, ${W}]`).else();v.if(g,()=>{if(v.assign(u,!0),v.assign(w,W),G)$.mergeEvaluated(G,UW.Name)})})}}};xn.default=TI$});var yn=P((fn)=>{Object.defineProperty(fn,"__esModule",{value:!0});var EI$=Q$(),RI$={keyword:"allOf",schemaType:"array",code($){let{gen:v,schema:U,it:I}=$;if(!Array.isArray(U))throw Error("ajv implementation error");let b=v.name("valid");U.forEach((D,u)=>{if((0,EI$.alwaysValidSchema)(I,D))return;let w=$.subschema({keyword:"allOf",schemaProp:u},b);$.ok(b),$.mergeEvaluated(w)})}};fn.default=RI$});var on=P((cn)=>{Object.defineProperty(cn,"__esModule",{value:!0});var IW=w$(),mn=Q$(),rI$={message:({params:$})=>IW.str`must match "${$.ifClause}" schema`,params:({params:$})=>IW._`{failingKeyword: ${$.ifClause}}`},CI$={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:rI$,code($){let{gen:v,parentSchema:U,it:I}=$;if(U.then===void 0&&U.else===void 0)(0,mn.checkStrictMode)(I,'"if" without "then" and "else" is ignored');let b=hn(I,"then"),D=hn(I,"else");if(!b&&!D)return;let u=v.let("valid",!0),w=v.name("_valid");if(g(),$.reset(),b&&D){let X=v.let("ifClause");$.setParams({ifClause:X}),v.if(w,J("then",X),J("else",X))}else if(b)v.if(w,J("then"));else v.if((0,IW.not)(w),J("else"));$.pass(u,()=>$.error(!0));function g(){let X=$.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},w);$.mergeEvaluated(X)}function J(X,W){return()=>{let G=$.subschema({keyword:X},w);if(v.assign(u,w),$.mergeValidEvaluated(G,u),W)v.assign(W,IW._`${X}`);else $.setParams({ifClause:X})}}}};function hn($,v){let U=$.schema[v];return U!==void 0&&!(0,mn.alwaysValidSchema)($,U)}cn.default=CI$});var dn=P((tn)=>{Object.defineProperty(tn,"__esModule",{value:!0});var xI$=Q$(),lI$={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:$,parentSchema:v,it:U}){if(v.if===void 0)(0,xI$.checkStrictMode)(U,`"${$}" without "if" is ignored`)}};tn.default=lI$});var an=P((pn)=>{Object.defineProperty(pn,"__esModule",{value:!0});var yI$=Cq(),hI$=Xn(),mI$=iq(),cI$=On(),oI$=zn(),tI$=qn(),dI$=Pn(),pI$=lq(),aI$=_n(),eI$=En(),sI$=nn(),$1$=Cn(),v1$=ln(),b1$=yn(),U1$=on(),I1$=dn();function D1$($=!1){let v=[sI$.default,$1$.default,v1$.default,b1$.default,U1$.default,I1$.default,dI$.default,pI$.default,tI$.default,aI$.default,eI$.default];if($)v.push(hI$.default,cI$.default);else v.push(yI$.default,mI$.default);return v.push(oI$.default),v}pn.default=D1$});var sn=P((en)=>{Object.defineProperty(en,"__esModule",{value:!0});var a$=w$(),w1$={message:({schemaCode:$})=>a$.str`must match format "${$}"`,params:({schemaCode:$})=>a$._`{format: ${$}}`},g1$={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:w1$,code($,v){let{gen:U,data:I,$data:b,schema:D,schemaCode:u,it:w}=$,{opts:g,errSchemaPath:J,schemaEnv:X,self:W}=w;if(!g.validateFormats)return;if(b)G();else O();function G(){let z=U.scopeValue("formats",{ref:W.formats,code:g.code.formats}),Q=U.const("fDef",a$._`${z}[${u}]`),Y=U.let("fType"),K=U.let("format");U.if(a$._`typeof ${Q} == "object" && !(${Q} instanceof RegExp)`,()=>U.assign(Y,a$._`${Q}.type || "string"`).assign(K,a$._`${Q}.validate`),()=>U.assign(Y,a$._`"string"`).assign(K,Q)),$.fail$data((0,a$.or)(F(),S()));function F(){if(g.strictSchema===!1)return a$.nil;return a$._`${u} && !${K}`}function S(){let j=X.$async?a$._`(${Q}.async ? await ${K}(${I}) : ${K}(${I}))`:a$._`${K}(${I})`,A=a$._`(typeof ${K} == "function" ? ${j} : ${K}.test(${I}))`;return a$._`${K} && ${K} !== true && ${Y} === ${v} && !${A}`}}function O(){let z=W.formats[D];if(!z){F();return}if(z===!0)return;let[Q,Y,K]=S(z);if(Q===v)$.pass(j());function F(){if(g.strictSchema===!1){W.logger.warn(A());return}throw Error(A());function A(){return`unknown format "${D}" ignored in schema at path "${J}"`}}function S(A){let h=A instanceof RegExp?(0,a$.regexpCode)(A):g.code.formats?a$._`${g.code.formats}${(0,a$.getProperty)(D)}`:void 0,s=U.scopeValue("formats",{key:D,ref:A,code:h});if(typeof A=="object"&&!(A instanceof RegExp))return[A.type||"string",A.validate,a$._`${s}.validate`];return["string",A,s]}function j(){if(typeof z=="object"&&!(z instanceof RegExp)&&z.async){if(!X.$async)throw Error("async format in sync schema");return a$._`await ${K}(${I})`}return typeof Y=="function"?a$._`${K}(${I})`:a$._`${K}.test(${I})`}}}};en.default=g1$});var vr=P(($r)=>{Object.defineProperty($r,"__esModule",{value:!0});var X1$=sn(),W1$=[X1$.default];$r.default=W1$});var Ir=P((br)=>{Object.defineProperty(br,"__esModule",{value:!0});br.contentVocabulary=br.metadataVocabulary=void 0;br.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];br.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var wr=P((ur)=>{Object.defineProperty(ur,"__esModule",{value:!0});var H1$=MR(),z1$=vn(),Q1$=an(),Y1$=vr(),Dr=Ir(),V1$=[H1$.default,z1$.default,(0,Q1$.default)(),Y1$.default,Dr.metadataVocabulary,Dr.contentVocabulary];ur.default=V1$});var Wr=P((Jr)=>{Object.defineProperty(Jr,"__esModule",{value:!0});Jr.DiscrError=void 0;var gr;(function($){$.Tag="tag",$.Mapping="mapping"})(gr||(Jr.DiscrError=gr={}))});var Hr=P((Or)=>{Object.defineProperty(Or,"__esModule",{value:!0});var kI=w$(),yq=Wr(),Gr=xX(),K1$=OD(),q1$=Q$(),B1$={message:({params:{discrError:$,tagName:v}})=>$===yq.DiscrError.Tag?`tag "${v}" must be string`:`value of tag "${v}" must be in oneOf`,params:({params:{discrError:$,tag:v,tagName:U}})=>kI._`{error: ${$}, tag: ${U}, tagValue: ${v}}`},A1$={keyword:"discriminator",type:"object",schemaType:"object",error:B1$,code($){let{gen:v,data:U,schema:I,parentSchema:b,it:D}=$,{oneOf:u}=b;if(!D.opts.discriminator)throw Error("discriminator: requires discriminator option");let w=I.propertyName;if(typeof w!="string")throw Error("discriminator: requires propertyName");if(I.mapping)throw Error("discriminator: mapping is not supported");if(!u)throw Error("discriminator: requires oneOf keyword");let g=v.let("valid",!1),J=v.const("tag",kI._`${U}${(0,kI.getProperty)(w)}`);v.if(kI._`typeof ${J} == "string"`,()=>X(),()=>$.error(!1,{discrError:yq.DiscrError.Tag,tag:J,tagName:w})),$.ok(g);function X(){let O=G();v.if(!1);for(let z in O)v.elseIf(kI._`${J} === ${z}`),v.assign(g,W(O[z]));v.else(),$.error(!1,{discrError:yq.DiscrError.Mapping,tag:J,tagName:w}),v.endIf()}function W(O){let z=v.name("valid"),Q=$.subschema({keyword:"oneOf",schemaProp:O},z);return $.mergeEvaluated(Q,kI.Name),z}function G(){var O;let z={},Q=K(b),Y=!0;for(let j=0;j<u.length;j++){let A=u[j];if((A===null||A===void 0?void 0:A.$ref)&&!(0,q1$.schemaHasRulesButRef)(A,D.self.RULES)){let s=A.$ref;if(A=Gr.resolveRef.call(D.self,D.schemaEnv.root,D.baseId,s),A instanceof Gr.SchemaEnv)A=A.schema;if(A===void 0)throw new K1$.default(D.opts.uriResolver,D.baseId,s)}let h=(O=A===null||A===void 0?void 0:A.properties)===null||O===void 0?void 0:O[w];if(typeof h!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${w}"`);Y=Y&&(Q||K(A)),F(h,j)}if(!Y)throw Error(`discriminator: "${w}" must be required`);return z;function K({required:j}){return Array.isArray(j)&&j.includes(w)}function F(j,A){if(j.const)S(j.const,A);else if(j.enum)for(let h of j.enum)S(h,A);else throw Error(`discriminator: "properties/${w}" must have "const" or "enum"`)}function S(j,A){if(typeof j!="string"||j in z)throw Error(`discriminator: "${w}" values must be unique strings`);z[j]=A}}}};Or.default=A1$});var zr=P((mF$,j1$)=>{j1$.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var mq=P((lv,hq)=>{Object.defineProperty(lv,"__esModule",{value:!0});lv.MissingRefError=lv.ValidationError=lv.CodeGen=lv.Name=lv.nil=lv.stringify=lv.str=lv._=lv.KeywordCxt=lv.Ajv=void 0;var N1$=VR(),S1$=wr(),M1$=Hr(),Qr=zr(),_1$=["/properties"],DW="http://json-schema.org/draft-07/schema";class jD extends N1$.default{_addVocabularies(){if(super._addVocabularies(),S1$.default.forEach(($)=>this.addVocabulary($)),this.opts.discriminator)this.addKeyword(M1$.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let $=this.opts.$data?this.$dataMetaSchema(Qr,_1$):Qr;this.addMetaSchema($,DW,!1),this.refs["http://json-schema.org/schema"]=DW}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(DW)?DW:void 0)}}lv.Ajv=jD;hq.exports=lv=jD;hq.exports.Ajv=jD;Object.defineProperty(lv,"__esModule",{value:!0});lv.default=jD;var F1$=GD();Object.defineProperty(lv,"KeywordCxt",{enumerable:!0,get:function(){return F1$.KeywordCxt}});var EI=w$();Object.defineProperty(lv,"_",{enumerable:!0,get:function(){return EI._}});Object.defineProperty(lv,"str",{enumerable:!0,get:function(){return EI.str}});Object.defineProperty(lv,"stringify",{enumerable:!0,get:function(){return EI.stringify}});Object.defineProperty(lv,"nil",{enumerable:!0,get:function(){return EI.nil}});Object.defineProperty(lv,"Name",{enumerable:!0,get:function(){return EI.Name}});Object.defineProperty(lv,"CodeGen",{enumerable:!0,get:function(){return EI.CodeGen}});var Z1$=CX();Object.defineProperty(lv,"ValidationError",{enumerable:!0,get:function(){return Z1$.default}});var T1$=OD();Object.defineProperty(lv,"MissingRefError",{enumerable:!0,get:function(){return T1$.default}})});var Nr=P((Pr)=>{Object.defineProperty(Pr,"__esModule",{value:!0});Pr.formatNames=Pr.fastFormats=Pr.fullFormats=void 0;function i4($,v){return{validate:$,compare:v}}Pr.fullFormats={date:i4(Kr,dq),time:i4(oq(!0),pq),"date-time":i4(Yr(!0),Br),"iso-time":i4(oq(),qr),"iso-date-time":i4(Yr(),Ar),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:x1$,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:o1$,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:l1$,int32:{type:"number",validate:h1$},int64:{type:"number",validate:m1$},float:{type:"number",validate:Lr},double:{type:"number",validate:Lr},password:!0,binary:!0};Pr.fastFormats={...Pr.fullFormats,date:i4(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,dq),time:i4(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,pq),"date-time":i4(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,Br),"iso-time":i4(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,qr),"iso-date-time":i4(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,Ar),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Pr.formatNames=Object.keys(Pr.fullFormats);function R1$($){return $%4===0&&($%100!==0||$%400===0)}var n1$=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,r1$=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Kr($){let v=n1$.exec($);if(!v)return!1;let U=+v[1],I=+v[2],b=+v[3];return I>=1&&I<=12&&b>=1&&b<=(I===2&&R1$(U)?29:r1$[I])}function dq($,v){if(!($&&v))return;if($>v)return 1;if($<v)return-1;return 0}var cq=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function oq($){return function(U){let I=cq.exec(U);if(!I)return!1;let b=+I[1],D=+I[2],u=+I[3],w=I[4],g=I[5]==="-"?-1:1,J=+(I[6]||0),X=+(I[7]||0);if(J>23||X>59||$&&!w)return!1;if(b<=23&&D<=59&&u<60)return!0;let W=D-X*g,G=b-J*g-(W<0?1:0);return(G===23||G===-1)&&(W===59||W===-1)&&u<61}}function pq($,v){if(!($&&v))return;let U=new Date("2020-01-01T"+$).valueOf(),I=new Date("2020-01-01T"+v).valueOf();if(!(U&&I))return;return U-I}function qr($,v){if(!($&&v))return;let U=cq.exec($),I=cq.exec(v);if(!(U&&I))return;if($=U[1]+U[2]+U[3],v=I[1]+I[2]+I[3],$>v)return 1;if($<v)return-1;return 0}var tq=/t|\s/i;function Yr($){let v=oq($);return function(I){let b=I.split(tq);return b.length===2&&Kr(b[0])&&v(b[1])}}function Br($,v){if(!($&&v))return;let U=new Date($).valueOf(),I=new Date(v).valueOf();if(!(U&&I))return;return U-I}function Ar($,v){if(!($&&v))return;let[U,I]=$.split(tq),[b,D]=v.split(tq),u=dq(U,b);if(u===void 0)return;return u||pq(I,D)}var C1$=/\/|:/,i1$=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function x1$($){return C1$.test($)&&i1$.test($)}var Vr=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function l1$($){return Vr.lastIndex=0,Vr.test($)}var f1$=-2147483648,y1$=2147483647;function h1$($){return Number.isInteger($)&&$<=y1$&&$>=f1$}function m1$($){return Number.isInteger($)}function Lr(){return!0}var c1$=/[^\\]\\Z/;function o1$($){if(c1$.test($))return!1;try{return new RegExp($),!0}catch(v){return!1}}});var Mr=P((Sr)=>{Object.defineProperty(Sr,"__esModule",{value:!0});Sr.formatLimitDefinition=void 0;var d1$=mq(),V4=w$(),$b=V4.operators,uW={formatMaximum:{okStr:"<=",ok:$b.LTE,fail:$b.GT},formatMinimum:{okStr:">=",ok:$b.GTE,fail:$b.LT},formatExclusiveMaximum:{okStr:"<",ok:$b.LT,fail:$b.GTE},formatExclusiveMinimum:{okStr:">",ok:$b.GT,fail:$b.LTE}},p1$={message:({keyword:$,schemaCode:v})=>V4.str`should be ${uW[$].okStr} ${v}`,params:({keyword:$,schemaCode:v})=>V4._`{comparison: ${uW[$].okStr}, limit: ${v}}`};Sr.formatLimitDefinition={keyword:Object.keys(uW),type:"string",schemaType:"string",$data:!0,error:p1$,code($){let{gen:v,data:U,schemaCode:I,keyword:b,it:D}=$,{opts:u,self:w}=D;if(!u.validateFormats)return;let g=new d1$.KeywordCxt(D,w.RULES.all.format.definition,"format");if(g.$data)J();else X();function J(){let G=v.scopeValue("formats",{ref:w.formats,code:u.code.formats}),O=v.const("fmt",V4._`${G}[${g.schemaCode}]`);$.fail$data((0,V4.or)(V4._`typeof ${O} != "object"`,V4._`${O} instanceof RegExp`,V4._`typeof ${O}.compare != "function"`,W(O)))}function X(){let G=g.schema,O=w.formats[G];if(!O||O===!0)return;if(typeof O!="object"||O instanceof RegExp||typeof O.compare!="function")throw Error(`"${b}": format "${G}" does not define "compare" function`);let z=v.scopeValue("formats",{key:G,ref:O,code:u.code.formats?V4._`${u.code.formats}${(0,V4.getProperty)(G)}`:void 0});$.fail$data(W(z))}function W(G){return V4._`${G}.compare(${U}, ${I}) ${uW[b].fail} 0`}},dependencies:["format"]};var a1$=($)=>{return $.addKeyword(Sr.formatLimitDefinition),$};Sr.default=a1$});var Tr=P((ND,Zr)=>{Object.defineProperty(ND,"__esModule",{value:!0});var RI=Nr(),s1$=Mr(),sq=w$(),_r=new sq.Name("fullFormats"),$0$=new sq.Name("fastFormats"),$B=($,v={keywords:!0})=>{if(Array.isArray(v))return Fr($,v,RI.fullFormats,_r),$;let[U,I]=v.mode==="fast"?[RI.fastFormats,$0$]:[RI.fullFormats,_r],b=v.formats||RI.formatNames;if(Fr($,b,U,I),v.keywords)(0,s1$.default)($);return $};$B.get=($,v="full")=>{let I=(v==="fast"?RI.fastFormats:RI.fullFormats)[$];if(!I)throw Error(`Unknown format "${$}"`);return I};function Fr($,v,U,I){var b,D;(b=(D=$.opts.code).formats)!==null&&b!==void 0||(D.formats=sq._`require("ajv-formats/dist/formats").${I}`);for(let u of v)$.addFormat(u,U[u])}Zr.exports=ND=$B;Object.defineProperty(ND,"__esModule",{value:!0});ND.default=$B});var V$=P((X0$)=>{var uB=Symbol.for("yaml.alias"),ir=Symbol.for("yaml.document"),wW=Symbol.for("yaml.map"),xr=Symbol.for("yaml.pair"),wB=Symbol.for("yaml.scalar"),gW=Symbol.for("yaml.seq"),G6=Symbol.for("yaml.node.type"),U0$=($)=>!!$&&typeof $==="object"&&$[G6]===uB,I0$=($)=>!!$&&typeof $==="object"&&$[G6]===ir,D0$=($)=>!!$&&typeof $==="object"&&$[G6]===wW,u0$=($)=>!!$&&typeof $==="object"&&$[G6]===xr,lr=($)=>!!$&&typeof $==="object"&&$[G6]===wB,w0$=($)=>!!$&&typeof $==="object"&&$[G6]===gW;function fr($){if($&&typeof $==="object")switch($[G6]){case wW:case gW:return!0}return!1}function g0$($){if($&&typeof $==="object")switch($[G6]){case uB:case wW:case wB:case gW:return!0}return!1}var J0$=($)=>(lr($)||fr($))&&!!$.anchor;X0$.ALIAS=uB;X0$.DOC=ir;X0$.MAP=wW;X0$.NODE_TYPE=G6;X0$.PAIR=xr;X0$.SCALAR=wB;X0$.SEQ=gW;X0$.hasAnchor=J0$;X0$.isAlias=U0$;X0$.isCollection=fr;X0$.isDocument=I0$;X0$.isMap=D0$;X0$.isNode=g0$;X0$.isPair=u0$;X0$.isScalar=lr;X0$.isSeq=w0$});var SD=P((S0$)=>{var bv=V$(),fv=Symbol("break visit"),yr=Symbol("skip children"),x4=Symbol("remove node");function JW($,v){let U=hr(v);if(bv.isDocument($)){if(nI(null,$.contents,U,Object.freeze([$]))===x4)$.contents=null}else nI(null,$,U,Object.freeze([]))}JW.BREAK=fv;JW.SKIP=yr;JW.REMOVE=x4;function nI($,v,U,I){let b=mr($,v,U,I);if(bv.isNode(b)||bv.isPair(b))return cr($,I,b),nI($,b,U,I);if(typeof b!=="symbol"){if(bv.isCollection(v)){I=Object.freeze(I.concat(v));for(let D=0;D<v.items.length;++D){let u=nI(D,v.items[D],U,I);if(typeof u==="number")D=u-1;else if(u===fv)return fv;else if(u===x4)v.items.splice(D,1),D-=1}}else if(bv.isPair(v)){I=Object.freeze(I.concat(v));let D=nI("key",v.key,U,I);if(D===fv)return fv;else if(D===x4)v.key=null;let u=nI("value",v.value,U,I);if(u===fv)return fv;else if(u===x4)v.value=null}}return b}async function XW($,v){let U=hr(v);if(bv.isDocument($)){if(await rI(null,$.contents,U,Object.freeze([$]))===x4)$.contents=null}else await rI(null,$,U,Object.freeze([]))}XW.BREAK=fv;XW.SKIP=yr;XW.REMOVE=x4;async function rI($,v,U,I){let b=await mr($,v,U,I);if(bv.isNode(b)||bv.isPair(b))return cr($,I,b),rI($,b,U,I);if(typeof b!=="symbol"){if(bv.isCollection(v)){I=Object.freeze(I.concat(v));for(let D=0;D<v.items.length;++D){let u=await rI(D,v.items[D],U,I);if(typeof u==="number")D=u-1;else if(u===fv)return fv;else if(u===x4)v.items.splice(D,1),D-=1}}else if(bv.isPair(v)){I=Object.freeze(I.concat(v));let D=await rI("key",v.key,U,I);if(D===fv)return fv;else if(D===x4)v.key=null;let u=await rI("value",v.value,U,I);if(u===fv)return fv;else if(u===x4)v.value=null}}return b}function hr($){if(typeof $==="object"&&($.Collection||$.Node||$.Value))return Object.assign({Alias:$.Node,Map:$.Node,Scalar:$.Node,Seq:$.Node},$.Value&&{Map:$.Value,Scalar:$.Value,Seq:$.Value},$.Collection&&{Map:$.Collection,Seq:$.Collection},$);return $}function mr($,v,U,I){if(typeof U==="function")return U($,v,I);if(bv.isMap(v))return U.Map?.($,v,I);if(bv.isSeq(v))return U.Seq?.($,v,I);if(bv.isPair(v))return U.Pair?.($,v,I);if(bv.isScalar(v))return U.Scalar?.($,v,I);if(bv.isAlias(v))return U.Alias?.($,v,I);return}function cr($,v,U){let I=v[v.length-1];if(bv.isCollection(I))I.items[$]=U;else if(bv.isPair(I))if($==="key")I.key=U;else I.value=U;else if(bv.isDocument(I))I.contents=U;else{let b=bv.isAlias(I)?"alias":"scalar";throw Error(`Cannot replace node with ${b} parent`)}}S0$.visit=JW;S0$.visitAsync=XW});var gB=P((k0$)=>{var or=V$(),F0$=SD(),Z0$={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},T0$=($)=>$.replace(/[!,[\]{}]/g,(v)=>Z0$[v]);class D4{constructor($,v){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},D4.defaultYaml,$),this.tags=Object.assign({},D4.defaultTags,v)}clone(){let $=new D4(this.yaml,this.tags);return $.docStart=this.docStart,$}atDocument(){let $=new D4(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:D4.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},D4.defaultTags);break}return $}add($,v){if(this.atNextDocument)this.yaml={explicit:D4.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},D4.defaultTags),this.atNextDocument=!1;let U=$.trim().split(/[ \t]+/),I=U.shift();switch(I){case"%TAG":{if(U.length!==2){if(v(0,"%TAG directive should contain exactly two parts"),U.length<2)return!1}let[b,D]=U;return this.tags[b]=D,!0}case"%YAML":{if(this.yaml.explicit=!0,U.length!==1)return v(0,"%YAML directive should contain exactly one part"),!1;let[b]=U;if(b==="1.1"||b==="1.2")return this.yaml.version=b,!0;else{let D=/^\d+\.\d+$/.test(b);return v(6,`Unsupported YAML version ${b}`,D),!1}}default:return v(0,`Unknown directive ${I}`,!0),!1}}tagName($,v){if($==="!")return"!";if($[0]!=="!")return v(`Not a valid tag: ${$}`),null;if($[1]==="<"){let D=$.slice(2,-1);if(D==="!"||D==="!!")return v(`Verbatim tags aren't resolved, so ${$} is invalid.`),null;if($[$.length-1]!==">")v("Verbatim tags must end with a >");return D}let[,U,I]=$.match(/^(.*!)([^!]*)$/s);if(!I)v(`The ${$} tag has no suffix`);let b=this.tags[U];if(b)try{return b+decodeURIComponent(I)}catch(D){return v(String(D)),null}if(U==="!")return $;return v(`Could not resolve tag: ${$}`),null}tagString($){for(let[v,U]of Object.entries(this.tags))if($.startsWith(U))return v+T0$($.substring(U.length));return $[0]==="!"?$:`!<${$}>`}toString($){let v=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],U=Object.entries(this.tags),I;if($&&U.length>0&&or.isNode($.contents)){let b={};F0$.visit($.contents,(D,u)=>{if(or.isNode(u)&&u.tag)b[u.tag]=!0}),I=Object.keys(b)}else I=[];for(let[b,D]of U){if(b==="!!"&&D==="tag:yaml.org,2002:")continue;if(!$||I.some((u)=>u.startsWith(D)))v.push(`%TAG ${b} ${D}`)}return v.join(`
|
|
11
|
+
`)}}D4.defaultYaml={explicit:!1,version:"1.2"};D4.defaultTags={"!!":"tag:yaml.org,2002:"};k0$.Directives=D4});var WW=P((C0$)=>{var tr=V$(),R0$=SD();function n0$($){if(/[\x00-\x19\s,[\]{}]/.test($)){let U=`Anchor must not contain whitespace or control characters: ${JSON.stringify($)}`;throw Error(U)}return!0}function dr($){let v=new Set;return R0$.visit($,{Value(U,I){if(I.anchor)v.add(I.anchor)}}),v}function pr($,v){for(let U=1;;++U){let I=`${$}${U}`;if(!v.has(I))return I}}function r0$($,v){let U=[],I=new Map,b=null;return{onAnchor:(D)=>{U.push(D),b??(b=dr($));let u=pr(v,b);return b.add(u),u},setAnchors:()=>{for(let D of U){let u=I.get(D);if(typeof u==="object"&&u.anchor&&(tr.isScalar(u.node)||tr.isCollection(u.node)))u.node.anchor=u.anchor;else{let w=Error("Failed to resolve repeated object (this should not happen)");throw w.source=D,w}}},sourceObjects:I}}C0$.anchorIsValid=n0$;C0$.anchorNames=dr;C0$.createNodeAnchors=r0$;C0$.findNewAnchor=pr});var JB=P((y0$)=>{function MD($,v,U,I){if(I&&typeof I==="object")if(Array.isArray(I))for(let b=0,D=I.length;b<D;++b){let u=I[b],w=MD($,I,String(b),u);if(w===void 0)delete I[b];else if(w!==u)I[b]=w}else if(I instanceof Map)for(let b of Array.from(I.keys())){let D=I.get(b),u=MD($,I,b,D);if(u===void 0)I.delete(b);else if(u!==D)I.set(b,u)}else if(I instanceof Set)for(let b of Array.from(I)){let D=MD($,I,b,b);if(D===void 0)I.delete(b);else if(D!==b)I.delete(b),I.add(D)}else for(let[b,D]of Object.entries(I)){let u=MD($,I,b,D);if(u===void 0)delete I[b];else if(u!==D)I[b]=u}return $.call(v,U,I)}y0$.applyReviver=MD});var vb=P((c0$)=>{var m0$=V$();function ar($,v,U){if(Array.isArray($))return $.map((I,b)=>ar(I,String(b),U));if($&&typeof $.toJSON==="function"){if(!U||!m0$.hasAnchor($))return $.toJSON(v,U);let I={aliasCount:0,count:1,res:void 0};U.anchors.set($,I),U.onCreate=(D)=>{I.res=D,delete U.onCreate};let b=$.toJSON(v,U);if(U.onCreate)U.onCreate(b);return b}if(typeof $==="bigint"&&!U?.keep)return Number($);return $}c0$.toJS=ar});var GW=P((p0$)=>{var t0$=JB(),er=V$(),d0$=vb();class sr{constructor($){Object.defineProperty(this,er.NODE_TYPE,{value:$})}clone(){let $=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)$.range=this.range.slice();return $}toJS($,{mapAsMap:v,maxAliasCount:U,onAnchor:I,reviver:b}={}){if(!er.isDocument($))throw TypeError("A document argument is required");let D={anchors:new Map,doc:$,keep:!0,mapAsMap:v===!0,mapKeyWarned:!1,maxAliasCount:typeof U==="number"?U:100},u=d0$.toJS(this,"",D);if(typeof I==="function")for(let{count:w,res:g}of D.anchors.values())I(g,w);return typeof b==="function"?t0$.applyReviver(b,{"":u},"",u):u}}p0$.NodeBase=sr});var _D=P((bD$)=>{var e0$=WW(),s0$=SD(),CI=V$(),$D$=GW(),vD$=vb();class $C extends $D$.NodeBase{constructor($){super(CI.ALIAS);this.source=$,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve($,v){if(v?.maxAliasCount===0)throw ReferenceError("Alias resolution is disabled");let U;if(v?.aliasResolveCache)U=v.aliasResolveCache;else if(U=[],s0$.visit($,{Node:(b,D)=>{if(CI.isAlias(D)||CI.hasAnchor(D))U.push(D)}}),v)v.aliasResolveCache=U;let I=void 0;for(let b of U){if(b===this)break;if(b.anchor===this.source)I=b}return I}toJSON($,v){if(!v)return{source:this.source};let{anchors:U,doc:I,maxAliasCount:b}=v,D=this.resolve(I,v);if(!D){let w=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(w)}let u=U.get(D);if(!u)vD$.toJS(D,null,v),u=U.get(D);if(u?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(b>=0){if(u.count+=1,u.aliasCount===0)u.aliasCount=OW(I,D,U);if(u.count*u.aliasCount>b)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return u.res}toString($,v,U){let I=`*${this.source}`;if($){if(e0$.anchorIsValid(this.source),$.options.verifyAliasOrder&&!$.anchors.has(this.source)){let b=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(b)}if($.implicitKey)return`${I} `}return I}}function OW($,v,U){if(CI.isAlias(v)){let I=v.resolve($),b=U&&I&&U.get(I);return b?b.count*b.aliasCount:0}else if(CI.isCollection(v)){let I=0;for(let b of v.items){let D=OW($,b,U);if(D>I)I=D}return I}else if(CI.isPair(v)){let I=OW($,v.key,U),b=OW($,v.value,U);return Math.max(I,b)}return 1}bD$.Alias=$C});var s$=P((gD$)=>{var ID$=V$(),DD$=GW(),uD$=vb(),wD$=($)=>!$||typeof $!=="function"&&typeof $!=="object";class tb extends DD$.NodeBase{constructor($){super(ID$.SCALAR);this.value=$}toJSON($,v){return v?.keep?this.value:uD$.toJS(this.value,$,v)}toString(){return String(this.value)}}tb.BLOCK_FOLDED="BLOCK_FOLDED";tb.BLOCK_LITERAL="BLOCK_LITERAL";tb.PLAIN="PLAIN";tb.QUOTE_DOUBLE="QUOTE_DOUBLE";tb.QUOTE_SINGLE="QUOTE_SINGLE";gD$.Scalar=tb;gD$.isScalarValue=wD$});var FD=P((zD$)=>{var WD$=_D(),db=V$(),vC=s$(),GD$="tag:yaml.org,2002:";function OD$($,v,U){if(v){let I=U.filter((D)=>D.tag===v),b=I.find((D)=>!D.format)??I[0];if(!b)throw Error(`Tag ${v} not found`);return b}return U.find((I)=>I.identify?.($)&&!I.format)}function HD$($,v,U){if(db.isDocument($))$=$.contents;if(db.isNode($))return $;if(db.isPair($)){let W=U.schema[db.MAP].createNode?.(U.schema,null,U);return W.items.push($),W}if($ instanceof String||$ instanceof Number||$ instanceof Boolean||typeof BigInt<"u"&&$ instanceof BigInt)$=$.valueOf();let{aliasDuplicateObjects:I,onAnchor:b,onTagObj:D,schema:u,sourceObjects:w}=U,g=void 0;if(I&&$&&typeof $==="object")if(g=w.get($),g)return g.anchor??(g.anchor=b($)),new WD$.Alias(g.anchor);else g={anchor:null,node:null},w.set($,g);if(v?.startsWith("!!"))v=GD$+v.slice(2);let J=OD$($,v,u.tags);if(!J){if($&&typeof $.toJSON==="function")$=$.toJSON();if(!$||typeof $!=="object"){let W=new vC.Scalar($);if(g)g.node=W;return W}J=$ instanceof Map?u[db.MAP]:(Symbol.iterator in Object($))?u[db.SEQ]:u[db.MAP]}if(D)D(J),delete U.onTagObj;let X=J?.createNode?J.createNode(U.schema,$,U):typeof J?.nodeClass?.from==="function"?J.nodeClass.from(U.schema,$,U):new vC.Scalar($);if(v)X.tag=v;else if(!J.default)X.tag=J.tag;if(g)g.node=X;return X}zD$.createNode=HD$});var HW=P((LD$)=>{var YD$=FD(),l4=V$(),VD$=GW();function XB($,v,U){let I=U;for(let b=v.length-1;b>=0;--b){let D=v[b];if(typeof D==="number"&&Number.isInteger(D)&&D>=0){let u=[];u[D]=I,I=u}else I=new Map([[D,I]])}return YD$.createNode(I,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:$,sourceObjects:new Map})}var bC=($)=>$==null||typeof $==="object"&&!!$[Symbol.iterator]().next().done;class UC extends VD$.NodeBase{constructor($,v){super($);Object.defineProperty(this,"schema",{value:v,configurable:!0,enumerable:!1,writable:!0})}clone($){let v=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if($)v.schema=$;if(v.items=v.items.map((U)=>l4.isNode(U)||l4.isPair(U)?U.clone($):U),this.range)v.range=this.range.slice();return v}addIn($,v){if(bC($))this.add(v);else{let[U,...I]=$,b=this.get(U,!0);if(l4.isCollection(b))b.addIn(I,v);else if(b===void 0&&this.schema)this.set(U,XB(this.schema,I,v));else throw Error(`Expected YAML collection at ${U}. Remaining path: ${I}`)}}deleteIn($){let[v,...U]=$;if(U.length===0)return this.delete(v);let I=this.get(v,!0);if(l4.isCollection(I))return I.deleteIn(U);else throw Error(`Expected YAML collection at ${v}. Remaining path: ${U}`)}getIn($,v){let[U,...I]=$,b=this.get(U,!0);if(I.length===0)return!v&&l4.isScalar(b)?b.value:b;else return l4.isCollection(b)?b.getIn(I,v):void 0}hasAllNullValues($){return this.items.every((v)=>{if(!l4.isPair(v))return!1;let U=v.value;return U==null||$&&l4.isScalar(U)&&U.value==null&&!U.commentBefore&&!U.comment&&!U.tag})}hasIn($){let[v,...U]=$;if(U.length===0)return this.has(v);let I=this.get(v,!0);return l4.isCollection(I)?I.hasIn(U):!1}setIn($,v){let[U,...I]=$;if(I.length===0)this.set(U,v);else{let b=this.get(U,!0);if(l4.isCollection(b))b.setIn(I,v);else if(b===void 0&&this.schema)this.set(U,XB(this.schema,I,v));else throw Error(`Expected YAML collection at ${U}. Remaining path: ${I}`)}}}LD$.Collection=UC;LD$.collectionFromPath=XB;LD$.isEmptyPath=bC});var ZD=P((jD$)=>{var AD$=($)=>$.replace(/^(?!$)(?: $)?/gm,"#");function WB($,v){if(/^\n+$/.test($))return $.substring(1);return v?$.replace(/^(?! *$)/gm,v):$}var PD$=($,v,U)=>$.endsWith(`
|
|
12
12
|
`)?WB(U,v):U.includes(`
|
|
13
13
|
`)?`
|
|
14
|
-
`+WB(U,v):($.endsWith(" ")?"":" ")+U;
|
|
14
|
+
`+WB(U,v):($.endsWith(" ")?"":" ")+U;jD$.indentComment=WB;jD$.lineComment=PD$;jD$.stringifyComment=AD$});var DC=P((FD$)=>{function _D$($,v,U="flow",{indentAtStart:I,lineWidth:b=80,minContentWidth:D=20,onFold:u,onOverflow:w}={}){if(!b||b<0)return $;if(b<D)D=0;let g=Math.max(1+D,1+b-v.length);if($.length<=g)return $;let J=[],X={},W=b-v.length;if(typeof I==="number")if(I>b-Math.max(2,D))J.push(0);else W=b-I;let G=void 0,O=void 0,z=!1,Q=-1,Y=-1,K=-1;if(U==="block"){if(Q=IC($,Q,v.length),Q!==-1)W=Q+g}for(let S;S=$[Q+=1];){if(U==="quoted"&&S==="\\"){switch(Y=Q,$[Q+1]){case"x":Q+=3;break;case"u":Q+=5;break;case"U":Q+=9;break;default:Q+=1}K=Q}if(S===`
|
|
15
15
|
`){if(U==="block")Q=IC($,Q,v.length);W=Q+v.length+g,G=void 0}else{if(S===" "&&O&&O!==" "&&O!==`
|
|
16
16
|
`&&O!=="\t"){let j=$[Q+1];if(j&&j!==" "&&j!==`
|
|
17
17
|
`&&j!=="\t")G=Q}if(Q>=W)if(G)J.push(G),W=G+g,G=void 0;else if(U==="quoted"){while(O===" "||O==="\t")O=S,S=$[Q+=1],z=!0;let j=Q>K+1?Q-2:Y-1;if(X[j])return $;J.push(j),X[j]=!0,W=j+g,G=void 0}else z=!0}O=S}if(z&&w)w();if(J.length===0)return $;if(u)u();let F=$.slice(0,J[0]);for(let S=0;S<J.length;++S){let j=J[S],A=J[S+1]||$.length;if(j===0)F=`
|
|
18
18
|
${v}${$.slice(0,A)}`;else{if(U==="quoted"&&X[j])F+=`${$[j]}\\`;F+=`
|
|
19
19
|
${v}${$.slice(j+1,A)}`}}return F}function IC($,v,U){let I=v,b=v+1,D=$[b];while(D===" "||D==="\t")if(v<b+U)D=$[++v];else{do D=$[++v];while(D&&D!==`
|
|
20
|
-
`);I=v,b=v+1,D=$[b]}return I}
|
|
20
|
+
`);I=v,b=v+1,D=$[b]}return I}FD$.FOLD_BLOCK="block";FD$.FOLD_FLOW="flow";FD$.FOLD_QUOTED="quoted";FD$.foldFlowLines=_D$});var kD=P((CD$)=>{var L4=s$(),bb=DC(),QW=($,v)=>({indentAtStart:v?$.indent.length:$.indentAtStart,lineWidth:$.options.lineWidth,minContentWidth:$.options.minContentWidth}),YW=($)=>/^(%|---|\.\.\.)/m.test($);function RD$($,v,U){if(!v||v<0)return!1;let I=v-U,b=$.length;if(b<=I)return!1;for(let D=0,u=0;D<b;++D)if($[D]===`
|
|
21
21
|
`){if(D-u>I)return!0;if(u=D+1,b-u<=I)return!1}return!0}function TD($,v){let U=JSON.stringify($);if(v.options.doubleQuotedAsJSON)return U;let{implicitKey:I}=v,b=v.options.doubleQuotedMinMultiLineLength,D=v.indent||(YW($)?" ":""),u="",w=0;for(let g=0,J=U[g];J;J=U[++g]){if(J===" "&&U[g+1]==="\\"&&U[g+2]==="n")u+=U.slice(w,g)+"\\ ",g+=1,w=g,J="\\";if(J==="\\")switch(U[g+1]){case"u":{u+=U.slice(w,g);let X=U.substr(g+2,4);switch(X){case"0000":u+="\\0";break;case"0007":u+="\\a";break;case"000b":u+="\\v";break;case"001b":u+="\\e";break;case"0085":u+="\\N";break;case"00a0":u+="\\_";break;case"2028":u+="\\L";break;case"2029":u+="\\P";break;default:if(X.substr(0,2)==="00")u+="\\x"+X.substr(2);else u+=U.substr(g,6)}g+=5,w=g+1}break;case"n":if(I||U[g+2]==='"'||U.length<b)g+=1;else{u+=U.slice(w,g)+`
|
|
22
22
|
|
|
23
23
|
`;while(U[g+2]==="\\"&&U[g+3]==="n"&&U[g+4]!=='"')u+=`
|
|
@@ -26,7 +26,7 @@ ${v}${$.slice(j+1,A)}`}}return F}function IC($,v,U){let I=v,b=v+1,D=$[b];while(D
|
|
|
26
26
|
${U}`)+"'";return v.implicitKey?I:bb.foldFlowLines(I,U,bb.FOLD_FLOW,QW(v,!1))}function iI($,v){let{singleQuote:U}=v.options,I;if(U===!1)I=TD;else{let b=$.includes('"'),D=$.includes("'");if(b&&!D)I=GB;else if(D&&!b)I=TD;else I=U?GB:TD}return I($,v)}var OB;try{OB=new RegExp(`(^|(?<!
|
|
27
27
|
))
|
|
28
28
|
+(?!
|
|
29
|
-
|$)`,"g")}catch{OB=/\n+(?!\n|$)/g}function zW({comment:$,type:v,value:U},I,b,D){let{blockQuote:u,commentString:w,lineWidth:g}=I.options;if(!u||/\n[\t ]+$/.test(U))return iI(U,I);let J=I.indent||(I.forceBlockIndent||YW(U)?" ":""),X=u==="literal"?!0:u==="folded"||v===L4.Scalar.BLOCK_FOLDED?!1:v===L4.Scalar.BLOCK_LITERAL?!0:!
|
|
29
|
+
|$)`,"g")}catch{OB=/\n+(?!\n|$)/g}function zW({comment:$,type:v,value:U},I,b,D){let{blockQuote:u,commentString:w,lineWidth:g}=I.options;if(!u||/\n[\t ]+$/.test(U))return iI(U,I);let J=I.indent||(I.forceBlockIndent||YW(U)?" ":""),X=u==="literal"?!0:u==="folded"||v===L4.Scalar.BLOCK_FOLDED?!1:v===L4.Scalar.BLOCK_LITERAL?!0:!RD$(U,g,J.length);if(!U)return X?`|
|
|
30
30
|
`:`>
|
|
31
31
|
`;let W,G;for(G=U.length;G>0;--G){let A=U[G-1];if(A!==`
|
|
32
32
|
`&&A!=="\t"&&A!==" ")break}let O=U.substring(G),z=O.indexOf(`
|
|
@@ -35,12 +35,12 @@ ${U}`)+"'";return v.implicitKey?I:bb.foldFlowLines(I,U,bb.FOLD_FLOW,QW(v,!1))}fu
|
|
|
35
35
|
`)K=Y;else break}let F=U.substring(0,K<Y?K+1:Y);if(F)U=U.substring(F.length),F=F.replace(/\n+/g,`$&${J}`);let j=(Q?J?"2":"1":"")+W;if($){if(j+=" "+w($.replace(/ ?[\r\n]+/g," ")),b)b()}if(!X){let A=U.replace(/\n+/g,`
|
|
36
36
|
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${J}`),h=!1,s=QW(I,!0);if(u!=="folded"&&v!==L4.Scalar.BLOCK_FOLDED)s.onOverflow=()=>{h=!0};let l=bb.foldFlowLines(`${F}${A}${O}`,J,bb.FOLD_BLOCK,s);if(!h)return`>${j}
|
|
37
37
|
${J}${l}`}return U=U.replace(/\n+/g,`$&${J}`),`|${j}
|
|
38
|
-
${J}${F}${U}${O}`}function
|
|
38
|
+
${J}${F}${U}${O}`}function nD$($,v,U,I){let{type:b,value:D}=$,{actualString:u,implicitKey:w,indent:g,indentStep:J,inFlow:X}=v;if(w&&D.includes(`
|
|
39
39
|
`)||X&&/[[\]{},]/.test(D))return iI(D,v);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(D))return w||X||!D.includes(`
|
|
40
40
|
`)?iI(D,v):zW($,v,U,I);if(!w&&!X&&b!==L4.Scalar.PLAIN&&D.includes(`
|
|
41
41
|
`))return zW($,v,U,I);if(YW(D)){if(g==="")return v.forceBlockIndent=!0,zW($,v,U,I);else if(w&&g===J)return iI(D,v)}let W=D.replace(/\n+/g,`$&
|
|
42
|
-
${g}`);if(u){let G=(Q)=>Q.default&&Q.tag!=="tag:yaml.org,2002:str"&&Q.test?.test(W),{compat:O,tags:z}=v.doc.schema;if(z.some(G)||O?.some(G))return iI(D,v)}return w?W:bb.foldFlowLines(W,g,bb.FOLD_FLOW,QW(v,!1))}function
|
|
43
|
-
${v.indent}${w}`}
|
|
42
|
+
${g}`);if(u){let G=(Q)=>Q.default&&Q.tag!=="tag:yaml.org,2002:str"&&Q.test?.test(W),{compat:O,tags:z}=v.doc.schema;if(z.some(G)||O?.some(G))return iI(D,v)}return w?W:bb.foldFlowLines(W,g,bb.FOLD_FLOW,QW(v,!1))}function rD$($,v,U,I){let{implicitKey:b,inFlow:D}=v,u=typeof $.value==="string"?$:Object.assign({},$,{value:String($.value)}),{type:w}=$;if(w!==L4.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(u.value))w=L4.Scalar.QUOTE_DOUBLE}let g=(X)=>{switch(X){case L4.Scalar.BLOCK_FOLDED:case L4.Scalar.BLOCK_LITERAL:return b||D?iI(u.value,v):zW(u,v,U,I);case L4.Scalar.QUOTE_DOUBLE:return TD(u.value,v);case L4.Scalar.QUOTE_SINGLE:return GB(u.value,v);case L4.Scalar.PLAIN:return nD$(u,v,U,I);default:return null}},J=g(w);if(J===null){let{defaultKeyType:X,defaultStringType:W}=v.options,G=b&&X||W;if(J=g(G),J===null)throw Error(`Unsupported default string type ${G}`)}return J}CD$.stringifyString=rD$});var ED=P((oD$)=>{var xD$=WW(),Ub=V$(),lD$=ZD(),fD$=kD();function yD$($,v){let U=Object.assign({blockQuote:!0,commentString:lD$.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},$.schema.toStringOptions,v),I;switch(U.collectionStyle){case"block":I=!1;break;case"flow":I=!0;break;default:I=null}return{anchors:new Set,doc:$,flowCollectionPadding:U.flowCollectionPadding?" ":"",indent:"",indentStep:typeof U.indent==="number"?" ".repeat(U.indent):" ",inFlow:I,options:U}}function hD$($,v){if(v.tag){let b=$.filter((D)=>D.tag===v.tag);if(b.length>0)return b.find((D)=>D.format===v.format)??b[0]}let U=void 0,I;if(Ub.isScalar(v)){I=v.value;let b=$.filter((D)=>D.identify?.(I));if(b.length>1){let D=b.filter((u)=>u.test);if(D.length>0)b=D}U=b.find((D)=>D.format===v.format)??b.find((D)=>!D.format)}else I=v,U=$.find((b)=>b.nodeClass&&I instanceof b.nodeClass);if(!U){let b=I?.constructor?.name??(I===null?"null":typeof I);throw Error(`Tag not resolved for ${b} value`)}return U}function mD$($,v,{anchors:U,doc:I}){if(!I.directives)return"";let b=[],D=(Ub.isScalar($)||Ub.isCollection($))&&$.anchor;if(D&&xD$.anchorIsValid(D))U.add(D),b.push(`&${D}`);let u=$.tag??(v.default?null:v.tag);if(u)b.push(I.directives.tagString(u));return b.join(" ")}function cD$($,v,U,I){if(Ub.isPair($))return $.toString(v,U,I);if(Ub.isAlias($)){if(v.doc.directives)return $.toString(v);if(v.resolvedAliases?.has($))throw TypeError("Cannot stringify circular structure without alias nodes");else{if(v.resolvedAliases)v.resolvedAliases.add($);else v.resolvedAliases=new Set([$]);$=$.resolve(v.doc)}}let b=void 0,D=Ub.isNode($)?$:v.doc.createNode($,{onTagObj:(g)=>b=g});b??(b=hD$(v.doc.schema.tags,D));let u=mD$(D,b,v);if(u.length>0)v.indentAtStart=(v.indentAtStart??0)+u.length+1;let w=typeof b.stringify==="function"?b.stringify(D,v,U,I):Ub.isScalar(D)?fD$.stringifyString(D,v,U,I):D.toString(v,U,I);if(!u)return w;return Ub.isScalar(D)||w[0]==="{"||w[0]==="["?`${u} ${w}`:`${u}
|
|
43
|
+
${v.indent}${w}`}oD$.createStringifyContext=yD$;oD$.stringify=cD$});var gC=P((aD$)=>{var O6=V$(),uC=s$(),wC=ED(),RD=ZD();function pD$({key:$,value:v},U,I,b){let{allNullValues:D,doc:u,indent:w,indentStep:g,options:{commentString:J,indentSeq:X,simpleKeys:W}}=U,G=O6.isNode($)&&$.comment||null;if(W){if(G)throw Error("With simple keys, key nodes cannot have comments");if(O6.isCollection($)||!O6.isNode($)&&typeof $==="object")throw Error("With simple keys, collection cannot be used as a key value")}let O=!W&&(!$||G&&v==null&&!U.inFlow||O6.isCollection($)||(O6.isScalar($)?$.type===uC.Scalar.BLOCK_FOLDED||$.type===uC.Scalar.BLOCK_LITERAL:typeof $==="object"));U=Object.assign({},U,{allNullValues:!1,implicitKey:!O&&(W||!D),indent:w+g});let z=!1,Q=!1,Y=wC.stringify($,U,()=>z=!0,()=>Q=!0);if(!O&&!U.inFlow&&Y.length>1024){if(W)throw Error("With simple keys, single line scalar must not span more than 1024 characters");O=!0}if(U.inFlow){if(D||v==null){if(z&&I)I();return Y===""?"?":O?`? ${Y}`:Y}}else if(D&&!W||v==null&&O){if(Y=`? ${Y}`,G&&!z)Y+=RD.lineComment(Y,U.indent,J(G));else if(Q&&b)b();return Y}if(z)G=null;if(O){if(G)Y+=RD.lineComment(Y,U.indent,J(G));Y=`? ${Y}
|
|
44
44
|
${w}:`}else if(Y=`${Y}:`,G)Y+=RD.lineComment(Y,U.indent,J(G));let K,F,S;if(O6.isNode(v))K=!!v.spaceBefore,F=v.commentBefore,S=v.comment;else if(K=!1,F=null,S=null,v&&typeof v==="object")v=u.createNode(v);if(U.implicitKey=!1,!O&&!G&&O6.isScalar(v))U.indentAtStart=Y.length+1;if(Q=!1,!X&&g.length>=2&&!U.inFlow&&!O&&O6.isSeq(v)&&!v.flow&&!v.tag&&!v.anchor)U.indent=U.indent.substring(2);let j=!1,A=wC.stringify(v,U,()=>j=!0,()=>Q=!0),h=" ";if(G||K||F){if(h=K?`
|
|
45
45
|
`:"",F){let s=J(F);h+=`
|
|
46
46
|
${RD.indentComment(s,U.indent)}`}if(A===""&&!U.inFlow){if(h===`
|
|
@@ -50,32 +50,32 @@ ${RD.indentComment(s,U.indent)}`}if(A===""&&!U.inFlow){if(h===`
|
|
|
50
50
|
${U.indent}`}else if(!O&&O6.isCollection(v)){let s=A[0],l=A.indexOf(`
|
|
51
51
|
`),W$=l!==-1,X$=U.inFlow??v.flow??v.items.length===0;if(W$||!X$){let m$=!1;if(W$&&(s==="&"||s==="!")){let E$=A.indexOf(" ");if(s==="&"&&E$!==-1&&E$<l&&A[E$+1]==="!")E$=A.indexOf(" ",E$+1);if(E$===-1||l<E$)m$=!0}if(!m$)h=`
|
|
52
52
|
${U.indent}`}}else if(A===""||A[0]===`
|
|
53
|
-
`)h="";if(Y+=h+A,U.inFlow){if(j&&I)I()}else if(S&&!j)Y+=RD.lineComment(Y,U.indent,J(S));else if(Q&&b)b();return Y}
|
|
53
|
+
`)h="";if(Y+=h+A,U.inFlow){if(j&&I)I()}else if(S&&!j)Y+=RD.lineComment(Y,U.indent,J(S));else if(Q&&b)b();return Y}aD$.stringifyPair=pD$});var HB=P((vu$)=>{var JC=Wu("process");function sD$($,...v){if($==="debug")console.log(...v)}function $u$($,v){if($==="debug"||$==="warn")if(typeof JC.emitWarning==="function")JC.emitWarning(v);else console.warn(v)}vu$.debug=sD$;vu$.warn=$u$});var qW=P((Du$)=>{var KW=V$(),XC=s$(),VW="<<",LW={identify:($)=>$===VW||typeof $==="symbol"&&$.description===VW,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new XC.Scalar(Symbol(VW)),{addToJSMap:WC}),stringify:()=>VW},Iu$=($,v)=>(LW.identify(v)||KW.isScalar(v)&&(!v.type||v.type===XC.Scalar.PLAIN)&&LW.identify(v.value))&&$?.doc.schema.tags.some((U)=>U.tag===LW.tag&&U.default);function WC($,v,U){let I=GC($,U);if(KW.isSeq(I))for(let b of I.items)zB($,v,b);else if(Array.isArray(I))for(let b of I)zB($,v,b);else zB($,v,I)}function zB($,v,U){let I=GC($,U);if(!KW.isMap(I))throw Error("Merge sources must be maps or map aliases");let b=I.toJSON(null,$,Map);for(let[D,u]of b)if(v instanceof Map){if(!v.has(D))v.set(D,u)}else if(v instanceof Set)v.add(D);else if(!Object.prototype.hasOwnProperty.call(v,D))Object.defineProperty(v,D,{value:u,writable:!0,enumerable:!0,configurable:!0});return v}function GC($,v){return $&&KW.isAlias(v)?v.resolve($.doc,$):v}Du$.addMergeToJSMap=WC;Du$.isMergeKey=Iu$;Du$.merge=LW});var YB=P((Ou$)=>{var Ju$=HB(),OC=qW(),Xu$=ED(),HC=V$(),QB=vb();function Wu$($,v,{key:U,value:I}){if(HC.isNode(U)&&U.addToJSMap)U.addToJSMap($,v,I);else if(OC.isMergeKey($,U))OC.addMergeToJSMap($,v,I);else{let b=QB.toJS(U,"",$);if(v instanceof Map)v.set(b,QB.toJS(I,b,$));else if(v instanceof Set)v.add(b);else{let D=Gu$(U,b,$),u=QB.toJS(I,D,$);if(D in v)Object.defineProperty(v,D,{value:u,writable:!0,enumerable:!0,configurable:!0});else v[D]=u}}return v}function Gu$($,v,U){if(v===null)return"";if(typeof v!=="object")return String(v);if(HC.isNode($)&&U?.doc){let I=Xu$.createStringifyContext(U.doc,{});I.anchors=new Set;for(let D of U.anchors.keys())I.anchors.add(D.anchor);I.inFlow=!0,I.inStringifyKey=!0;let b=$.toString(I);if(!U.mapKeyWarned){let D=JSON.stringify(b);if(D.length>40)D=D.substring(0,36)+'..."';Ju$.warn(U.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${D}. Set mapAsMap: true to use object keys.`),U.mapKeyWarned=!0}return b}return JSON.stringify(v)}Ou$.addPairToJSMap=Wu$});var Ib=P((Vu$)=>{var zC=FD(),zu$=gC(),Qu$=YB(),BW=V$();function Yu$($,v,U){let I=zC.createNode($,void 0,U),b=zC.createNode(v,void 0,U);return new AW(I,b)}class AW{constructor($,v=null){Object.defineProperty(this,BW.NODE_TYPE,{value:BW.PAIR}),this.key=$,this.value=v}clone($){let{key:v,value:U}=this;if(BW.isNode(v))v=v.clone($);if(BW.isNode(U))U=U.clone($);return new AW(v,U)}toJSON($,v){let U=v?.mapAsMap?new Map:{};return Qu$.addPairToJSMap(v,U,this)}toString($,v,U){return $?.doc?zu$.stringifyPair(this,$,v,U):JSON.stringify(this)}}Vu$.Pair=AW;Vu$.createPair=Yu$});var VB=P((Pu$)=>{var pb=V$(),QC=ED(),PW=ZD();function qu$($,v,U){return(v.inFlow??$.flow?Au$:Bu$)($,v,U)}function Bu$({comment:$,items:v},U,{blockItemPrefix:I,flowChars:b,itemIndent:D,onChompKeep:u,onComment:w}){let{indent:g,options:{commentString:J}}=U,X=Object.assign({},U,{indent:D,type:null}),W=!1,G=[];for(let z=0;z<v.length;++z){let Q=v[z],Y=null;if(pb.isNode(Q)){if(!W&&Q.spaceBefore)G.push("");if(jW(U,G,Q.commentBefore,W),Q.comment)Y=Q.comment}else if(pb.isPair(Q)){let F=pb.isNode(Q.key)?Q.key:null;if(F){if(!W&&F.spaceBefore)G.push("");jW(U,G,F.commentBefore,W)}}W=!1;let K=QC.stringify(Q,X,()=>Y=null,()=>W=!0);if(Y)K+=PW.lineComment(K,D,J(Y));if(W&&Y)W=!1;G.push(I+K)}let O;if(G.length===0)O=b.start+b.end;else{O=G[0];for(let z=1;z<G.length;++z){let Q=G[z];O+=Q?`
|
|
54
54
|
${g}${Q}`:`
|
|
55
55
|
`}}if($){if(O+=`
|
|
56
|
-
`+PW.indentComment(J($),g),w)w()}else if(W&&u)u();return O}function
|
|
56
|
+
`+PW.indentComment(J($),g),w)w()}else if(W&&u)u();return O}function Au$({items:$},v,{flowChars:U,itemIndent:I}){let{indent:b,indentStep:D,flowCollectionPadding:u,options:{commentString:w}}=v;I+=D;let g=Object.assign({},v,{indent:I,inFlow:!0,type:null}),J=!1,X=0,W=[];for(let z=0;z<$.length;++z){let Q=$[z],Y=null;if(pb.isNode(Q)){if(Q.spaceBefore)W.push("");if(jW(v,W,Q.commentBefore,!1),Q.comment)Y=Q.comment}else if(pb.isPair(Q)){let F=pb.isNode(Q.key)?Q.key:null;if(F){if(F.spaceBefore)W.push("");if(jW(v,W,F.commentBefore,!1),F.comment)J=!0}let S=pb.isNode(Q.value)?Q.value:null;if(S){if(S.comment)Y=S.comment;if(S.commentBefore)J=!0}else if(Q.value==null&&F?.comment)Y=F.comment}if(Y)J=!0;let K=QC.stringify(Q,g,()=>Y=null);if(J||(J=W.length>X||K.includes(`
|
|
57
57
|
`)),z<$.length-1)K+=",";else if(v.options.trailingComma){if(v.options.lineWidth>0)J||(J=W.reduce((F,S)=>F+S.length+2,2)+(K.length+2)>v.options.lineWidth);if(J)K+=","}if(Y)K+=PW.lineComment(K,I,w(Y));W.push(K),X=W.length}let{start:G,end:O}=U;if(W.length===0)return G+O;else{if(!J){let z=W.reduce((Q,Y)=>Q+Y.length+2,2);J=v.options.lineWidth>0&&z>v.options.lineWidth}if(J){let z=G;for(let Q of W)z+=Q?`
|
|
58
58
|
${D}${b}${Q}`:`
|
|
59
59
|
`;return`${z}
|
|
60
|
-
${b}${O}`}else return`${G}${u}${W.join(" ")}${u}${O}`}}function jW({indent:$,options:{commentString:v}},U,I,b){if(I&&b)I=I.replace(/^\n+/,"");if(I){let D=PW.indentComment(v(I),$);U.push(D.trimStart())}}
|
|
61
|
-
`:" ")}return
|
|
60
|
+
${b}${O}`}else return`${G}${u}${W.join(" ")}${u}${O}`}}function jW({indent:$,options:{commentString:v}},U,I,b){if(I&&b)I=I.replace(/^\n+/,"");if(I){let D=PW.indentComment(v(I),$);U.push(D.trimStart())}}Pu$.stringifyCollection=qu$});var ub=P((Fu$)=>{var Nu$=VB(),Su$=YB(),Mu$=HW(),Db=V$(),NW=Ib(),_u$=s$();function nD($,v){let U=Db.isScalar(v)?v.value:v;for(let I of $)if(Db.isPair(I)){if(I.key===v||I.key===U)return I;if(Db.isScalar(I.key)&&I.key.value===U)return I}return}class YC extends Mu$.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor($){super(Db.MAP,$);this.items=[]}static from($,v,U){let{keepUndefined:I,replacer:b}=U,D=new this($),u=(w,g)=>{if(typeof b==="function")g=b.call(v,w,g);else if(Array.isArray(b)&&!b.includes(w))return;if(g!==void 0||I)D.items.push(NW.createPair(w,g,U))};if(v instanceof Map)for(let[w,g]of v)u(w,g);else if(v&&typeof v==="object")for(let w of Object.keys(v))u(w,v[w]);if(typeof $.sortMapEntries==="function")D.items.sort($.sortMapEntries);return D}add($,v){let U;if(Db.isPair($))U=$;else if(!$||typeof $!=="object"||!("key"in $))U=new NW.Pair($,$?.value);else U=new NW.Pair($.key,$.value);let I=nD(this.items,U.key),b=this.schema?.sortMapEntries;if(I){if(!v)throw Error(`Key ${U.key} already set`);if(Db.isScalar(I.value)&&_u$.isScalarValue(U.value))I.value.value=U.value;else I.value=U.value}else if(b){let D=this.items.findIndex((u)=>b(U,u)<0);if(D===-1)this.items.push(U);else this.items.splice(D,0,U)}else this.items.push(U)}delete($){let v=nD(this.items,$);if(!v)return!1;return this.items.splice(this.items.indexOf(v),1).length>0}get($,v){let I=nD(this.items,$)?.value;return(!v&&Db.isScalar(I)?I.value:I)??void 0}has($){return!!nD(this.items,$)}set($,v){this.add(new NW.Pair($,v),!0)}toJSON($,v,U){let I=U?new U:v?.mapAsMap?new Map:{};if(v?.onCreate)v.onCreate(I);for(let b of this.items)Su$.addPairToJSMap(v,I,b);return I}toString($,v,U){if(!$)return JSON.stringify(this);for(let I of this.items)if(!Db.isPair(I))throw Error(`Map items must all be pairs; found ${JSON.stringify(I)} instead`);if(!$.allNullValues&&this.hasAllNullValues(!1))$=Object.assign({},$,{allNullValues:!0});return Nu$.stringifyCollection(this,$,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:$.indent||"",onChompKeep:U,onComment:v})}}Fu$.YAMLMap=YC;Fu$.findPair=nD});var xI=P((Ru$)=>{var ku$=V$(),VC=ub(),Eu$={collection:"map",default:!0,nodeClass:VC.YAMLMap,tag:"tag:yaml.org,2002:map",resolve($,v){if(!ku$.isMap($))v("Expected a mapping for this tag");return $},createNode:($,v,U)=>VC.YAMLMap.from($,v,U)};Ru$.map=Eu$});var wb=P((fu$)=>{var ru$=FD(),Cu$=VB(),iu$=HW(),MW=V$(),xu$=s$(),lu$=vb();class LC extends iu$.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor($){super(MW.SEQ,$);this.items=[]}add($){this.items.push($)}delete($){let v=SW($);if(typeof v!=="number")return!1;return this.items.splice(v,1).length>0}get($,v){let U=SW($);if(typeof U!=="number")return;let I=this.items[U];return!v&&MW.isScalar(I)?I.value:I}has($){let v=SW($);return typeof v==="number"&&v<this.items.length}set($,v){let U=SW($);if(typeof U!=="number")throw Error(`Expected a valid index, not ${$}.`);let I=this.items[U];if(MW.isScalar(I)&&xu$.isScalarValue(v))I.value=v;else this.items[U]=v}toJSON($,v){let U=[];if(v?.onCreate)v.onCreate(U);let I=0;for(let b of this.items)U.push(lu$.toJS(b,String(I++),v));return U}toString($,v,U){if(!$)return JSON.stringify(this);return Cu$.stringifyCollection(this,$,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:($.indent||"")+" ",onChompKeep:U,onComment:v})}static from($,v,U){let{replacer:I}=U,b=new this($);if(v&&Symbol.iterator in Object(v)){let D=0;for(let u of v){if(typeof I==="function"){let w=v instanceof Set?u:String(D++);u=I.call(v,w,u)}b.items.push(ru$.createNode(u,void 0,U))}}return b}}function SW($){let v=MW.isScalar($)?$.value:$;if(v&&typeof v==="string")v=Number(v);return typeof v==="number"&&Number.isInteger(v)&&v>=0?v:null}fu$.YAMLSeq=LC});var lI=P((cu$)=>{var hu$=V$(),KC=wb(),mu$={collection:"seq",default:!0,nodeClass:KC.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve($,v){if(!hu$.isSeq($))v("Expected a sequence for this tag");return $},createNode:($,v,U)=>KC.YAMLSeq.from($,v,U)};cu$.seq=mu$});var rD=P((pu$)=>{var tu$=kD(),du$={identify:($)=>typeof $==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:($)=>$,stringify($,v,U,I){return v=Object.assign({actualString:!0},v),tu$.stringifyString($,v,U,I)}};pu$.string=du$});var _W=P((eu$)=>{var qC=s$(),BC={identify:($)=>$==null,createNode:()=>new qC.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new qC.Scalar(null),stringify:({source:$},v)=>typeof $==="string"&&BC.test.test($)?$:v.options.nullStr};eu$.nullTag=BC});var LB=P((vw$)=>{var $w$=s$(),AC={identify:($)=>typeof $==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:($)=>new $w$.Scalar($[0]==="t"||$[0]==="T"),stringify({source:$,value:v},U){if($&&AC.test.test($)){let I=$[0]==="t"||$[0]==="T";if(v===I)return $}return v?U.options.trueStr:U.options.falseStr}};vw$.boolTag=AC});var fI=P((Iw$)=>{function Uw$({format:$,minFractionDigits:v,tag:U,value:I}){if(typeof I==="bigint")return String(I);let b=typeof I==="number"?I:Number(I);if(!isFinite(b))return isNaN(b)?".nan":b<0?"-.inf":".inf";let D=Object.is(I,-0)?"-0":JSON.stringify(I);if(!$&&v&&(!U||U==="tag:yaml.org,2002:float")&&/^-?\d/.test(D)&&!D.includes("e")){let u=D.indexOf(".");if(u<0)u=D.length,D+=".";let w=v-(D.length-u-1);while(w-- >0)D+="0"}return D}Iw$.stringifyNumber=Uw$});var qB=P((Xw$)=>{var uw$=s$(),KB=fI(),ww$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:($)=>$.slice(-3).toLowerCase()==="nan"?NaN:$[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:KB.stringifyNumber},gw$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:($)=>parseFloat($),stringify($){let v=Number($.value);return isFinite(v)?v.toExponential():KB.stringifyNumber($)}},Jw$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve($){let v=new uw$.Scalar(parseFloat($)),U=$.indexOf(".");if(U!==-1&&$[$.length-1]==="0")v.minFractionDigits=$.length-U-1;return v},stringify:KB.stringifyNumber};Xw$.float=Jw$;Xw$.floatExp=gw$;Xw$.floatNaN=ww$});var AB=P((Yw$)=>{var PC=fI(),FW=($)=>typeof $==="bigint"||Number.isInteger($),BB=($,v,U,{intAsBigInt:I})=>I?BigInt($):parseInt($.substring(v),U);function jC($,v,U){let{value:I}=$;if(FW(I)&&I>=0)return U+I.toString(v);return PC.stringifyNumber($)}var Hw$={identify:($)=>FW($)&&$>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:($,v,U)=>BB($,2,8,U),stringify:($)=>jC($,8,"0o")},zw$={identify:FW,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:($,v,U)=>BB($,0,10,U),stringify:PC.stringifyNumber},Qw$={identify:($)=>FW($)&&$>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:($,v,U)=>BB($,2,16,U),stringify:($)=>jC($,16,"0x")};Yw$.int=zw$;Yw$.intHex=Qw$;Yw$.intOct=Hw$});var NC=P((Sw$)=>{var qw$=xI(),Bw$=_W(),Aw$=lI(),Pw$=rD(),jw$=LB(),PB=qB(),jB=AB(),Nw$=[qw$.map,Aw$.seq,Pw$.string,Bw$.nullTag,jw$.boolTag,jB.intOct,jB.int,jB.intHex,PB.floatNaN,PB.floatExp,PB.float];Sw$.schema=Nw$});var MC=P((Rw$)=>{var _w$=s$(),Fw$=xI(),Zw$=lI();function SC($){return typeof $==="bigint"||Number.isInteger($)}var ZW=({value:$})=>JSON.stringify($),Tw$=[{identify:($)=>typeof $==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:($)=>$,stringify:ZW},{identify:($)=>$==null,createNode:()=>new _w$.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:ZW},{identify:($)=>typeof $==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:($)=>$==="true",stringify:ZW},{identify:SC,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:($,v,{intAsBigInt:U})=>U?BigInt($):parseInt($,10),stringify:({value:$})=>SC($)?$.toString():JSON.stringify($)},{identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:($)=>parseFloat($),stringify:ZW}],kw$={default:!0,tag:"",test:/^/,resolve($,v){return v(`Unresolved plain scalar ${JSON.stringify($)}`),$}},Ew$=[Fw$.map,Zw$.seq].concat(Tw$,kw$);Rw$.schema=Ew$});var SB=P((iw$)=>{var CD=Wu("buffer"),NB=s$(),rw$=kD(),Cw$={identify:($)=>$ instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve($,v){if(typeof CD.Buffer==="function")return CD.Buffer.from($,"base64");else if(typeof atob==="function"){let U=atob($.replace(/[\n\r]/g,"")),I=new Uint8Array(U.length);for(let b=0;b<U.length;++b)I[b]=U.charCodeAt(b);return I}else return v("This environment does not support reading binary tags; either Buffer or atob is required"),$},stringify({comment:$,type:v,value:U},I,b,D){if(!U)return"";let u=U,w;if(typeof CD.Buffer==="function")w=u instanceof CD.Buffer?u.toString("base64"):CD.Buffer.from(u.buffer).toString("base64");else if(typeof btoa==="function"){let g="";for(let J=0;J<u.length;++J)g+=String.fromCharCode(u[J]);w=btoa(g)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(v??(v=NB.Scalar.BLOCK_LITERAL),v!==NB.Scalar.QUOTE_DOUBLE){let g=Math.max(I.options.lineWidth-I.indent.length,I.options.minContentWidth),J=Math.ceil(w.length/g),X=Array(J);for(let W=0,G=0;W<J;++W,G+=g)X[W]=w.substr(G,g);w=X.join(v===NB.Scalar.BLOCK_LITERAL?`
|
|
61
|
+
`:" ")}return rw$.stringifyString({comment:$,type:v,value:w},I,b,D)}};iw$.binary=Cw$});var kW=P((hw$)=>{var TW=V$(),MB=Ib(),lw$=s$(),fw$=wb();function _C($,v){if(TW.isSeq($))for(let U=0;U<$.items.length;++U){let I=$.items[U];if(TW.isPair(I))continue;else if(TW.isMap(I)){if(I.items.length>1)v("Each pair must have its own sequence indicator");let b=I.items[0]||new MB.Pair(new lw$.Scalar(null));if(I.commentBefore)b.key.commentBefore=b.key.commentBefore?`${I.commentBefore}
|
|
62
62
|
${b.key.commentBefore}`:I.commentBefore;if(I.comment){let D=b.value??b.key;D.comment=D.comment?`${I.comment}
|
|
63
|
-
${D.comment}`:I.comment}I=b}$.items[U]=TW.isPair(I)?I:new MB.Pair(I)}else v("Expected a sequence for this tag");return $}function FC($,v,U){let{replacer:I}=U,b=new yw$.YAMLSeq($);b.tag="tag:yaml.org,2002:pairs";let D=0;if(v&&Symbol.iterator in Object(v))for(let u of v){if(typeof I==="function")u=I.call(v,String(D++),u);let w,g;if(Array.isArray(u))if(u.length===2)w=u[0],g=u[1];else throw TypeError(`Expected [key, value] tuple: ${u}`);else if(u&&u instanceof Object){let J=Object.keys(u);if(J.length===1)w=J[0],g=u[w];else throw TypeError(`Expected tuple with one key, not ${J.length} keys`)}else w=u;b.items.push(MB.createPair(w,g,U))}return b}var hw$={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:_C,createNode:FC};mw$.createPairs=FC;mw$.pairs=hw$;mw$.resolvePairs=_C});var FB=P((aw$)=>{var ZC=V$(),_B=vb(),iD=ub(),dw$=wb(),TC=kW();class ab extends dw$.YAMLSeq{constructor(){super();this.add=iD.YAMLMap.prototype.add.bind(this),this.delete=iD.YAMLMap.prototype.delete.bind(this),this.get=iD.YAMLMap.prototype.get.bind(this),this.has=iD.YAMLMap.prototype.has.bind(this),this.set=iD.YAMLMap.prototype.set.bind(this),this.tag=ab.tag}toJSON($,v){if(!v)return super.toJSON($);let U=new Map;if(v?.onCreate)v.onCreate(U);for(let I of this.items){let b,D;if(ZC.isPair(I))b=_B.toJS(I.key,"",v),D=_B.toJS(I.value,b,v);else b=_B.toJS(I,"",v);if(U.has(b))throw Error("Ordered maps must not include duplicate keys");U.set(b,D)}return U}static from($,v,U){let I=TC.createPairs($,v,U),b=new this;return b.items=I.items,b}}ab.tag="tag:yaml.org,2002:omap";var pw$={collection:"seq",identify:($)=>$ instanceof Map,nodeClass:ab,default:!1,tag:"tag:yaml.org,2002:omap",resolve($,v){let U=TC.resolvePairs($,v),I=[];for(let{key:b}of U.items)if(ZC.isScalar(b))if(I.includes(b.value))v(`Ordered maps must not include duplicate keys: ${b.value}`);else I.push(b.value);return Object.assign(new ab,U)},createNode:($,v,U)=>ab.from($,v,U)};aw$.YAMLOMap=ab;aw$.omap=pw$});var rC=P(($g$)=>{var kC=s$();function EC({value:$,source:v},U){if(v&&($?RC:nC).test.test(v))return v;return $?U.options.trueStr:U.options.falseStr}var RC={identify:($)=>$===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new kC.Scalar(!0),stringify:EC},nC={identify:($)=>$===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new kC.Scalar(!1),stringify:EC};$g$.falseTag=nC;$g$.trueTag=RC});var CC=P((wg$)=>{var Ug$=s$(),ZB=fI(),Ig$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:($)=>$.slice(-3).toLowerCase()==="nan"?NaN:$[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:ZB.stringifyNumber},Dg$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:($)=>parseFloat($.replace(/_/g,"")),stringify($){let v=Number($.value);return isFinite(v)?v.toExponential():ZB.stringifyNumber($)}},ug$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve($){let v=new Ug$.Scalar(parseFloat($.replace(/_/g,""))),U=$.indexOf(".");if(U!==-1){let I=$.substring(U+1).replace(/_/g,"");if(I[I.length-1]==="0")v.minFractionDigits=I.length}return v},stringify:ZB.stringifyNumber};wg$.float=ug$;wg$.floatExp=Dg$;wg$.floatNaN=Ig$});var xC=P((zg$)=>{var iC=fI(),xD=($)=>typeof $==="bigint"||Number.isInteger($);function EW($,v,U,{intAsBigInt:I}){let b=$[0];if(b==="-"||b==="+")v+=1;if($=$.substring(v).replace(/_/g,""),I){switch(U){case 2:$=`0b${$}`;break;case 8:$=`0o${$}`;break;case 16:$=`0x${$}`;break}let u=BigInt($);return b==="-"?BigInt(-1)*u:u}let D=parseInt($,U);return b==="-"?-1*D:D}function TB($,v,U){let{value:I}=$;if(xD(I)){let b=I.toString(v);return I<0?"-"+U+b.substr(1):U+b}return iC.stringifyNumber($)}var Wg$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:($,v,U)=>EW($,2,2,U),stringify:($)=>TB($,2,"0b")},Gg$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:($,v,U)=>EW($,1,8,U),stringify:($)=>TB($,8,"0")},Og$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:($,v,U)=>EW($,0,10,U),stringify:iC.stringifyNumber},Hg$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:($,v,U)=>EW($,2,16,U),stringify:($)=>TB($,16,"0x")};zg$.int=Og$;zg$.intBin=Wg$;zg$.intHex=Hg$;zg$.intOct=Gg$});var kB=P((qg$)=>{var rW=V$(),RW=Ib(),nW=ub();class eb extends nW.YAMLMap{constructor($){super($);this.tag=eb.tag}add($){let v;if(rW.isPair($))v=$;else if($&&typeof $==="object"&&"key"in $&&"value"in $&&$.value===null)v=new RW.Pair($.key,null);else v=new RW.Pair($,null);if(!nW.findPair(this.items,v.key))this.items.push(v)}get($,v){let U=nW.findPair(this.items,$);return!v&&rW.isPair(U)?rW.isScalar(U.key)?U.key.value:U.key:U}set($,v){if(typeof v!=="boolean")throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof v}`);let U=nW.findPair(this.items,$);if(U&&!v)this.items.splice(this.items.indexOf(U),1);else if(!U&&v)this.items.push(new RW.Pair($))}toJSON($,v){return super.toJSON($,v,Set)}toString($,v,U){if(!$)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},$,{allNullValues:!0}),v,U);else throw Error("Set items must all have null values")}static from($,v,U){let{replacer:I}=U,b=new this($);if(v&&Symbol.iterator in Object(v))for(let D of v){if(typeof I==="function")D=I.call(v,D,D);b.items.push(RW.createPair(D,null,U))}return b}}eb.tag="tag:yaml.org,2002:set";var Kg$={collection:"map",identify:($)=>$ instanceof Set,nodeClass:eb,default:!1,tag:"tag:yaml.org,2002:set",createNode:($,v,U)=>eb.from($,v,U),resolve($,v){if(rW.isMap($))if($.hasAllNullValues(!0))return Object.assign(new eb,$);else v("Set items must all have null values");else v("Expected a mapping for this tag");return $}};qg$.YAMLSet=eb;qg$.set=Kg$});var RB=P((Sg$)=>{var Pg$=fI();function EB($,v){let U=$[0],I=U==="-"||U==="+"?$.substring(1):$,b=(u)=>v?BigInt(u):Number(u),D=I.replace(/_/g,"").split(":").reduce((u,w)=>u*b(60)+b(w),b(0));return U==="-"?b(-1)*D:D}function lC($){let{value:v}=$,U=(u)=>u;if(typeof v==="bigint")U=(u)=>BigInt(u);else if(isNaN(v)||!isFinite(v))return Pg$.stringifyNumber($);let I="";if(v<0)I="-",v*=U(-1);let b=U(60),D=[v%b];if(v<60)D.unshift(0);else if(v=(v-D[0])/b,D.unshift(v%b),v>=60)v=(v-D[0])/b,D.unshift(v);return I+D.map((u)=>String(u).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var jg$={identify:($)=>typeof $==="bigint"||Number.isInteger($),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:($,v,{intAsBigInt:U})=>EB($,U),stringify:lC},Ng$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:($)=>EB($,!1),stringify:lC},fC={identify:($)=>$ instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve($){let v=$.match(fC.test);if(!v)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,U,I,b,D,u,w]=v.map(Number),g=v[7]?Number((v[7]+"00").substr(1,3)):0,J=Date.UTC(U,I-1,b,D||0,u||0,w||0,g),X=v[8];if(X&&X!=="Z"){let W=EB(X,!1);if(Math.abs(W)<30)W*=60;J-=60000*W}return new Date(J)},stringify:({value:$})=>$?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Sg$.floatTime=Ng$;Sg$.intTime=jg$;Sg$.timestamp=fC});var hC=P((lg$)=>{var Zg$=xI(),Tg$=_W(),kg$=lI(),Eg$=rD(),Rg$=SB(),yC=rC(),nB=CC(),CW=xC(),ng$=qW(),rg$=FB(),Cg$=kW(),ig$=kB(),rB=RB(),xg$=[Zg$.map,kg$.seq,Eg$.string,Tg$.nullTag,yC.trueTag,yC.falseTag,CW.intBin,CW.intOct,CW.int,CW.intHex,nB.floatNaN,nB.floatExp,nB.float,Rg$.binary,ng$.merge,rg$.omap,Cg$.pairs,ig$.set,rB.intTime,rB.floatTime,rB.timestamp];lg$.schema=xg$});var $i=P((pg$)=>{var tC=xI(),yg$=_W(),dC=lI(),hg$=rD(),mg$=LB(),CB=qB(),iB=AB(),cg$=NC(),og$=MC(),pC=SB(),lD=qW(),aC=FB(),eC=kW(),mC=hC(),sC=kB(),iW=RB(),cC=new Map([["core",cg$.schema],["failsafe",[tC.map,dC.seq,hg$.string]],["json",og$.schema],["yaml11",mC.schema],["yaml-1.1",mC.schema]]),oC={binary:pC.binary,bool:mg$.boolTag,float:CB.float,floatExp:CB.floatExp,floatNaN:CB.floatNaN,floatTime:iW.floatTime,int:iB.int,intHex:iB.intHex,intOct:iB.intOct,intTime:iW.intTime,map:tC.map,merge:lD.merge,null:yg$.nullTag,omap:aC.omap,pairs:eC.pairs,seq:dC.seq,set:sC.set,timestamp:iW.timestamp},tg$={"tag:yaml.org,2002:binary":pC.binary,"tag:yaml.org,2002:merge":lD.merge,"tag:yaml.org,2002:omap":aC.omap,"tag:yaml.org,2002:pairs":eC.pairs,"tag:yaml.org,2002:set":sC.set,"tag:yaml.org,2002:timestamp":iW.timestamp};function dg$($,v,U){let I=cC.get(v);if(I&&!$)return U&&!I.includes(lD.merge)?I.concat(lD.merge):I.slice();let b=I;if(!b)if(Array.isArray($))b=[];else{let D=Array.from(cC.keys()).filter((u)=>u!=="yaml11").map((u)=>JSON.stringify(u)).join(", ");throw Error(`Unknown schema "${v}"; use one of ${D} or define customTags array`)}if(Array.isArray($))for(let D of $)b=b.concat(D);else if(typeof $==="function")b=$(b.slice());if(U)b=b.concat(lD.merge);return b.reduce((D,u)=>{let w=typeof u==="string"?oC[u]:u;if(!w){let g=JSON.stringify(u),J=Object.keys(oC).map((X)=>JSON.stringify(X)).join(", ");throw Error(`Unknown custom tag ${g}; use one of ${J}`)}if(!D.includes(w))D.push(w);return D},[])}pg$.coreKnownTags=tg$;pg$.getTags=dg$});var fB=P((UJ$)=>{var xB=V$(),sg$=xI(),$J$=lI(),vJ$=rD(),xW=$i(),bJ$=($,v)=>$.key<v.key?-1:$.key>v.key?1:0;class lB{constructor({compat:$,customTags:v,merge:U,resolveKnownTags:I,schema:b,sortMapEntries:D,toStringDefaults:u}){this.compat=Array.isArray($)?xW.getTags($,"compat"):$?xW.getTags(null,$):null,this.name=typeof b==="string"&&b||"core",this.knownTags=I?xW.coreKnownTags:{},this.tags=xW.getTags(v,this.name,U),this.toStringOptions=u??null,Object.defineProperty(this,xB.MAP,{value:sg$.map}),Object.defineProperty(this,xB.SCALAR,{value:vJ$.string}),Object.defineProperty(this,xB.SEQ,{value:$J$.seq}),this.sortMapEntries=typeof D==="function"?D:D===!0?bJ$:null}clone(){let $=Object.create(lB.prototype,Object.getOwnPropertyDescriptors(this));return $.tags=this.tags.slice(),$}}UJ$.Schema=lB});var vi=P((wJ$)=>{var DJ$=V$(),yB=ED(),fD=ZD();function uJ$($,v){let U=[],I=v.directives===!0;if(v.directives!==!1&&$.directives){let g=$.directives.toString($);if(g)U.push(g),I=!0;else if($.directives.docStart)I=!0}if(I)U.push("---");let b=yB.createStringifyContext($,v),{commentString:D}=b.options;if($.commentBefore){if(U.length!==1)U.unshift("");let g=D($.commentBefore);U.unshift(fD.indentComment(g,""))}let u=!1,w=null;if($.contents){if(DJ$.isNode($.contents)){if($.contents.spaceBefore&&I)U.push("");if($.contents.commentBefore){let X=D($.contents.commentBefore);U.push(fD.indentComment(X,""))}b.forceBlockIndent=!!$.comment,w=$.contents.comment}let g=w?void 0:()=>u=!0,J=yB.stringify($.contents,b,()=>w=null,g);if(w)J+=fD.lineComment(J,"",D(w));if((J[0]==="|"||J[0]===">")&&U[U.length-1]==="---")U[U.length-1]=`--- ${J}`;else U.push(J)}else U.push(yB.stringify($.contents,b));if($.directives?.docEnd)if($.comment){let g=D($.comment);if(g.includes(`
|
|
63
|
+
${D.comment}`:I.comment}I=b}$.items[U]=TW.isPair(I)?I:new MB.Pair(I)}else v("Expected a sequence for this tag");return $}function FC($,v,U){let{replacer:I}=U,b=new fw$.YAMLSeq($);b.tag="tag:yaml.org,2002:pairs";let D=0;if(v&&Symbol.iterator in Object(v))for(let u of v){if(typeof I==="function")u=I.call(v,String(D++),u);let w,g;if(Array.isArray(u))if(u.length===2)w=u[0],g=u[1];else throw TypeError(`Expected [key, value] tuple: ${u}`);else if(u&&u instanceof Object){let J=Object.keys(u);if(J.length===1)w=J[0],g=u[w];else throw TypeError(`Expected tuple with one key, not ${J.length} keys`)}else w=u;b.items.push(MB.createPair(w,g,U))}return b}var yw$={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:_C,createNode:FC};hw$.createPairs=FC;hw$.pairs=yw$;hw$.resolvePairs=_C});var FB=P((pw$)=>{var ZC=V$(),_B=vb(),iD=ub(),tw$=wb(),TC=kW();class ab extends tw$.YAMLSeq{constructor(){super();this.add=iD.YAMLMap.prototype.add.bind(this),this.delete=iD.YAMLMap.prototype.delete.bind(this),this.get=iD.YAMLMap.prototype.get.bind(this),this.has=iD.YAMLMap.prototype.has.bind(this),this.set=iD.YAMLMap.prototype.set.bind(this),this.tag=ab.tag}toJSON($,v){if(!v)return super.toJSON($);let U=new Map;if(v?.onCreate)v.onCreate(U);for(let I of this.items){let b,D;if(ZC.isPair(I))b=_B.toJS(I.key,"",v),D=_B.toJS(I.value,b,v);else b=_B.toJS(I,"",v);if(U.has(b))throw Error("Ordered maps must not include duplicate keys");U.set(b,D)}return U}static from($,v,U){let I=TC.createPairs($,v,U),b=new this;return b.items=I.items,b}}ab.tag="tag:yaml.org,2002:omap";var dw$={collection:"seq",identify:($)=>$ instanceof Map,nodeClass:ab,default:!1,tag:"tag:yaml.org,2002:omap",resolve($,v){let U=TC.resolvePairs($,v),I=[];for(let{key:b}of U.items)if(ZC.isScalar(b))if(I.includes(b.value))v(`Ordered maps must not include duplicate keys: ${b.value}`);else I.push(b.value);return Object.assign(new ab,U)},createNode:($,v,U)=>ab.from($,v,U)};pw$.YAMLOMap=ab;pw$.omap=dw$});var rC=P((sw$)=>{var kC=s$();function EC({value:$,source:v},U){if(v&&($?RC:nC).test.test(v))return v;return $?U.options.trueStr:U.options.falseStr}var RC={identify:($)=>$===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new kC.Scalar(!0),stringify:EC},nC={identify:($)=>$===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new kC.Scalar(!1),stringify:EC};sw$.falseTag=nC;sw$.trueTag=RC});var CC=P((ug$)=>{var bg$=s$(),ZB=fI(),Ug$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:($)=>$.slice(-3).toLowerCase()==="nan"?NaN:$[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:ZB.stringifyNumber},Ig$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:($)=>parseFloat($.replace(/_/g,"")),stringify($){let v=Number($.value);return isFinite(v)?v.toExponential():ZB.stringifyNumber($)}},Dg$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve($){let v=new bg$.Scalar(parseFloat($.replace(/_/g,""))),U=$.indexOf(".");if(U!==-1){let I=$.substring(U+1).replace(/_/g,"");if(I[I.length-1]==="0")v.minFractionDigits=I.length}return v},stringify:ZB.stringifyNumber};ug$.float=Dg$;ug$.floatExp=Ig$;ug$.floatNaN=Ug$});var xC=P((Hg$)=>{var iC=fI(),xD=($)=>typeof $==="bigint"||Number.isInteger($);function EW($,v,U,{intAsBigInt:I}){let b=$[0];if(b==="-"||b==="+")v+=1;if($=$.substring(v).replace(/_/g,""),I){switch(U){case 2:$=`0b${$}`;break;case 8:$=`0o${$}`;break;case 16:$=`0x${$}`;break}let u=BigInt($);return b==="-"?BigInt(-1)*u:u}let D=parseInt($,U);return b==="-"?-1*D:D}function TB($,v,U){let{value:I}=$;if(xD(I)){let b=I.toString(v);return I<0?"-"+U+b.substr(1):U+b}return iC.stringifyNumber($)}var Xg$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:($,v,U)=>EW($,2,2,U),stringify:($)=>TB($,2,"0b")},Wg$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:($,v,U)=>EW($,1,8,U),stringify:($)=>TB($,8,"0")},Gg$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:($,v,U)=>EW($,0,10,U),stringify:iC.stringifyNumber},Og$={identify:xD,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:($,v,U)=>EW($,2,16,U),stringify:($)=>TB($,16,"0x")};Hg$.int=Gg$;Hg$.intBin=Xg$;Hg$.intHex=Og$;Hg$.intOct=Wg$});var kB=P((Kg$)=>{var rW=V$(),RW=Ib(),nW=ub();class eb extends nW.YAMLMap{constructor($){super($);this.tag=eb.tag}add($){let v;if(rW.isPair($))v=$;else if($&&typeof $==="object"&&"key"in $&&"value"in $&&$.value===null)v=new RW.Pair($.key,null);else v=new RW.Pair($,null);if(!nW.findPair(this.items,v.key))this.items.push(v)}get($,v){let U=nW.findPair(this.items,$);return!v&&rW.isPair(U)?rW.isScalar(U.key)?U.key.value:U.key:U}set($,v){if(typeof v!=="boolean")throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof v}`);let U=nW.findPair(this.items,$);if(U&&!v)this.items.splice(this.items.indexOf(U),1);else if(!U&&v)this.items.push(new RW.Pair($))}toJSON($,v){return super.toJSON($,v,Set)}toString($,v,U){if(!$)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},$,{allNullValues:!0}),v,U);else throw Error("Set items must all have null values")}static from($,v,U){let{replacer:I}=U,b=new this($);if(v&&Symbol.iterator in Object(v))for(let D of v){if(typeof I==="function")D=I.call(v,D,D);b.items.push(RW.createPair(D,null,U))}return b}}eb.tag="tag:yaml.org,2002:set";var Lg$={collection:"map",identify:($)=>$ instanceof Set,nodeClass:eb,default:!1,tag:"tag:yaml.org,2002:set",createNode:($,v,U)=>eb.from($,v,U),resolve($,v){if(rW.isMap($))if($.hasAllNullValues(!0))return Object.assign(new eb,$);else v("Set items must all have null values");else v("Expected a mapping for this tag");return $}};Kg$.YAMLSet=eb;Kg$.set=Lg$});var RB=P((Ng$)=>{var Ag$=fI();function EB($,v){let U=$[0],I=U==="-"||U==="+"?$.substring(1):$,b=(u)=>v?BigInt(u):Number(u),D=I.replace(/_/g,"").split(":").reduce((u,w)=>u*b(60)+b(w),b(0));return U==="-"?b(-1)*D:D}function lC($){let{value:v}=$,U=(u)=>u;if(typeof v==="bigint")U=(u)=>BigInt(u);else if(isNaN(v)||!isFinite(v))return Ag$.stringifyNumber($);let I="";if(v<0)I="-",v*=U(-1);let b=U(60),D=[v%b];if(v<60)D.unshift(0);else if(v=(v-D[0])/b,D.unshift(v%b),v>=60)v=(v-D[0])/b,D.unshift(v);return I+D.map((u)=>String(u).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Pg$={identify:($)=>typeof $==="bigint"||Number.isInteger($),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:($,v,{intAsBigInt:U})=>EB($,U),stringify:lC},jg$={identify:($)=>typeof $==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:($)=>EB($,!1),stringify:lC},fC={identify:($)=>$ instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve($){let v=$.match(fC.test);if(!v)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,U,I,b,D,u,w]=v.map(Number),g=v[7]?Number((v[7]+"00").substr(1,3)):0,J=Date.UTC(U,I-1,b,D||0,u||0,w||0,g),X=v[8];if(X&&X!=="Z"){let W=EB(X,!1);if(Math.abs(W)<30)W*=60;J-=60000*W}return new Date(J)},stringify:({value:$})=>$?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Ng$.floatTime=jg$;Ng$.intTime=Pg$;Ng$.timestamp=fC});var hC=P((xg$)=>{var Fg$=xI(),Zg$=_W(),Tg$=lI(),kg$=rD(),Eg$=SB(),yC=rC(),nB=CC(),CW=xC(),Rg$=qW(),ng$=FB(),rg$=kW(),Cg$=kB(),rB=RB(),ig$=[Fg$.map,Tg$.seq,kg$.string,Zg$.nullTag,yC.trueTag,yC.falseTag,CW.intBin,CW.intOct,CW.int,CW.intHex,nB.floatNaN,nB.floatExp,nB.float,Eg$.binary,Rg$.merge,ng$.omap,rg$.pairs,Cg$.set,rB.intTime,rB.floatTime,rB.timestamp];xg$.schema=ig$});var $i=P((dg$)=>{var tC=xI(),fg$=_W(),dC=lI(),yg$=rD(),hg$=LB(),CB=qB(),iB=AB(),mg$=NC(),cg$=MC(),pC=SB(),lD=qW(),aC=FB(),eC=kW(),mC=hC(),sC=kB(),iW=RB(),cC=new Map([["core",mg$.schema],["failsafe",[tC.map,dC.seq,yg$.string]],["json",cg$.schema],["yaml11",mC.schema],["yaml-1.1",mC.schema]]),oC={binary:pC.binary,bool:hg$.boolTag,float:CB.float,floatExp:CB.floatExp,floatNaN:CB.floatNaN,floatTime:iW.floatTime,int:iB.int,intHex:iB.intHex,intOct:iB.intOct,intTime:iW.intTime,map:tC.map,merge:lD.merge,null:fg$.nullTag,omap:aC.omap,pairs:eC.pairs,seq:dC.seq,set:sC.set,timestamp:iW.timestamp},og$={"tag:yaml.org,2002:binary":pC.binary,"tag:yaml.org,2002:merge":lD.merge,"tag:yaml.org,2002:omap":aC.omap,"tag:yaml.org,2002:pairs":eC.pairs,"tag:yaml.org,2002:set":sC.set,"tag:yaml.org,2002:timestamp":iW.timestamp};function tg$($,v,U){let I=cC.get(v);if(I&&!$)return U&&!I.includes(lD.merge)?I.concat(lD.merge):I.slice();let b=I;if(!b)if(Array.isArray($))b=[];else{let D=Array.from(cC.keys()).filter((u)=>u!=="yaml11").map((u)=>JSON.stringify(u)).join(", ");throw Error(`Unknown schema "${v}"; use one of ${D} or define customTags array`)}if(Array.isArray($))for(let D of $)b=b.concat(D);else if(typeof $==="function")b=$(b.slice());if(U)b=b.concat(lD.merge);return b.reduce((D,u)=>{let w=typeof u==="string"?oC[u]:u;if(!w){let g=JSON.stringify(u),J=Object.keys(oC).map((X)=>JSON.stringify(X)).join(", ");throw Error(`Unknown custom tag ${g}; use one of ${J}`)}if(!D.includes(w))D.push(w);return D},[])}dg$.coreKnownTags=og$;dg$.getTags=tg$});var fB=P((bJ$)=>{var xB=V$(),eg$=xI(),sg$=lI(),$J$=rD(),xW=$i(),vJ$=($,v)=>$.key<v.key?-1:$.key>v.key?1:0;class lB{constructor({compat:$,customTags:v,merge:U,resolveKnownTags:I,schema:b,sortMapEntries:D,toStringDefaults:u}){this.compat=Array.isArray($)?xW.getTags($,"compat"):$?xW.getTags(null,$):null,this.name=typeof b==="string"&&b||"core",this.knownTags=I?xW.coreKnownTags:{},this.tags=xW.getTags(v,this.name,U),this.toStringOptions=u??null,Object.defineProperty(this,xB.MAP,{value:eg$.map}),Object.defineProperty(this,xB.SCALAR,{value:$J$.string}),Object.defineProperty(this,xB.SEQ,{value:sg$.seq}),this.sortMapEntries=typeof D==="function"?D:D===!0?vJ$:null}clone(){let $=Object.create(lB.prototype,Object.getOwnPropertyDescriptors(this));return $.tags=this.tags.slice(),$}}bJ$.Schema=lB});var vi=P((uJ$)=>{var IJ$=V$(),yB=ED(),fD=ZD();function DJ$($,v){let U=[],I=v.directives===!0;if(v.directives!==!1&&$.directives){let g=$.directives.toString($);if(g)U.push(g),I=!0;else if($.directives.docStart)I=!0}if(I)U.push("---");let b=yB.createStringifyContext($,v),{commentString:D}=b.options;if($.commentBefore){if(U.length!==1)U.unshift("");let g=D($.commentBefore);U.unshift(fD.indentComment(g,""))}let u=!1,w=null;if($.contents){if(IJ$.isNode($.contents)){if($.contents.spaceBefore&&I)U.push("");if($.contents.commentBefore){let X=D($.contents.commentBefore);U.push(fD.indentComment(X,""))}b.forceBlockIndent=!!$.comment,w=$.contents.comment}let g=w?void 0:()=>u=!0,J=yB.stringify($.contents,b,()=>w=null,g);if(w)J+=fD.lineComment(J,"",D(w));if((J[0]==="|"||J[0]===">")&&U[U.length-1]==="---")U[U.length-1]=`--- ${J}`;else U.push(J)}else U.push(yB.stringify($.contents,b));if($.directives?.docEnd)if($.comment){let g=D($.comment);if(g.includes(`
|
|
64
64
|
`))U.push("..."),U.push(fD.indentComment(g,""));else U.push(`... ${g}`)}else U.push("...");else{let g=$.comment;if(g&&u)g=g.replace(/^\n+/,"");if(g){if((!u||w)&&U[U.length-1]!=="")U.push("");U.push(fD.indentComment(D(g),""))}}return U.join(`
|
|
65
65
|
`)+`
|
|
66
|
-
`}
|
|
66
|
+
`}uJ$.stringifyDocument=DJ$});var yD=P((zJ$)=>{var gJ$=_D(),yI=HW(),u4=V$(),JJ$=Ib(),XJ$=vb(),WJ$=fB(),GJ$=vi(),hB=WW(),OJ$=JB(),HJ$=FD(),mB=gB();class cB{constructor($,v,U){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,u4.NODE_TYPE,{value:u4.DOC});let I=null;if(typeof v==="function"||Array.isArray(v))I=v;else if(U===void 0&&v)U=v,v=void 0;let b=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},U);this.options=b;let{version:D}=b;if(U?._directives){if(this.directives=U._directives.atDocument(),this.directives.yaml.explicit)D=this.directives.yaml.version}else this.directives=new mB.Directives({version:D});this.setSchema(D,U),this.contents=$===void 0?null:this.createNode($,I,U)}clone(){let $=Object.create(cB.prototype,{[u4.NODE_TYPE]:{value:u4.DOC}});if($.commentBefore=this.commentBefore,$.comment=this.comment,$.errors=this.errors.slice(),$.warnings=this.warnings.slice(),$.options=Object.assign({},this.options),this.directives)$.directives=this.directives.clone();if($.schema=this.schema.clone(),$.contents=u4.isNode(this.contents)?this.contents.clone($.schema):this.contents,this.range)$.range=this.range.slice();return $}add($){if(hI(this.contents))this.contents.add($)}addIn($,v){if(hI(this.contents))this.contents.addIn($,v)}createAlias($,v){if(!$.anchor){let U=hB.anchorNames(this);$.anchor=!v||U.has(v)?hB.findNewAnchor(v||"a",U):v}return new gJ$.Alias($.anchor)}createNode($,v,U){let I=void 0;if(typeof v==="function")$=v.call({"":$},"",$),I=v;else if(Array.isArray(v)){let Q=(K)=>typeof K==="number"||K instanceof String||K instanceof Number,Y=v.filter(Q).map(String);if(Y.length>0)v=v.concat(Y);I=v}else if(U===void 0&&v)U=v,v=void 0;let{aliasDuplicateObjects:b,anchorPrefix:D,flow:u,keepUndefined:w,onTagObj:g,tag:J}=U??{},{onAnchor:X,setAnchors:W,sourceObjects:G}=hB.createNodeAnchors(this,D||"a"),O={aliasDuplicateObjects:b??!0,keepUndefined:w??!1,onAnchor:X,onTagObj:g,replacer:I,schema:this.schema,sourceObjects:G},z=HJ$.createNode($,J,O);if(u&&u4.isCollection(z))z.flow=!0;return W(),z}createPair($,v,U={}){let I=this.createNode($,null,U),b=this.createNode(v,null,U);return new JJ$.Pair(I,b)}delete($){return hI(this.contents)?this.contents.delete($):!1}deleteIn($){if(yI.isEmptyPath($)){if(this.contents==null)return!1;return this.contents=null,!0}return hI(this.contents)?this.contents.deleteIn($):!1}get($,v){return u4.isCollection(this.contents)?this.contents.get($,v):void 0}getIn($,v){if(yI.isEmptyPath($))return!v&&u4.isScalar(this.contents)?this.contents.value:this.contents;return u4.isCollection(this.contents)?this.contents.getIn($,v):void 0}has($){return u4.isCollection(this.contents)?this.contents.has($):!1}hasIn($){if(yI.isEmptyPath($))return this.contents!==void 0;return u4.isCollection(this.contents)?this.contents.hasIn($):!1}set($,v){if(this.contents==null)this.contents=yI.collectionFromPath(this.schema,[$],v);else if(hI(this.contents))this.contents.set($,v)}setIn($,v){if(yI.isEmptyPath($))this.contents=v;else if(this.contents==null)this.contents=yI.collectionFromPath(this.schema,Array.from($),v);else if(hI(this.contents))this.contents.setIn($,v)}setSchema($,v={}){if(typeof $==="number")$=String($);let U;switch($){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new mB.Directives({version:"1.1"});U={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=$;else this.directives=new mB.Directives({version:$});U={resolveKnownTags:!0,schema:"core"};break;case null:if(this.directives)delete this.directives;U=null;break;default:{let I=JSON.stringify($);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${I}`)}}if(v.schema instanceof Object)this.schema=v.schema;else if(U)this.schema=new WJ$.Schema(Object.assign(U,v));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:$,jsonArg:v,mapAsMap:U,maxAliasCount:I,onAnchor:b,reviver:D}={}){let u={anchors:new Map,doc:this,keep:!$,mapAsMap:U===!0,mapKeyWarned:!1,maxAliasCount:typeof I==="number"?I:100},w=XJ$.toJS(this.contents,v??"",u);if(typeof b==="function")for(let{count:g,res:J}of u.anchors.values())b(J,g);return typeof D==="function"?OJ$.applyReviver(D,{"":w},"",w):w}toJSON($,v){return this.toJS({json:!0,jsonArg:$,mapAsMap:!1,onAnchor:v})}toString($={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in $&&(!Number.isInteger($.indent)||Number($.indent)<=0)){let v=JSON.stringify($.indent);throw Error(`"indent" option must be a positive integer, not ${v}`)}return GJ$.stringifyDocument(this,$)}}function hI($){if(u4.isCollection($))return!0;throw Error("Expected a YAML collection as document contents")}zJ$.Document=cB});var hD=P((VJ$)=>{class lW extends Error{constructor($,v,U,I){super();this.name=$,this.code=U,this.message=I,this.pos=v}}class bi extends lW{constructor($,v,U){super("YAMLParseError",$,v,U)}}class Ui extends lW{constructor($,v,U){super("YAMLWarning",$,v,U)}}var YJ$=($,v)=>(U)=>{if(U.pos[0]===-1)return;U.linePos=U.pos.map((w)=>v.linePos(w));let{line:I,col:b}=U.linePos[0];U.message+=` at line ${I}, column ${b}`;let D=b-1,u=$.substring(v.lineStarts[I-1],v.lineStarts[I]).replace(/[\n\r]+$/,"");if(D>=60&&u.length>80){let w=Math.min(D-39,u.length-79);u="\u2026"+u.substring(w),D-=w-1}if(u.length>80)u=u.substring(0,79)+"\u2026";if(I>1&&/^ *$/.test(u.substring(0,D))){let w=$.substring(v.lineStarts[I-2],v.lineStarts[I-1]);if(w.length>80)w=w.substring(0,79)+`\u2026
|
|
67
67
|
`;u=w+u}if(/[^ ]/.test(u)){let w=1,g=U.linePos[1];if(g?.line===I&&g.col>b)w=Math.max(1,Math.min(g.col-b,80-D));let J=" ".repeat(D)+"^".repeat(w);U.message+=`:
|
|
68
68
|
|
|
69
69
|
${u}
|
|
70
70
|
${J}
|
|
71
|
-
`}};
|
|
72
|
-
`))return!0;if($.end){for(let v of $.end)if(v.type==="newline")return!0}return!1;case"flow-collection":for(let v of $.items){for(let U of v.start)if(U.type==="newline")return!0;if(v.sep){for(let U of v.sep)if(U.type==="newline")return!0}if(oB(v.key)||oB(v.value))return!0}return!1;default:return!0}}
|
|
73
|
-
`+Q.comment;else w.comment=Q.comment;continue}if(Q.newlineAfterProp||
|
|
74
|
-
`+S.comment;else F.comment=S.comment;let j=new Di.Pair(F);if(U.options.keepSourceTokens)j.srcToken=X;w.items.push(j)}}if(J&&J<g)b(J,"IMPOSSIBLE","Map comment with trailing content");return w.range=[I.offset,g,J??g],w}
|
|
75
|
-
`+h.comment;else J.comment=h.comment;W=h.end;continue}if(!u&&U.options.strict
|
|
71
|
+
`}};VJ$.YAMLError=lW;VJ$.YAMLParseError=bi;VJ$.YAMLWarning=Ui;VJ$.prettifyError=YJ$});var mD=P((PJ$)=>{function AJ$($,{flow:v,indicator:U,next:I,offset:b,onError:D,parentIndent:u,startOnNewline:w}){let g=!1,J=w,X=w,W="",G="",O=!1,z=!1,Q=null,Y=null,K=null,F=null,S=null,j=null,A=null;for(let l of $){if(z){if(l.type!=="space"&&l.type!=="newline"&&l.type!=="comma")D(l.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");z=!1}if(Q){if(J&&l.type!=="comment"&&l.type!=="newline")D(Q,"TAB_AS_INDENT","Tabs are not allowed as indentation");Q=null}switch(l.type){case"space":if(!v&&(U!=="doc-start"||I?.type!=="flow-collection")&&l.source.includes("\t"))Q=l;X=!0;break;case"comment":{if(!X)D(l,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let W$=l.source.substring(1)||" ";if(!W)W=W$;else W+=G+W$;G="",J=!1;break}case"newline":if(J){if(W)W+=l.source;else if(!j||U!=="seq-item-ind")g=!0}else G+=l.source;if(J=!0,O=!0,Y||K)F=l;X=!0;break;case"anchor":if(Y)D(l,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(l.source.endsWith(":"))D(l.offset+l.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);Y=l,A??(A=l.offset),J=!1,X=!1,z=!0;break;case"tag":{if(K)D(l,"MULTIPLE_TAGS","A node can have at most one tag");K=l,A??(A=l.offset),J=!1,X=!1,z=!0;break}case U:if(Y||K)D(l,"BAD_PROP_ORDER",`Anchors and tags must be after the ${l.source} indicator`);if(j)D(l,"UNEXPECTED_TOKEN",`Unexpected ${l.source} in ${v??"collection"}`);j=l,J=U==="seq-item-ind"||U==="explicit-key-ind",X=!1;break;case"comma":if(v){if(S)D(l,"UNEXPECTED_TOKEN",`Unexpected , in ${v}`);S=l,J=!1,X=!1;break}default:D(l,"UNEXPECTED_TOKEN",`Unexpected ${l.type} token`),J=!1,X=!1}}let h=$[$.length-1],s=h?h.offset+h.source.length:b;if(z&&I&&I.type!=="space"&&I.type!=="newline"&&I.type!=="comma"&&(I.type!=="scalar"||I.source!==""))D(I.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");if(Q&&(J&&Q.indent<=u||I?.type==="block-map"||I?.type==="block-seq"))D(Q,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:S,found:j,spaceBefore:g,comment:W,hasNewline:O,anchor:Y,tag:K,newlineAfterProp:F,end:s,start:A??s}}PJ$.resolveProps=AJ$});var fW=P((NJ$)=>{function oB($){if(!$)return null;switch($.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if($.source.includes(`
|
|
72
|
+
`))return!0;if($.end){for(let v of $.end)if(v.type==="newline")return!0}return!1;case"flow-collection":for(let v of $.items){for(let U of v.start)if(U.type==="newline")return!0;if(v.sep){for(let U of v.sep)if(U.type==="newline")return!0}if(oB(v.key)||oB(v.value))return!0}return!1;default:return!0}}NJ$.containsNewline=oB});var tB=P((FJ$)=>{var MJ$=fW();function _J$($,v,U){if(v?.type==="flow-collection"){let I=v.end[0];if(I.indent===$&&(I.source==="]"||I.source==="}")&&MJ$.containsNewline(v))U(I,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}FJ$.flowIndentCheck=_J$});var dB=P((kJ$)=>{var Ii=V$();function TJ$($,v,U){let{uniqueKeys:I}=$.options;if(I===!1)return!1;let b=typeof I==="function"?I:(D,u)=>D===u||Ii.isScalar(D)&&Ii.isScalar(u)&&D.value===u.value;return v.some((D)=>b(D.key,U))}kJ$.mapIncludes=TJ$});var Ji=P((iJ$)=>{var Di=Ib(),RJ$=ub(),ui=mD(),nJ$=fW(),wi=tB(),rJ$=dB(),gi="All mapping items must start at the same column";function CJ$({composeNode:$,composeEmptyNode:v},U,I,b,D){let w=new(D?.nodeClass??RJ$.YAMLMap)(U.schema);if(U.atRoot)U.atRoot=!1;let g=I.offset,J=null;for(let X of I.items){let{start:W,key:G,sep:O,value:z}=X,Q=ui.resolveProps(W,{indicator:"explicit-key-ind",next:G??O?.[0],offset:g,onError:b,parentIndent:I.indent,startOnNewline:!0}),Y=!Q.found;if(Y){if(G){if(G.type==="block-seq")b(g,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in G&&G.indent!==I.indent)b(g,"BAD_INDENT",gi)}if(!Q.anchor&&!Q.tag&&!O){if(J=Q.end,Q.comment)if(w.comment)w.comment+=`
|
|
73
|
+
`+Q.comment;else w.comment=Q.comment;continue}if(Q.newlineAfterProp||nJ$.containsNewline(G))b(G??W[W.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else if(Q.found?.indent!==I.indent)b(g,"BAD_INDENT",gi);U.atKey=!0;let K=Q.end,F=G?$(U,G,Q,b):v(U,K,W,null,Q,b);if(U.schema.compat)wi.flowIndentCheck(I.indent,G,b);if(U.atKey=!1,rJ$.mapIncludes(U,w.items,F))b(K,"DUPLICATE_KEY","Map keys must be unique");let S=ui.resolveProps(O??[],{indicator:"map-value-ind",next:z,offset:F.range[2],onError:b,parentIndent:I.indent,startOnNewline:!G||G.type==="block-scalar"});if(g=S.end,S.found){if(Y){if(z?.type==="block-map"&&!S.hasNewline)b(g,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(U.options.strict&&Q.start<S.found.offset-1024)b(F.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let j=z?$(U,z,S,b):v(U,g,O,null,S,b);if(U.schema.compat)wi.flowIndentCheck(I.indent,z,b);g=j.range[2];let A=new Di.Pair(F,j);if(U.options.keepSourceTokens)A.srcToken=X;w.items.push(A)}else{if(Y)b(F.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(S.comment)if(F.comment)F.comment+=`
|
|
74
|
+
`+S.comment;else F.comment=S.comment;let j=new Di.Pair(F);if(U.options.keepSourceTokens)j.srcToken=X;w.items.push(j)}}if(J&&J<g)b(J,"IMPOSSIBLE","Map comment with trailing content");return w.range=[I.offset,g,J??g],w}iJ$.resolveBlockMap=CJ$});var Xi=P((mJ$)=>{var lJ$=wb(),fJ$=mD(),yJ$=tB();function hJ$({composeNode:$,composeEmptyNode:v},U,I,b,D){let w=new(D?.nodeClass??lJ$.YAMLSeq)(U.schema);if(U.atRoot)U.atRoot=!1;if(U.atKey)U.atKey=!1;let g=I.offset,J=null;for(let{start:X,value:W}of I.items){let G=fJ$.resolveProps(X,{indicator:"seq-item-ind",next:W,offset:g,onError:b,parentIndent:I.indent,startOnNewline:!0});if(!G.found)if(G.anchor||G.tag||W)if(W?.type==="block-seq")b(G.end,"BAD_INDENT","All sequence items must start at the same column");else b(g,"MISSING_CHAR","Sequence item without - indicator");else{if(J=G.end,G.comment)w.comment=G.comment;continue}let O=W?$(U,W,G,b):v(U,G.end,X,null,G,b);if(U.schema.compat)yJ$.flowIndentCheck(I.indent,W,b);g=O.range[2],w.items.push(O)}return w.range=[I.offset,g,J??g],w}mJ$.resolveBlockSeq=hJ$});var mI=P((tJ$)=>{function oJ$($,v,U,I){let b="";if($){let D=!1,u="";for(let w of $){let{source:g,type:J}=w;switch(J){case"space":D=!0;break;case"comment":{if(U&&!D)I(w,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let X=g.substring(1)||" ";if(!b)b=X;else b+=u+X;u="";break}case"newline":if(b)u+=g;D=!0;break;default:I(w,"UNEXPECTED_TOKEN",`Unexpected ${J} at node end`)}v+=g.length}}return{comment:b,offset:v}}tJ$.resolveEnd=oJ$});var Oi=P((UX$)=>{var pJ$=V$(),aJ$=Ib(),Wi=ub(),eJ$=wb(),sJ$=mI(),Gi=mD(),$X$=fW(),vX$=dB(),pB="Block collections are not allowed within flow collections",aB=($)=>$&&($.type==="block-map"||$.type==="block-seq");function bX$({composeNode:$,composeEmptyNode:v},U,I,b,D){let u=I.start.source==="{",w=u?"flow map":"flow sequence",J=new(D?.nodeClass??(u?Wi.YAMLMap:eJ$.YAMLSeq))(U.schema);J.flow=!0;let X=U.atRoot;if(X)U.atRoot=!1;if(U.atKey)U.atKey=!1;let W=I.offset+I.start.source.length;for(let Y=0;Y<I.items.length;++Y){let K=I.items[Y],{start:F,key:S,sep:j,value:A}=K,h=Gi.resolveProps(F,{flow:w,indicator:"explicit-key-ind",next:S??j?.[0],offset:W,onError:b,parentIndent:I.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!j&&!A){if(Y===0&&h.comma)b(h.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${w}`);else if(Y<I.items.length-1)b(h.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${w}`);if(h.comment)if(J.comment)J.comment+=`
|
|
75
|
+
`+h.comment;else J.comment=h.comment;W=h.end;continue}if(!u&&U.options.strict&&$X$.containsNewline(S))b(S,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(Y===0){if(h.comma)b(h.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${w}`)}else{if(!h.comma)b(h.start,"MISSING_CHAR",`Missing , between ${w} items`);if(h.comment){let s="";$:for(let l of F)switch(l.type){case"comma":case"space":break;case"comment":s=l.source.substring(1);break $;default:break $}if(s){let l=J.items[J.items.length-1];if(pJ$.isPair(l))l=l.value??l.key;if(l.comment)l.comment+=`
|
|
76
76
|
`+s;else l.comment=s;h.comment=h.comment.substring(s.length+1)}}}if(!u&&!j&&!h.found){let s=A?$(U,A,h,b):v(U,h.end,j,null,h,b);if(J.items.push(s),W=s.range[2],aB(A))b(s.range,"BLOCK_IN_FLOW",pB)}else{U.atKey=!0;let s=h.end,l=S?$(U,S,h,b):v(U,s,F,null,h,b);if(aB(S))b(l.range,"BLOCK_IN_FLOW",pB);U.atKey=!1;let W$=Gi.resolveProps(j??[],{flow:w,indicator:"map-value-ind",next:A,offset:l.range[2],onError:b,parentIndent:I.indent,startOnNewline:!1});if(W$.found){if(!u&&!h.found&&U.options.strict){if(j)for(let E$ of j){if(E$===W$.found)break;if(E$.type==="newline"){b(E$,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(h.start<W$.found.offset-1024)b(W$.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(A)if("source"in A&&A.source?.[0]===":")b(A,"MISSING_CHAR",`Missing space after : in ${w}`);else b(W$.start,"MISSING_CHAR",`Missing , or : between ${w} items`);let X$=A?$(U,A,W$,b):W$.found?v(U,W$.end,j,null,W$,b):null;if(X$){if(aB(A))b(X$.range,"BLOCK_IN_FLOW",pB)}else if(W$.comment)if(l.comment)l.comment+=`
|
|
77
|
-
`+W$.comment;else l.comment=W$.comment;let m$=new
|
|
78
|
-
`+Y.comment;else J.comment=Y.comment;J.range=[I.offset,Q,Y.offset]}else J.range=[I.offset,Q,Q];return J}
|
|
77
|
+
`+W$.comment;else l.comment=W$.comment;let m$=new aJ$.Pair(l,X$);if(U.options.keepSourceTokens)m$.srcToken=K;if(u){let E$=J;if(vX$.mapIncludes(U,E$.items,l))b(s,"DUPLICATE_KEY","Map keys must be unique");E$.items.push(m$)}else{let E$=new Wi.YAMLMap(U.schema);E$.flow=!0,E$.items.push(m$);let P4=(X$??l).range;E$.range=[l.range[0],P4[1],P4[2]],J.items.push(E$)}W=X$?X$.range[2]:W$.end}}let G=u?"}":"]",[O,...z]=I.end,Q=W;if(O?.source===G)Q=O.offset+O.source.length;else{let Y=w[0].toUpperCase()+w.substring(1),K=X?`${Y} must end with a ${G}`:`${Y} in block collection must be sufficiently indented and end with a ${G}`;if(b(W,X?"MISSING_CHAR":"BAD_INDENT",K),O&&O.source.length!==1)z.unshift(O)}if(z.length>0){let Y=sJ$.resolveEnd(z,Q,U.options.strict,b);if(Y.comment)if(J.comment)J.comment+=`
|
|
78
|
+
`+Y.comment;else J.comment=Y.comment;J.range=[I.offset,Q,Y.offset]}else J.range=[I.offset,Q,Q];return J}UX$.resolveFlowCollection=bX$});var Hi=P((OX$)=>{var DX$=V$(),uX$=s$(),wX$=ub(),gX$=wb(),JX$=Ji(),XX$=Xi(),WX$=Oi();function eB($,v,U,I,b,D){let u=U.type==="block-map"?JX$.resolveBlockMap($,v,U,I,D):U.type==="block-seq"?XX$.resolveBlockSeq($,v,U,I,D):WX$.resolveFlowCollection($,v,U,I,D),w=u.constructor;if(b==="!"||b===w.tagName)return u.tag=w.tagName,u;if(b)u.tag=b;return u}function GX$($,v,U,I,b){let D=I.tag,u=!D?null:v.directives.tagName(D.source,(G)=>b(D,"TAG_RESOLVE_FAILED",G));if(U.type==="block-seq"){let{anchor:G,newlineAfterProp:O}=I,z=G&&D?G.offset>D.offset?G:D:G??D;if(z&&(!O||O.offset<z.offset))b(z,"MISSING_CHAR","Missing newline after block sequence props")}let w=U.type==="block-map"?"map":U.type==="block-seq"?"seq":U.start.source==="{"?"map":"seq";if(!D||!u||u==="!"||u===wX$.YAMLMap.tagName&&w==="map"||u===gX$.YAMLSeq.tagName&&w==="seq")return eB($,v,U,b,u);let g=v.schema.tags.find((G)=>G.tag===u&&G.collection===w);if(!g){let G=v.schema.knownTags[u];if(G?.collection===w)v.schema.tags.push(Object.assign({},G,{default:!1})),g=G;else{if(G)b(D,"BAD_COLLECTION_TYPE",`${G.tag} used for ${w} collection, but expects ${G.collection??"scalar"}`,!0);else b(D,"TAG_RESOLVE_FAILED",`Unresolved tag: ${u}`,!0);return eB($,v,U,b,u)}}let J=eB($,v,U,b,u,g),X=g.resolve?.(J,(G)=>b(D,"TAG_RESOLVE_FAILED",G),v.options)??J,W=DX$.isNode(X)?X:new uX$.Scalar(X);if(W.range=J.range,W.tag=u,g?.format)W.format=g.format;return W}OX$.composeCollection=GX$});var $A=P((VX$)=>{var sB=s$();function zX$($,v,U){let I=v.offset,b=QX$(v,$.options.strict,U);if(!b)return{value:"",type:null,comment:"",range:[I,I,I]};let D=b.mode===">"?sB.Scalar.BLOCK_FOLDED:sB.Scalar.BLOCK_LITERAL,u=v.source?YX$(v.source):[],w=u.length;for(let Q=u.length-1;Q>=0;--Q){let Y=u[Q][1];if(Y===""||Y==="\r")w=Q;else break}if(w===0){let Q=b.chomp==="+"&&u.length>0?`
|
|
79
79
|
`.repeat(Math.max(1,u.length-1)):"",Y=I+b.length;if(v.source)Y+=v.source.length;return{value:Q,type:D,comment:b.comment,range:[I,Y,Y]}}let g=v.indent+b.indent,J=v.offset+b.length,X=0;for(let Q=0;Q<w;++Q){let[Y,K]=u[Q];if(K===""||K==="\r"){if(b.indent===0&&Y.length>g)g=Y.length}else{if(Y.length<g)U(J+Y.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(b.indent===0)g=Y.length;if(X=Q,g===0&&!$.atRoot)U(J,"BAD_INDENT","Block scalar values in collections must be indented");break}J+=Y.length+K.length+1}for(let Q=u.length-1;Q>=w;--Q)if(u[Q][0].length>g)w=Q+1;let W="",G="",O=!1;for(let Q=0;Q<X;++Q)W+=u[Q][0].slice(g)+`
|
|
80
80
|
`;for(let Q=X;Q<w;++Q){let[Y,K]=u[Q];J+=Y.length+K.length+1;let F=K[K.length-1]==="\r";if(F)K=K.slice(0,-1);if(K&&Y.length<g){let j=`Block scalar lines must not be less indented than their ${b.indent?"explicit indentation indicator":"first line"}`;U(J-K.length-(F?2:1),"BAD_INDENT",j),Y=""}if(D===sB.Scalar.BLOCK_LITERAL)W+=G+Y.slice(g)+K,G=`
|
|
81
81
|
`;else if(Y.length>g||K[0]==="\t"){if(G===" ")G=`
|
|
@@ -90,41 +90,41 @@ ${J}
|
|
|
90
90
|
`+u[Q][0].slice(g);if(W[W.length-1]!==`
|
|
91
91
|
`)W+=`
|
|
92
92
|
`;break;default:W+=`
|
|
93
|
-
`}let z=I+b.length+v.source.length;return{value:W,type:D,comment:b.comment,range:[I,z,z]}}function
|
|
93
|
+
`}let z=I+b.length+v.source.length;return{value:W,type:D,comment:b.comment,range:[I,z,z]}}function QX$({offset:$,props:v},U,I){if(v[0].type!=="block-scalar-header")return I(v[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:b}=v[0],D=b[0],u=0,w="",g=-1;for(let G=1;G<b.length;++G){let O=b[G];if(!w&&(O==="-"||O==="+"))w=O;else{let z=Number(O);if(!u&&z)u=z;else if(g===-1)g=$+G}}if(g!==-1)I(g,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${b}`);let J=!1,X="",W=b.length;for(let G=1;G<v.length;++G){let O=v[G];switch(O.type){case"space":J=!0;case"newline":W+=O.source.length;break;case"comment":if(U&&!J)I(O,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");W+=O.source.length,X=O.source.substring(1);break;case"error":I(O,"UNEXPECTED_TOKEN",O.message),W+=O.source.length;break;default:{let z=`Unexpected token in block scalar header: ${O.type}`;I(O,"UNEXPECTED_TOKEN",z);let Q=O.source;if(Q&&typeof Q==="string")W+=Q.length}}}return{mode:D,indent:u,chomp:w,comment:X,length:W}}function YX$($){let v=$.split(/\n( *)/),U=v[0],I=U.match(/^( *)/),D=[I?.[1]?[I[1],U.slice(I[1].length)]:["",U]];for(let u=1;u<v.length;u+=2)D.push([v[u],v[u+1]]);return D}VX$.resolveBlockScalar=zX$});var bA=P((MX$)=>{var vA=s$(),KX$=mI();function qX$($,v,U){let{offset:I,type:b,source:D,end:u}=$,w,g,J=(G,O,z)=>U(I+G,O,z);switch(b){case"scalar":w=vA.Scalar.PLAIN,g=BX$(D,J);break;case"single-quoted-scalar":w=vA.Scalar.QUOTE_SINGLE,g=AX$(D,J);break;case"double-quoted-scalar":w=vA.Scalar.QUOTE_DOUBLE,g=PX$(D,J);break;default:return U($,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${b}`),{value:"",type:null,comment:"",range:[I,I+D.length,I+D.length]}}let X=I+D.length,W=KX$.resolveEnd(u,X,v,U);return{value:g,type:w,comment:W.comment,range:[I,X,W.offset]}}function BX$($,v){let U="";switch($[0]){case"\t":U="a tab character";break;case",":U="flow indicator character ,";break;case"%":U="directive indicator character %";break;case"|":case">":{U=`block scalar indicator ${$[0]}`;break}case"@":case"`":{U=`reserved character ${$[0]}`;break}}if(U)v(0,"BAD_SCALAR_START",`Plain value cannot start with ${U}`);return zi($)}function AX$($,v){if($[$.length-1]!=="'"||$.length===1)v($.length,"MISSING_CHAR","Missing closing 'quote");return zi($.slice(1,-1)).replace(/''/g,"'")}function zi($){let v,U;try{v=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
94
94
|
`,"sy"),U=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
95
95
|
`,"sy")}catch{v=/(.*?)[ \t]*\r?\n/sy,U=/[ \t]*(.*?)[ \t]*\r?\n/sy}let I=v.exec($);if(!I)return $;let b=I[1],D=" ",u=v.lastIndex;U.lastIndex=u;while(I=U.exec($)){if(I[1]==="")if(D===`
|
|
96
96
|
`)b+=D;else D=`
|
|
97
|
-
`;else b+=D+I[1],D=" ";u=U.lastIndex}let w=/[ \t]*(.*)/sy;return w.lastIndex=u,I=w.exec($),b+D+(I?.[1]??"")}function
|
|
97
|
+
`;else b+=D+I[1],D=" ";u=U.lastIndex}let w=/[ \t]*(.*)/sy;return w.lastIndex=u,I=w.exec($),b+D+(I?.[1]??"")}function PX$($,v){let U="";for(let I=1;I<$.length-1;++I){let b=$[I];if(b==="\r"&&$[I+1]===`
|
|
98
98
|
`)continue;if(b===`
|
|
99
|
-
`){let{fold:D,offset:u}=
|
|
99
|
+
`){let{fold:D,offset:u}=jX$($,I);U+=D,I=u}else if(b==="\\"){let D=$[++I],u=NX$[D];if(u)U+=u;else if(D===`
|
|
100
100
|
`){D=$[I+1];while(D===" "||D==="\t")D=$[++I+1]}else if(D==="\r"&&$[I+1]===`
|
|
101
|
-
`){D=$[++I+1];while(D===" "||D==="\t")D=$[++I+1]}else if(D==="x"||D==="u"||D==="U"){let w=D==="x"?2:D==="u"?4:8;U+=
|
|
101
|
+
`){D=$[++I+1];while(D===" "||D==="\t")D=$[++I+1]}else if(D==="x"||D==="u"||D==="U"){let w=D==="x"?2:D==="u"?4:8;U+=SX$($,I+1,w,v),I+=w}else{let w=$.substr(I-1,2);v(I-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${w}`),U+=w}}else if(b===" "||b==="\t"){let D=I,u=$[I+1];while(u===" "||u==="\t")u=$[++I+1];if(u!==`
|
|
102
102
|
`&&!(u==="\r"&&$[I+2]===`
|
|
103
|
-
`))U+=I>D?$.slice(D,I+1):b}else U+=b}if($[$.length-1]!=='"'||$.length===1)v($.length,"MISSING_CHAR",'Missing closing "quote');return U}function
|
|
103
|
+
`))U+=I>D?$.slice(D,I+1):b}else U+=b}if($[$.length-1]!=='"'||$.length===1)v($.length,"MISSING_CHAR",'Missing closing "quote');return U}function jX$($,v){let U="",I=$[v+1];while(I===" "||I==="\t"||I===`
|
|
104
104
|
`||I==="\r"){if(I==="\r"&&$[v+2]!==`
|
|
105
105
|
`)break;if(I===`
|
|
106
106
|
`)U+=`
|
|
107
|
-
`;v+=1,I=$[v+1]}if(!U)U=" ";return{fold:U,offset:v}}var
|
|
108
|
-
`,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function
|
|
107
|
+
`;v+=1,I=$[v+1]}if(!U)U=" ";return{fold:U,offset:v}}var NX$={"0":"\x00",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
108
|
+
`,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function SX$($,v,U,I){let b=$.substr(v,U),u=b.length===U&&/^[0-9a-fA-F]+$/.test(b)?parseInt(b,16):NaN;try{return String.fromCodePoint(u)}catch{let w=$.substr(v-2,U+2);return I(v-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${w}`),w}}MX$.resolveFlowScalar=qX$});var Yi=P((RX$)=>{var sb=V$(),Qi=s$(),FX$=$A(),ZX$=bA();function TX$($,v,U,I){let{value:b,type:D,comment:u,range:w}=v.type==="block-scalar"?FX$.resolveBlockScalar($,v,I):ZX$.resolveFlowScalar(v,$.options.strict,I),g=U?$.directives.tagName(U.source,(W)=>I(U,"TAG_RESOLVE_FAILED",W)):null,J;if($.options.stringKeys&&$.atKey)J=$.schema[sb.SCALAR];else if(g)J=kX$($.schema,b,g,U,I);else if(v.type==="scalar")J=EX$($,b,v,I);else J=$.schema[sb.SCALAR];let X;try{let W=J.resolve(b,(G)=>I(U??v,"TAG_RESOLVE_FAILED",G),$.options);X=sb.isScalar(W)?W:new Qi.Scalar(W)}catch(W){let G=W instanceof Error?W.message:String(W);I(U??v,"TAG_RESOLVE_FAILED",G),X=new Qi.Scalar(b)}if(X.range=w,X.source=b,D)X.type=D;if(g)X.tag=g;if(J.format)X.format=J.format;if(u)X.comment=u;return X}function kX$($,v,U,I,b){if(U==="!")return $[sb.SCALAR];let D=[];for(let w of $.tags)if(!w.collection&&w.tag===U)if(w.default&&w.test)D.push(w);else return w;for(let w of D)if(w.test?.test(v))return w;let u=$.knownTags[U];if(u&&!u.collection)return $.tags.push(Object.assign({},u,{default:!1,test:void 0})),u;return b(I,"TAG_RESOLVE_FAILED",`Unresolved tag: ${U}`,U!=="tag:yaml.org,2002:str"),$[sb.SCALAR]}function EX$({atKey:$,directives:v,schema:U},I,b,D){let u=U.tags.find((w)=>(w.default===!0||$&&w.default==="key")&&w.test?.test(I))||U[sb.SCALAR];if(U.compat){let w=U.compat.find((g)=>g.default&&g.test?.test(I))??U[sb.SCALAR];if(u.tag!==w.tag){let g=v.tagString(u.tag),J=v.tagString(w.tag),X=`Value may be parsed as either ${g} or ${J}`;D(b,"TAG_RESOLVE_FAILED",X,!0)}}return u}RX$.composeScalar=TX$});var Vi=P((CX$)=>{function rX$($,v,U){if(v){U??(U=v.length);for(let I=U-1;I>=0;--I){let b=v[I];switch(b.type){case"space":case"comment":case"newline":$-=b.source.length;continue}b=v[++I];while(b?.type==="space")$+=b.source.length,b=v[++I];break}}return $}CX$.emptyScalarPosition=rX$});var qi=P((oX$)=>{var xX$=_D(),lX$=V$(),fX$=Hi(),Li=Yi(),yX$=mI(),hX$=Vi(),mX$={composeNode:Ki,composeEmptyNode:UA};function Ki($,v,U,I){let b=$.atKey,{spaceBefore:D,comment:u,anchor:w,tag:g}=U,J,X=!0;switch(v.type){case"alias":if(J=cX$($,v,I),w||g)I(v,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":if(J=Li.composeScalar($,v,g,I),w)J.anchor=w.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(J=fX$.composeCollection(mX$,$,v,U,I),w)J.anchor=w.source.substring(1)}catch(W){let G=W instanceof Error?W.message:String(W);I(v,"RESOURCE_EXHAUSTION",G)}break;default:{let W=v.type==="error"?v.message:`Unsupported token (type: ${v.type})`;I(v,"UNEXPECTED_TOKEN",W),X=!1}}if(J??(J=UA($,v.offset,void 0,null,U,I)),w&&J.anchor==="")I(w,"BAD_ALIAS","Anchor cannot be an empty string");if(b&&$.options.stringKeys&&(!lX$.isScalar(J)||typeof J.value!=="string"||J.tag&&J.tag!=="tag:yaml.org,2002:str"))I(g??v,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(D)J.spaceBefore=!0;if(u)if(v.type==="scalar"&&v.source==="")J.comment=u;else J.commentBefore=u;if($.options.keepSourceTokens&&X)J.srcToken=v;return J}function UA($,v,U,I,{spaceBefore:b,comment:D,anchor:u,tag:w,end:g},J){let X={type:"scalar",offset:hX$.emptyScalarPosition(v,U,I),indent:-1,source:""},W=Li.composeScalar($,X,w,J);if(u){if(W.anchor=u.source.substring(1),W.anchor==="")J(u,"BAD_ALIAS","Anchor cannot be an empty string")}if(b)W.spaceBefore=!0;if(D)W.comment=D,W.range[2]=g;return W}function cX$({options:$},{offset:v,source:U,end:I},b){let D=new xX$.Alias(U.substring(1));if(D.source==="")b(v,"BAD_ALIAS","Alias cannot be an empty string");if(D.source.endsWith(":"))b(v+U.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let u=v+U.length,w=yX$.resolveEnd(I,u,$.strict,b);if(D.range=[v,u,w.offset],w.comment)D.comment=w.comment;return D}oX$.composeEmptyNode=UA;oX$.composeNode=Ki});var Ai=P(($W$)=>{var pX$=yD(),Bi=qi(),aX$=mI(),eX$=mD();function sX$($,v,{offset:U,start:I,value:b,end:D},u){let w=Object.assign({_directives:v},$),g=new pX$.Document(void 0,w),J={atKey:!1,atRoot:!0,directives:g.directives,options:g.options,schema:g.schema},X=eX$.resolveProps(I,{indicator:"doc-start",next:b??D?.[0],offset:U,onError:u,parentIndent:0,startOnNewline:!0});if(X.found){if(g.directives.docStart=!0,b&&(b.type==="block-map"||b.type==="block-seq")&&!X.hasNewline)u(X.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}g.contents=b?Bi.composeNode(J,b,X,u):Bi.composeEmptyNode(J,X.end,I,null,X,u);let W=g.contents.range[2],G=aX$.resolveEnd(D,W,!1,u);if(G.comment)g.comment=G.comment;return g.range=[U,W,G.offset],g}$W$.composeDoc=sX$});var IA=P((wW$)=>{var bW$=Wu("process"),UW$=gB(),IW$=yD(),cD=hD(),Pi=V$(),DW$=Ai(),uW$=mI();function oD($){if(typeof $==="number")return[$,$+1];if(Array.isArray($))return $.length===2?$:[$[0],$[1]];let{offset:v,source:U}=$;return[v,v+(typeof U==="string"?U.length:1)]}function ji($){let v="",U=!1,I=!1;for(let b=0;b<$.length;++b){let D=$[b];switch(D[0]){case"#":v+=(v===""?"":I?`
|
|
109
109
|
|
|
110
110
|
`:`
|
|
111
|
-
`)+(D.substring(1)||" "),U=!0,I=!1;break;case"%":if($[b+1]?.[0]!=="#")b+=1;U=!1;break;default:if(!U)I=!0;U=!1}}return{comment:v,afterEmptyLine:I}}class Ni{constructor($={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(v,U,I,b)=>{let D=oD(v);if(b)this.warnings.push(new cD.YAMLWarning(D,U,I));else this.errors.push(new cD.YAMLParseError(D,U,I))},this.directives=new
|
|
111
|
+
`)+(D.substring(1)||" "),U=!0,I=!1;break;case"%":if($[b+1]?.[0]!=="#")b+=1;U=!1;break;default:if(!U)I=!0;U=!1}}return{comment:v,afterEmptyLine:I}}class Ni{constructor($={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(v,U,I,b)=>{let D=oD(v);if(b)this.warnings.push(new cD.YAMLWarning(D,U,I));else this.errors.push(new cD.YAMLParseError(D,U,I))},this.directives=new UW$.Directives({version:$.version||"1.2"}),this.options=$}decorate($,v){let{comment:U,afterEmptyLine:I}=ji(this.prelude);if(U){let b=$.contents;if(v)$.comment=$.comment?`${$.comment}
|
|
112
112
|
${U}`:U;else if(I||$.directives.docStart||!b)$.commentBefore=U;else if(Pi.isCollection(b)&&!b.flow&&b.items.length>0){let D=b.items[0];if(Pi.isPair(D))D=D.key;let u=D.commentBefore;D.commentBefore=u?`${U}
|
|
113
113
|
${u}`:U}else{let D=b.commentBefore;b.commentBefore=D?`${U}
|
|
114
|
-
${D}`:U}}if(v){for(let b=0;b<this.errors.length;++b)$.errors.push(this.errors[b]);for(let b=0;b<this.warnings.length;++b)$.warnings.push(this.warnings[b])}else $.errors=this.errors,$.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:ji(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose($,v=!1,U=-1){for(let I of $)yield*this.next(I);yield*this.end(v,U)}*next($){if(
|
|
115
|
-
${v.comment}`:v.comment}this.doc.range[2]=v.offset;break}default:this.errors.push(new cD.YAMLParseError(oD($),"UNEXPECTED_TOKEN",`Unsupported token ${$.type}`))}}*end($=!1,v=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if($){let U=Object.assign({_directives:this.directives},this.options),I=new
|
|
114
|
+
${D}`:U}}if(v){for(let b=0;b<this.errors.length;++b)$.errors.push(this.errors[b]);for(let b=0;b<this.warnings.length;++b)$.warnings.push(this.warnings[b])}else $.errors=this.errors,$.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:ji(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose($,v=!1,U=-1){for(let I of $)yield*this.next(I);yield*this.end(v,U)}*next($){if(bW$.env.LOG_STREAM)console.dir($,{depth:null});switch($.type){case"directive":this.directives.add($.source,(v,U,I)=>{let b=oD($);b[0]+=v,this.onError(b,"BAD_DIRECTIVE",U,I)}),this.prelude.push($.source),this.atDirectives=!0;break;case"document":{let v=DW$.composeDoc(this.options,this.directives,$,this.onError);if(this.atDirectives&&!v.directives.docStart)this.onError($,"MISSING_CHAR","Missing directives-end/doc-start indicator line");if(this.decorate(v,!1),this.doc)yield this.doc;this.doc=v,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push($.source);break;case"error":{let v=$.source?`${$.message}: ${JSON.stringify($.source)}`:$.message,U=new cD.YAMLParseError(oD($),"UNEXPECTED_TOKEN",v);if(this.atDirectives||!this.doc)this.errors.push(U);else this.doc.errors.push(U);break}case"doc-end":{if(!this.doc){this.errors.push(new cD.YAMLParseError(oD($),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let v=uW$.resolveEnd($.end,$.offset+$.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),v.comment){let U=this.doc.comment;this.doc.comment=U?`${U}
|
|
115
|
+
${v.comment}`:v.comment}this.doc.range[2]=v.offset;break}default:this.errors.push(new cD.YAMLParseError(oD($),"UNEXPECTED_TOKEN",`Unsupported token ${$.type}`))}}*end($=!1,v=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if($){let U=Object.assign({_directives:this.directives},this.options),I=new IW$.Document(void 0,U);if(this.atDirectives)this.onError(v,"MISSING_CHAR","Missing directives-end indicator line");I.range=[0,v,v],this.decorate(I,!1),yield I}}}wW$.Composer=Ni});var _i=P((QW$)=>{var JW$=$A(),XW$=bA(),WW$=hD(),Si=kD();function GW$($,v=!0,U){if($){let I=(b,D,u)=>{let w=typeof b==="number"?b:Array.isArray(b)?b[0]:b.offset;if(U)U(w,D,u);else throw new WW$.YAMLParseError([w,w+1],D,u)};switch($.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return XW$.resolveFlowScalar($,v,I);case"block-scalar":return JW$.resolveBlockScalar({options:{strict:v}},$,I)}}return null}function OW$($,v){let{implicitKey:U=!1,indent:I,inFlow:b=!1,offset:D=-1,type:u="PLAIN"}=v,w=Si.stringifyString({type:u,value:$},{implicitKey:U,indent:I>0?" ".repeat(I):"",inFlow:b,options:{blockQuote:!0,lineWidth:-1}}),g=v.end??[{type:"newline",offset:-1,indent:I,source:`
|
|
116
116
|
`}];switch(w[0]){case"|":case">":{let J=w.indexOf(`
|
|
117
117
|
`),X=w.substring(0,J),W=w.substring(J+1)+`
|
|
118
118
|
`,G=[{type:"block-scalar-header",offset:D,indent:I,source:X}];if(!Mi(G,g))G.push({type:"newline",offset:-1,indent:I,source:`
|
|
119
|
-
`});return{type:"block-scalar",offset:D,indent:I,props:G,source:W}}case'"':return{type:"double-quoted-scalar",offset:D,indent:I,source:w,end:g};case"'":return{type:"single-quoted-scalar",offset:D,indent:I,source:w,end:g};default:return{type:"scalar",offset:D,indent:I,source:w,end:g}}}function
|
|
119
|
+
`});return{type:"block-scalar",offset:D,indent:I,props:G,source:W}}case'"':return{type:"double-quoted-scalar",offset:D,indent:I,source:w,end:g};case"'":return{type:"single-quoted-scalar",offset:D,indent:I,source:w,end:g};default:return{type:"scalar",offset:D,indent:I,source:w,end:g}}}function HW$($,v,U={}){let{afterKey:I=!1,implicitKey:b=!1,inFlow:D=!1,type:u}=U,w="indent"in $?$.indent:null;if(I&&typeof w==="number")w+=2;if(!u)switch($.type){case"single-quoted-scalar":u="QUOTE_SINGLE";break;case"double-quoted-scalar":u="QUOTE_DOUBLE";break;case"block-scalar":{let J=$.props[0];if(J.type!=="block-scalar-header")throw Error("Invalid block scalar header");u=J.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:u="PLAIN"}let g=Si.stringifyString({type:u,value:v},{implicitKey:b||w===null,indent:w!==null&&w>0?" ".repeat(w):"",inFlow:D,options:{blockQuote:!0,lineWidth:-1}});switch(g[0]){case"|":case">":zW$($,g);break;case'"':DA($,g,"double-quoted-scalar");break;case"'":DA($,g,"single-quoted-scalar");break;default:DA($,g,"scalar")}}function zW$($,v){let U=v.indexOf(`
|
|
120
120
|
`),I=v.substring(0,U),b=v.substring(U+1)+`
|
|
121
121
|
`;if($.type==="block-scalar"){let D=$.props[0];if(D.type!=="block-scalar-header")throw Error("Invalid block scalar header");D.source=I,$.source=b}else{let{offset:D}=$,u="indent"in $?$.indent:-1,w=[{type:"block-scalar-header",offset:D,indent:u,source:I}];if(!Mi(w,"end"in $?$.end:void 0))w.push({type:"newline",offset:-1,indent:u,source:`
|
|
122
122
|
`});for(let g of Object.keys($))if(g!=="type"&&g!=="offset")delete $[g];Object.assign($,{type:"block-scalar",indent:u,props:w,source:b})}}function Mi($,v){if(v)for(let U of v)switch(U.type){case"space":case"comment":$.push(U);break;case"newline":return $.push(U),!0}return!1}function DA($,v,U){switch($.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":$.type=U,$.source=v;break;case"block-scalar":{let I=$.props.slice(1),b=v.length;if($.props[0].type==="block-scalar-header")b-=$.props[0].source.length;for(let D of I)D.offset+=b;delete $.props,Object.assign($,{type:U,source:v,end:I});break}case"block-map":case"block-seq":{let b={type:"newline",offset:$.offset+v.length,indent:$.indent,source:`
|
|
123
|
-
`};delete $.items,Object.assign($,{type:U,source:v,end:[b]});break}default:{let I="indent"in $?$.indent:-1,b="end"in $&&Array.isArray($.end)?$.end.filter((D)=>D.type==="space"||D.type==="comment"||D.type==="newline"):[];for(let D of Object.keys($))if(D!=="type"&&D!=="offset")delete $[D];Object.assign($,{type:U,indent:I,source:v,end:b})}}}
|
|
123
|
+
`};delete $.items,Object.assign($,{type:U,source:v,end:[b]});break}default:{let I="indent"in $?$.indent:-1,b="end"in $&&Array.isArray($.end)?$.end.filter((D)=>D.type==="space"||D.type==="comment"||D.type==="newline"):[];for(let D of Object.keys($))if(D!=="type"&&D!=="offset")delete $[D];Object.assign($,{type:U,indent:I,source:v,end:b})}}}QW$.createScalarToken=OW$;QW$.resolveAsScalar=GW$;QW$.setScalarValue=HW$});var Fi=P((qW$)=>{var KW$=($)=>("type"in $)?hW($):yW($);function hW($){switch($.type){case"block-scalar":{let v="";for(let U of $.props)v+=hW(U);return v+$.source}case"block-map":case"block-seq":{let v="";for(let U of $.items)v+=yW(U);return v}case"flow-collection":{let v=$.start.source;for(let U of $.items)v+=yW(U);for(let U of $.end)v+=U.source;return v}case"document":{let v=yW($);if($.end)for(let U of $.end)v+=U.source;return v}default:{let v=$.source;if("end"in $&&$.end)for(let U of $.end)v+=U.source;return v}}}function yW({start:$,key:v,sep:U,value:I}){let b="";for(let D of $)b+=D.source;if(v)b+=hW(v);if(U)for(let D of U)b+=D.source;if(I)b+=hW(I);return b}qW$.stringify=KW$});var ki=P((PW$)=>{var uA=Symbol("break visit"),AW$=Symbol("skip children"),Zi=Symbol("remove item");function $U($,v){if("type"in $&&$.type==="document")$={start:$.start,value:$.value};Ti(Object.freeze([]),$,v)}$U.BREAK=uA;$U.SKIP=AW$;$U.REMOVE=Zi;$U.itemAtPath=($,v)=>{let U=$;for(let[I,b]of v){let D=U?.[I];if(D&&"items"in D)U=D.items[b];else return}return U};$U.parentCollection=($,v)=>{let U=$U.itemAtPath($,v.slice(0,-1)),I=v[v.length-1][0],b=U?.[I];if(b&&"items"in b)return b;throw Error("Parent collection not found")};function Ti($,v,U){let I=U(v,$);if(typeof I==="symbol")return I;for(let b of["key","value"]){let D=v[b];if(D&&"items"in D){for(let u=0;u<D.items.length;++u){let w=Ti(Object.freeze($.concat([[b,u]])),D.items[u],U);if(typeof w==="number")u=w-1;else if(w===uA)return uA;else if(w===Zi)D.items.splice(u,1),u-=1}if(typeof I==="function"&&b==="key")I=I(v,$)}}return typeof I==="function"?I(v,$):I}PW$.visit=$U});var mW=P((TW$)=>{var wA=_i(),NW$=Fi(),SW$=ki(),gA="\uFEFF",JA="\x02",XA="\x18",WA="\x1F",MW$=($)=>!!$&&("items"in $),_W$=($)=>!!$&&($.type==="scalar"||$.type==="single-quoted-scalar"||$.type==="double-quoted-scalar"||$.type==="block-scalar");function FW$($){switch($){case gA:return"<BOM>";case JA:return"<DOC>";case XA:return"<FLOW_END>";case WA:return"<SCALAR>";default:return JSON.stringify($)}}function ZW$($){switch($){case gA:return"byte-order-mark";case JA:return"doc-mode";case XA:return"flow-error-end";case WA:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
124
124
|
`:case`\r
|
|
125
|
-
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch($[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}
|
|
126
|
-
`:case"\r":case"\t":return!0;default:return!1}}var Ei=new Set("0123456789ABCDEFabcdef"),
|
|
127
|
-
\r `),GA=($)=>!$||
|
|
125
|
+
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch($[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}TW$.createScalarToken=wA.createScalarToken;TW$.resolveAsScalar=wA.resolveAsScalar;TW$.setScalarValue=wA.setScalarValue;TW$.stringify=NW$.stringify;TW$.visit=SW$.visit;TW$.BOM=gA;TW$.DOCUMENT=JA;TW$.FLOW_END=XA;TW$.SCALAR=WA;TW$.isCollection=MW$;TW$.isScalar=_W$;TW$.prettyToken=FW$;TW$.tokenType=ZW$});var OA=P((tW$)=>{var tD=mW();function K4($){switch($){case void 0:case" ":case`
|
|
126
|
+
`:case"\r":case"\t":return!0;default:return!1}}var Ei=new Set("0123456789ABCDEFabcdef"),cW$=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),cW=new Set(",[]{}"),oW$=new Set(` ,[]{}
|
|
127
|
+
\r `),GA=($)=>!$||oW$.has($);class Ri{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex($,v=!1){if($){if(typeof $!=="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+$:$,this.lineEndPos=null}this.atEnd=!v;let U=this.next??"stream";while(U&&(v||this.hasChars(1)))U=yield*this.parseNext(U)}atLineEnd(){let $=this.pos,v=this.buffer[$];while(v===" "||v==="\t")v=this.buffer[++$];if(!v||v==="#"||v===`
|
|
128
128
|
`)return!0;if(v==="\r")return this.buffer[$+1]===`
|
|
129
129
|
`;return!1}charAt($){return this.buffer[this.pos+$]}continueScalar($){let v=this.buffer[$];if(this.indentNext>0){let U=0;while(v===" ")v=this.buffer[++U+$];if(v==="\r"){let I=this.buffer[U+$+1];if(I===`
|
|
130
130
|
`||!I&&!this.atEnd)return $+U+1}return v===`
|
|
@@ -139,13 +139,13 @@ ${v.comment}`:v.comment}this.doc.range[2]=v.offset;break}default:this.errors.pus
|
|
|
139
139
|
`&&b>=this.pos&&b+1+v>u)$=b;else break}while(!0);return yield tD.SCALAR,yield*this.pushToIndex($+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let $=this.flowLevel>0,v=this.pos-1,U=this.pos-1,I;while(I=this.buffer[++U])if(I===":"){let b=this.buffer[U+1];if(K4(b)||$&&cW.has(b))break;v=U}else if(K4(I)){let b=this.buffer[U+1];if(I==="\r")if(b===`
|
|
140
140
|
`)U+=1,I=`
|
|
141
141
|
`,b=this.buffer[U+1];else v=U;if(b==="#"||$&&cW.has(b))break;if(I===`
|
|
142
|
-
`){let D=this.continueScalar(U+1);if(D===-1)break;U=Math.max(U,D-2)}}else{if($&&cW.has(I))break;v=U}if(!I&&!this.atEnd)return this.setNext("plain-scalar");return yield tD.SCALAR,yield*this.pushToIndex(v+1,!0),$?"flow":"doc"}*pushCount($){if($>0)return yield this.buffer.substr(this.pos,$),this.pos+=$,$;return 0}*pushToIndex($,v){let U=this.buffer.slice(this.pos,$);if(U)return yield U,this.pos+=U.length,U.length;else if(v)yield"";return 0}*pushIndicators(){let $=0;$:while(!0){switch(this.charAt(0)){case"!":$+=yield*this.pushTag(),$+=yield*this.pushSpaces(!0);continue $;case"&":$+=yield*this.pushUntil(GA),$+=yield*this.pushSpaces(!0);continue $;case"-":case"?":case":":{let v=this.flowLevel>0,U=this.charAt(1);if(K4(U)||v&&cW.has(U)){if(!v)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=!1;$+=yield*this.pushCount(1),$+=yield*this.pushSpaces(!0);continue $}}}break $}return $}*pushTag(){if(this.charAt(1)==="<"){let $=this.pos+2,v=this.buffer[$];while(!K4(v)&&v!==">")v=this.buffer[++$];return yield*this.pushToIndex(v===">"?$+1:$,!1)}else{let $=this.pos+1,v=this.buffer[$];while(v)if(
|
|
142
|
+
`){let D=this.continueScalar(U+1);if(D===-1)break;U=Math.max(U,D-2)}}else{if($&&cW.has(I))break;v=U}if(!I&&!this.atEnd)return this.setNext("plain-scalar");return yield tD.SCALAR,yield*this.pushToIndex(v+1,!0),$?"flow":"doc"}*pushCount($){if($>0)return yield this.buffer.substr(this.pos,$),this.pos+=$,$;return 0}*pushToIndex($,v){let U=this.buffer.slice(this.pos,$);if(U)return yield U,this.pos+=U.length,U.length;else if(v)yield"";return 0}*pushIndicators(){let $=0;$:while(!0){switch(this.charAt(0)){case"!":$+=yield*this.pushTag(),$+=yield*this.pushSpaces(!0);continue $;case"&":$+=yield*this.pushUntil(GA),$+=yield*this.pushSpaces(!0);continue $;case"-":case"?":case":":{let v=this.flowLevel>0,U=this.charAt(1);if(K4(U)||v&&cW.has(U)){if(!v)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=!1;$+=yield*this.pushCount(1),$+=yield*this.pushSpaces(!0);continue $}}}break $}return $}*pushTag(){if(this.charAt(1)==="<"){let $=this.pos+2,v=this.buffer[$];while(!K4(v)&&v!==">")v=this.buffer[++$];return yield*this.pushToIndex(v===">"?$+1:$,!1)}else{let $=this.pos+1,v=this.buffer[$];while(v)if(cW$.has(v))v=this.buffer[++$];else if(v==="%"&&Ei.has(this.buffer[$+1])&&Ei.has(this.buffer[$+2]))v=this.buffer[$+=3];else break;return yield*this.pushToIndex($,!1)}}*pushNewline(){let $=this.buffer[this.pos];if($===`
|
|
143
143
|
`)return yield*this.pushCount(1);else if($==="\r"&&this.charAt(1)===`
|
|
144
|
-
`)return yield*this.pushCount(2);else return 0}*pushSpaces($){let v=this.pos-1,U;do U=this.buffer[++v];while(U===" "||$&&U==="\t");let I=v-this.pos;if(I>0)yield this.buffer.substr(this.pos,I),this.pos=v;return I}*pushUntil($){let v=this.pos,U=this.buffer[v];while(!$(U))U=this.buffer[++v];return yield*this.pushToIndex(v,!1)}}
|
|
144
|
+
`)return yield*this.pushCount(2);else return 0}*pushSpaces($){let v=this.pos-1,U;do U=this.buffer[++v];while(U===" "||$&&U==="\t");let I=v-this.pos;if(I>0)yield this.buffer.substr(this.pos,I),this.pos=v;return I}*pushUntil($){let v=this.pos,U=this.buffer[v];while(!$(U))U=this.buffer[++v];return yield*this.pushToIndex(v,!1)}}tW$.Lexer=Ri});var HA=P((pW$)=>{class ni{constructor(){this.lineStarts=[],this.addNewLine=($)=>this.lineStarts.push($),this.linePos=($)=>{let v=0,U=this.lineStarts.length;while(v<U){let b=v+U>>1;if(this.lineStarts[b]<$)v=b+1;else U=b}if(this.lineStarts[v]===$)return{line:v+1,col:1};if(v===0)return{line:0,col:$};let I=this.lineStarts[v-1];return{line:v,col:$-I+1}}}}pW$.LineCounter=ni});var zA=P(($G$)=>{var eW$=Wu("process"),ri=mW(),sW$=OA();function gb($,v){for(let U=0;U<$.length;++U)if($[U].type===v)return!0;return!1}function Ci($){for(let v=0;v<$.length;++v)switch($[v].type){case"space":case"comment":case"newline":break;default:return v}return-1}function xi($){switch($?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function oW($){switch($.type){case"document":return $.start;case"block-map":{let v=$.items[$.items.length-1];return v.sep??v.start}case"block-seq":return $.items[$.items.length-1].start;default:return[]}}function cI($){if($.length===0)return[];let v=$.length;$:while(--v>=0)switch($[v].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break $}while($[++v]?.type==="space");return $.splice(v,$.length)}function tW($,v){if(v.length<1e5)Array.prototype.push.apply($,v);else for(let U=0;U<v.length;++U)$.push(v[U])}function ii($){if($.start.type==="flow-seq-start"){for(let v of $.items)if(v.sep&&!v.value&&!gb(v.start,"explicit-key-ind")&&!gb(v.sep,"map-value-ind")){if(v.key)v.value=v.key;if(delete v.key,xi(v.value))if(v.value.end)tW(v.value.end,v.sep);else v.value.end=v.sep;else tW(v.start,v.sep);delete v.sep}}}class li{constructor($){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new sW$.Lexer,this.onNewLine=$}*parse($,v=!1){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(let U of this.lexer.lex($,v))yield*this.next(U);if(!v)yield*this.end()}*next($){if(this.source=$,eW$.env.LOG_TOKENS)console.log("|",ri.prettyToken($));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=$.length;return}let v=ri.tokenType($);if(!v){let U=`Not a YAML token: ${$}`;yield*this.pop({type:"error",offset:this.offset,message:U,source:$}),this.offset+=$.length}else if(v==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=v,yield*this.step(),v){case"newline":if(this.atNewLine=!0,this.indent=0,this.onNewLine)this.onNewLine(this.offset+$.length);break;case"space":if(this.atNewLine&&$[0]===" ")this.indent+=$.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=$.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=$.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let $=this.peek(1);if(this.type==="doc-end"&&$?.type!=="doc-end"){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!$)return yield*this.stream();switch($.type){case"document":return yield*this.document($);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar($);case"block-scalar":return yield*this.blockScalar($);case"block-map":return yield*this.blockMap($);case"block-seq":return yield*this.blockSequence($);case"flow-collection":return yield*this.flowCollection($);case"doc-end":return yield*this.documentEnd($)}yield*this.pop()}peek($){return this.stack[this.stack.length-$]}*pop($){let v=$??this.stack.pop();if(!v)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield v;else{let U=this.peek(1);if(v.type==="block-scalar")v.indent="indent"in U?U.indent:0;else if(v.type==="flow-collection"&&U.type==="document")v.indent=0;if(v.type==="flow-collection")ii(v);switch(U.type){case"document":U.value=v;break;case"block-scalar":U.props.push(v);break;case"block-map":{let I=U.items[U.items.length-1];if(I.value){U.items.push({start:[],key:v,sep:[]}),this.onKeyLine=!0;return}else if(I.sep)I.value=v;else{Object.assign(I,{key:v,sep:[]}),this.onKeyLine=!I.explicitKey;return}break}case"block-seq":{let I=U.items[U.items.length-1];if(I.value)U.items.push({start:[],value:v});else I.value=v;break}case"flow-collection":{let I=U.items[U.items.length-1];if(!I||I.value)U.items.push({start:[],key:v,sep:[]});else if(I.sep)I.value=v;else Object.assign(I,{key:v,sep:[]});return}default:yield*this.pop(),yield*this.pop(v)}if((U.type==="document"||U.type==="block-map"||U.type==="block-seq")&&(v.type==="block-map"||v.type==="block-seq")){let I=v.items[v.items.length-1];if(I&&!I.sep&&!I.value&&I.start.length>0&&Ci(I.start)===-1&&(v.indent===0||I.start.every((b)=>b.type!=="comment"||b.indent<v.indent))){if(U.type==="document")U.end=I.start;else U.items.push({start:I.start});v.items.splice(-1,1)}}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let $={type:"document",offset:this.offset,start:[]};if(this.type==="doc-start")$.start.push(this.sourceToken);this.stack.push($);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document($){if($.value)return yield*this.lineEnd($);switch(this.type){case"doc-start":{if(Ci($.start)!==-1)yield*this.pop(),yield*this.step();else $.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":$.start.push(this.sourceToken);return}let v=this.startBlockValue($);if(v)this.stack.push(v);else yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar($){if(this.type==="map-value-ind"){let v=oW(this.peek(2)),U=cI(v),I;if($.end)I=$.end,I.push(this.sourceToken),delete $.end;else I=[this.sourceToken];let b={type:"block-map",offset:$.offset,indent:$.indent,items:[{start:U,key:$,sep:I}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=b}else yield*this.lineEnd($)}*blockScalar($){switch(this.type){case"space":case"comment":case"newline":$.props.push(this.sourceToken);return;case"scalar":if($.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let v=this.source.indexOf(`
|
|
145
145
|
`)+1;while(v!==0)this.onNewLine(this.offset+v),v=this.source.indexOf(`
|
|
146
146
|
`,v)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap($){let v=$.items[$.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,v.value){let U="end"in v.value?v.value.end:void 0;if((Array.isArray(U)?U[U.length-1]:void 0)?.type==="comment")U?.push(this.sourceToken);else $.items.push({start:[this.sourceToken]})}else if(v.sep)v.sep.push(this.sourceToken);else v.start.push(this.sourceToken);return;case"space":case"comment":if(v.value)$.items.push({start:[this.sourceToken]});else if(v.sep)v.sep.push(this.sourceToken);else{if(this.atIndentedComment(v.start,$.indent)){let I=$.items[$.items.length-2]?.value?.end;if(Array.isArray(I)){tW(I,v.start),I.push(this.sourceToken),$.items.pop();return}}v.start.push(this.sourceToken)}return}if(this.indent>=$.indent){let U=!this.onKeyLine&&this.indent===$.indent,I=U&&(v.sep||v.explicitKey)&&this.type!=="seq-item-ind",b=[];if(I&&v.sep&&!v.value){let D=[];for(let u=0;u<v.sep.length;++u){let w=v.sep[u];switch(w.type){case"newline":D.push(u);break;case"space":break;case"comment":if(w.indent>$.indent)D.length=0;break;default:D.length=0}}if(D.length>=2)b=v.sep.splice(D[1])}switch(this.type){case"anchor":case"tag":if(I||v.value)b.push(this.sourceToken),$.items.push({start:b}),this.onKeyLine=!0;else if(v.sep)v.sep.push(this.sourceToken);else v.start.push(this.sourceToken);return;case"explicit-key-ind":if(!v.sep&&!v.explicitKey)v.start.push(this.sourceToken),v.explicitKey=!0;else if(I||v.value)b.push(this.sourceToken),$.items.push({start:b,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if(v.explicitKey)if(!v.sep)if(gb(v.start,"newline"))Object.assign(v,{key:null,sep:[this.sourceToken]});else{let D=cI(v.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:D,key:null,sep:[this.sourceToken]}]})}else if(v.value)$.items.push({start:[],key:null,sep:[this.sourceToken]});else if(gb(v.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:b,key:null,sep:[this.sourceToken]}]});else if(xi(v.key)&&!gb(v.sep,"newline")){let D=cI(v.start),u=v.key,w=v.sep;w.push(this.sourceToken),delete v.key,delete v.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:D,key:u,sep:w}]})}else if(b.length>0)v.sep=v.sep.concat(b,this.sourceToken);else v.sep.push(this.sourceToken);else if(!v.sep)Object.assign(v,{key:null,sep:[this.sourceToken]});else if(v.value||I)$.items.push({start:b,key:null,sep:[this.sourceToken]});else if(gb(v.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]});else v.sep.push(this.sourceToken);this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let D=this.flowScalar(this.type);if(I||v.value)$.items.push({start:b,key:D,sep:[]}),this.onKeyLine=!0;else if(v.sep)this.stack.push(D);else Object.assign(v,{key:D,sep:[]}),this.onKeyLine=!0;return}default:{let D=this.startBlockValue($);if(D){if(D.type==="block-seq"){if(!v.explicitKey&&v.sep&&!gb(v.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else if(U)$.items.push({start:b});this.stack.push(D);return}}}}yield*this.pop(),yield*this.step()}*blockSequence($){let v=$.items[$.items.length-1];switch(this.type){case"newline":if(v.value){let U="end"in v.value?v.value.end:void 0;if((Array.isArray(U)?U[U.length-1]:void 0)?.type==="comment")U?.push(this.sourceToken);else $.items.push({start:[this.sourceToken]})}else v.start.push(this.sourceToken);return;case"space":case"comment":if(v.value)$.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(v.start,$.indent)){let I=$.items[$.items.length-2]?.value?.end;if(Array.isArray(I)){tW(I,v.start),I.push(this.sourceToken),$.items.pop();return}}v.start.push(this.sourceToken)}return;case"anchor":case"tag":if(v.value||this.indent<=$.indent)break;v.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==$.indent)break;if(v.value||gb(v.start,"seq-item-ind"))$.items.push({start:[this.sourceToken]});else v.start.push(this.sourceToken);return}if(this.indent>$.indent){let U=this.startBlockValue($);if(U){this.stack.push(U);return}}yield*this.pop(),yield*this.step()}*flowCollection($){let v=$.items[$.items.length-1];if(this.type==="flow-error-end"){let U;do yield*this.pop(),U=this.peek(1);while(U?.type==="flow-collection")}else if($.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!v||v.sep)$.items.push({start:[this.sourceToken]});else v.start.push(this.sourceToken);return;case"map-value-ind":if(!v||v.value)$.items.push({start:[],key:null,sep:[this.sourceToken]});else if(v.sep)v.sep.push(this.sourceToken);else Object.assign(v,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!v||v.value)$.items.push({start:[this.sourceToken]});else if(v.sep)v.sep.push(this.sourceToken);else v.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let I=this.flowScalar(this.type);if(!v||v.value)$.items.push({start:[],key:I,sep:[]});else if(v.sep)this.stack.push(I);else Object.assign(v,{key:I,sep:[]});return}case"flow-map-end":case"flow-seq-end":$.end.push(this.sourceToken);return}let U=this.startBlockValue($);if(U)this.stack.push(U);else yield*this.pop(),yield*this.step()}else{let U=this.peek(2);if(U.type==="block-map"&&(this.type==="map-value-ind"&&U.indent===$.indent||this.type==="newline"&&!U.items[U.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&U.type!=="flow-collection"){let I=oW(U),b=cI(I);ii($);let D=$.end.splice(1,$.end.length);D.push(this.sourceToken);let u={type:"block-map",offset:$.offset,indent:$.indent,items:[{start:b,key:$,sep:D}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=u}else yield*this.lineEnd($)}}flowScalar($){if(this.onNewLine){let v=this.source.indexOf(`
|
|
147
147
|
`)+1;while(v!==0)this.onNewLine(this.offset+v),v=this.source.indexOf(`
|
|
148
|
-
`,v)+1}return{type:$,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue($){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let v=oW($),U=cI(v);return U.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let v=oW($),U=cI(v);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment($,v){if(this.type!=="comment")return!1;if(this.indent<=v)return!1;return $.every((U)=>U.type==="newline"||U.type==="space")}*documentEnd($){if(this.type!=="doc-mode"){if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd($){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}vG$.Parser=li});var ci=P((XG$)=>{var fi=IA(),UG$=yD(),dD=hD(),IG$=HB(),DG$=V$(),uG$=HA(),yi=zA();function hi($){let v=$.prettyErrors!==!1;return{lineCounter:$.lineCounter||v&&new uG$.LineCounter||null,prettyErrors:v}}function wG$($,v={}){let{lineCounter:U,prettyErrors:I}=hi(v),b=new yi.Parser(U?.addNewLine),D=new fi.Composer(v),u=Array.from(D.compose(b.parse($)));if(I&&U)for(let w of u)w.errors.forEach(dD.prettifyError($,U)),w.warnings.forEach(dD.prettifyError($,U));if(u.length>0)return u;return Object.assign([],{empty:!0},D.streamInfo())}function mi($,v={}){let{lineCounter:U,prettyErrors:I}=hi(v),b=new yi.Parser(U?.addNewLine),D=new fi.Composer(v),u=null;for(let w of D.compose(b.parse($),!0,$.length))if(!u)u=w;else if(u.options.logLevel!=="silent"){u.errors.push(new dD.YAMLParseError(w.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(I&&U)u.errors.forEach(dD.prettifyError($,U)),u.warnings.forEach(dD.prettifyError($,U));return u}function gG$($,v,U){let I=void 0;if(typeof v==="function")I=v;else if(U===void 0&&v&&typeof v==="object")U=v;let b=mi($,U);if(!b)return null;if(b.warnings.forEach((D)=>IG$.warn(b.options.logLevel,D)),b.errors.length>0)if(b.options.logLevel!=="silent")throw b.errors[0];else b.errors=[];return b.toJS(Object.assign({reviver:I},U))}function JG$($,v,U){let I=null;if(typeof v==="function"||Array.isArray(v))I=v;else if(U===void 0&&v)U=v;if(typeof U==="string")U=U.length;if(typeof U==="number"){let b=Math.round(U);U=b<1?void 0:b>8?{indent:8}:{indent:b}}if($===void 0){let{keepUndefined:b}=U??v??{};if(!b)return}if(DG$.isDocument($)&&!I)return $.toString(U);return new UG$.Document($,I,U).toString(U)}XG$.parse=gG$;XG$.parseAllDocuments=wG$;XG$.parseDocument=mi;XG$.stringify=JG$});import{homedir as bz$}from"os";var NP={name:"@interactive-inc/claude-funnel",version:"0.65.0",description:"Hub CLI that routes external events (Slack / GitHub / Discord) to Claude Code agents through subscription channels over MCP.",keywords:["bun","claude","claude-code","cli","discord","github","mcp","slack"],homepage:"https://github.com/interactive-inc/open-claude-funnel#readme",bugs:{url:"https://github.com/interactive-inc/open-claude-funnel/issues"},license:"MIT",author:"Interactive Inc.",repository:{type:"git",url:"git+https://github.com/interactive-inc/open-claude-funnel.git"},bin:{fnl:"./dist/bin.js",funnel:"./dist/bin.js"},files:["dist/**/*","funnel.schema.json","README.md","LICENSE"],type:"module",main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",default:"./dist/index.js"},"./claude":{types:"./dist/claude.d.ts",import:"./dist/claude.js",default:"./dist/claude.js"},"./gateway":{types:"./dist/gateway.d.ts",import:"./dist/gateway.js",default:"./dist/gateway.js"},"./profiles":{types:"./dist/profiles.d.ts",import:"./dist/profiles.js",default:"./dist/profiles.js"},"./local-config":{types:"./dist/local-config.d.ts",import:"./dist/local-config.js",default:"./dist/local-config.js"},"./diagnostics":{types:"./dist/diagnostics.d.ts",import:"./dist/diagnostics.js",default:"./dist/diagnostics.js"},"./recovery":{types:"./dist/recovery.d.ts",import:"./dist/recovery.js",default:"./dist/recovery.js"},"./doctor":{types:"./dist/doctor.d.ts",import:"./dist/doctor.js",default:"./dist/doctor.js"},"./docs":{types:"./dist/docs.d.ts",import:"./dist/docs.js",default:"./dist/docs.js"},"./connectors/slack":{types:"./dist/connectors/slack.d.ts",import:"./dist/connectors/slack.js",default:"./dist/connectors/slack.js"},"./connectors/discord":{types:"./dist/connectors/discord.d.ts",import:"./dist/connectors/discord.js",default:"./dist/connectors/discord.js"},"./connectors/gh":{types:"./dist/connectors/gh.d.ts",import:"./dist/connectors/gh.js",default:"./dist/connectors/gh.js"},"./connectors/schedule":{types:"./dist/connectors/schedule.d.ts",import:"./dist/connectors/schedule.js",default:"./dist/connectors/schedule.js"},"./logger":{types:"./dist/logger.d.ts",import:"./dist/logger.js",default:"./dist/logger.js"},"./bin":"./dist/bin.js","./package.json":"./package.json"},publishConfig:{access:"public"},scripts:{prepack:"make build"},dependencies:{"@hono/zod-validator":"0.8.0","@interactive-inc/flume":"^0.9.2","@modelcontextprotocol/sdk":"^1.29.0",hono:"^4.12.19",yaml:"^2.9.0",zod:"^4.4.3"},devDependencies:{"@types/bun":"^1.3.14","@typescript/native-preview":"^7.0.0-dev.20260516.1","vite-plus":"^0.1.21",vitest:"^4.1.8"},engines:{bun:">=1.3.0"}};var e=class extends Error{res;status;constructor($=500,v){super(v?.message,{cause:v?.cause});this.res=v?.res,this.status=$}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var H={};e$(H,{xor:()=>IN,xid:()=>Sj,void:()=>ej,uuidv7:()=>Lj,uuidv6:()=>Vj,uuidv4:()=>Yj,uuid:()=>Qj,util:()=>R,url:()=>Kj,uppercase:()=>GU,unknown:()=>Kb,union:()=>iw,undefined:()=>pj,ulid:()=>Nj,uint64:()=>tj,uint32:()=>mj,tuple:()=>Rz,trim:()=>VU,treeifyError:()=>NG,transform:()=>lw,toUpperCase:()=>KU,toLowerCase:()=>LU,toJSONSchema:()=>Gw,templateLiteral:()=>VN,symbol:()=>dj,superRefine:()=>JQ,success:()=>HN,stringbool:()=>NN,stringFormat:()=>Cj,string:()=>L1,strictObject:()=>bN,startsWith:()=>HU,slugify:()=>qU,size:()=>Yb,setErrorMap:()=>Om,set:()=>JN,safeParseAsync:()=>Jz,safeParse:()=>gz,safeEncodeAsync:()=>Qz,safeEncode:()=>Hz,safeDecodeAsync:()=>Yz,safeDecode:()=>zz,registry:()=>ru,regexes:()=>yv,regex:()=>XU,refine:()=>gQ,record:()=>nz,readonly:()=>bQ,property:()=>gw,promise:()=>LN,prettifyError:()=>SG,preprocess:()=>MN,prefault:()=>tz,positive:()=>Iw,pipe:()=>Lw,partialRecord:()=>uN,parseAsync:()=>wz,parse:()=>uz,overwrite:()=>w4,optional:()=>q1,object:()=>vN,number:()=>Lz,nullish:()=>ON,nullable:()=>B1,null:()=>Pz,normalize:()=>YU,nonpositive:()=>uw,nonoptional:()=>dz,nonnegative:()=>ww,never:()=>Cw,negative:()=>Dw,nativeEnum:()=>XN,nanoid:()=>Aj,nan:()=>zN,multipleOf:()=>j6,minSize:()=>M4,minLength:()=>m4,mime:()=>QU,meta:()=>PN,maxSize:()=>N6,maxLength:()=>Vb,map:()=>gN,mac:()=>Fj,lte:()=>hv,lt:()=>N4,lowercase:()=>WU,looseRecord:()=>wN,looseObject:()=>UN,locales:()=>z1,literal:()=>WN,length:()=>Lb,lazy:()=>DQ,ksuid:()=>Mj,keyof:()=>$N,jwt:()=>rj,json:()=>SN,iso:()=>PU,ipv6:()=>Zj,ipv4:()=>_j,invertCodec:()=>YN,intersection:()=>kz,int64:()=>oj,int32:()=>hj,int:()=>Vw,instanceof:()=>jN,includes:()=>OU,httpUrl:()=>qj,hostname:()=>ij,hex:()=>xj,hash:()=>lj,guid:()=>zj,gte:()=>qv,gt:()=>S4,globalRegistry:()=>Dv,getErrorMap:()=>Hm,function:()=>KN,fromJSONSchema:()=>FN,formatError:()=>I1,float64:()=>yj,float32:()=>fj,flattenError:()=>U1,file:()=>GN,exactOptional:()=>yz,enum:()=>xw,endsWith:()=>zU,encodeAsync:()=>Gz,encode:()=>Xz,emoji:()=>Bj,email:()=>Hj,e164:()=>nj,discriminatedUnion:()=>DN,describe:()=>AN,decodeAsync:()=>Oz,decode:()=>Wz,date:()=>sj,custom:()=>BN,cuid2:()=>jj,cuid:()=>Pj,core:()=>c4,config:()=>c$,coerce:()=>WQ,codec:()=>QN,clone:()=>Lv,cidrv6:()=>kj,cidrv4:()=>Tj,check:()=>qN,catch:()=>ez,boolean:()=>Kz,bigint:()=>cj,base64url:()=>Rj,base64:()=>Ej,array:()=>N1,any:()=>aj,_function:()=>KN,_default:()=>cz,_ZodString:()=>Kw,ZodXor:()=>Fz,ZodXID:()=>Sw,ZodVoid:()=>Mz,ZodUnknown:()=>Nz,ZodUnion:()=>M1,ZodUndefined:()=>Bz,ZodUUID:()=>_4,ZodURL:()=>P1,ZodULID:()=>Nw,ZodType:()=>U$,ZodTuple:()=>Ez,ZodTransform:()=>lz,ZodTemplateLiteral:()=>UQ,ZodSymbol:()=>qz,ZodSuccess:()=>pz,ZodStringFormat:()=>j$,ZodString:()=>SU,ZodSet:()=>Cz,ZodRecord:()=>jU,ZodRealError:()=>kv,ZodReadonly:()=>vQ,ZodPromise:()=>uQ,ZodPreprocess:()=>$Q,ZodPrefault:()=>oz,ZodPipe:()=>_1,ZodOptional:()=>fw,ZodObject:()=>S1,ZodNumberFormat:()=>qb,ZodNumber:()=>_U,ZodNullable:()=>hz,ZodNull:()=>Az,ZodNonOptional:()=>yw,ZodNever:()=>Sz,ZodNanoID:()=>Aw,ZodNaN:()=>sz,ZodMap:()=>rz,ZodMAC:()=>Vz,ZodLiteral:()=>iz,ZodLazy:()=>IQ,ZodKSUID:()=>Mw,ZodJWT:()=>nw,ZodIssueCode:()=>Gm,ZodIntersection:()=>Tz,ZodISOTime:()=>Qw,ZodISODuration:()=>Yw,ZodISODateTime:()=>Hw,ZodISODate:()=>zw,ZodIPv6:()=>Fw,ZodIPv4:()=>_w,ZodGUID:()=>K1,ZodFunction:()=>wQ,ZodFirstPartyTypeKind:()=>XQ,ZodFile:()=>xz,ZodExactOptional:()=>fz,ZodError:()=>Xm,ZodEnum:()=>NU,ZodEmoji:()=>Bw,ZodEmail:()=>qw,ZodE164:()=>Rw,ZodDiscriminatedUnion:()=>Zz,ZodDefault:()=>mz,ZodDate:()=>j1,ZodCustomStringFormat:()=>MU,ZodCustom:()=>Z1,ZodCodec:()=>F1,ZodCatch:()=>az,ZodCUID2:()=>jw,ZodCUID:()=>Pw,ZodCIDRv6:()=>Tw,ZodCIDRv4:()=>Zw,ZodBoolean:()=>FU,ZodBigIntFormat:()=>rw,ZodBigInt:()=>ZU,ZodBase64URL:()=>Ew,ZodBase64:()=>kw,ZodArray:()=>_z,ZodAny:()=>jz,TimePrecision:()=>RH,NEVER:()=>HG,$output:()=>_H,$input:()=>FH,$brand:()=>zG});var c4={};e$(c4,{version:()=>A9,util:()=>R,treeifyError:()=>NG,toJSONSchema:()=>Gw,toDotPath:()=>kP,safeParseAsync:()=>_G,safeParse:()=>MG,safeEncodeAsync:()=>Gy,safeEncode:()=>Xy,safeDecodeAsync:()=>Oy,safeDecode:()=>Wy,registry:()=>ru,regexes:()=>yv,process:()=>q$,prettifyError:()=>SG,parseAsync:()=>zu,parse:()=>Hu,meta:()=>z8,locales:()=>z1,isValidJWT:()=>vj,isValidBase64URL:()=>$j,isValidBase64:()=>m9,initializeContext:()=>S6,globalRegistry:()=>Dv,globalConfig:()=>Gb,formatError:()=>I1,flattenError:()=>U1,finalize:()=>_6,extractDefs:()=>M6,encodeAsync:()=>gy,encode:()=>uy,describe:()=>H8,decodeAsync:()=>Jy,decode:()=>wy,createToJSONSchemaMethod:()=>Y8,createStandardJSONSchemaMethod:()=>AU,config:()=>c$,clone:()=>Lv,_xor:()=>xh,_xid:()=>tu,_void:()=>D8,_uuidv7:()=>fu,_uuidv6:()=>lu,_uuidv4:()=>xu,_uuid:()=>iu,_url:()=>Y1,_uppercase:()=>GU,_unknown:()=>U8,_union:()=>ih,_undefined:()=>$8,_ulid:()=>ou,_uint64:()=>eH,_uint32:()=>cH,_tuple:()=>yh,_trim:()=>VU,_transform:()=>ph,_toUpperCase:()=>KU,_toLowerCase:()=>LU,_templateLiteral:()=>Dm,_symbol:()=>sH,_superRefine:()=>O8,_success:()=>vm,_stringbool:()=>Q8,_stringFormat:()=>BU,_string:()=>TH,_startsWith:()=>HU,_slugify:()=>qU,_size:()=>Yb,_set:()=>ch,_safeParseAsync:()=>wU,_safeParse:()=>uU,_safeEncodeAsync:()=>Bu,_safeEncode:()=>Ku,_safeDecodeAsync:()=>Au,_safeDecode:()=>qu,_regex:()=>XU,_refine:()=>G8,_record:()=>hh,_readonly:()=>Im,_property:()=>gw,_promise:()=>wm,_positive:()=>Iw,_pipe:()=>Um,_parseAsync:()=>DU,_parse:()=>IU,_overwrite:()=>w4,_optional:()=>ah,_number:()=>xH,_nullable:()=>eh,_null:()=>v8,_normalize:()=>YU,_nonpositive:()=>uw,_nonoptional:()=>$m,_nonnegative:()=>ww,_never:()=>I8,_negative:()=>Dw,_nativeEnum:()=>th,_nanoid:()=>hu,_nan:()=>g8,_multipleOf:()=>j6,_minSize:()=>M4,_minLength:()=>m4,_min:()=>qv,_mime:()=>QU,_maxSize:()=>N6,_maxLength:()=>Vb,_max:()=>hv,_map:()=>mh,_mac:()=>EH,_lte:()=>hv,_lt:()=>N4,_lowercase:()=>WU,_literal:()=>dh,_length:()=>Lb,_lazy:()=>um,_ksuid:()=>du,_jwt:()=>Uw,_isoTime:()=>CH,_isoDuration:()=>iH,_isoDateTime:()=>nH,_isoDate:()=>rH,_ipv6:()=>au,_ipv4:()=>pu,_intersection:()=>fh,_int64:()=>aH,_int32:()=>mH,_int:()=>fH,_includes:()=>OU,_guid:()=>Q1,_gte:()=>qv,_gt:()=>S4,_float64:()=>hH,_float32:()=>yH,_file:()=>X8,_enum:()=>oh,_endsWith:()=>zU,_encodeAsync:()=>Vu,_encode:()=>Qu,_emoji:()=>yu,_email:()=>Cu,_e164:()=>bw,_discriminatedUnion:()=>lh,_default:()=>sh,_decodeAsync:()=>Lu,_decode:()=>Yu,_date:()=>u8,_custom:()=>W8,_cuid2:()=>cu,_cuid:()=>mu,_coercedString:()=>kH,_coercedNumber:()=>lH,_coercedDate:()=>w8,_coercedBoolean:()=>tH,_coercedBigint:()=>pH,_cidrv6:()=>su,_cidrv4:()=>eu,_check:()=>Xj,_catch:()=>bm,_boolean:()=>oH,_bigint:()=>dH,_base64url:()=>vw,_base64:()=>$w,_array:()=>J8,_any:()=>b8,TimePrecision:()=>RH,NEVER:()=>HG,JSONSchemaGenerator:()=>vz,JSONSchema:()=>Wj,Doc:()=>Su,$output:()=>_H,$input:()=>FH,$constructor:()=>V,$brand:()=>zG,$ZodXor:()=>JO,$ZodXID:()=>E9,$ZodVoid:()=>DO,$ZodUnknown:()=>UO,$ZodUnion:()=>J1,$ZodUndefined:()=>$O,$ZodUUID:()=>N9,$ZodURL:()=>M9,$ZodULID:()=>k9,$ZodType:()=>$$,$ZodTuple:()=>Eu,$ZodTransform:()=>VO,$ZodTemplateLiteral:()=>_O,$ZodSymbol:()=>s9,$ZodSuccess:()=>PO,$ZodStringFormat:()=>P$,$ZodString:()=>Qb,$ZodSet:()=>HO,$ZodRegistry:()=>ZH,$ZodRecord:()=>GO,$ZodRealError:()=>Tv,$ZodReadonly:()=>MO,$ZodPromise:()=>ZO,$ZodPreprocess:()=>SO,$ZodPrefault:()=>BO,$ZodPipe:()=>nu,$ZodOptional:()=>Ru,$ZodObjectJIT:()=>gO,$ZodObject:()=>Ij,$ZodNumberFormat:()=>a9,$ZodNumber:()=>Tu,$ZodNullable:()=>KO,$ZodNull:()=>vO,$ZodNonOptional:()=>AO,$ZodNever:()=>IO,$ZodNanoID:()=>F9,$ZodNaN:()=>NO,$ZodMap:()=>OO,$ZodMAC:()=>f9,$ZodLiteral:()=>QO,$ZodLazy:()=>TO,$ZodKSUID:()=>R9,$ZodJWT:()=>d9,$ZodIntersection:()=>WO,$ZodISOTime:()=>C9,$ZodISODuration:()=>i9,$ZodISODateTime:()=>n9,$ZodISODate:()=>r9,$ZodIPv6:()=>l9,$ZodIPv4:()=>x9,$ZodGUID:()=>j9,$ZodFunction:()=>FO,$ZodFile:()=>YO,$ZodExactOptional:()=>LO,$ZodError:()=>b1,$ZodEnum:()=>zO,$ZodEncodeError:()=>Ob,$ZodEmoji:()=>_9,$ZodEmail:()=>S9,$ZodE164:()=>t9,$ZodDiscriminatedUnion:()=>XO,$ZodDefault:()=>qO,$ZodDate:()=>uO,$ZodCustomStringFormat:()=>p9,$ZodCustom:()=>kO,$ZodCodec:()=>X1,$ZodCheckUpperCase:()=>Q9,$ZodCheckStringFormat:()=>gU,$ZodCheckStartsWith:()=>V9,$ZodCheckSizeEquals:()=>X9,$ZodCheckRegex:()=>H9,$ZodCheckProperty:()=>K9,$ZodCheckOverwrite:()=>B9,$ZodCheckNumberFormat:()=>u9,$ZodCheckMultipleOf:()=>D9,$ZodCheckMinSize:()=>J9,$ZodCheckMinLength:()=>G9,$ZodCheckMimeType:()=>q9,$ZodCheckMaxSize:()=>g9,$ZodCheckMaxLength:()=>W9,$ZodCheckLowerCase:()=>z9,$ZodCheckLessThan:()=>ju,$ZodCheckLengthEquals:()=>O9,$ZodCheckIncludes:()=>Y9,$ZodCheckGreaterThan:()=>Nu,$ZodCheckEndsWith:()=>L9,$ZodCheckBigIntFormat:()=>w9,$ZodCheck:()=>M$,$ZodCatch:()=>jO,$ZodCUID2:()=>T9,$ZodCUID:()=>Z9,$ZodCIDRv6:()=>h9,$ZodCIDRv4:()=>y9,$ZodBoolean:()=>g1,$ZodBigIntFormat:()=>e9,$ZodBigInt:()=>ku,$ZodBase64URL:()=>o9,$ZodBase64:()=>c9,$ZodAsyncError:()=>j4,$ZodArray:()=>wO,$ZodAny:()=>bO});var SP,HG=Object.freeze({status:"aborted"});function V($,v,U){function I(w,g){if(!w._zod)Object.defineProperty(w,"_zod",{value:{def:g,constr:u,traits:new Set},enumerable:!1});if(w._zod.traits.has($))return;w._zod.traits.add($),v(w,g);let J=u.prototype,X=Object.keys(J);for(let W=0;W<X.length;W++){let G=X[W];if(!(G in w))w[G]=J[G].bind(w)}}let b=U?.Parent??Object;class D extends b{}Object.defineProperty(D,"name",{value:$});function u(w){var g;let J=U?.Parent?new D:this;I(J,w),(g=J._zod).deferred??(g.deferred=[]);for(let X of J._zod.deferred)X();return J}return Object.defineProperty(u,"init",{value:I}),Object.defineProperty(u,Symbol.hasInstance,{value:(w)=>{if(U?.Parent&&w instanceof U.Parent)return!0;return w?._zod?.traits?.has($)}}),Object.defineProperty(u,"name",{value:$}),u}var zG=Symbol("zod_brand");class j4 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Ob extends Error{constructor($){super(`Encountered unidirectional transform during encode: ${$}`);this.name="ZodEncodeError"}}(SP=globalThis).__zod_globalConfig??(SP.__zod_globalConfig={});var Gb=globalThis.__zod_globalConfig;function c$($){if($)Object.assign(Gb,$);return Gb}var R={};e$(R,{unwrapMessage:()=>pI,uint8ArrayToHex:()=>Iy,uint8ArrayToBase64url:()=>by,uint8ArrayToBase64:()=>FP,stringifyPrimitive:()=>Z,slugify:()=>VG,shallowClone:()=>KG,safeExtend:()=>pf,required:()=>sf,randomString:()=>yf,propertyKeyTypes:()=>sI,promiseAllObject:()=>ff,primitiveTypes:()=>qG,prefixIssues:()=>Zv,pick:()=>of,partial:()=>ef,parsedType:()=>k,optionalKeys:()=>BG,omit:()=>tf,objectClone:()=>Cf,numKeys:()=>hf,nullish:()=>q6,normalizeParams:()=>r,mergeDefs:()=>h4,merge:()=>af,jsonStringifyReplacer:()=>vU,joinValues:()=>q,issue:()=>UU,isPlainObject:()=>A6,isObject:()=>Hb,hexToUint8Array:()=>Uy,getSizableOrigin:()=>$1,getParsedType:()=>mf,getLengthableOrigin:()=>v1,getEnumValues:()=>aI,getElementAtPath:()=>lf,floatSafeRemainder:()=>YG,finalizeIssue:()=>Kv,extend:()=>df,explicitlyAborted:()=>jG,escapeRegex:()=>av,esc:()=>Gu,defineLazy:()=>g$,createTransparentProxy:()=>cf,cloneDef:()=>xf,clone:()=>Lv,cleanRegex:()=>eI,cleanEnum:()=>$y,captureStackTrace:()=>Ou,cached:()=>bU,base64urlToUint8Array:()=>vy,base64ToUint8Array:()=>_P,assignProp:()=>B6,assertNotEqual:()=>Ef,assertNever:()=>nf,assertIs:()=>Rf,assertEqual:()=>kf,assert:()=>rf,allowsEval:()=>LG,aborted:()=>P6,NUMBER_FORMAT_RANGES:()=>AG,Class:()=>ZP,BIGINT_FORMAT_RANGES:()=>PG});function kf($){return $}function Ef($){return $}function Rf($){}function nf($){throw Error("Unexpected value in exhaustive check")}function rf($){}function aI($){let v=Object.values($).filter((I)=>typeof I==="number");return Object.entries($).filter(([I,b])=>v.indexOf(+I)===-1).map(([I,b])=>b)}function q($,v="|"){return $.map((U)=>Z(U)).join(v)}function vU($,v){if(typeof v==="bigint")return v.toString();return v}function bU($){return{get value(){{let U=$();return Object.defineProperty(this,"value",{value:U}),U}throw Error("cached value already set")}}}function q6($){return $===null||$===void 0}function eI($){let v=$.startsWith("^")?1:0,U=$.endsWith("$")?$.length-1:$.length;return $.slice(v,U)}function YG($,v){let U=$/v,I=Math.round(U),b=Number.EPSILON*Math.max(Math.abs(U),1);if(Math.abs(U-I)<b)return 0;return U-I}var MP=Symbol("evaluating");function g$($,v,U){let I=void 0;Object.defineProperty($,v,{get(){if(I===MP)return;if(I===void 0)I=MP,I=U();return I},set(b){Object.defineProperty($,v,{value:b})},configurable:!0})}function Cf($){return Object.create(Object.getPrototypeOf($),Object.getOwnPropertyDescriptors($))}function B6($,v,U){Object.defineProperty($,v,{value:U,writable:!0,enumerable:!0,configurable:!0})}function h4(...$){let v={};for(let U of $){let I=Object.getOwnPropertyDescriptors(U);Object.assign(v,I)}return Object.defineProperties({},v)}function xf($){return h4($._zod.def)}function lf($,v){if(!v)return $;return v.reduce((U,I)=>U?.[I],$)}function ff($){let v=Object.keys($),U=v.map((I)=>$[I]);return Promise.all(U).then((I)=>{let b={};for(let D=0;D<v.length;D++)b[v[D]]=I[D];return b})}function yf($=10){let U="";for(let I=0;I<$;I++)U+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return U}function Gu($){return JSON.stringify($)}function VG($){return $.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ou="captureStackTrace"in Error?Error.captureStackTrace:(...$)=>{};function Hb($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var LG=bU(()=>{if(Gb.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch($){return!1}});function A6($){if(Hb($)===!1)return!1;let v=$.constructor;if(v===void 0)return!0;if(typeof v!=="function")return!0;let U=v.prototype;if(Hb(U)===!1)return!1;if(Object.prototype.hasOwnProperty.call(U,"isPrototypeOf")===!1)return!1;return!0}function KG($){if(A6($))return{...$};if(Array.isArray($))return[...$];if($ instanceof Map)return new Map($);if($ instanceof Set)return new Set($);return $}function hf($){let v=0;for(let U in $)if(Object.prototype.hasOwnProperty.call($,U))v++;return v}var mf=($)=>{let v=typeof $;switch(v){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN($)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray($))return"array";if($===null)return"null";if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return"promise";if(typeof Map<"u"&&$ instanceof Map)return"map";if(typeof Set<"u"&&$ instanceof Set)return"set";if(typeof Date<"u"&&$ instanceof Date)return"date";if(typeof File<"u"&&$ instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${v}`)}},sI=new Set(["string","number","symbol"]),qG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function av($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Lv($,v,U){let I=new $._zod.constr(v??$._zod.def);if(!v||U?.parent)I._zod.parent=$;return I}function r($){let v=$;if(!v)return{};if(typeof v==="string")return{error:()=>v};if(v?.message!==void 0){if(v?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");v.error=v.message}if(delete v.message,typeof v.error==="string")return{...v,error:()=>v.error};return v}function cf($){let v;return new Proxy({},{get(U,I,b){return v??(v=$()),Reflect.get(v,I,b)},set(U,I,b,D){return v??(v=$()),Reflect.set(v,I,b,D)},has(U,I){return v??(v=$()),Reflect.has(v,I)},deleteProperty(U,I){return v??(v=$()),Reflect.deleteProperty(v,I)},ownKeys(U){return v??(v=$()),Reflect.ownKeys(v)},getOwnPropertyDescriptor(U,I){return v??(v=$()),Reflect.getOwnPropertyDescriptor(v,I)},defineProperty(U,I,b){return v??(v=$()),Reflect.defineProperty(v,I,b)}})}function Z($){if(typeof $==="bigint")return $.toString()+"n";if(typeof $==="string")return`"${$}"`;return`${$}`}function BG($){return Object.keys($).filter((v)=>{return $[v]._zod.optin==="optional"&&$[v]._zod.optout==="optional"})}var AG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},PG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function of($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let D=h4($._zod.def,{get shape(){let u={};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;u[w]=U.shape[w]}return B6(this,"shape",u),u},checks:[]});return Lv($,D)}function tf($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let D=h4($._zod.def,{get shape(){let u={...$._zod.def.shape};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;delete u[w]}return B6(this,"shape",u),u},checks:[]});return Lv($,D)}function df($,v){if(!A6(v))throw Error("Invalid input to extend: expected a plain object");let U=$._zod.def.checks;if(U&&U.length>0){let D=$._zod.def.shape;for(let u in v)if(Object.getOwnPropertyDescriptor(D,u)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let b=h4($._zod.def,{get shape(){let D={...$._zod.def.shape,...v};return B6(this,"shape",D),D}});return Lv($,b)}function pf($,v){if(!A6(v))throw Error("Invalid input to safeExtend: expected a plain object");let U=h4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v};return B6(this,"shape",I),I}});return Lv($,U)}function af($,v){if($._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let U=h4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v._zod.def.shape};return B6(this,"shape",I),I},get catchall(){return v._zod.def.catchall},checks:v._zod.def.checks??[]});return Lv($,U)}function ef($,v,U){let b=v._zod.def.checks;if(b&&b.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let u=h4(v._zod.def,{get shape(){let w=v._zod.def.shape,g={...w};if(U)for(let J in U){if(!(J in w))throw Error(`Unrecognized key: "${J}"`);if(!U[J])continue;g[J]=$?new $({type:"optional",innerType:w[J]}):w[J]}else for(let J in w)g[J]=$?new $({type:"optional",innerType:w[J]}):w[J];return B6(this,"shape",g),g},checks:[]});return Lv(v,u)}function sf($,v,U){let I=h4(v._zod.def,{get shape(){let b=v._zod.def.shape,D={...b};if(U)for(let u in U){if(!(u in D))throw Error(`Unrecognized key: "${u}"`);if(!U[u])continue;D[u]=new $({type:"nonoptional",innerType:b[u]})}else for(let u in b)D[u]=new $({type:"nonoptional",innerType:b[u]});return B6(this,"shape",D),D}});return Lv(v,I)}function P6($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue!==!0)return!0;return!1}function jG($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue===!1)return!0;return!1}function Zv($,v){return v.map((U)=>{var I;return(I=U).path??(I.path=[]),U.path.unshift($),U})}function pI($){return typeof $==="string"?$:$?.message}function Kv($,v,U){let I=$.message?$.message:pI($.inst?._zod.def?.error?.($))??pI(v?.error?.($))??pI(U.customError?.($))??pI(U.localeError?.($))??"Invalid input",{inst:b,continue:D,input:u,...w}=$;if(w.path??(w.path=[]),w.message=I,v?.reportInput)w.input=u;return w}function $1($){if($ instanceof Set)return"set";if($ instanceof Map)return"map";if($ instanceof File)return"file";return"unknown"}function v1($){if(Array.isArray($))return"array";if(typeof $==="string")return"string";return"unknown"}function k($){let v=typeof $;switch(v){case"number":return Number.isNaN($)?"nan":"number";case"object":{if($===null)return"null";if(Array.isArray($))return"array";let U=$;if(U&&Object.getPrototypeOf(U)!==Object.prototype&&"constructor"in U&&U.constructor)return U.constructor.name}}return v}function UU(...$){let[v,U,I]=$;if(typeof v==="string")return{message:v,code:"custom",input:U,inst:I};return{...v}}function $y($){return Object.entries($).filter(([v,U])=>{return Number.isNaN(Number.parseInt(v,10))}).map((v)=>v[1])}function _P($){let v=atob($),U=new Uint8Array(v.length);for(let I=0;I<v.length;I++)U[I]=v.charCodeAt(I);return U}function FP($){let v="";for(let U=0;U<$.length;U++)v+=String.fromCharCode($[U]);return btoa(v)}function vy($){let v=$.replace(/-/g,"+").replace(/_/g,"/"),U="=".repeat((4-v.length%4)%4);return _P(v+U)}function by($){return FP($).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Uy($){let v=$.replace(/^0x/,"");if(v.length%2!==0)throw Error("Invalid hex string length");let U=new Uint8Array(v.length/2);for(let I=0;I<v.length;I+=2)U[I/2]=Number.parseInt(v.slice(I,I+2),16);return U}function Iy($){return Array.from($).map((v)=>v.toString(16).padStart(2,"0")).join("")}class ZP{constructor(...$){}}var TP=($,v)=>{$.name="$ZodError",Object.defineProperty($,"_zod",{value:$._zod,enumerable:!1}),Object.defineProperty($,"issues",{value:v,enumerable:!1}),$.message=JSON.stringify(v,vU,2),Object.defineProperty($,"toString",{value:()=>$.message,enumerable:!1})},b1=V("$ZodError",TP),Tv=V("$ZodError",TP,{Parent:Error});function U1($,v=(U)=>U.message){let U={},I=[];for(let b of $.issues)if(b.path.length>0)U[b.path[0]]=U[b.path[0]]||[],U[b.path[0]].push(v(b));else I.push(v(b));return{formErrors:I,fieldErrors:U}}function I1($,v=(U)=>U.message){let U={_errors:[]},I=(b,D=[])=>{for(let u of b.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map((w)=>I({issues:w},[...D,...u.path]));else if(u.code==="invalid_key")I({issues:u.issues},[...D,...u.path]);else if(u.code==="invalid_element")I({issues:u.issues},[...D,...u.path]);else{let w=[...D,...u.path];if(w.length===0)U._errors.push(v(u));else{let g=U,J=0;while(J<w.length){let X=w[J];if(J!==w.length-1)g[X]=g[X]||{_errors:[]};else g[X]=g[X]||{_errors:[]},g[X]._errors.push(v(u));g=g[X],J++}}}};return I($),U}function NG($,v=(U)=>U.message){let U={errors:[]},I=(b,D=[])=>{var u,w;for(let g of b.issues)if(g.code==="invalid_union"&&g.errors.length)g.errors.map((J)=>I({issues:J},[...D,...g.path]));else if(g.code==="invalid_key")I({issues:g.issues},[...D,...g.path]);else if(g.code==="invalid_element")I({issues:g.issues},[...D,...g.path]);else{let J=[...D,...g.path];if(J.length===0){U.errors.push(v(g));continue}let X=U,W=0;while(W<J.length){let G=J[W],O=W===J.length-1;if(typeof G==="string")X.properties??(X.properties={}),(u=X.properties)[G]??(u[G]={errors:[]}),X=X.properties[G];else X.items??(X.items=[]),(w=X.items)[G]??(w[G]={errors:[]}),X=X.items[G];if(O)X.errors.push(v(g));W++}}};return I($),U}function kP($){let v=[],U=$.map((I)=>typeof I==="object"?I.key:I);for(let I of U)if(typeof I==="number")v.push(`[${I}]`);else if(typeof I==="symbol")v.push(`[${JSON.stringify(String(I))}]`);else if(/[^\w$]/.test(I))v.push(`[${JSON.stringify(I)}]`);else{if(v.length)v.push(".");v.push(I)}return v.join("")}function SG($){let v=[],U=[...$.issues].sort((I,b)=>(I.path??[]).length-(b.path??[]).length);for(let I of U)if(v.push(`\u2716 ${I.message}`),I.path?.length)v.push(` \u2192 at ${kP(I.path)}`);return v.join(`
|
|
148
|
+
`,v)+1}return{type:$,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue($){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let v=oW($),U=cI(v);return U.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let v=oW($),U=cI(v);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment($,v){if(this.type!=="comment")return!1;if(this.indent<=v)return!1;return $.every((U)=>U.type==="newline"||U.type==="space")}*documentEnd($){if(this.type!=="doc-mode"){if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd($){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if($.end)$.end.push(this.sourceToken);else $.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}$G$.Parser=li});var ci=P((JG$)=>{var fi=IA(),bG$=yD(),dD=hD(),UG$=HB(),IG$=V$(),DG$=HA(),yi=zA();function hi($){let v=$.prettyErrors!==!1;return{lineCounter:$.lineCounter||v&&new DG$.LineCounter||null,prettyErrors:v}}function uG$($,v={}){let{lineCounter:U,prettyErrors:I}=hi(v),b=new yi.Parser(U?.addNewLine),D=new fi.Composer(v),u=Array.from(D.compose(b.parse($)));if(I&&U)for(let w of u)w.errors.forEach(dD.prettifyError($,U)),w.warnings.forEach(dD.prettifyError($,U));if(u.length>0)return u;return Object.assign([],{empty:!0},D.streamInfo())}function mi($,v={}){let{lineCounter:U,prettyErrors:I}=hi(v),b=new yi.Parser(U?.addNewLine),D=new fi.Composer(v),u=null;for(let w of D.compose(b.parse($),!0,$.length))if(!u)u=w;else if(u.options.logLevel!=="silent"){u.errors.push(new dD.YAMLParseError(w.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(I&&U)u.errors.forEach(dD.prettifyError($,U)),u.warnings.forEach(dD.prettifyError($,U));return u}function wG$($,v,U){let I=void 0;if(typeof v==="function")I=v;else if(U===void 0&&v&&typeof v==="object")U=v;let b=mi($,U);if(!b)return null;if(b.warnings.forEach((D)=>UG$.warn(b.options.logLevel,D)),b.errors.length>0)if(b.options.logLevel!=="silent")throw b.errors[0];else b.errors=[];return b.toJS(Object.assign({reviver:I},U))}function gG$($,v,U){let I=null;if(typeof v==="function"||Array.isArray(v))I=v;else if(U===void 0&&v)U=v;if(typeof U==="string")U=U.length;if(typeof U==="number"){let b=Math.round(U);U=b<1?void 0:b>8?{indent:8}:{indent:b}}if($===void 0){let{keepUndefined:b}=U??v??{};if(!b)return}if(IG$.isDocument($)&&!I)return $.toString(U);return new bG$.Document($,I,U).toString(U)}JG$.parse=wG$;JG$.parseAllDocuments=uG$;JG$.parseDocument=mi;JG$.stringify=gG$});import{homedir as vz$}from"os";var NP={name:"@interactive-inc/claude-funnel",version:"0.66.0",description:"Hub CLI that routes external events (Slack / GitHub / Discord) to Claude Code agents through subscription channels over MCP.",keywords:["bun","claude","claude-code","cli","discord","github","mcp","slack"],homepage:"https://github.com/interactive-inc/open-claude-funnel#readme",bugs:{url:"https://github.com/interactive-inc/open-claude-funnel/issues"},license:"MIT",author:"Interactive Inc.",repository:{type:"git",url:"git+https://github.com/interactive-inc/open-claude-funnel.git"},bin:{fnl:"./dist/bin.js",funnel:"./dist/bin.js"},files:["dist/**/*","funnel.schema.json","README.md","LICENSE"],type:"module",main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",default:"./dist/index.js"},"./claude":{types:"./dist/claude.d.ts",import:"./dist/claude.js",default:"./dist/claude.js"},"./gateway":{types:"./dist/gateway.d.ts",import:"./dist/gateway.js",default:"./dist/gateway.js"},"./profiles":{types:"./dist/profiles.d.ts",import:"./dist/profiles.js",default:"./dist/profiles.js"},"./local-config":{types:"./dist/local-config.d.ts",import:"./dist/local-config.js",default:"./dist/local-config.js"},"./diagnostics":{types:"./dist/diagnostics.d.ts",import:"./dist/diagnostics.js",default:"./dist/diagnostics.js"},"./recovery":{types:"./dist/recovery.d.ts",import:"./dist/recovery.js",default:"./dist/recovery.js"},"./doctor":{types:"./dist/doctor.d.ts",import:"./dist/doctor.js",default:"./dist/doctor.js"},"./docs":{types:"./dist/docs.d.ts",import:"./dist/docs.js",default:"./dist/docs.js"},"./connectors/slack":{types:"./dist/connectors/slack.d.ts",import:"./dist/connectors/slack.js",default:"./dist/connectors/slack.js"},"./connectors/discord":{types:"./dist/connectors/discord.d.ts",import:"./dist/connectors/discord.js",default:"./dist/connectors/discord.js"},"./connectors/gh":{types:"./dist/connectors/gh.d.ts",import:"./dist/connectors/gh.js",default:"./dist/connectors/gh.js"},"./connectors/schedule":{types:"./dist/connectors/schedule.d.ts",import:"./dist/connectors/schedule.js",default:"./dist/connectors/schedule.js"},"./logger":{types:"./dist/logger.d.ts",import:"./dist/logger.js",default:"./dist/logger.js"},"./channel":{types:"./dist/channel.d.ts",import:"./dist/channel.js",default:"./dist/channel.js"},"./bin":"./dist/bin.js","./package.json":"./package.json"},publishConfig:{access:"public"},scripts:{prepack:"make build"},dependencies:{"@hono/zod-validator":"0.8.0","@interactive-inc/flume":"^0.10.0","@modelcontextprotocol/sdk":"^1.29.0",hono:"^4.12.19",yaml:"^2.9.0",zod:"^4.4.3"},devDependencies:{"@types/bun":"^1.3.14","@typescript/native-preview":"^7.0.0-dev.20260516.1","vite-plus":"^0.1.21",vitest:"^4.1.8"},engines:{bun:">=1.3.0"}};var e=class extends Error{res;status;constructor($=500,v){super(v?.message,{cause:v?.cause});this.res=v?.res,this.status=$}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var H={};e$(H,{xor:()=>IN,xid:()=>Sj,void:()=>ej,uuidv7:()=>Lj,uuidv6:()=>Vj,uuidv4:()=>Yj,uuid:()=>Qj,util:()=>R,url:()=>Kj,uppercase:()=>GU,unknown:()=>Kb,union:()=>iw,undefined:()=>pj,ulid:()=>Nj,uint64:()=>tj,uint32:()=>mj,tuple:()=>Rz,trim:()=>VU,treeifyError:()=>NG,transform:()=>lw,toUpperCase:()=>KU,toLowerCase:()=>LU,toJSONSchema:()=>Gw,templateLiteral:()=>VN,symbol:()=>dj,superRefine:()=>JQ,success:()=>HN,stringbool:()=>NN,stringFormat:()=>Cj,string:()=>L1,strictObject:()=>bN,startsWith:()=>HU,slugify:()=>qU,size:()=>Yb,setErrorMap:()=>Om,set:()=>JN,safeParseAsync:()=>Jz,safeParse:()=>gz,safeEncodeAsync:()=>Qz,safeEncode:()=>Hz,safeDecodeAsync:()=>Yz,safeDecode:()=>zz,registry:()=>ru,regexes:()=>yv,regex:()=>XU,refine:()=>gQ,record:()=>nz,readonly:()=>bQ,property:()=>gw,promise:()=>LN,prettifyError:()=>SG,preprocess:()=>MN,prefault:()=>tz,positive:()=>Iw,pipe:()=>Lw,partialRecord:()=>uN,parseAsync:()=>wz,parse:()=>uz,overwrite:()=>w4,optional:()=>q1,object:()=>vN,number:()=>Lz,nullish:()=>ON,nullable:()=>B1,null:()=>Pz,normalize:()=>YU,nonpositive:()=>uw,nonoptional:()=>dz,nonnegative:()=>ww,never:()=>Cw,negative:()=>Dw,nativeEnum:()=>XN,nanoid:()=>Aj,nan:()=>zN,multipleOf:()=>j6,minSize:()=>M4,minLength:()=>m4,mime:()=>QU,meta:()=>PN,maxSize:()=>N6,maxLength:()=>Vb,map:()=>gN,mac:()=>Fj,lte:()=>hv,lt:()=>N4,lowercase:()=>WU,looseRecord:()=>wN,looseObject:()=>UN,locales:()=>z1,literal:()=>WN,length:()=>Lb,lazy:()=>DQ,ksuid:()=>Mj,keyof:()=>$N,jwt:()=>rj,json:()=>SN,iso:()=>PU,ipv6:()=>Zj,ipv4:()=>_j,invertCodec:()=>YN,intersection:()=>kz,int64:()=>oj,int32:()=>hj,int:()=>Vw,instanceof:()=>jN,includes:()=>OU,httpUrl:()=>qj,hostname:()=>ij,hex:()=>xj,hash:()=>lj,guid:()=>zj,gte:()=>qv,gt:()=>S4,globalRegistry:()=>Dv,getErrorMap:()=>Hm,function:()=>KN,fromJSONSchema:()=>FN,formatError:()=>I1,float64:()=>yj,float32:()=>fj,flattenError:()=>U1,file:()=>GN,exactOptional:()=>yz,enum:()=>xw,endsWith:()=>zU,encodeAsync:()=>Gz,encode:()=>Xz,emoji:()=>Bj,email:()=>Hj,e164:()=>nj,discriminatedUnion:()=>DN,describe:()=>AN,decodeAsync:()=>Oz,decode:()=>Wz,date:()=>sj,custom:()=>BN,cuid2:()=>jj,cuid:()=>Pj,core:()=>c4,config:()=>c$,coerce:()=>WQ,codec:()=>QN,clone:()=>Lv,cidrv6:()=>kj,cidrv4:()=>Tj,check:()=>qN,catch:()=>ez,boolean:()=>Kz,bigint:()=>cj,base64url:()=>Rj,base64:()=>Ej,array:()=>N1,any:()=>aj,_function:()=>KN,_default:()=>cz,_ZodString:()=>Kw,ZodXor:()=>Fz,ZodXID:()=>Sw,ZodVoid:()=>Mz,ZodUnknown:()=>Nz,ZodUnion:()=>M1,ZodUndefined:()=>Bz,ZodUUID:()=>_4,ZodURL:()=>P1,ZodULID:()=>Nw,ZodType:()=>U$,ZodTuple:()=>Ez,ZodTransform:()=>lz,ZodTemplateLiteral:()=>UQ,ZodSymbol:()=>qz,ZodSuccess:()=>pz,ZodStringFormat:()=>j$,ZodString:()=>SU,ZodSet:()=>Cz,ZodRecord:()=>jU,ZodRealError:()=>kv,ZodReadonly:()=>vQ,ZodPromise:()=>uQ,ZodPreprocess:()=>$Q,ZodPrefault:()=>oz,ZodPipe:()=>_1,ZodOptional:()=>fw,ZodObject:()=>S1,ZodNumberFormat:()=>qb,ZodNumber:()=>_U,ZodNullable:()=>hz,ZodNull:()=>Az,ZodNonOptional:()=>yw,ZodNever:()=>Sz,ZodNanoID:()=>Aw,ZodNaN:()=>sz,ZodMap:()=>rz,ZodMAC:()=>Vz,ZodLiteral:()=>iz,ZodLazy:()=>IQ,ZodKSUID:()=>Mw,ZodJWT:()=>nw,ZodIssueCode:()=>Gm,ZodIntersection:()=>Tz,ZodISOTime:()=>Qw,ZodISODuration:()=>Yw,ZodISODateTime:()=>Hw,ZodISODate:()=>zw,ZodIPv6:()=>Fw,ZodIPv4:()=>_w,ZodGUID:()=>K1,ZodFunction:()=>wQ,ZodFirstPartyTypeKind:()=>XQ,ZodFile:()=>xz,ZodExactOptional:()=>fz,ZodError:()=>Xm,ZodEnum:()=>NU,ZodEmoji:()=>Bw,ZodEmail:()=>qw,ZodE164:()=>Rw,ZodDiscriminatedUnion:()=>Zz,ZodDefault:()=>mz,ZodDate:()=>j1,ZodCustomStringFormat:()=>MU,ZodCustom:()=>Z1,ZodCodec:()=>F1,ZodCatch:()=>az,ZodCUID2:()=>jw,ZodCUID:()=>Pw,ZodCIDRv6:()=>Tw,ZodCIDRv4:()=>Zw,ZodBoolean:()=>FU,ZodBigIntFormat:()=>rw,ZodBigInt:()=>ZU,ZodBase64URL:()=>Ew,ZodBase64:()=>kw,ZodArray:()=>_z,ZodAny:()=>jz,TimePrecision:()=>RH,NEVER:()=>HG,$output:()=>_H,$input:()=>FH,$brand:()=>zG});var c4={};e$(c4,{version:()=>A9,util:()=>R,treeifyError:()=>NG,toJSONSchema:()=>Gw,toDotPath:()=>kP,safeParseAsync:()=>_G,safeParse:()=>MG,safeEncodeAsync:()=>Gy,safeEncode:()=>Xy,safeDecodeAsync:()=>Oy,safeDecode:()=>Wy,registry:()=>ru,regexes:()=>yv,process:()=>q$,prettifyError:()=>SG,parseAsync:()=>zu,parse:()=>Hu,meta:()=>z8,locales:()=>z1,isValidJWT:()=>vj,isValidBase64URL:()=>$j,isValidBase64:()=>m9,initializeContext:()=>S6,globalRegistry:()=>Dv,globalConfig:()=>Gb,formatError:()=>I1,flattenError:()=>U1,finalize:()=>_6,extractDefs:()=>M6,encodeAsync:()=>gy,encode:()=>uy,describe:()=>H8,decodeAsync:()=>Jy,decode:()=>wy,createToJSONSchemaMethod:()=>Y8,createStandardJSONSchemaMethod:()=>AU,config:()=>c$,clone:()=>Lv,_xor:()=>xh,_xid:()=>tu,_void:()=>D8,_uuidv7:()=>fu,_uuidv6:()=>lu,_uuidv4:()=>xu,_uuid:()=>iu,_url:()=>Y1,_uppercase:()=>GU,_unknown:()=>U8,_union:()=>ih,_undefined:()=>$8,_ulid:()=>ou,_uint64:()=>eH,_uint32:()=>cH,_tuple:()=>yh,_trim:()=>VU,_transform:()=>ph,_toUpperCase:()=>KU,_toLowerCase:()=>LU,_templateLiteral:()=>Dm,_symbol:()=>sH,_superRefine:()=>O8,_success:()=>vm,_stringbool:()=>Q8,_stringFormat:()=>BU,_string:()=>TH,_startsWith:()=>HU,_slugify:()=>qU,_size:()=>Yb,_set:()=>ch,_safeParseAsync:()=>wU,_safeParse:()=>uU,_safeEncodeAsync:()=>Bu,_safeEncode:()=>Ku,_safeDecodeAsync:()=>Au,_safeDecode:()=>qu,_regex:()=>XU,_refine:()=>G8,_record:()=>hh,_readonly:()=>Im,_property:()=>gw,_promise:()=>wm,_positive:()=>Iw,_pipe:()=>Um,_parseAsync:()=>DU,_parse:()=>IU,_overwrite:()=>w4,_optional:()=>ah,_number:()=>xH,_nullable:()=>eh,_null:()=>v8,_normalize:()=>YU,_nonpositive:()=>uw,_nonoptional:()=>$m,_nonnegative:()=>ww,_never:()=>I8,_negative:()=>Dw,_nativeEnum:()=>th,_nanoid:()=>hu,_nan:()=>g8,_multipleOf:()=>j6,_minSize:()=>M4,_minLength:()=>m4,_min:()=>qv,_mime:()=>QU,_maxSize:()=>N6,_maxLength:()=>Vb,_max:()=>hv,_map:()=>mh,_mac:()=>EH,_lte:()=>hv,_lt:()=>N4,_lowercase:()=>WU,_literal:()=>dh,_length:()=>Lb,_lazy:()=>um,_ksuid:()=>du,_jwt:()=>Uw,_isoTime:()=>CH,_isoDuration:()=>iH,_isoDateTime:()=>nH,_isoDate:()=>rH,_ipv6:()=>au,_ipv4:()=>pu,_intersection:()=>fh,_int64:()=>aH,_int32:()=>mH,_int:()=>fH,_includes:()=>OU,_guid:()=>Q1,_gte:()=>qv,_gt:()=>S4,_float64:()=>hH,_float32:()=>yH,_file:()=>X8,_enum:()=>oh,_endsWith:()=>zU,_encodeAsync:()=>Vu,_encode:()=>Qu,_emoji:()=>yu,_email:()=>Cu,_e164:()=>bw,_discriminatedUnion:()=>lh,_default:()=>sh,_decodeAsync:()=>Lu,_decode:()=>Yu,_date:()=>u8,_custom:()=>W8,_cuid2:()=>cu,_cuid:()=>mu,_coercedString:()=>kH,_coercedNumber:()=>lH,_coercedDate:()=>w8,_coercedBoolean:()=>tH,_coercedBigint:()=>pH,_cidrv6:()=>su,_cidrv4:()=>eu,_check:()=>Xj,_catch:()=>bm,_boolean:()=>oH,_bigint:()=>dH,_base64url:()=>vw,_base64:()=>$w,_array:()=>J8,_any:()=>b8,TimePrecision:()=>RH,NEVER:()=>HG,JSONSchemaGenerator:()=>vz,JSONSchema:()=>Wj,Doc:()=>Su,$output:()=>_H,$input:()=>FH,$constructor:()=>V,$brand:()=>zG,$ZodXor:()=>JO,$ZodXID:()=>E9,$ZodVoid:()=>DO,$ZodUnknown:()=>UO,$ZodUnion:()=>J1,$ZodUndefined:()=>$O,$ZodUUID:()=>N9,$ZodURL:()=>M9,$ZodULID:()=>k9,$ZodType:()=>$$,$ZodTuple:()=>Eu,$ZodTransform:()=>VO,$ZodTemplateLiteral:()=>_O,$ZodSymbol:()=>s9,$ZodSuccess:()=>PO,$ZodStringFormat:()=>P$,$ZodString:()=>Qb,$ZodSet:()=>HO,$ZodRegistry:()=>ZH,$ZodRecord:()=>GO,$ZodRealError:()=>Tv,$ZodReadonly:()=>MO,$ZodPromise:()=>ZO,$ZodPreprocess:()=>SO,$ZodPrefault:()=>BO,$ZodPipe:()=>nu,$ZodOptional:()=>Ru,$ZodObjectJIT:()=>gO,$ZodObject:()=>Ij,$ZodNumberFormat:()=>a9,$ZodNumber:()=>Tu,$ZodNullable:()=>KO,$ZodNull:()=>vO,$ZodNonOptional:()=>AO,$ZodNever:()=>IO,$ZodNanoID:()=>F9,$ZodNaN:()=>NO,$ZodMap:()=>OO,$ZodMAC:()=>f9,$ZodLiteral:()=>QO,$ZodLazy:()=>TO,$ZodKSUID:()=>R9,$ZodJWT:()=>d9,$ZodIntersection:()=>WO,$ZodISOTime:()=>C9,$ZodISODuration:()=>i9,$ZodISODateTime:()=>n9,$ZodISODate:()=>r9,$ZodIPv6:()=>l9,$ZodIPv4:()=>x9,$ZodGUID:()=>j9,$ZodFunction:()=>FO,$ZodFile:()=>YO,$ZodExactOptional:()=>LO,$ZodError:()=>b1,$ZodEnum:()=>zO,$ZodEncodeError:()=>Ob,$ZodEmoji:()=>_9,$ZodEmail:()=>S9,$ZodE164:()=>t9,$ZodDiscriminatedUnion:()=>XO,$ZodDefault:()=>qO,$ZodDate:()=>uO,$ZodCustomStringFormat:()=>p9,$ZodCustom:()=>kO,$ZodCodec:()=>X1,$ZodCheckUpperCase:()=>Q9,$ZodCheckStringFormat:()=>gU,$ZodCheckStartsWith:()=>V9,$ZodCheckSizeEquals:()=>X9,$ZodCheckRegex:()=>H9,$ZodCheckProperty:()=>K9,$ZodCheckOverwrite:()=>B9,$ZodCheckNumberFormat:()=>u9,$ZodCheckMultipleOf:()=>D9,$ZodCheckMinSize:()=>J9,$ZodCheckMinLength:()=>G9,$ZodCheckMimeType:()=>q9,$ZodCheckMaxSize:()=>g9,$ZodCheckMaxLength:()=>W9,$ZodCheckLowerCase:()=>z9,$ZodCheckLessThan:()=>ju,$ZodCheckLengthEquals:()=>O9,$ZodCheckIncludes:()=>Y9,$ZodCheckGreaterThan:()=>Nu,$ZodCheckEndsWith:()=>L9,$ZodCheckBigIntFormat:()=>w9,$ZodCheck:()=>M$,$ZodCatch:()=>jO,$ZodCUID2:()=>T9,$ZodCUID:()=>Z9,$ZodCIDRv6:()=>h9,$ZodCIDRv4:()=>y9,$ZodBoolean:()=>g1,$ZodBigIntFormat:()=>e9,$ZodBigInt:()=>ku,$ZodBase64URL:()=>o9,$ZodBase64:()=>c9,$ZodAsyncError:()=>j4,$ZodArray:()=>wO,$ZodAny:()=>bO});var SP,HG=Object.freeze({status:"aborted"});function V($,v,U){function I(w,g){if(!w._zod)Object.defineProperty(w,"_zod",{value:{def:g,constr:u,traits:new Set},enumerable:!1});if(w._zod.traits.has($))return;w._zod.traits.add($),v(w,g);let J=u.prototype,X=Object.keys(J);for(let W=0;W<X.length;W++){let G=X[W];if(!(G in w))w[G]=J[G].bind(w)}}let b=U?.Parent??Object;class D extends b{}Object.defineProperty(D,"name",{value:$});function u(w){var g;let J=U?.Parent?new D:this;I(J,w),(g=J._zod).deferred??(g.deferred=[]);for(let X of J._zod.deferred)X();return J}return Object.defineProperty(u,"init",{value:I}),Object.defineProperty(u,Symbol.hasInstance,{value:(w)=>{if(U?.Parent&&w instanceof U.Parent)return!0;return w?._zod?.traits?.has($)}}),Object.defineProperty(u,"name",{value:$}),u}var zG=Symbol("zod_brand");class j4 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Ob extends Error{constructor($){super(`Encountered unidirectional transform during encode: ${$}`);this.name="ZodEncodeError"}}(SP=globalThis).__zod_globalConfig??(SP.__zod_globalConfig={});var Gb=globalThis.__zod_globalConfig;function c$($){if($)Object.assign(Gb,$);return Gb}var R={};e$(R,{unwrapMessage:()=>pI,uint8ArrayToHex:()=>Iy,uint8ArrayToBase64url:()=>by,uint8ArrayToBase64:()=>FP,stringifyPrimitive:()=>Z,slugify:()=>VG,shallowClone:()=>KG,safeExtend:()=>pf,required:()=>sf,randomString:()=>yf,propertyKeyTypes:()=>sI,promiseAllObject:()=>ff,primitiveTypes:()=>qG,prefixIssues:()=>Zv,pick:()=>of,partial:()=>ef,parsedType:()=>k,optionalKeys:()=>BG,omit:()=>tf,objectClone:()=>Cf,numKeys:()=>hf,nullish:()=>q6,normalizeParams:()=>r,mergeDefs:()=>h4,merge:()=>af,jsonStringifyReplacer:()=>vU,joinValues:()=>q,issue:()=>UU,isPlainObject:()=>A6,isObject:()=>Hb,hexToUint8Array:()=>Uy,getSizableOrigin:()=>$1,getParsedType:()=>mf,getLengthableOrigin:()=>v1,getEnumValues:()=>aI,getElementAtPath:()=>lf,floatSafeRemainder:()=>YG,finalizeIssue:()=>Kv,extend:()=>df,explicitlyAborted:()=>jG,escapeRegex:()=>av,esc:()=>Gu,defineLazy:()=>g$,createTransparentProxy:()=>cf,cloneDef:()=>xf,clone:()=>Lv,cleanRegex:()=>eI,cleanEnum:()=>$y,captureStackTrace:()=>Ou,cached:()=>bU,base64urlToUint8Array:()=>vy,base64ToUint8Array:()=>_P,assignProp:()=>B6,assertNotEqual:()=>Ef,assertNever:()=>nf,assertIs:()=>Rf,assertEqual:()=>kf,assert:()=>rf,allowsEval:()=>LG,aborted:()=>P6,NUMBER_FORMAT_RANGES:()=>AG,Class:()=>ZP,BIGINT_FORMAT_RANGES:()=>PG});function kf($){return $}function Ef($){return $}function Rf($){}function nf($){throw Error("Unexpected value in exhaustive check")}function rf($){}function aI($){let v=Object.values($).filter((I)=>typeof I==="number");return Object.entries($).filter(([I,b])=>v.indexOf(+I)===-1).map(([I,b])=>b)}function q($,v="|"){return $.map((U)=>Z(U)).join(v)}function vU($,v){if(typeof v==="bigint")return v.toString();return v}function bU($){return{get value(){{let U=$();return Object.defineProperty(this,"value",{value:U}),U}throw Error("cached value already set")}}}function q6($){return $===null||$===void 0}function eI($){let v=$.startsWith("^")?1:0,U=$.endsWith("$")?$.length-1:$.length;return $.slice(v,U)}function YG($,v){let U=$/v,I=Math.round(U),b=Number.EPSILON*Math.max(Math.abs(U),1);if(Math.abs(U-I)<b)return 0;return U-I}var MP=Symbol("evaluating");function g$($,v,U){let I=void 0;Object.defineProperty($,v,{get(){if(I===MP)return;if(I===void 0)I=MP,I=U();return I},set(b){Object.defineProperty($,v,{value:b})},configurable:!0})}function Cf($){return Object.create(Object.getPrototypeOf($),Object.getOwnPropertyDescriptors($))}function B6($,v,U){Object.defineProperty($,v,{value:U,writable:!0,enumerable:!0,configurable:!0})}function h4(...$){let v={};for(let U of $){let I=Object.getOwnPropertyDescriptors(U);Object.assign(v,I)}return Object.defineProperties({},v)}function xf($){return h4($._zod.def)}function lf($,v){if(!v)return $;return v.reduce((U,I)=>U?.[I],$)}function ff($){let v=Object.keys($),U=v.map((I)=>$[I]);return Promise.all(U).then((I)=>{let b={};for(let D=0;D<v.length;D++)b[v[D]]=I[D];return b})}function yf($=10){let U="";for(let I=0;I<$;I++)U+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return U}function Gu($){return JSON.stringify($)}function VG($){return $.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ou="captureStackTrace"in Error?Error.captureStackTrace:(...$)=>{};function Hb($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var LG=bU(()=>{if(Gb.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch($){return!1}});function A6($){if(Hb($)===!1)return!1;let v=$.constructor;if(v===void 0)return!0;if(typeof v!=="function")return!0;let U=v.prototype;if(Hb(U)===!1)return!1;if(Object.prototype.hasOwnProperty.call(U,"isPrototypeOf")===!1)return!1;return!0}function KG($){if(A6($))return{...$};if(Array.isArray($))return[...$];if($ instanceof Map)return new Map($);if($ instanceof Set)return new Set($);return $}function hf($){let v=0;for(let U in $)if(Object.prototype.hasOwnProperty.call($,U))v++;return v}var mf=($)=>{let v=typeof $;switch(v){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN($)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray($))return"array";if($===null)return"null";if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return"promise";if(typeof Map<"u"&&$ instanceof Map)return"map";if(typeof Set<"u"&&$ instanceof Set)return"set";if(typeof Date<"u"&&$ instanceof Date)return"date";if(typeof File<"u"&&$ instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${v}`)}},sI=new Set(["string","number","symbol"]),qG=new Set(["string","number","bigint","boolean","symbol","undefined"]);function av($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Lv($,v,U){let I=new $._zod.constr(v??$._zod.def);if(!v||U?.parent)I._zod.parent=$;return I}function r($){let v=$;if(!v)return{};if(typeof v==="string")return{error:()=>v};if(v?.message!==void 0){if(v?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");v.error=v.message}if(delete v.message,typeof v.error==="string")return{...v,error:()=>v.error};return v}function cf($){let v;return new Proxy({},{get(U,I,b){return v??(v=$()),Reflect.get(v,I,b)},set(U,I,b,D){return v??(v=$()),Reflect.set(v,I,b,D)},has(U,I){return v??(v=$()),Reflect.has(v,I)},deleteProperty(U,I){return v??(v=$()),Reflect.deleteProperty(v,I)},ownKeys(U){return v??(v=$()),Reflect.ownKeys(v)},getOwnPropertyDescriptor(U,I){return v??(v=$()),Reflect.getOwnPropertyDescriptor(v,I)},defineProperty(U,I,b){return v??(v=$()),Reflect.defineProperty(v,I,b)}})}function Z($){if(typeof $==="bigint")return $.toString()+"n";if(typeof $==="string")return`"${$}"`;return`${$}`}function BG($){return Object.keys($).filter((v)=>{return $[v]._zod.optin==="optional"&&$[v]._zod.optout==="optional"})}var AG={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},PG={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function of($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let D=h4($._zod.def,{get shape(){let u={};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;u[w]=U.shape[w]}return B6(this,"shape",u),u},checks:[]});return Lv($,D)}function tf($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let D=h4($._zod.def,{get shape(){let u={...$._zod.def.shape};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;delete u[w]}return B6(this,"shape",u),u},checks:[]});return Lv($,D)}function df($,v){if(!A6(v))throw Error("Invalid input to extend: expected a plain object");let U=$._zod.def.checks;if(U&&U.length>0){let D=$._zod.def.shape;for(let u in v)if(Object.getOwnPropertyDescriptor(D,u)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let b=h4($._zod.def,{get shape(){let D={...$._zod.def.shape,...v};return B6(this,"shape",D),D}});return Lv($,b)}function pf($,v){if(!A6(v))throw Error("Invalid input to safeExtend: expected a plain object");let U=h4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v};return B6(this,"shape",I),I}});return Lv($,U)}function af($,v){if($._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let U=h4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v._zod.def.shape};return B6(this,"shape",I),I},get catchall(){return v._zod.def.catchall},checks:v._zod.def.checks??[]});return Lv($,U)}function ef($,v,U){let b=v._zod.def.checks;if(b&&b.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let u=h4(v._zod.def,{get shape(){let w=v._zod.def.shape,g={...w};if(U)for(let J in U){if(!(J in w))throw Error(`Unrecognized key: "${J}"`);if(!U[J])continue;g[J]=$?new $({type:"optional",innerType:w[J]}):w[J]}else for(let J in w)g[J]=$?new $({type:"optional",innerType:w[J]}):w[J];return B6(this,"shape",g),g},checks:[]});return Lv(v,u)}function sf($,v,U){let I=h4(v._zod.def,{get shape(){let b=v._zod.def.shape,D={...b};if(U)for(let u in U){if(!(u in D))throw Error(`Unrecognized key: "${u}"`);if(!U[u])continue;D[u]=new $({type:"nonoptional",innerType:b[u]})}else for(let u in b)D[u]=new $({type:"nonoptional",innerType:b[u]});return B6(this,"shape",D),D}});return Lv(v,I)}function P6($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue!==!0)return!0;return!1}function jG($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue===!1)return!0;return!1}function Zv($,v){return v.map((U)=>{var I;return(I=U).path??(I.path=[]),U.path.unshift($),U})}function pI($){return typeof $==="string"?$:$?.message}function Kv($,v,U){let I=$.message?$.message:pI($.inst?._zod.def?.error?.($))??pI(v?.error?.($))??pI(U.customError?.($))??pI(U.localeError?.($))??"Invalid input",{inst:b,continue:D,input:u,...w}=$;if(w.path??(w.path=[]),w.message=I,v?.reportInput)w.input=u;return w}function $1($){if($ instanceof Set)return"set";if($ instanceof Map)return"map";if($ instanceof File)return"file";return"unknown"}function v1($){if(Array.isArray($))return"array";if(typeof $==="string")return"string";return"unknown"}function k($){let v=typeof $;switch(v){case"number":return Number.isNaN($)?"nan":"number";case"object":{if($===null)return"null";if(Array.isArray($))return"array";let U=$;if(U&&Object.getPrototypeOf(U)!==Object.prototype&&"constructor"in U&&U.constructor)return U.constructor.name}}return v}function UU(...$){let[v,U,I]=$;if(typeof v==="string")return{message:v,code:"custom",input:U,inst:I};return{...v}}function $y($){return Object.entries($).filter(([v,U])=>{return Number.isNaN(Number.parseInt(v,10))}).map((v)=>v[1])}function _P($){let v=atob($),U=new Uint8Array(v.length);for(let I=0;I<v.length;I++)U[I]=v.charCodeAt(I);return U}function FP($){let v="";for(let U=0;U<$.length;U++)v+=String.fromCharCode($[U]);return btoa(v)}function vy($){let v=$.replace(/-/g,"+").replace(/_/g,"/"),U="=".repeat((4-v.length%4)%4);return _P(v+U)}function by($){return FP($).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Uy($){let v=$.replace(/^0x/,"");if(v.length%2!==0)throw Error("Invalid hex string length");let U=new Uint8Array(v.length/2);for(let I=0;I<v.length;I+=2)U[I/2]=Number.parseInt(v.slice(I,I+2),16);return U}function Iy($){return Array.from($).map((v)=>v.toString(16).padStart(2,"0")).join("")}class ZP{constructor(...$){}}var TP=($,v)=>{$.name="$ZodError",Object.defineProperty($,"_zod",{value:$._zod,enumerable:!1}),Object.defineProperty($,"issues",{value:v,enumerable:!1}),$.message=JSON.stringify(v,vU,2),Object.defineProperty($,"toString",{value:()=>$.message,enumerable:!1})},b1=V("$ZodError",TP),Tv=V("$ZodError",TP,{Parent:Error});function U1($,v=(U)=>U.message){let U={},I=[];for(let b of $.issues)if(b.path.length>0)U[b.path[0]]=U[b.path[0]]||[],U[b.path[0]].push(v(b));else I.push(v(b));return{formErrors:I,fieldErrors:U}}function I1($,v=(U)=>U.message){let U={_errors:[]},I=(b,D=[])=>{for(let u of b.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map((w)=>I({issues:w},[...D,...u.path]));else if(u.code==="invalid_key")I({issues:u.issues},[...D,...u.path]);else if(u.code==="invalid_element")I({issues:u.issues},[...D,...u.path]);else{let w=[...D,...u.path];if(w.length===0)U._errors.push(v(u));else{let g=U,J=0;while(J<w.length){let X=w[J];if(J!==w.length-1)g[X]=g[X]||{_errors:[]};else g[X]=g[X]||{_errors:[]},g[X]._errors.push(v(u));g=g[X],J++}}}};return I($),U}function NG($,v=(U)=>U.message){let U={errors:[]},I=(b,D=[])=>{var u,w;for(let g of b.issues)if(g.code==="invalid_union"&&g.errors.length)g.errors.map((J)=>I({issues:J},[...D,...g.path]));else if(g.code==="invalid_key")I({issues:g.issues},[...D,...g.path]);else if(g.code==="invalid_element")I({issues:g.issues},[...D,...g.path]);else{let J=[...D,...g.path];if(J.length===0){U.errors.push(v(g));continue}let X=U,W=0;while(W<J.length){let G=J[W],O=W===J.length-1;if(typeof G==="string")X.properties??(X.properties={}),(u=X.properties)[G]??(u[G]={errors:[]}),X=X.properties[G];else X.items??(X.items=[]),(w=X.items)[G]??(w[G]={errors:[]}),X=X.items[G];if(O)X.errors.push(v(g));W++}}};return I($),U}function kP($){let v=[],U=$.map((I)=>typeof I==="object"?I.key:I);for(let I of U)if(typeof I==="number")v.push(`[${I}]`);else if(typeof I==="symbol")v.push(`[${JSON.stringify(String(I))}]`);else if(/[^\w$]/.test(I))v.push(`[${JSON.stringify(I)}]`);else{if(v.length)v.push(".");v.push(I)}return v.join("")}function SG($){let v=[],U=[...$.issues].sort((I,b)=>(I.path??[]).length-(b.path??[]).length);for(let I of U)if(v.push(`\u2716 ${I.message}`),I.path?.length)v.push(` \u2192 at ${kP(I.path)}`);return v.join(`
|
|
149
149
|
`)}var IU=($)=>(v,U,I,b)=>{let D=I?{...I,async:!1}:{async:!1},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)throw new j4;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>Kv(g,D,c$())));throw Ou(w,b?.callee),w}return u.value},Hu=IU(Tv),DU=($)=>async(v,U,I,b)=>{let D=I?{...I,async:!0}:{async:!0},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)u=await u;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>Kv(g,D,c$())));throw Ou(w,b?.callee),w}return u.value},zu=DU(Tv),uU=($)=>(v,U,I)=>{let b=I?{...I,async:!1}:{async:!1},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)throw new j4;return D.issues.length?{success:!1,error:new($??b1)(D.issues.map((u)=>Kv(u,b,c$())))}:{success:!0,data:D.value}},MG=uU(Tv),wU=($)=>async(v,U,I)=>{let b=I?{...I,async:!0}:{async:!0},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)D=await D;return D.issues.length?{success:!1,error:new $(D.issues.map((u)=>Kv(u,b,c$())))}:{success:!0,data:D.value}},_G=wU(Tv),Qu=($)=>(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return IU($)(v,U,b)},uy=Qu(Tv),Yu=($)=>(v,U,I)=>{return IU($)(v,U,I)},wy=Yu(Tv),Vu=($)=>async(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return DU($)(v,U,b)},gy=Vu(Tv),Lu=($)=>async(v,U,I)=>{return DU($)(v,U,I)},Jy=Lu(Tv),Ku=($)=>(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return uU($)(v,U,b)},Xy=Ku(Tv),qu=($)=>(v,U,I)=>{return uU($)(v,U,I)},Wy=qu(Tv),Bu=($)=>async(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return wU($)(v,U,b)},Gy=Bu(Tv),Au=($)=>async(v,U,I)=>{return wU($)(v,U,I)},Oy=Au(Tv);var yv={};e$(yv,{xid:()=>kG,uuid7:()=>Yy,uuid6:()=>Qy,uuid4:()=>zy,uuid:()=>zb,uppercase:()=>I9,unicodeEmail:()=>EP,undefined:()=>b9,ulid:()=>TG,time:()=>dG,string:()=>aG,sha512_hex:()=>Cy,sha512_base64url:()=>xy,sha512_base64:()=>iy,sha384_hex:()=>Ry,sha384_base64url:()=>ry,sha384_base64:()=>ny,sha256_hex:()=>Ty,sha256_base64url:()=>Ey,sha256_base64:()=>ky,sha1_hex:()=>_y,sha1_base64url:()=>Zy,sha1_base64:()=>Fy,rfc5322Email:()=>Ly,number:()=>D1,null:()=>v9,nanoid:()=>RG,md5_hex:()=>Ny,md5_base64url:()=>My,md5_base64:()=>Sy,mac:()=>fG,lowercase:()=>U9,ksuid:()=>EG,ipv6:()=>lG,ipv4:()=>xG,integer:()=>sG,idnEmail:()=>Ky,httpProtocol:()=>cG,html5Email:()=>Vy,hostname:()=>Ay,hex:()=>jy,guid:()=>rG,extendedDuration:()=>Hy,emoji:()=>iG,email:()=>CG,e164:()=>oG,duration:()=>nG,domain:()=>Py,datetime:()=>pG,date:()=>tG,cuid2:()=>ZG,cuid:()=>FG,cidrv6:()=>hG,cidrv4:()=>yG,browserEmail:()=>qy,boolean:()=>$9,bigint:()=>eG,base64url:()=>Pu,base64:()=>mG});var FG=/^[cC][0-9a-z]{6,}$/,ZG=/^[0-9a-z]+$/,TG=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,kG=/^[0-9a-vA-V]{20}$/,EG=/^[A-Za-z0-9]{27}$/,RG=/^[a-zA-Z0-9_-]{21}$/,nG=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Hy=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,rG=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,zb=($)=>{if(!$)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${$}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},zy=zb(4),Qy=zb(6),Yy=zb(7),CG=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Vy=/^[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])?)*$/,Ly=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,EP=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Ky=EP,qy=/^[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])?)*$/,By="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function iG(){return new RegExp(By,"u")}var xG=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,lG=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,fG=($)=>{let v=av($??":");return new RegExp(`^(?:[0-9A-F]{2}${v}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${v}){5}[0-9a-f]{2}$`)},yG=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,hG=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,mG=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Pu=/^[A-Za-z0-9_-]*$/,Ay=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Py=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,cG=/^https?$/,oG=/^\+[1-9]\d{6,14}$/,RP="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",tG=new RegExp(`^${RP}$`);function nP($){return typeof $.precision==="number"?$.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":$.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${$.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function dG($){return new RegExp(`^${nP($)}$`)}function pG($){let v=nP({precision:$.precision}),U=["Z"];if($.local)U.push("");if($.offset)U.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let I=`${v}(?:${U.join("|")})`;return new RegExp(`^${RP}T(?:${I})$`)}var aG=($)=>{let v=$?`[\\s\\S]{${$?.minimum??0},${$?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${v}$`)},eG=/^-?\d+n?$/,sG=/^-?\d+$/,D1=/^-?\d+(?:\.\d+)?$/,$9=/^(?:true|false)$/i,v9=/^null$/i;var b9=/^undefined$/i;var U9=/^[^A-Z]*$/,I9=/^[^a-z]*$/,jy=/^[0-9a-fA-F]*$/;function u1($,v){return new RegExp(`^[A-Za-z0-9+/]{${$}}${v}$`)}function w1($){return new RegExp(`^[A-Za-z0-9_-]{${$}}$`)}var Ny=/^[0-9a-fA-F]{32}$/,Sy=u1(22,"=="),My=w1(22),_y=/^[0-9a-fA-F]{40}$/,Fy=u1(27,"="),Zy=w1(27),Ty=/^[0-9a-fA-F]{64}$/,ky=u1(43,"="),Ey=w1(43),Ry=/^[0-9a-fA-F]{96}$/,ny=u1(64,""),ry=w1(64),Cy=/^[0-9a-fA-F]{128}$/,iy=u1(86,"=="),xy=w1(86);var M$=V("$ZodCheck",($,v)=>{var U;$._zod??($._zod={}),$._zod.def=v,(U=$._zod).onattach??(U.onattach=[])}),CP={number:"number",bigint:"bigint",object:"date"},ju=V("$ZodCheckLessThan",($,v)=>{M$.init($,v);let U=CP[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.maximum:b.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(v.value<D)if(v.inclusive)b.maximum=v.value;else b.exclusiveMaximum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value<=v.value:I.value<v.value)return;I.issues.push({origin:U,code:"too_big",maximum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),Nu=V("$ZodCheckGreaterThan",($,v)=>{M$.init($,v);let U=CP[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.minimum:b.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(v.value>D)if(v.inclusive)b.minimum=v.value;else b.exclusiveMinimum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value>=v.value:I.value>v.value)return;I.issues.push({origin:U,code:"too_small",minimum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),D9=V("$ZodCheckMultipleOf",($,v)=>{M$.init($,v),$._zod.onattach.push((U)=>{var I;(I=U._zod.bag).multipleOf??(I.multipleOf=v.value)}),$._zod.check=(U)=>{if(typeof U.value!==typeof v.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof U.value==="bigint"?U.value%v.value===BigInt(0):YG(U.value,v.value)===0)return;U.issues.push({origin:typeof U.value,code:"not_multiple_of",divisor:v.value,input:U.value,inst:$,continue:!v.abort})}}),u9=V("$ZodCheckNumberFormat",($,v)=>{M$.init($,v),v.format=v.format||"float64";let U=v.format?.includes("int"),I=U?"int":"number",[b,D]=AG[v.format];$._zod.onattach.push((u)=>{let w=u._zod.bag;if(w.format=v.format,w.minimum=b,w.maximum=D,U)w.pattern=sG}),$._zod.check=(u)=>{let w=u.value;if(U){if(!Number.isInteger(w)){u.issues.push({expected:I,format:v.format,code:"invalid_type",continue:!1,input:w,inst:$});return}if(!Number.isSafeInteger(w)){if(w>0)u.issues.push({input:w,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});else u.issues.push({input:w,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});return}}if(w<b)u.issues.push({origin:"number",input:w,code:"too_small",minimum:b,inclusive:!0,inst:$,continue:!v.abort});if(w>D)u.issues.push({origin:"number",input:w,code:"too_big",maximum:D,inclusive:!0,inst:$,continue:!v.abort})}}),w9=V("$ZodCheckBigIntFormat",($,v)=>{M$.init($,v);let[U,I]=PG[v.format];$._zod.onattach.push((b)=>{let D=b._zod.bag;D.format=v.format,D.minimum=U,D.maximum=I}),$._zod.check=(b)=>{let D=b.value;if(D<U)b.issues.push({origin:"bigint",input:D,code:"too_small",minimum:U,inclusive:!0,inst:$,continue:!v.abort});if(D>I)b.issues.push({origin:"bigint",input:D,code:"too_big",maximum:I,inclusive:!0,inst:$,continue:!v.abort})}}),g9=V("$ZodCheckMaxSize",($,v)=>{var U;M$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!q6(b)&&b.size!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.maximum??Number.POSITIVE_INFINITY;if(v.maximum<b)I._zod.bag.maximum=v.maximum}),$._zod.check=(I)=>{let b=I.value;if(b.size<=v.maximum)return;I.issues.push({origin:$1(b),code:"too_big",maximum:v.maximum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),J9=V("$ZodCheckMinSize",($,v)=>{var U;M$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!q6(b)&&b.size!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(v.minimum>b)I._zod.bag.minimum=v.minimum}),$._zod.check=(I)=>{let b=I.value;if(b.size>=v.minimum)return;I.issues.push({origin:$1(b),code:"too_small",minimum:v.minimum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),X9=V("$ZodCheckSizeEquals",($,v)=>{var U;M$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!q6(b)&&b.size!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.minimum=v.size,b.maximum=v.size,b.size=v.size}),$._zod.check=(I)=>{let b=I.value,D=b.size;if(D===v.size)return;let u=D>v.size;I.issues.push({origin:$1(b),...u?{code:"too_big",maximum:v.size}:{code:"too_small",minimum:v.size},inclusive:!0,exact:!0,input:I.value,inst:$,continue:!v.abort})}}),W9=V("$ZodCheckMaxLength",($,v)=>{var U;M$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!q6(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.maximum??Number.POSITIVE_INFINITY;if(v.maximum<b)I._zod.bag.maximum=v.maximum}),$._zod.check=(I)=>{let b=I.value;if(b.length<=v.maximum)return;let u=v1(b);I.issues.push({origin:u,code:"too_big",maximum:v.maximum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),G9=V("$ZodCheckMinLength",($,v)=>{var U;M$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!q6(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(v.minimum>b)I._zod.bag.minimum=v.minimum}),$._zod.check=(I)=>{let b=I.value;if(b.length>=v.minimum)return;let u=v1(b);I.issues.push({origin:u,code:"too_small",minimum:v.minimum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),O9=V("$ZodCheckLengthEquals",($,v)=>{var U;M$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!q6(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.minimum=v.length,b.maximum=v.length,b.length=v.length}),$._zod.check=(I)=>{let b=I.value,D=b.length;if(D===v.length)return;let u=v1(b),w=D>v.length;I.issues.push({origin:u,...w?{code:"too_big",maximum:v.length}:{code:"too_small",minimum:v.length},inclusive:!0,exact:!0,input:I.value,inst:$,continue:!v.abort})}}),gU=V("$ZodCheckStringFormat",($,v)=>{var U,I;if(M$.init($,v),$._zod.onattach.push((b)=>{let D=b._zod.bag;if(D.format=v.format,v.pattern)D.patterns??(D.patterns=new Set),D.patterns.add(v.pattern)}),v.pattern)(U=$._zod).check??(U.check=(b)=>{if(v.pattern.lastIndex=0,v.pattern.test(b.value))return;b.issues.push({origin:"string",code:"invalid_format",format:v.format,input:b.value,...v.pattern?{pattern:v.pattern.toString()}:{},inst:$,continue:!v.abort})});else(I=$._zod).check??(I.check=()=>{})}),H9=V("$ZodCheckRegex",($,v)=>{gU.init($,v),$._zod.check=(U)=>{if(v.pattern.lastIndex=0,v.pattern.test(U.value))return;U.issues.push({origin:"string",code:"invalid_format",format:"regex",input:U.value,pattern:v.pattern.toString(),inst:$,continue:!v.abort})}}),z9=V("$ZodCheckLowerCase",($,v)=>{v.pattern??(v.pattern=U9),gU.init($,v)}),Q9=V("$ZodCheckUpperCase",($,v)=>{v.pattern??(v.pattern=I9),gU.init($,v)}),Y9=V("$ZodCheckIncludes",($,v)=>{M$.init($,v);let U=av(v.includes),I=new RegExp(typeof v.position==="number"?`^.{${v.position}}${U}`:U);v.pattern=I,$._zod.onattach.push((b)=>{let D=b._zod.bag;D.patterns??(D.patterns=new Set),D.patterns.add(I)}),$._zod.check=(b)=>{if(b.value.includes(v.includes,v.position))return;b.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:v.includes,input:b.value,inst:$,continue:!v.abort})}}),V9=V("$ZodCheckStartsWith",($,v)=>{M$.init($,v);let U=new RegExp(`^${av(v.prefix)}.*`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.startsWith(v.prefix))return;I.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:v.prefix,input:I.value,inst:$,continue:!v.abort})}}),L9=V("$ZodCheckEndsWith",($,v)=>{M$.init($,v);let U=new RegExp(`.*${av(v.suffix)}$`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.endsWith(v.suffix))return;I.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:v.suffix,input:I.value,inst:$,continue:!v.abort})}});function rP($,v,U){if($.issues.length)v.issues.push(...Zv(U,$.issues))}var K9=V("$ZodCheckProperty",($,v)=>{M$.init($,v),$._zod.check=(U)=>{let I=v.schema._zod.run({value:U.value[v.property],issues:[]},{});if(I instanceof Promise)return I.then((b)=>rP(b,U,v.property));rP(I,U,v.property);return}}),q9=V("$ZodCheckMimeType",($,v)=>{M$.init($,v);let U=new Set(v.mime);$._zod.onattach.push((I)=>{I._zod.bag.mime=v.mime}),$._zod.check=(I)=>{if(U.has(I.value.type))return;I.issues.push({code:"invalid_value",values:v.mime,input:I.value.type,inst:$,continue:!v.abort})}}),B9=V("$ZodCheckOverwrite",($,v)=>{M$.init($,v),$._zod.check=(U)=>{U.value=v.tx(U.value)}});class Su{constructor($=[]){if(this.content=[],this.indent=0,this)this.args=$}indented($){this.indent+=1,$(this),this.indent-=1}write($){if(typeof $==="function"){$(this,{execution:"sync"}),$(this,{execution:"async"});return}let U=$.split(`
|
|
150
150
|
`).filter((D)=>D),I=Math.min(...U.map((D)=>D.length-D.trimStart().length)),b=U.map((D)=>D.slice(I)).map((D)=>" ".repeat(this.indent*2)+D);for(let D of b)this.content.push(D)}compile(){let $=Function,v=this?.args,I=[...(this?.content??[""]).map((b)=>` ${b}`)];return new $(...v,I.join(`
|
|
151
151
|
`))}}var A9={major:4,minor:4,patch:3};var $$=V("$ZodType",($,v)=>{var U;$??($={}),$._zod.def=v,$._zod.bag=$._zod.bag||{},$._zod.version=A9;let I=[...$._zod.def.checks??[]];if($._zod.traits.has("$ZodCheck"))I.unshift($);for(let b of I)for(let D of b._zod.onattach)D($);if(I.length===0)(U=$._zod).deferred??(U.deferred=[]),$._zod.deferred?.push(()=>{$._zod.run=$._zod.parse});else{let b=(u,w,g)=>{let J=P6(u),X;for(let W of w){if(W._zod.def.when){if(jG(u))continue;if(!W._zod.def.when(u))continue}else if(J)continue;let G=u.issues.length,O=W._zod.check(u);if(O instanceof Promise&&g?.async===!1)throw new j4;if(X||O instanceof Promise)X=(X??Promise.resolve()).then(async()=>{if(await O,u.issues.length===G)return;if(!J)J=P6(u,G)});else{if(u.issues.length===G)continue;if(!J)J=P6(u,G)}}if(X)return X.then(()=>{return u});return u},D=(u,w,g)=>{if(P6(u))return u.aborted=!0,u;let J=b(w,I,g);if(J instanceof Promise){if(g.async===!1)throw new j4;return J.then((X)=>$._zod.parse(X,g))}return $._zod.parse(J,g)};$._zod.run=(u,w)=>{if(w.skipChecks)return $._zod.parse(u,w);if(w.direction==="backward"){let J=$._zod.parse({value:u.value,issues:[]},{...w,skipChecks:!0});if(J instanceof Promise)return J.then((X)=>{return D(X,u,w)});return D(J,u,w)}let g=$._zod.parse(u,w);if(g instanceof Promise){if(w.async===!1)throw new j4;return g.then((J)=>b(J,I,w))}return b(g,I,w)}}g$($,"~standard",()=>({validate:(b)=>{try{let D=MG($,b);return D.success?{value:D.data}:{issues:D.error?.issues}}catch(D){return _G($,b).then((u)=>u.success?{value:u.data}:{issues:u.error?.issues})}},vendor:"zod",version:1}))}),Qb=V("$ZodString",($,v)=>{$$.init($,v),$._zod.pattern=[...$?._zod.bag?.patterns??[]].pop()??aG($._zod.bag),$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=String(U.value)}catch(b){}if(typeof U.value==="string")return U;return U.issues.push({expected:"string",code:"invalid_type",input:U.value,inst:$}),U}}),P$=V("$ZodStringFormat",($,v)=>{gU.init($,v),Qb.init($,v)}),j9=V("$ZodGUID",($,v)=>{v.pattern??(v.pattern=rG),P$.init($,v)}),N9=V("$ZodUUID",($,v)=>{if(v.version){let I={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[v.version];if(I===void 0)throw Error(`Invalid UUID version: "${v.version}"`);v.pattern??(v.pattern=zb(I))}else v.pattern??(v.pattern=zb());P$.init($,v)}),S9=V("$ZodEmail",($,v)=>{v.pattern??(v.pattern=CG),P$.init($,v)}),M9=V("$ZodURL",($,v)=>{P$.init($,v),$._zod.check=(U)=>{try{let I=U.value.trim();if(!v.normalize&&v.protocol?.source===cG.source){if(!/^https?:\/\//i.test(I)){U.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:U.value,inst:$,continue:!v.abort});return}}let b=new URL(I);if(v.hostname){if(v.hostname.lastIndex=0,!v.hostname.test(b.hostname))U.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:v.hostname.source,input:U.value,inst:$,continue:!v.abort})}if(v.protocol){if(v.protocol.lastIndex=0,!v.protocol.test(b.protocol.endsWith(":")?b.protocol.slice(0,-1):b.protocol))U.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:v.protocol.source,input:U.value,inst:$,continue:!v.abort})}if(v.normalize)U.value=b.href;else U.value=I;return}catch(I){U.issues.push({code:"invalid_format",format:"url",input:U.value,inst:$,continue:!v.abort})}}}),_9=V("$ZodEmoji",($,v)=>{v.pattern??(v.pattern=iG()),P$.init($,v)}),F9=V("$ZodNanoID",($,v)=>{v.pattern??(v.pattern=RG),P$.init($,v)}),Z9=V("$ZodCUID",($,v)=>{v.pattern??(v.pattern=FG),P$.init($,v)}),T9=V("$ZodCUID2",($,v)=>{v.pattern??(v.pattern=ZG),P$.init($,v)}),k9=V("$ZodULID",($,v)=>{v.pattern??(v.pattern=TG),P$.init($,v)}),E9=V("$ZodXID",($,v)=>{v.pattern??(v.pattern=kG),P$.init($,v)}),R9=V("$ZodKSUID",($,v)=>{v.pattern??(v.pattern=EG),P$.init($,v)}),n9=V("$ZodISODateTime",($,v)=>{v.pattern??(v.pattern=pG(v)),P$.init($,v)}),r9=V("$ZodISODate",($,v)=>{v.pattern??(v.pattern=tG),P$.init($,v)}),C9=V("$ZodISOTime",($,v)=>{v.pattern??(v.pattern=dG(v)),P$.init($,v)}),i9=V("$ZodISODuration",($,v)=>{v.pattern??(v.pattern=nG),P$.init($,v)}),x9=V("$ZodIPv4",($,v)=>{v.pattern??(v.pattern=xG),P$.init($,v),$._zod.bag.format="ipv4"}),l9=V("$ZodIPv6",($,v)=>{v.pattern??(v.pattern=lG),P$.init($,v),$._zod.bag.format="ipv6",$._zod.check=(U)=>{try{new URL(`http://[${U.value}]`)}catch{U.issues.push({code:"invalid_format",format:"ipv6",input:U.value,inst:$,continue:!v.abort})}}}),f9=V("$ZodMAC",($,v)=>{v.pattern??(v.pattern=fG(v.delimiter)),P$.init($,v),$._zod.bag.format="mac"}),y9=V("$ZodCIDRv4",($,v)=>{v.pattern??(v.pattern=yG),P$.init($,v)}),h9=V("$ZodCIDRv6",($,v)=>{v.pattern??(v.pattern=hG),P$.init($,v),$._zod.check=(U)=>{let I=U.value.split("/");try{if(I.length!==2)throw Error();let[b,D]=I;if(!D)throw Error();let u=Number(D);if(`${u}`!==D)throw Error();if(u<0||u>128)throw Error();new URL(`http://[${b}]`)}catch{U.issues.push({code:"invalid_format",format:"cidrv6",input:U.value,inst:$,continue:!v.abort})}}});function m9($){if($==="")return!0;if(/\s/.test($))return!1;if($.length%4!==0)return!1;try{return atob($),!0}catch{return!1}}var c9=V("$ZodBase64",($,v)=>{v.pattern??(v.pattern=mG),P$.init($,v),$._zod.bag.contentEncoding="base64",$._zod.check=(U)=>{if(m9(U.value))return;U.issues.push({code:"invalid_format",format:"base64",input:U.value,inst:$,continue:!v.abort})}});function $j($){if(!Pu.test($))return!1;let v=$.replace(/[-_]/g,(I)=>I==="-"?"+":"/"),U=v.padEnd(Math.ceil(v.length/4)*4,"=");return m9(U)}var o9=V("$ZodBase64URL",($,v)=>{v.pattern??(v.pattern=Pu),P$.init($,v),$._zod.bag.contentEncoding="base64url",$._zod.check=(U)=>{if($j(U.value))return;U.issues.push({code:"invalid_format",format:"base64url",input:U.value,inst:$,continue:!v.abort})}}),t9=V("$ZodE164",($,v)=>{v.pattern??(v.pattern=oG),P$.init($,v)});function vj($,v=null){try{let U=$.split(".");if(U.length!==3)return!1;let[I]=U;if(!I)return!1;let b=JSON.parse(atob(I));if("typ"in b&&b?.typ!=="JWT")return!1;if(!b.alg)return!1;if(v&&(!("alg"in b)||b.alg!==v))return!1;return!0}catch{return!1}}var d9=V("$ZodJWT",($,v)=>{P$.init($,v),$._zod.check=(U)=>{if(vj(U.value,v.alg))return;U.issues.push({code:"invalid_format",format:"jwt",input:U.value,inst:$,continue:!v.abort})}}),p9=V("$ZodCustomStringFormat",($,v)=>{P$.init($,v),$._zod.check=(U)=>{if(v.fn(U.value))return;U.issues.push({code:"invalid_format",format:v.format,input:U.value,inst:$,continue:!v.abort})}}),Tu=V("$ZodNumber",($,v)=>{$$.init($,v),$._zod.pattern=$._zod.bag.pattern??D1,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=Number(U.value)}catch(u){}let b=U.value;if(typeof b==="number"&&!Number.isNaN(b)&&Number.isFinite(b))return U;let D=typeof b==="number"?Number.isNaN(b)?"NaN":!Number.isFinite(b)?"Infinity":void 0:void 0;return U.issues.push({expected:"number",code:"invalid_type",input:b,inst:$,...D?{received:D}:{}}),U}}),a9=V("$ZodNumberFormat",($,v)=>{u9.init($,v),Tu.init($,v)}),g1=V("$ZodBoolean",($,v)=>{$$.init($,v),$._zod.pattern=$9,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=Boolean(U.value)}catch(D){}let b=U.value;if(typeof b==="boolean")return U;return U.issues.push({expected:"boolean",code:"invalid_type",input:b,inst:$}),U}}),ku=V("$ZodBigInt",($,v)=>{$$.init($,v),$._zod.pattern=eG,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=BigInt(U.value)}catch(b){}if(typeof U.value==="bigint")return U;return U.issues.push({expected:"bigint",code:"invalid_type",input:U.value,inst:$}),U}}),e9=V("$ZodBigIntFormat",($,v)=>{w9.init($,v),ku.init($,v)}),s9=V("$ZodSymbol",($,v)=>{$$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(typeof b==="symbol")return U;return U.issues.push({expected:"symbol",code:"invalid_type",input:b,inst:$}),U}}),$O=V("$ZodUndefined",($,v)=>{$$.init($,v),$._zod.pattern=b9,$._zod.values=new Set([void 0]),$._zod.parse=(U,I)=>{let b=U.value;if(typeof b>"u")return U;return U.issues.push({expected:"undefined",code:"invalid_type",input:b,inst:$}),U}}),vO=V("$ZodNull",($,v)=>{$$.init($,v),$._zod.pattern=v9,$._zod.values=new Set([null]),$._zod.parse=(U,I)=>{let b=U.value;if(b===null)return U;return U.issues.push({expected:"null",code:"invalid_type",input:b,inst:$}),U}}),bO=V("$ZodAny",($,v)=>{$$.init($,v),$._zod.parse=(U)=>U}),UO=V("$ZodUnknown",($,v)=>{$$.init($,v),$._zod.parse=(U)=>U}),IO=V("$ZodNever",($,v)=>{$$.init($,v),$._zod.parse=(U,I)=>{return U.issues.push({expected:"never",code:"invalid_type",input:U.value,inst:$}),U}}),DO=V("$ZodVoid",($,v)=>{$$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(typeof b>"u")return U;return U.issues.push({expected:"void",code:"invalid_type",input:b,inst:$}),U}}),uO=V("$ZodDate",($,v)=>{$$.init($,v),$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=new Date(U.value)}catch(w){}let b=U.value,D=b instanceof Date;if(D&&!Number.isNaN(b.getTime()))return U;return U.issues.push({expected:"date",code:"invalid_type",input:b,...D?{received:"Invalid Date"}:{},inst:$}),U}});function xP($,v,U){if($.issues.length)v.issues.push(...Zv(U,$.issues));v.value[U]=$.value}var wO=V("$ZodArray",($,v)=>{$$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(!Array.isArray(b))return U.issues.push({expected:"array",code:"invalid_type",input:b,inst:$}),U;U.value=Array(b.length);let D=[];for(let u=0;u<b.length;u++){let w=b[u],g=v.element._zod.run({value:w,issues:[]},I);if(g instanceof Promise)D.push(g.then((J)=>xP(J,U,u)));else xP(g,U,u)}if(D.length)return Promise.all(D).then(()=>U);return U}});function Zu($,v,U,I,b,D){let u=U in I;if($.issues.length){if(b&&D&&!u)return;v.issues.push(...Zv(U,$.issues))}if(!u&&!b){if(!$.issues.length)v.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[U]});return}if($.value===void 0){if(u)v.value[U]=void 0}else v.value[U]=$.value}function bj($){let v=Object.keys($.shape);for(let I of v)if(!$.shape?.[I]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${I}": expected a Zod schema`);let U=BG($.shape);return{...$,keys:v,keySet:new Set(v),numKeys:v.length,optionalKeys:new Set(U)}}function Uj($,v,U,I,b,D){let u=[],w=b.keySet,g=b.catchall._zod,J=g.def.type,X=g.optin==="optional",W=g.optout==="optional";for(let G in v){if(G==="__proto__")continue;if(w.has(G))continue;if(J==="never"){u.push(G);continue}let O=g.run({value:v[G],issues:[]},I);if(O instanceof Promise)$.push(O.then((z)=>Zu(z,U,G,v,X,W)));else Zu(O,U,G,v,X,W)}if(u.length)U.issues.push({code:"unrecognized_keys",keys:u,input:v,inst:D});if(!$.length)return U;return Promise.all($).then(()=>{return U})}var Ij=V("$ZodObject",($,v)=>{if($$.init($,v),!Object.getOwnPropertyDescriptor(v,"shape")?.get){let w=v.shape;Object.defineProperty(v,"shape",{get:()=>{let g={...w};return Object.defineProperty(v,"shape",{value:g}),g}})}let I=bU(()=>bj(v));g$($._zod,"propValues",()=>{let w=v.shape,g={};for(let J in w){let X=w[J]._zod;if(X.values){g[J]??(g[J]=new Set);for(let W of X.values)g[J].add(W)}}return g});let b=Hb,D=v.catchall,u;$._zod.parse=(w,g)=>{u??(u=I.value);let J=w.value;if(!b(J))return w.issues.push({expected:"object",code:"invalid_type",input:J,inst:$}),w;w.value={};let X=[],W=u.shape;for(let G of u.keys){let O=W[G],z=O._zod.optin==="optional",Q=O._zod.optout==="optional",Y=O._zod.run({value:J[G],issues:[]},g);if(Y instanceof Promise)X.push(Y.then((K)=>Zu(K,w,G,J,z,Q)));else Zu(Y,w,G,J,z,Q)}if(!D)return X.length?Promise.all(X).then(()=>w):w;return Uj(X,J,w,g,I.value,$)}}),gO=V("$ZodObjectJIT",($,v)=>{Ij.init($,v);let U=$._zod.parse,I=bU(()=>bj(v)),b=(G)=>{let O=new Su(["shape","payload","ctx"]),z=I.value,Q=(S)=>{let j=Gu(S);return`shape[${j}]._zod.run({ value: input[${j}], issues: [] }, ctx)`};O.write("const input = payload.value;");let Y=Object.create(null),K=0;for(let S of z.keys)Y[S]=`key_${K++}`;O.write("const newResult = {};");for(let S of z.keys){let j=Y[S],A=Gu(S),h=G[S],s=h?._zod?.optin==="optional",l=h?._zod?.optout==="optional";if(O.write(`const ${j} = ${Q(S)};`),s&&l)O.write(`
|
|
@@ -239,7 +239,7 @@ see also:
|
|
|
239
239
|
fnl docs mcp what the MCP server exposes once Claude is up
|
|
240
240
|
fnl docs debugging the diagnose \u2192 recover \u2192 verify loop
|
|
241
241
|
|
|
242
|
-
programmable: funnel.claude.launch({ profileId | channelId, options, env, resume })`,pm=["profile","channel"],US=_.createHandlers(c(C1),i("query",H.object({profile:H.string().optional(),channel:H.string().optional()}).loose()),async($)=>{let v=$.req.valid("query"),{funnel:U,claude:I,profiles:b,localConfig:D,localConfigSync:u}=$.env,w=sw($.req.url,pm);if(v.channel&&!v.profile){let G=await I.launch({channel:v.channel,userArgs:w});process.exit(G)}if(v.profile){let G=b.get(v.profile);if(!G)throw new e(404,{message:x$({kind:"profile",name:v.profile,available:b.list().map((z)=>z.name),nextAction:"fnl profiles add <name> --path=<repo> --channel=<channel>"})});let O=await I.launch({channel:G.channelId,cwd:G.path,userArgs:w,profileId:G.id,options:G.options,env:G.env,resume:G.resume});process.exit(O)}let g=process.cwd(),J=D.read(g);if(J){let G=v.channel!==void 0?J.channels.find((Q)=>Q.name===v.channel):J.channels[0];if(!G)throw new e(404,{message:v.channel?`channel "${v.channel}" is not declared in funnel.json`:"funnel.json declares no channels"});let O=await u.ensure(G);for(let Q of O.touched)if(Q.changed)await U.listeners.restart(G.name,Q.name);else await U.listeners.start(G.name,Q.name);for(let Q of O.removed)await U.listeners.stop(G.name,Q);let z=await I.launch({channel:G.name,cwd:g,userArgs:w});process.exit(z)}let X=b.getDefault();if(!X)return $.text(C1);let W=await I.launch({channel:X.channelId,cwd:X.path,userArgs:w,profileId:X.id,options:X.options,env:X.env,resume:X.resume});process.exit(W)});var am="--help",em="-h",sm="--profile",$c="-p",vc="--channel",IS=($,v,U,I)=>{let b=$[v];if(b===void 0)return null;if(b===U||I!==null&&b===I){let u=$[v+1];if(u!==void 0&&!u.startsWith("-"))return{value:u,consumed:2};return{value:null,consumed:1}}let D=`${U}=`;if(b.startsWith(D))return{value:b.slice(D.length),consumed:1};return null},bc=($)=>{let v=[],U=null,I=null,b=!1,D=0;while(D<$.length){let u=$[D];if(u===void 0)break;if(u===am||u===em){b=!0,D++;continue}let w=IS($,D,sm,$c);if(w){if(w.value!==null)U=w.value;D+=w.consumed;continue}let g=IS($,D,vc,null);if(g){if(g.value!==null)I=g.value;D+=g.consumed;continue}v.push(u),D++}return{profile:U,channel:I,wantsHelp:b,userArgs:v}},DS=async($,v,U)=>{for(let I of U.touched)if(I.changed)await $.restart(v,I.name);else await $.start(v,I.name);for(let I of U.removed)await $.stop(v,I)},uS=($,v)=>{if(v===null){let I=$.channels[0];if(!I)return"funnel.json declares no channels";return I}let U=$.channels.find((I)=>I.name===v);if(!U){let I=$.channels.map((b)=>b.name).join(", ");return`channel "${v}" is not declared in funnel.json (available: ${I})`}return U},wS=async($,v)=>{let U=bc(v);if(U.wantsHelp)return{stdout:C1,stderr:null,exitCode:0};if(U.profile!==null&&U.channel!==null)return{stdout:null,stderr:`error: --channel cannot be combined with --profile (profile "${U.profile}" already binds a channel)`,exitCode:1};let{claude:I,profiles:b,localConfig:D,localConfigSync:u,listeners:w}=$,g=$.cwd??process.cwd();if(U.profile!==null){let G=b.get(U.profile);if(G)return{stdout:null,stderr:null,exitCode:await I.launch({channel:G.channelId,cwd:G.path,userArgs:U.userArgs,profileId:G.id,options:G.options,env:G.env,resume:G.resume})};let O=D.read(g),z=O?.profiles?.find((Y)=>Y.name===U.profile);if(O&&z){let Y=uS(O,z.channel);if(typeof Y==="string")return{stdout:null,stderr:`error: ${Y}`,exitCode:1};let K=await u.ensure(Y);return await DS(w,Y.name,K),{stdout:null,stderr:null,exitCode:await I.launch({channel:Y.name,cwd:g,userArgs:U.userArgs,options:z.options,env:z.env})}}let Q=O?.profiles?.map((Y)=>Y.name)??[];return{stdout:null,stderr:`error: ${x$({kind:"profile",name:U.profile,available:[...b.list().map((Y)=>Y.name),...Q],nextAction:"fnl profiles add <name> --path=<repo> --channel=<channel>"})}`,exitCode:1}}let J=D.read(g);if(J){let G=uS(J,U.channel);if(typeof G==="string")return{stdout:null,stderr:`error: ${G}`,exitCode:1};let O=await u.ensure(G);return await DS(w,G.name,O),{stdout:null,stderr:null,exitCode:await I.launch({channel:G.name,cwd:g,userArgs:U.userArgs})}}if(U.channel!==null)return{stdout:null,stderr:null,exitCode:await I.launch({channel:U.channel,cwd:g,userArgs:U.userArgs})};let X=b.getDefault();if(!X)return{stdout:C1,stderr:null,exitCode:0};return{stdout:null,stderr:null,exitCode:await I.launch({channel:X.channelId,cwd:X.path,userArgs:U.userArgs,profileId:X.id,options:X.options,env:X.env,resume:X.resume})}};import{join as gS}from"path";var JS=($,v)=>{let U=$.localConfig.read(v);if(!U)return null;if(U.id!==void 0&&U.id!=="")return gS($.home,".funnel","projects",U.id);let I=$.idGenerator.generate(),b=$.writer.ensureId(v,I)??I;return gS($.home,".funnel","projects",b)};class Pb{}var o4=($)=>{if($.literal!==void 0&&$.literal!=="")return $.literal;if($.envVar!==void 0&&$.envVar!==""){let v=$.env[$.envVar];if(v!==void 0&&v!=="")return v;throw Error(`${$.label} references env var "${$.envVar}" but it is not set in the environment`)}throw Error(`${$.label} has neither a literal token nor an env var reference`)};class i1{}class g4 extends i1{constructor(){super();Object.freeze(this)}async fetch($){let v=await globalThis.fetch($.url,{method:$.method,headers:$.headers,body:$.body});return{status:v.status,ok:v.ok,text:()=>v.text(),json:()=>v.json()}}}var Uc="https://discord.com/api/v10",Ic=new g4;class AQ extends Pb{token;http;constructor($){super();this.token=o4({literal:$.config.botToken,envVar:$.config.botTokenEnv,env:$.env??process.env,label:`${$.config.name}.botToken`}),this.http=$.http??Ic,Object.freeze(this)}async call($){let v=($.method||"GET").toUpperCase(),U=$.path.startsWith("/")?$.path:`/${$.path}`,I=$.body,b=I!==null&&typeof I==="object"&&v!=="GET"&&Object.keys(I).length>0,D=await this.http.fetch({method:v,url:`${Uc}${U}`,headers:{Authorization:`Bot ${this.token}`,"Content-Type":"application/json"},body:b?JSON.stringify($.body):void 0});if(!D.ok)throw Error(`Discord API failed (${D.status}): ${await D.text()}`);if(D.status===204)return null;return await D.json()}}var t4=H.object({id:H.string(),name:H.string(),type:H.literal("discord"),botToken:H.string().min(10).optional(),botTokenEnv:H.string().optional(),createdAt:H.string().datetime().optional(),updatedAt:H.string().datetime().optional()});function x($){if($.error instanceof Error)try{let v=$.error.message;if(typeof v==="string")return v;return"<non-string error message>"}catch{return"<unreadable error message>"}try{return String($.error)}catch{return"<unprintable error>"}}function F$($){if($.value instanceof Error)return $.value;let v=x({error:$.value});try{return Error(v)}catch{try{return Error("unknown error")}catch{let U=Object.create(Error.prototype);return U.name="Error",U.message="unknown error",U}}}function p($){try{let v=$();if(v instanceof Promise)return v.catch((U)=>F$({value:U}));return v}catch(v){return F$({value:v})}}var mv=class extends Error{constructor($,v){super($,v?.cause===void 0?void 0:{cause:v.cause});this.name="FlumeParseError",Object.freeze(this)}},F4=class extends Error{constructor($,v){super($,v?.cause===void 0?void 0:{cause:v.cause});this.name="FlumeStartError",Object.freeze(this)}};function ev($){try{let v=$.deps.now();if(typeof v!=="number"||!Number.isFinite(v))return 0;return v}catch{return 0}}var d4=class ${props;constructor(v){this.props=v,Object.freeze(this)}debug(v){this.emit("debug",v)}info(v){this.emit("info",v)}warn(v){this.emit("warn",v)}error(v){this.emit("error",v)}get handler(){return this.props.handler}child(v){return new $({source:v,handler:this.props.handler,deps:this.props.deps})}emit(v,U){let I=this.props.handler;if(!I)return;let b={level:v,source:this.props.source,action:U.action,message:U.message,timestamp:ev({deps:this.props.deps}),error:U.error,detail:U.detail};try{Promise.resolve(I(b)).catch(()=>{})}catch{}}};function jb($){try{Promise.resolve($.fn()).catch((v)=>{try{$.onError(F$({value:v}))}catch{}}).catch(()=>{})}catch(v){try{$.onError(F$({value:v}))}catch{}}}var Dc=class{props;currentStatus="disconnected";currentDetail=null;constructor($){this.props=$}get value(){return this.currentStatus}set($,v){let U=v??null;if(this.currentStatus===$&&this.currentDetail===U)return;let I=this.currentStatus,b=v?` (${v})`:"";this.props.log.info({action:"status",message:`${I} \u2192 ${$}${b}`,detail:{from:I,to:$,reason:U}}),this.currentStatus=$,this.currentDetail=U;let D=this.props.onStatus;if(!D)return;jb({fn:v!==void 0?()=>D($,v):()=>D($),onError:(u)=>{this.props.log.error({action:"onStatus.error",message:x({error:u}),error:u})}})}},uc=class{props;chain=Promise.resolve();depth=0;cancelled=!1;constructor($={}){this.props=$}add($){if(this.cancelled)return;if(this.props.maxDepth!==void 0&&this.depth>=this.props.maxDepth){this.props.onOverflow?.({dropped:1,depth:this.depth});return}this.depth++,this.chain=this.chain.then(async()=>{try{await $()}catch{}finally{this.depth--}})}async drain(){await this.chain}cancel(){this.cancelled=!0,this.depth=0,this.chain=Promise.resolve()}size(){return this.depth}isCancelled(){return this.cancelled}},Nb=class{consumed=!1;stopped=!1;ctx=null;statusEmitter=null;queue=new uc;async start($){if(this.consumed)return new F4(`${this.name}: already started`);return this.consumed=!0,this.ctx=$,this.statusEmitter=new Dc({log:$.log,onStatus:$.onStatus}),await this.connect($)}async stop(){if(this.stopped)return;this.stopped=!0;try{await this.disconnect()}finally{await this.queue.drain(),this.statusEmitter?.set("disconnected"),this.ctx=null}}status(){return this.statusEmitter?.value??"disconnected"}emit($){let v=this.ctx;if(!v)return;this.queue.add(async()=>{let U=await p(()=>Promise.resolve(v.onEvent($)));if(U instanceof Error)v.log.error({action:"onEvent.error",message:x({error:U}),error:U})})}setStatus($,v){this.statusEmitter?.set($,v)}get currentStatus(){return this.statusEmitter?.value??"disconnected"}get context(){return this.ctx}};var Uv=class extends Error{code;constructor($,v){super($,v?.cause===void 0?void 0:{cause:v.cause});this.name="FlumeConnectionError",this.code=v?.code??null,Object.freeze(this)}};function $g($){try{let v=$.deps.random();if(typeof v!=="number"||!Number.isFinite(v))return 0.5;if(v<0||v>=1)return 0.5;return v}catch{return 0.5}}var vg=class{props;currentAttempt=0;isAborted=!1;timer=null;constructor($){this.props=$}get attempt(){return this.currentAttempt}get aborted(){return this.isAborted}schedule($){if(this.isAborted)return 0;if(this.currentAttempt>=this.props.maxAttempts)return-1;this.clearTimer();let v=this.computeDelay(),U=p(()=>this.props.deps.setTimeout(()=>this.runRetry($),v));if(U instanceof Error)return this.props.log.error({action:"reconnect.timer.schedule.error",message:x({error:U}),error:U}),this.timer=null,0;return this.currentAttempt++,this.timer=U,v}reset(){this.currentAttempt=0}cancel(){this.isAborted=!0,this.clearTimer()}runRetry($){this.timer=null,jb({fn:$,onError:(v)=>{this.props.log.error({action:"reconnect.timer.error",message:x({error:v}),error:v})}})}clearTimer(){if(this.timer===null)return;let $=this.timer,v=p(()=>this.props.deps.clearTimeout($));if(v instanceof Error)this.props.log.error({action:"reconnect.timer.clear.error",message:x({error:v}),error:v});this.timer=null}computeDelay(){return Math.min(this.props.baseDelay*2**this.currentAttempt,this.props.maxDelay)*(0.5+$g({deps:this.props.deps})*0.5)}};function bg($){if(!$.reconnector){$.log.info({action:"reconnect.disabled",message:"reconnect is disabled, staying disconnected"}),$.setStatus("disconnected");return}if($.reconnector.aborted){$.log.info({action:"reconnect.aborted",message:"reconnector cancelled, staying disconnected"}),$.setStatus("disconnected");return}let v=$.reconnector.schedule($.retry);if(v===-1){let U=new Uv(`reconnect exhausted after ${$.reconnector.attempt} attempts`);$.log.error({action:"reconnect.exhausted",message:x({error:U}),error:U}),$.setStatus("disconnected");return}$.setStatus("reconnecting"),$.log.info({action:"reconnect.scheduled",message:`next attempt in ${Math.round(v)}ms`,detail:{attempt:$.reconnector.attempt,delayMs:Math.round(v)}})}function Ug($){return p(()=>JSON.stringify($))}function p4($){return typeof $==="object"&&$!==null}function Sb($){try{return JSON.parse($)}catch(v){return new mv(v instanceof Error?`invalid JSON: ${v.message}`:"invalid JSON",{cause:v})}}var z$={};e$(z$,{xor:()=>lM,xid:()=>XM,void:()=>RM,uuidv7:()=>bM,uuidv6:()=>vM,uuidv4:()=>$M,uuid:()=>sS,util:()=>n,url:()=>UM,uppercase:()=>cU,unknown:()=>nb,union:()=>ZJ,undefined:()=>kM,ulid:()=>JM,uint64:()=>ZM,uint32:()=>MM,tuple:()=>mV,trim:()=>eU,treeifyError:()=>nQ,transform:()=>kJ,toUpperCase:()=>$I,toLowerCase:()=>sU,toJSONSchema:()=>IJ,templateLiteral:()=>v_,symbol:()=>TM,superRefine:()=>LL,success:()=>aM,stringbool:()=>J_,stringFormat:()=>qM,string:()=>J0,strictObject:()=>iM,startsWith:()=>tU,slugify:()=>vI,size:()=>kb,setErrorMap:()=>lt,set:()=>cM,safeParseAsync:()=>LV,safeParse:()=>VV,safeEncodeAsync:()=>NV,safeEncode:()=>PV,safeDecodeAsync:()=>SV,safeDecode:()=>jV,registry:()=>_g,regexes:()=>cv,regex:()=>hU,refine:()=>VL,record:()=>cV,readonly:()=>GL,property:()=>$J,promise:()=>b_,prettifyError:()=>rQ,preprocess:()=>W_,prefault:()=>IL,positive:()=>pg,pipe:()=>WJ,partialRecord:()=>yM,parseAsync:()=>YV,parse:()=>QV,overwrite:()=>J4,optional:()=>W0,object:()=>CM,number:()=>_V,nullish:()=>pM,nullable:()=>G0,null:()=>EV,normalize:()=>aU,nonpositive:()=>eg,nonoptional:()=>DL,nonnegative:()=>sg,never:()=>FJ,negative:()=>ag,nativeEnum:()=>oM,nanoid:()=>uM,nan:()=>eM,multipleOf:()=>E6,minSize:()=>E4,minLength:()=>e4,mime:()=>pU,meta:()=>w_,maxSize:()=>R6,maxLength:()=>Eb,map:()=>mM,mac:()=>OM,lte:()=>ov,lt:()=>T4,lowercase:()=>mU,looseRecord:()=>hM,looseObject:()=>xM,locales:()=>D0,literal:()=>tM,length:()=>Rb,lazy:()=>zL,ksuid:()=>WM,keyof:()=>rM,jwt:()=>KM,json:()=>X_,iso:()=>II,ipv6:()=>HM,ipv4:()=>GM,invertCodec:()=>$_,intersection:()=>yV,int64:()=>FM,int32:()=>SM,int:()=>XJ,instanceof:()=>g_,includes:()=>oU,httpUrl:()=>IM,hostname:()=>BM,hex:()=>AM,hash:()=>PM,guid:()=>eS,gte:()=>jv,gt:()=>k4,globalRegistry:()=>uv,getErrorMap:()=>ft,function:()=>U_,fromJSONSchema:()=>O_,formatError:()=>t1,float64:()=>NM,float32:()=>jM,flattenError:()=>o1,file:()=>dM,exactOptional:()=>sV,enum:()=>TJ,endsWith:()=>dU,encodeAsync:()=>BV,encode:()=>KV,emoji:()=>DM,email:()=>aS,e164:()=>LM,discriminatedUnion:()=>fM,describe:()=>u_,decodeAsync:()=>AV,decode:()=>qV,date:()=>nM,custom:()=>D_,cuid2:()=>gM,cuid:()=>wM,core:()=>s4,config:()=>o$,coerce:()=>qL,codec:()=>sM,clone:()=>Av,cidrv6:()=>QM,cidrv4:()=>zM,check:()=>I_,catch:()=>gL,boolean:()=>FV,bigint:()=>_M,base64url:()=>VM,base64:()=>YM,array:()=>Q0,any:()=>EM,_function:()=>U_,_default:()=>bL,_ZodString:()=>GJ,ZodXor:()=>xV,ZodXID:()=>LJ,ZodVoid:()=>CV,ZodUnknown:()=>nV,ZodUnion:()=>V0,ZodUndefined:()=>TV,ZodUUID:()=>R4,ZodURL:()=>H0,ZodULID:()=>VJ,ZodType:()=>I$,ZodTuple:()=>hV,ZodTransform:()=>aV,ZodTemplateLiteral:()=>OL,ZodSymbol:()=>ZV,ZodSuccess:()=>uL,ZodStringFormat:()=>S$,ZodString:()=>wI,ZodSet:()=>tV,ZodRecord:()=>DI,ZodRealError:()=>nv,ZodReadonly:()=>WL,ZodPromise:()=>QL,ZodPreprocess:()=>XL,ZodPrefault:()=>UL,ZodPipe:()=>L0,ZodOptional:()=>EJ,ZodObject:()=>Y0,ZodNumberFormat:()=>rb,ZodNumber:()=>JI,ZodNullable:()=>$L,ZodNull:()=>kV,ZodNonOptional:()=>RJ,ZodNever:()=>rV,ZodNanoID:()=>zJ,ZodNaN:()=>JL,ZodMap:()=>oV,ZodMAC:()=>MV,ZodLiteral:()=>dV,ZodLazy:()=>HL,ZodKSUID:()=>KJ,ZodJWT:()=>MJ,ZodIssueCode:()=>xt,ZodIntersection:()=>fV,ZodISOTime:()=>gJ,ZodISODuration:()=>JJ,ZodISODateTime:()=>uJ,ZodISODate:()=>wJ,ZodIPv6:()=>BJ,ZodIPv4:()=>qJ,ZodGUID:()=>X0,ZodFunction:()=>YL,ZodFirstPartyTypeKind:()=>KL,ZodFile:()=>pV,ZodExactOptional:()=>eV,ZodError:()=>Ct,ZodEnum:()=>uI,ZodEmoji:()=>HJ,ZodEmail:()=>OJ,ZodE164:()=>SJ,ZodDiscriminatedUnion:()=>lV,ZodDefault:()=>vL,ZodDate:()=>z0,ZodCustomStringFormat:()=>gI,ZodCustom:()=>q0,ZodCodec:()=>K0,ZodCatch:()=>wL,ZodCUID2:()=>YJ,ZodCUID:()=>QJ,ZodCIDRv6:()=>PJ,ZodCIDRv4:()=>AJ,ZodBoolean:()=>XI,ZodBigIntFormat:()=>_J,ZodBigInt:()=>WI,ZodBase64URL:()=>NJ,ZodBase64:()=>jJ,ZodArray:()=>iV,ZodAny:()=>RV,TimePrecision:()=>m7,NEVER:()=>PQ,$output:()=>i7,$input:()=>x7,$brand:()=>jQ});var s4={};e$(s4,{version:()=>kY,util:()=>n,treeifyError:()=>nQ,toJSONSchema:()=>IJ,toDotPath:()=>QS,safeParseAsync:()=>iQ,safeParse:()=>CQ,safeEncodeAsync:()=>ic,safeEncode:()=>rc,safeDecodeAsync:()=>xc,safeDecode:()=>Cc,registry:()=>_g,regexes:()=>cv,process:()=>B$,prettifyError:()=>rQ,parseAsync:()=>wg,parse:()=>ug,meta:()=>j3,locales:()=>D0,isValidJWT:()=>CS,isValidBase64URL:()=>rS,isValidBase64:()=>v5,initializeContext:()=>n6,globalRegistry:()=>uv,globalConfig:()=>Mb,formatError:()=>t1,flattenError:()=>o1,finalize:()=>C6,extractDefs:()=>r6,encodeAsync:()=>Rc,encode:()=>kc,describe:()=>P3,decodeAsync:()=>nc,decode:()=>Ec,createToJSONSchemaMethod:()=>S3,createStandardJSONSchemaMethod:()=>UI,config:()=>o$,clone:()=>Av,_xor:()=>Ht,_xid:()=>xg,_void:()=>z3,_uuidv7:()=>Eg,_uuidv6:()=>kg,_uuidv4:()=>Tg,_uuid:()=>Zg,_url:()=>w0,_uppercase:()=>cU,_unknown:()=>O3,_union:()=>Ot,_undefined:()=>X3,_ulid:()=>ig,_uint64:()=>g3,_uint32:()=>b3,_tuple:()=>Yt,_trim:()=>eU,_transform:()=>Pt,_toUpperCase:()=>$I,_toLowerCase:()=>sU,_templateLiteral:()=>kt,_symbol:()=>J3,_superRefine:()=>A3,_success:()=>_t,_stringbool:()=>N3,_stringFormat:()=>bI,_string:()=>f7,_startsWith:()=>tU,_slugify:()=>vI,_size:()=>kb,_set:()=>Kt,_safeParseAsync:()=>lU,_safeParse:()=>xU,_safeEncodeAsync:()=>Hg,_safeEncode:()=>Gg,_safeDecodeAsync:()=>zg,_safeDecode:()=>Og,_regex:()=>hU,_refine:()=>B3,_record:()=>Vt,_readonly:()=>Tt,_property:()=>$J,_promise:()=>Rt,_positive:()=>pg,_pipe:()=>Zt,_parseAsync:()=>iU,_parse:()=>CU,_overwrite:()=>J4,_optional:()=>jt,_number:()=>p7,_nullable:()=>Nt,_null:()=>W3,_normalize:()=>aU,_nonpositive:()=>eg,_nonoptional:()=>Mt,_nonnegative:()=>sg,_never:()=>H3,_negative:()=>ag,_nativeEnum:()=>Bt,_nanoid:()=>ng,_nan:()=>V3,_multipleOf:()=>E6,_minSize:()=>E4,_minLength:()=>e4,_min:()=>jv,_mime:()=>pU,_maxSize:()=>R6,_maxLength:()=>Eb,_max:()=>ov,_map:()=>Lt,_mac:()=>h7,_lte:()=>ov,_lt:()=>T4,_lowercase:()=>mU,_literal:()=>At,_length:()=>Rb,_lazy:()=>Et,_ksuid:()=>lg,_jwt:()=>dg,_isoTime:()=>t7,_isoDuration:()=>d7,_isoDateTime:()=>c7,_isoDate:()=>o7,_ipv6:()=>yg,_ipv4:()=>fg,_intersection:()=>Qt,_int64:()=>w3,_int32:()=>v3,_int:()=>e7,_includes:()=>oU,_guid:()=>u0,_gte:()=>jv,_gt:()=>k4,_float64:()=>$3,_float32:()=>s7,_file:()=>K3,_enum:()=>qt,_endsWith:()=>dU,_encodeAsync:()=>Xg,_encode:()=>gg,_emoji:()=>Rg,_email:()=>Fg,_e164:()=>tg,_discriminatedUnion:()=>zt,_default:()=>St,_decodeAsync:()=>Wg,_decode:()=>Jg,_date:()=>Q3,_custom:()=>q3,_cuid2:()=>Cg,_cuid:()=>rg,_coercedString:()=>y7,_coercedNumber:()=>a7,_coercedDate:()=>Y3,_coercedBoolean:()=>I3,_coercedBigint:()=>u3,_cidrv6:()=>mg,_cidrv4:()=>hg,_check:()=>oS,_catch:()=>Ft,_boolean:()=>U3,_bigint:()=>D3,_base64url:()=>og,_base64:()=>cg,_array:()=>L3,_any:()=>G3,TimePrecision:()=>m7,NEVER:()=>PQ,JSONSchemaGenerator:()=>WV,JSONSchema:()=>tS,Doc:()=>Lg,$output:()=>i7,$input:()=>x7,$constructor:()=>L,$brand:()=>jQ,$ZodXor:()=>L5,$ZodXID:()=>hY,$ZodVoid:()=>z5,$ZodUnknown:()=>O5,$ZodUnion:()=>s1,$ZodUndefined:()=>X5,$ZodUUID:()=>nY,$ZodURL:()=>CY,$ZodULID:()=>yY,$ZodType:()=>v$,$ZodTuple:()=>Ng,$ZodTransform:()=>M5,$ZodTemplateLiteral:()=>i5,$ZodSymbol:()=>J5,$ZodSuccess:()=>E5,$ZodStringFormat:()=>N$,$ZodString:()=>Tb,$ZodSet:()=>P5,$ZodRegistry:()=>l7,$ZodRecord:()=>B5,$ZodRealError:()=>Rv,$ZodReadonly:()=>C5,$ZodPromise:()=>l5,$ZodPreprocess:()=>r5,$ZodPrefault:()=>T5,$ZodPipe:()=>Mg,$ZodOptional:()=>Sg,$ZodObjectJIT:()=>V5,$ZodObject:()=>lS,$ZodNumberFormat:()=>w5,$ZodNumber:()=>Pg,$ZodNullable:()=>F5,$ZodNull:()=>W5,$ZodNonOptional:()=>k5,$ZodNever:()=>H5,$ZodNanoID:()=>xY,$ZodNaN:()=>n5,$ZodMap:()=>A5,$ZodMAC:()=>eY,$ZodLiteral:()=>N5,$ZodLazy:()=>f5,$ZodKSUID:()=>mY,$ZodJWT:()=>D5,$ZodIntersection:()=>q5,$ZodISOTime:()=>tY,$ZodISODuration:()=>dY,$ZodISODateTime:()=>cY,$ZodISODate:()=>oY,$ZodIPv6:()=>aY,$ZodIPv4:()=>pY,$ZodGUID:()=>RY,$ZodFunction:()=>x5,$ZodFile:()=>S5,$ZodExactOptional:()=>_5,$ZodError:()=>c1,$ZodEnum:()=>j5,$ZodEncodeError:()=>_b,$ZodEmoji:()=>iY,$ZodEmail:()=>rY,$ZodE164:()=>I5,$ZodDiscriminatedUnion:()=>K5,$ZodDefault:()=>Z5,$ZodDate:()=>Q5,$ZodCustomStringFormat:()=>u5,$ZodCustom:()=>y5,$ZodCodec:()=>$0,$ZodCheckUpperCase:()=>NY,$ZodCheckStringFormat:()=>fU,$ZodCheckStartsWith:()=>MY,$ZodCheckSizeEquals:()=>KY,$ZodCheckRegex:()=>PY,$ZodCheckProperty:()=>FY,$ZodCheckOverwrite:()=>TY,$ZodCheckNumberFormat:()=>QY,$ZodCheckMultipleOf:()=>zY,$ZodCheckMinSize:()=>LY,$ZodCheckMinLength:()=>BY,$ZodCheckMimeType:()=>ZY,$ZodCheckMaxSize:()=>VY,$ZodCheckMaxLength:()=>qY,$ZodCheckLowerCase:()=>jY,$ZodCheckLessThan:()=>Yg,$ZodCheckLengthEquals:()=>AY,$ZodCheckIncludes:()=>SY,$ZodCheckGreaterThan:()=>Vg,$ZodCheckEndsWith:()=>_Y,$ZodCheckBigIntFormat:()=>YY,$ZodCheck:()=>Z$,$ZodCatch:()=>R5,$ZodCUID2:()=>fY,$ZodCUID:()=>lY,$ZodCIDRv6:()=>$5,$ZodCIDRv4:()=>sY,$ZodBoolean:()=>e1,$ZodBigIntFormat:()=>g5,$ZodBigInt:()=>jg,$ZodBase64URL:()=>U5,$ZodBase64:()=>b5,$ZodAsyncError:()=>Z4,$ZodArray:()=>Y5,$ZodAny:()=>G5});var XS,PQ=Object.freeze({status:"aborted"});function L($,v,U){function I(w,g){if(!w._zod)Object.defineProperty(w,"_zod",{value:{def:g,constr:u,traits:new Set},enumerable:!1});if(w._zod.traits.has($))return;w._zod.traits.add($),v(w,g);let J=u.prototype,X=Object.keys(J);for(let W=0;W<X.length;W++){let G=X[W];if(!(G in w))w[G]=J[G].bind(w)}}let b=U?.Parent??Object;class D extends b{}Object.defineProperty(D,"name",{value:$});function u(w){var g;let J=U?.Parent?new D:this;I(J,w),(g=J._zod).deferred??(g.deferred=[]);for(let X of J._zod.deferred)X();return J}return Object.defineProperty(u,"init",{value:I}),Object.defineProperty(u,Symbol.hasInstance,{value:(w)=>{if(U?.Parent&&w instanceof U.Parent)return!0;return w?._zod?.traits?.has($)}}),Object.defineProperty(u,"name",{value:$}),u}var jQ=Symbol("zod_brand");class Z4 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class _b extends Error{constructor($){super(`Encountered unidirectional transform during encode: ${$}`);this.name="ZodEncodeError"}}(XS=globalThis).__zod_globalConfig??(XS.__zod_globalConfig={});var Mb=globalThis.__zod_globalConfig;function o$($){if($)Object.assign(Mb,$);return Mb}var n={};e$(n,{unwrapMessage:()=>x1,uint8ArrayToHex:()=>Zc,uint8ArrayToBase64url:()=>_c,uint8ArrayToBase64:()=>OS,stringifyPrimitive:()=>T,slugify:()=>MQ,shallowClone:()=>FQ,safeExtend:()=>Ac,required:()=>Nc,randomString:()=>Qc,propertyKeyTypes:()=>y1,promiseAllObject:()=>zc,primitiveTypes:()=>ZQ,prefixIssues:()=>Ev,pick:()=>Kc,partial:()=>jc,parsedType:()=>E,optionalKeys:()=>TQ,omit:()=>qc,objectClone:()=>Gc,numKeys:()=>Yc,nullish:()=>F6,normalizeParams:()=>C,mergeDefs:()=>a4,merge:()=>Pc,jsonStringifyReplacer:()=>RU,joinValues:()=>B,issue:()=>rU,isPlainObject:()=>T6,isObject:()=>Fb,hexToUint8Array:()=>Fc,getSizableOrigin:()=>h1,getParsedType:()=>Vc,getLengthableOrigin:()=>m1,getEnumValues:()=>l1,getElementAtPath:()=>Hc,floatSafeRemainder:()=>SQ,finalizeIssue:()=>Pv,extend:()=>Bc,explicitlyAborted:()=>RQ,escapeRegex:()=>sv,esc:()=>Ig,defineLazy:()=>J$,createTransparentProxy:()=>Lc,cloneDef:()=>Oc,clone:()=>Av,cleanRegex:()=>f1,cleanEnum:()=>Sc,captureStackTrace:()=>Dg,cached:()=>nU,base64urlToUint8Array:()=>Mc,base64ToUint8Array:()=>GS,assignProp:()=>Z6,assertNotEqual:()=>gc,assertNever:()=>Xc,assertIs:()=>Jc,assertEqual:()=>wc,assert:()=>Wc,allowsEval:()=>_Q,aborted:()=>k6,NUMBER_FORMAT_RANGES:()=>kQ,Class:()=>HS,BIGINT_FORMAT_RANGES:()=>EQ});function wc($){return $}function gc($){return $}function Jc($){}function Xc($){throw Error("Unexpected value in exhaustive check")}function Wc($){}function l1($){let v=Object.values($).filter((I)=>typeof I==="number");return Object.entries($).filter(([I,b])=>v.indexOf(+I)===-1).map(([I,b])=>b)}function B($,v="|"){return $.map((U)=>T(U)).join(v)}function RU($,v){if(typeof v==="bigint")return v.toString();return v}function nU($){return{get value(){{let U=$();return Object.defineProperty(this,"value",{value:U}),U}throw Error("cached value already set")}}}function F6($){return $===null||$===void 0}function f1($){let v=$.startsWith("^")?1:0,U=$.endsWith("$")?$.length-1:$.length;return $.slice(v,U)}function SQ($,v){let U=$/v,I=Math.round(U),b=Number.EPSILON*Math.max(Math.abs(U),1);if(Math.abs(U-I)<b)return 0;return U-I}var WS=Symbol("evaluating");function J$($,v,U){let I=void 0;Object.defineProperty($,v,{get(){if(I===WS)return;if(I===void 0)I=WS,I=U();return I},set(b){Object.defineProperty($,v,{value:b})},configurable:!0})}function Gc($){return Object.create(Object.getPrototypeOf($),Object.getOwnPropertyDescriptors($))}function Z6($,v,U){Object.defineProperty($,v,{value:U,writable:!0,enumerable:!0,configurable:!0})}function a4(...$){let v={};for(let U of $){let I=Object.getOwnPropertyDescriptors(U);Object.assign(v,I)}return Object.defineProperties({},v)}function Oc($){return a4($._zod.def)}function Hc($,v){if(!v)return $;return v.reduce((U,I)=>U?.[I],$)}function zc($){let v=Object.keys($),U=v.map((I)=>$[I]);return Promise.all(U).then((I)=>{let b={};for(let D=0;D<v.length;D++)b[v[D]]=I[D];return b})}function Qc($=10){let U="";for(let I=0;I<$;I++)U+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return U}function Ig($){return JSON.stringify($)}function MQ($){return $.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Dg="captureStackTrace"in Error?Error.captureStackTrace:(...$)=>{};function Fb($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var _Q=nU(()=>{if(Mb.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch($){return!1}});function T6($){if(Fb($)===!1)return!1;let v=$.constructor;if(v===void 0)return!0;if(typeof v!=="function")return!0;let U=v.prototype;if(Fb(U)===!1)return!1;if(Object.prototype.hasOwnProperty.call(U,"isPrototypeOf")===!1)return!1;return!0}function FQ($){if(T6($))return{...$};if(Array.isArray($))return[...$];if($ instanceof Map)return new Map($);if($ instanceof Set)return new Set($);return $}function Yc($){let v=0;for(let U in $)if(Object.prototype.hasOwnProperty.call($,U))v++;return v}var Vc=($)=>{let v=typeof $;switch(v){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN($)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray($))return"array";if($===null)return"null";if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return"promise";if(typeof Map<"u"&&$ instanceof Map)return"map";if(typeof Set<"u"&&$ instanceof Set)return"set";if(typeof Date<"u"&&$ instanceof Date)return"date";if(typeof File<"u"&&$ instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${v}`)}},y1=new Set(["string","number","symbol"]),ZQ=new Set(["string","number","bigint","boolean","symbol","undefined"]);function sv($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Av($,v,U){let I=new $._zod.constr(v??$._zod.def);if(!v||U?.parent)I._zod.parent=$;return I}function C($){let v=$;if(!v)return{};if(typeof v==="string")return{error:()=>v};if(v?.message!==void 0){if(v?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");v.error=v.message}if(delete v.message,typeof v.error==="string")return{...v,error:()=>v.error};return v}function Lc($){let v;return new Proxy({},{get(U,I,b){return v??(v=$()),Reflect.get(v,I,b)},set(U,I,b,D){return v??(v=$()),Reflect.set(v,I,b,D)},has(U,I){return v??(v=$()),Reflect.has(v,I)},deleteProperty(U,I){return v??(v=$()),Reflect.deleteProperty(v,I)},ownKeys(U){return v??(v=$()),Reflect.ownKeys(v)},getOwnPropertyDescriptor(U,I){return v??(v=$()),Reflect.getOwnPropertyDescriptor(v,I)},defineProperty(U,I,b){return v??(v=$()),Reflect.defineProperty(v,I,b)}})}function T($){if(typeof $==="bigint")return $.toString()+"n";if(typeof $==="string")return`"${$}"`;return`${$}`}function TQ($){return Object.keys($).filter((v)=>{return $[v]._zod.optin==="optional"&&$[v]._zod.optout==="optional"})}var kQ={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},EQ={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Kc($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let D=a4($._zod.def,{get shape(){let u={};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;u[w]=U.shape[w]}return Z6(this,"shape",u),u},checks:[]});return Av($,D)}function qc($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let D=a4($._zod.def,{get shape(){let u={...$._zod.def.shape};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;delete u[w]}return Z6(this,"shape",u),u},checks:[]});return Av($,D)}function Bc($,v){if(!T6(v))throw Error("Invalid input to extend: expected a plain object");let U=$._zod.def.checks;if(U&&U.length>0){let D=$._zod.def.shape;for(let u in v)if(Object.getOwnPropertyDescriptor(D,u)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let b=a4($._zod.def,{get shape(){let D={...$._zod.def.shape,...v};return Z6(this,"shape",D),D}});return Av($,b)}function Ac($,v){if(!T6(v))throw Error("Invalid input to safeExtend: expected a plain object");let U=a4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v};return Z6(this,"shape",I),I}});return Av($,U)}function Pc($,v){if($._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let U=a4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v._zod.def.shape};return Z6(this,"shape",I),I},get catchall(){return v._zod.def.catchall},checks:v._zod.def.checks??[]});return Av($,U)}function jc($,v,U){let b=v._zod.def.checks;if(b&&b.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let u=a4(v._zod.def,{get shape(){let w=v._zod.def.shape,g={...w};if(U)for(let J in U){if(!(J in w))throw Error(`Unrecognized key: "${J}"`);if(!U[J])continue;g[J]=$?new $({type:"optional",innerType:w[J]}):w[J]}else for(let J in w)g[J]=$?new $({type:"optional",innerType:w[J]}):w[J];return Z6(this,"shape",g),g},checks:[]});return Av(v,u)}function Nc($,v,U){let I=a4(v._zod.def,{get shape(){let b=v._zod.def.shape,D={...b};if(U)for(let u in U){if(!(u in D))throw Error(`Unrecognized key: "${u}"`);if(!U[u])continue;D[u]=new $({type:"nonoptional",innerType:b[u]})}else for(let u in b)D[u]=new $({type:"nonoptional",innerType:b[u]});return Z6(this,"shape",D),D}});return Av(v,I)}function k6($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue!==!0)return!0;return!1}function RQ($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue===!1)return!0;return!1}function Ev($,v){return v.map((U)=>{var I;return(I=U).path??(I.path=[]),U.path.unshift($),U})}function x1($){return typeof $==="string"?$:$?.message}function Pv($,v,U){let I=$.message?$.message:x1($.inst?._zod.def?.error?.($))??x1(v?.error?.($))??x1(U.customError?.($))??x1(U.localeError?.($))??"Invalid input",{inst:b,continue:D,input:u,...w}=$;if(w.path??(w.path=[]),w.message=I,v?.reportInput)w.input=u;return w}function h1($){if($ instanceof Set)return"set";if($ instanceof Map)return"map";if($ instanceof File)return"file";return"unknown"}function m1($){if(Array.isArray($))return"array";if(typeof $==="string")return"string";return"unknown"}function E($){let v=typeof $;switch(v){case"number":return Number.isNaN($)?"nan":"number";case"object":{if($===null)return"null";if(Array.isArray($))return"array";let U=$;if(U&&Object.getPrototypeOf(U)!==Object.prototype&&"constructor"in U&&U.constructor)return U.constructor.name}}return v}function rU(...$){let[v,U,I]=$;if(typeof v==="string")return{message:v,code:"custom",input:U,inst:I};return{...v}}function Sc($){return Object.entries($).filter(([v,U])=>{return Number.isNaN(Number.parseInt(v,10))}).map((v)=>v[1])}function GS($){let v=atob($),U=new Uint8Array(v.length);for(let I=0;I<v.length;I++)U[I]=v.charCodeAt(I);return U}function OS($){let v="";for(let U=0;U<$.length;U++)v+=String.fromCharCode($[U]);return btoa(v)}function Mc($){let v=$.replace(/-/g,"+").replace(/_/g,"/"),U="=".repeat((4-v.length%4)%4);return GS(v+U)}function _c($){return OS($).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Fc($){let v=$.replace(/^0x/,"");if(v.length%2!==0)throw Error("Invalid hex string length");let U=new Uint8Array(v.length/2);for(let I=0;I<v.length;I+=2)U[I/2]=Number.parseInt(v.slice(I,I+2),16);return U}function Zc($){return Array.from($).map((v)=>v.toString(16).padStart(2,"0")).join("")}class HS{constructor(...$){}}var zS=($,v)=>{$.name="$ZodError",Object.defineProperty($,"_zod",{value:$._zod,enumerable:!1}),Object.defineProperty($,"issues",{value:v,enumerable:!1}),$.message=JSON.stringify(v,RU,2),Object.defineProperty($,"toString",{value:()=>$.message,enumerable:!1})},c1=L("$ZodError",zS),Rv=L("$ZodError",zS,{Parent:Error});function o1($,v=(U)=>U.message){let U={},I=[];for(let b of $.issues)if(b.path.length>0)U[b.path[0]]=U[b.path[0]]||[],U[b.path[0]].push(v(b));else I.push(v(b));return{formErrors:I,fieldErrors:U}}function t1($,v=(U)=>U.message){let U={_errors:[]},I=(b,D=[])=>{for(let u of b.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map((w)=>I({issues:w},[...D,...u.path]));else if(u.code==="invalid_key")I({issues:u.issues},[...D,...u.path]);else if(u.code==="invalid_element")I({issues:u.issues},[...D,...u.path]);else{let w=[...D,...u.path];if(w.length===0)U._errors.push(v(u));else{let g=U,J=0;while(J<w.length){let X=w[J];if(J!==w.length-1)g[X]=g[X]||{_errors:[]};else g[X]=g[X]||{_errors:[]},g[X]._errors.push(v(u));g=g[X],J++}}}};return I($),U}function nQ($,v=(U)=>U.message){let U={errors:[]},I=(b,D=[])=>{var u,w;for(let g of b.issues)if(g.code==="invalid_union"&&g.errors.length)g.errors.map((J)=>I({issues:J},[...D,...g.path]));else if(g.code==="invalid_key")I({issues:g.issues},[...D,...g.path]);else if(g.code==="invalid_element")I({issues:g.issues},[...D,...g.path]);else{let J=[...D,...g.path];if(J.length===0){U.errors.push(v(g));continue}let X=U,W=0;while(W<J.length){let G=J[W],O=W===J.length-1;if(typeof G==="string")X.properties??(X.properties={}),(u=X.properties)[G]??(u[G]={errors:[]}),X=X.properties[G];else X.items??(X.items=[]),(w=X.items)[G]??(w[G]={errors:[]}),X=X.items[G];if(O)X.errors.push(v(g));W++}}};return I($),U}function QS($){let v=[],U=$.map((I)=>typeof I==="object"?I.key:I);for(let I of U)if(typeof I==="number")v.push(`[${I}]`);else if(typeof I==="symbol")v.push(`[${JSON.stringify(String(I))}]`);else if(/[^\w$]/.test(I))v.push(`[${JSON.stringify(I)}]`);else{if(v.length)v.push(".");v.push(I)}return v.join("")}function rQ($){let v=[],U=[...$.issues].sort((I,b)=>(I.path??[]).length-(b.path??[]).length);for(let I of U)if(v.push(`\u2716 ${I.message}`),I.path?.length)v.push(` \u2192 at ${QS(I.path)}`);return v.join(`
|
|
242
|
+
programmable: funnel.claude.launch({ profileId | channelId, options, env, resume })`,pm=["profile","channel"],US=_.createHandlers(c(C1),i("query",H.object({profile:H.string().optional(),channel:H.string().optional()}).loose()),async($)=>{let v=$.req.valid("query"),{funnel:U,claude:I,profiles:b,localConfig:D,localConfigSync:u}=$.env,w=sw($.req.url,pm);if(v.channel&&!v.profile){let G=await I.launch({channel:v.channel,userArgs:w});process.exit(G)}if(v.profile){let G=b.get(v.profile);if(!G)throw new e(404,{message:x$({kind:"profile",name:v.profile,available:b.list().map((z)=>z.name),nextAction:"fnl profiles add <name> --path=<repo> --channel=<channel>"})});let O=await I.launch({channel:G.channelId,cwd:G.path,userArgs:w,profileId:G.id,options:G.options,env:G.env,resume:G.resume});process.exit(O)}let g=process.cwd(),J=D.read(g);if(J){let G=v.channel!==void 0?J.channels.find((Q)=>Q.name===v.channel):J.channels[0];if(!G)throw new e(404,{message:v.channel?`channel "${v.channel}" is not declared in funnel.json`:"funnel.json declares no channels"});let O=await u.ensure(G);for(let Q of O.touched)if(Q.changed)await U.listeners.restart(G.name,Q.name);else await U.listeners.start(G.name,Q.name);for(let Q of O.removed)await U.listeners.stop(G.name,Q);let z=await I.launch({channel:G.name,cwd:g,userArgs:w});process.exit(z)}let X=b.getDefault();if(!X)return $.text(C1);let W=await I.launch({channel:X.channelId,cwd:X.path,userArgs:w,profileId:X.id,options:X.options,env:X.env,resume:X.resume});process.exit(W)});var am="--help",em="-h",sm="--profile",$c="-p",vc="--channel",IS=($,v,U,I)=>{let b=$[v];if(b===void 0)return null;if(b===U||I!==null&&b===I){let u=$[v+1];if(u!==void 0&&!u.startsWith("-"))return{value:u,consumed:2};return{value:null,consumed:1}}let D=`${U}=`;if(b.startsWith(D))return{value:b.slice(D.length),consumed:1};return null},bc=($)=>{let v=[],U=null,I=null,b=!1,D=0;while(D<$.length){let u=$[D];if(u===void 0)break;if(u===am||u===em){b=!0,D++;continue}let w=IS($,D,sm,$c);if(w){if(w.value!==null)U=w.value;D+=w.consumed;continue}let g=IS($,D,vc,null);if(g){if(g.value!==null)I=g.value;D+=g.consumed;continue}v.push(u),D++}return{profile:U,channel:I,wantsHelp:b,userArgs:v}},DS=async($,v,U)=>{for(let I of U.touched)if(I.changed)await $.restart(v,I.name);else await $.start(v,I.name);for(let I of U.removed)await $.stop(v,I)},uS=($,v)=>{if(v===null){let I=$.channels[0];if(!I)return"funnel.json declares no channels";return I}let U=$.channels.find((I)=>I.name===v);if(!U){let I=$.channels.map((b)=>b.name).join(", ");return`channel "${v}" is not declared in funnel.json (available: ${I})`}return U},wS=async($,v)=>{let U=bc(v);if(U.wantsHelp)return{stdout:C1,stderr:null,exitCode:0};if(U.profile!==null&&U.channel!==null)return{stdout:null,stderr:`error: --channel cannot be combined with --profile (profile "${U.profile}" already binds a channel)`,exitCode:1};let{claude:I,profiles:b,localConfig:D,localConfigSync:u,listeners:w}=$,g=$.cwd??process.cwd();if(U.profile!==null){let G=b.get(U.profile);if(G)return{stdout:null,stderr:null,exitCode:await I.launch({channel:G.channelId,cwd:G.path,userArgs:U.userArgs,profileId:G.id,options:G.options,env:G.env,resume:G.resume})};let O=D.read(g),z=O?.profiles?.find((Y)=>Y.name===U.profile);if(O&&z){let Y=uS(O,z.channel);if(typeof Y==="string")return{stdout:null,stderr:`error: ${Y}`,exitCode:1};let K=await u.ensure(Y);return await DS(w,Y.name,K),{stdout:null,stderr:null,exitCode:await I.launch({channel:Y.name,cwd:g,userArgs:U.userArgs,options:z.options,env:z.env})}}let Q=O?.profiles?.map((Y)=>Y.name)??[];return{stdout:null,stderr:`error: ${x$({kind:"profile",name:U.profile,available:[...b.list().map((Y)=>Y.name),...Q],nextAction:"fnl profiles add <name> --path=<repo> --channel=<channel>"})}`,exitCode:1}}let J=D.read(g);if(J){let G=uS(J,U.channel);if(typeof G==="string")return{stdout:null,stderr:`error: ${G}`,exitCode:1};let O=await u.ensure(G);return await DS(w,G.name,O),{stdout:null,stderr:null,exitCode:await I.launch({channel:G.name,cwd:g,userArgs:U.userArgs})}}if(U.channel!==null)return{stdout:null,stderr:null,exitCode:await I.launch({channel:U.channel,cwd:g,userArgs:U.userArgs})};let X=b.getDefault();if(!X)return{stdout:C1,stderr:null,exitCode:0};return{stdout:null,stderr:null,exitCode:await I.launch({channel:X.channelId,cwd:X.path,userArgs:U.userArgs,profileId:X.id,options:X.options,env:X.env,resume:X.resume})}};import{join as gS}from"path";var JS=($,v)=>{let U=$.localConfig.read(v);if(!U)return null;if(U.id!==void 0&&U.id!=="")return gS($.home,".funnel","projects",U.id);let I=$.idGenerator.generate(),b=$.writer.ensureId(v,I)??I;return gS($.home,".funnel","projects",b)};class Pb{}var o4=($)=>{if($.literal!==void 0&&$.literal!=="")return $.literal;if($.envVar!==void 0&&$.envVar!==""){let v=$.env[$.envVar];if(v!==void 0&&v!=="")return v;throw Error(`${$.label} references env var "${$.envVar}" but it is not set in the environment`)}throw Error(`${$.label} has neither a literal token nor an env var reference`)};class i1{}class g4 extends i1{constructor(){super();Object.freeze(this)}async fetch($){let v=await globalThis.fetch($.url,{method:$.method,headers:$.headers,body:$.body});return{status:v.status,ok:v.ok,text:()=>v.text(),json:()=>v.json()}}}var Uc="https://discord.com/api/v10",Ic=new g4;class AQ extends Pb{token;http;constructor($){super();this.token=o4({literal:$.config.botToken,envVar:$.config.botTokenEnv,env:$.env??process.env,label:`${$.config.name}.botToken`}),this.http=$.http??Ic,Object.freeze(this)}async call($){let v=($.method||"GET").toUpperCase(),U=$.path.startsWith("/")?$.path:`/${$.path}`,I=$.body,b=I!==null&&typeof I==="object"&&v!=="GET"&&Object.keys(I).length>0,D=await this.http.fetch({method:v,url:`${Uc}${U}`,headers:{Authorization:`Bot ${this.token}`,"Content-Type":"application/json"},body:b?JSON.stringify($.body):void 0});if(!D.ok)throw Error(`Discord API failed (${D.status}): ${await D.text()}`);if(D.status===204)return null;return await D.json()}}var t4=H.object({id:H.string(),name:H.string(),type:H.literal("discord"),botToken:H.string().min(10).optional(),botTokenEnv:H.string().optional(),createdAt:H.string().datetime().optional(),updatedAt:H.string().datetime().optional()});function x($){if($.error instanceof Error)try{let v=$.error.message;if(typeof v==="string")return v;return"<non-string error message>"}catch{return"<unreadable error message>"}try{return String($.error)}catch{return"<unprintable error>"}}function F$($){if($.value instanceof Error)return $.value;let v=x({error:$.value});try{return Error(v)}catch{try{return Error("unknown error")}catch{let U=Object.create(Error.prototype);return U.name="Error",U.message="unknown error",U}}}function p($){try{let v=$();if(v instanceof Promise)return v.catch((U)=>F$({value:U}));return v}catch(v){return F$({value:v})}}var mv=class extends Error{constructor($,v){super($,v?.cause===void 0?void 0:{cause:v.cause});this.name="FlumeParseError",Object.freeze(this)}},F4=class extends Error{constructor($,v){super($,v?.cause===void 0?void 0:{cause:v.cause});this.name="FlumeStartError",Object.freeze(this)}};function ev($){try{let v=$.deps.now();if(typeof v!=="number"||!Number.isFinite(v))return 0;return v}catch{return 0}}var d4=class ${props;constructor(v){this.props=v,Object.freeze(this)}debug(v){this.emit("debug",v)}info(v){this.emit("info",v)}warn(v){this.emit("warn",v)}error(v){this.emit("error",v)}get handler(){return this.props.handler}child(v){return new $({source:v,handler:this.props.handler,deps:this.props.deps})}emit(v,U){let I=this.props.handler;if(!I)return;let b={level:v,source:this.props.source,action:U.action,message:U.message,timestamp:ev({deps:this.props.deps}),error:U.error,detail:U.detail};try{Promise.resolve(I(b)).catch(()=>{})}catch{}}};function jb($){try{Promise.resolve($.fn()).catch((v)=>{try{$.onError(F$({value:v}))}catch{}}).catch(()=>{})}catch(v){try{$.onError(F$({value:v}))}catch{}}}var Dc=class{props;currentStatus="disconnected";currentDetail=null;constructor($){this.props=$}get value(){return this.currentStatus}set($,v){let U=v??null;if(this.currentStatus===$&&this.currentDetail===U)return;let I=this.currentStatus,b=v?` (${v})`:"";this.props.log.info({action:"status",message:`${I} \u2192 ${$}${b}`,detail:{from:I,to:$,reason:U}}),this.currentStatus=$,this.currentDetail=U;let D=this.props.onStatus;if(!D)return;jb({fn:v!==void 0?()=>D($,v):()=>D($),onError:(u)=>{this.props.log.error({action:"onStatus.error",message:x({error:u}),error:u})}})}},uc=class{props;chain=Promise.resolve();depth=0;cancelled=!1;constructor($={}){this.props=$}add($){if(this.cancelled)return;if(this.props.maxDepth!==void 0&&this.depth>=this.props.maxDepth){this.props.onOverflow?.({dropped:1,depth:this.depth});return}this.depth++,this.chain=this.chain.then(async()=>{try{await $()}catch{}finally{this.depth--}})}async drain(){await this.chain}cancel(){this.cancelled=!0,this.depth=0,this.chain=Promise.resolve()}size(){return this.depth}isCancelled(){return this.cancelled}},Nb=class{consumed=!1;stopped=!1;ctx=null;statusEmitter=null;queue=new uc;async start($){if(this.consumed)return new F4(`${this.name}: already started`);return this.consumed=!0,this.ctx=$,this.statusEmitter=new Dc({log:$.log,onStatus:$.onStatus}),await this.connect($)}async stop(){if(this.stopped)return;this.stopped=!0;try{await this.disconnect()}finally{await this.queue.drain(),this.statusEmitter?.set("disconnected"),this.ctx=null}}status(){return this.statusEmitter?.value??"disconnected"}emit($){let v=this.ctx;if(!v)return;this.queue.add(async()=>{let U=await p(()=>Promise.resolve(v.onEvent($)));if(U instanceof Error)v.log.error({action:"onEvent.error",message:x({error:U}),error:U})})}setStatus($,v){this.statusEmitter?.set($,v)}get currentStatus(){return this.statusEmitter?.value??"disconnected"}get context(){return this.ctx}};var Uv=class extends Error{code;constructor($,v){super($,v?.cause===void 0?void 0:{cause:v.cause});this.name="FlumeConnectionError",this.code=v?.code??null,Object.freeze(this)}};function p4($){return typeof $==="object"&&$!==null}function $g($){try{let v=$.deps.random();if(typeof v!=="number"||!Number.isFinite(v))return 0.5;if(v<0||v>=1)return 0.5;return v}catch{return 0.5}}var vg=class{props;currentAttempt=0;isAborted=!1;timer=null;constructor($){this.props=$}get attempt(){return this.currentAttempt}get aborted(){return this.isAborted}schedule($){if(this.isAborted)return 0;if(this.currentAttempt>=this.props.maxAttempts)return-1;this.clearTimer();let v=this.computeDelay(),U=p(()=>this.props.deps.setTimeout(()=>this.runRetry($),v));if(U instanceof Error)return this.props.log.error({action:"reconnect.timer.schedule.error",message:x({error:U}),error:U}),this.timer=null,0;return this.currentAttempt++,this.timer=U,v}reset(){this.currentAttempt=0}cancel(){this.isAborted=!0,this.clearTimer()}runRetry($){this.timer=null,jb({fn:$,onError:(v)=>{this.props.log.error({action:"reconnect.timer.error",message:x({error:v}),error:v})}})}clearTimer(){if(this.timer===null)return;let $=this.timer,v=p(()=>this.props.deps.clearTimeout($));if(v instanceof Error)this.props.log.error({action:"reconnect.timer.clear.error",message:x({error:v}),error:v});this.timer=null}computeDelay(){return Math.min(this.props.baseDelay*2**this.currentAttempt,this.props.maxDelay)*(0.5+$g({deps:this.props.deps})*0.5)}};function bg($){if(!$.reconnector){$.log.info({action:"reconnect.disabled",message:"reconnect is disabled, staying disconnected"}),$.setStatus("disconnected");return}if($.reconnector.aborted){$.log.info({action:"reconnect.aborted",message:"reconnector cancelled, staying disconnected"}),$.setStatus("disconnected");return}let v=$.reconnector.schedule($.retry);if(v===-1){let U=new Uv(`reconnect exhausted after ${$.reconnector.attempt} attempts`);$.log.error({action:"reconnect.exhausted",message:x({error:U}),error:U}),$.setStatus("disconnected");return}$.setStatus("reconnecting"),$.log.info({action:"reconnect.scheduled",message:`next attempt in ${Math.round(v)}ms`,detail:{attempt:$.reconnector.attempt,delayMs:Math.round(v)}})}function Ug($){return p(()=>JSON.stringify($))}function Sb($){try{return JSON.parse($)}catch(v){return new mv(v instanceof Error?`invalid JSON: ${v.message}`:"invalid JSON",{cause:v})}}var z$={};e$(z$,{xor:()=>lM,xid:()=>XM,void:()=>RM,uuidv7:()=>bM,uuidv6:()=>vM,uuidv4:()=>$M,uuid:()=>sS,util:()=>n,url:()=>UM,uppercase:()=>cU,unknown:()=>nb,union:()=>ZJ,undefined:()=>kM,ulid:()=>JM,uint64:()=>ZM,uint32:()=>MM,tuple:()=>mV,trim:()=>eU,treeifyError:()=>nQ,transform:()=>kJ,toUpperCase:()=>$I,toLowerCase:()=>sU,toJSONSchema:()=>IJ,templateLiteral:()=>v_,symbol:()=>TM,superRefine:()=>LL,success:()=>aM,stringbool:()=>J_,stringFormat:()=>qM,string:()=>J0,strictObject:()=>iM,startsWith:()=>tU,slugify:()=>vI,size:()=>kb,setErrorMap:()=>lt,set:()=>cM,safeParseAsync:()=>LV,safeParse:()=>VV,safeEncodeAsync:()=>NV,safeEncode:()=>PV,safeDecodeAsync:()=>SV,safeDecode:()=>jV,registry:()=>_g,regexes:()=>cv,regex:()=>hU,refine:()=>VL,record:()=>cV,readonly:()=>GL,property:()=>$J,promise:()=>b_,prettifyError:()=>rQ,preprocess:()=>W_,prefault:()=>IL,positive:()=>pg,pipe:()=>WJ,partialRecord:()=>yM,parseAsync:()=>YV,parse:()=>QV,overwrite:()=>J4,optional:()=>W0,object:()=>CM,number:()=>_V,nullish:()=>pM,nullable:()=>G0,null:()=>EV,normalize:()=>aU,nonpositive:()=>eg,nonoptional:()=>DL,nonnegative:()=>sg,never:()=>FJ,negative:()=>ag,nativeEnum:()=>oM,nanoid:()=>uM,nan:()=>eM,multipleOf:()=>E6,minSize:()=>E4,minLength:()=>e4,mime:()=>pU,meta:()=>w_,maxSize:()=>R6,maxLength:()=>Eb,map:()=>mM,mac:()=>OM,lte:()=>ov,lt:()=>T4,lowercase:()=>mU,looseRecord:()=>hM,looseObject:()=>xM,locales:()=>D0,literal:()=>tM,length:()=>Rb,lazy:()=>zL,ksuid:()=>WM,keyof:()=>rM,jwt:()=>KM,json:()=>X_,iso:()=>II,ipv6:()=>HM,ipv4:()=>GM,invertCodec:()=>$_,intersection:()=>yV,int64:()=>FM,int32:()=>SM,int:()=>XJ,instanceof:()=>g_,includes:()=>oU,httpUrl:()=>IM,hostname:()=>BM,hex:()=>AM,hash:()=>PM,guid:()=>eS,gte:()=>jv,gt:()=>k4,globalRegistry:()=>uv,getErrorMap:()=>ft,function:()=>U_,fromJSONSchema:()=>O_,formatError:()=>t1,float64:()=>NM,float32:()=>jM,flattenError:()=>o1,file:()=>dM,exactOptional:()=>sV,enum:()=>TJ,endsWith:()=>dU,encodeAsync:()=>BV,encode:()=>KV,emoji:()=>DM,email:()=>aS,e164:()=>LM,discriminatedUnion:()=>fM,describe:()=>u_,decodeAsync:()=>AV,decode:()=>qV,date:()=>nM,custom:()=>D_,cuid2:()=>gM,cuid:()=>wM,core:()=>s4,config:()=>o$,coerce:()=>qL,codec:()=>sM,clone:()=>Av,cidrv6:()=>QM,cidrv4:()=>zM,check:()=>I_,catch:()=>gL,boolean:()=>FV,bigint:()=>_M,base64url:()=>VM,base64:()=>YM,array:()=>Q0,any:()=>EM,_function:()=>U_,_default:()=>bL,_ZodString:()=>GJ,ZodXor:()=>xV,ZodXID:()=>LJ,ZodVoid:()=>CV,ZodUnknown:()=>nV,ZodUnion:()=>V0,ZodUndefined:()=>TV,ZodUUID:()=>R4,ZodURL:()=>H0,ZodULID:()=>VJ,ZodType:()=>I$,ZodTuple:()=>hV,ZodTransform:()=>aV,ZodTemplateLiteral:()=>OL,ZodSymbol:()=>ZV,ZodSuccess:()=>uL,ZodStringFormat:()=>S$,ZodString:()=>wI,ZodSet:()=>tV,ZodRecord:()=>DI,ZodRealError:()=>nv,ZodReadonly:()=>WL,ZodPromise:()=>QL,ZodPreprocess:()=>XL,ZodPrefault:()=>UL,ZodPipe:()=>L0,ZodOptional:()=>EJ,ZodObject:()=>Y0,ZodNumberFormat:()=>rb,ZodNumber:()=>JI,ZodNullable:()=>$L,ZodNull:()=>kV,ZodNonOptional:()=>RJ,ZodNever:()=>rV,ZodNanoID:()=>zJ,ZodNaN:()=>JL,ZodMap:()=>oV,ZodMAC:()=>MV,ZodLiteral:()=>dV,ZodLazy:()=>HL,ZodKSUID:()=>KJ,ZodJWT:()=>MJ,ZodIssueCode:()=>xt,ZodIntersection:()=>fV,ZodISOTime:()=>gJ,ZodISODuration:()=>JJ,ZodISODateTime:()=>uJ,ZodISODate:()=>wJ,ZodIPv6:()=>BJ,ZodIPv4:()=>qJ,ZodGUID:()=>X0,ZodFunction:()=>YL,ZodFirstPartyTypeKind:()=>KL,ZodFile:()=>pV,ZodExactOptional:()=>eV,ZodError:()=>Ct,ZodEnum:()=>uI,ZodEmoji:()=>HJ,ZodEmail:()=>OJ,ZodE164:()=>SJ,ZodDiscriminatedUnion:()=>lV,ZodDefault:()=>vL,ZodDate:()=>z0,ZodCustomStringFormat:()=>gI,ZodCustom:()=>q0,ZodCodec:()=>K0,ZodCatch:()=>wL,ZodCUID2:()=>YJ,ZodCUID:()=>QJ,ZodCIDRv6:()=>PJ,ZodCIDRv4:()=>AJ,ZodBoolean:()=>XI,ZodBigIntFormat:()=>_J,ZodBigInt:()=>WI,ZodBase64URL:()=>NJ,ZodBase64:()=>jJ,ZodArray:()=>iV,ZodAny:()=>RV,TimePrecision:()=>m7,NEVER:()=>PQ,$output:()=>i7,$input:()=>x7,$brand:()=>jQ});var s4={};e$(s4,{version:()=>kY,util:()=>n,treeifyError:()=>nQ,toJSONSchema:()=>IJ,toDotPath:()=>QS,safeParseAsync:()=>iQ,safeParse:()=>CQ,safeEncodeAsync:()=>ic,safeEncode:()=>rc,safeDecodeAsync:()=>xc,safeDecode:()=>Cc,registry:()=>_g,regexes:()=>cv,process:()=>B$,prettifyError:()=>rQ,parseAsync:()=>wg,parse:()=>ug,meta:()=>j3,locales:()=>D0,isValidJWT:()=>CS,isValidBase64URL:()=>rS,isValidBase64:()=>v5,initializeContext:()=>n6,globalRegistry:()=>uv,globalConfig:()=>Mb,formatError:()=>t1,flattenError:()=>o1,finalize:()=>C6,extractDefs:()=>r6,encodeAsync:()=>Rc,encode:()=>kc,describe:()=>P3,decodeAsync:()=>nc,decode:()=>Ec,createToJSONSchemaMethod:()=>S3,createStandardJSONSchemaMethod:()=>UI,config:()=>o$,clone:()=>Av,_xor:()=>Ht,_xid:()=>xg,_void:()=>z3,_uuidv7:()=>Eg,_uuidv6:()=>kg,_uuidv4:()=>Tg,_uuid:()=>Zg,_url:()=>w0,_uppercase:()=>cU,_unknown:()=>O3,_union:()=>Ot,_undefined:()=>X3,_ulid:()=>ig,_uint64:()=>g3,_uint32:()=>b3,_tuple:()=>Yt,_trim:()=>eU,_transform:()=>Pt,_toUpperCase:()=>$I,_toLowerCase:()=>sU,_templateLiteral:()=>kt,_symbol:()=>J3,_superRefine:()=>A3,_success:()=>_t,_stringbool:()=>N3,_stringFormat:()=>bI,_string:()=>f7,_startsWith:()=>tU,_slugify:()=>vI,_size:()=>kb,_set:()=>Kt,_safeParseAsync:()=>lU,_safeParse:()=>xU,_safeEncodeAsync:()=>Hg,_safeEncode:()=>Gg,_safeDecodeAsync:()=>zg,_safeDecode:()=>Og,_regex:()=>hU,_refine:()=>B3,_record:()=>Vt,_readonly:()=>Tt,_property:()=>$J,_promise:()=>Rt,_positive:()=>pg,_pipe:()=>Zt,_parseAsync:()=>iU,_parse:()=>CU,_overwrite:()=>J4,_optional:()=>jt,_number:()=>p7,_nullable:()=>Nt,_null:()=>W3,_normalize:()=>aU,_nonpositive:()=>eg,_nonoptional:()=>Mt,_nonnegative:()=>sg,_never:()=>H3,_negative:()=>ag,_nativeEnum:()=>Bt,_nanoid:()=>ng,_nan:()=>V3,_multipleOf:()=>E6,_minSize:()=>E4,_minLength:()=>e4,_min:()=>jv,_mime:()=>pU,_maxSize:()=>R6,_maxLength:()=>Eb,_max:()=>ov,_map:()=>Lt,_mac:()=>h7,_lte:()=>ov,_lt:()=>T4,_lowercase:()=>mU,_literal:()=>At,_length:()=>Rb,_lazy:()=>Et,_ksuid:()=>lg,_jwt:()=>dg,_isoTime:()=>t7,_isoDuration:()=>d7,_isoDateTime:()=>c7,_isoDate:()=>o7,_ipv6:()=>yg,_ipv4:()=>fg,_intersection:()=>Qt,_int64:()=>w3,_int32:()=>v3,_int:()=>e7,_includes:()=>oU,_guid:()=>u0,_gte:()=>jv,_gt:()=>k4,_float64:()=>$3,_float32:()=>s7,_file:()=>K3,_enum:()=>qt,_endsWith:()=>dU,_encodeAsync:()=>Xg,_encode:()=>gg,_emoji:()=>Rg,_email:()=>Fg,_e164:()=>tg,_discriminatedUnion:()=>zt,_default:()=>St,_decodeAsync:()=>Wg,_decode:()=>Jg,_date:()=>Q3,_custom:()=>q3,_cuid2:()=>Cg,_cuid:()=>rg,_coercedString:()=>y7,_coercedNumber:()=>a7,_coercedDate:()=>Y3,_coercedBoolean:()=>I3,_coercedBigint:()=>u3,_cidrv6:()=>mg,_cidrv4:()=>hg,_check:()=>oS,_catch:()=>Ft,_boolean:()=>U3,_bigint:()=>D3,_base64url:()=>og,_base64:()=>cg,_array:()=>L3,_any:()=>G3,TimePrecision:()=>m7,NEVER:()=>PQ,JSONSchemaGenerator:()=>WV,JSONSchema:()=>tS,Doc:()=>Lg,$output:()=>i7,$input:()=>x7,$constructor:()=>L,$brand:()=>jQ,$ZodXor:()=>L5,$ZodXID:()=>hY,$ZodVoid:()=>z5,$ZodUnknown:()=>O5,$ZodUnion:()=>s1,$ZodUndefined:()=>X5,$ZodUUID:()=>nY,$ZodURL:()=>CY,$ZodULID:()=>yY,$ZodType:()=>v$,$ZodTuple:()=>Ng,$ZodTransform:()=>M5,$ZodTemplateLiteral:()=>i5,$ZodSymbol:()=>J5,$ZodSuccess:()=>E5,$ZodStringFormat:()=>N$,$ZodString:()=>Tb,$ZodSet:()=>P5,$ZodRegistry:()=>l7,$ZodRecord:()=>B5,$ZodRealError:()=>Rv,$ZodReadonly:()=>C5,$ZodPromise:()=>l5,$ZodPreprocess:()=>r5,$ZodPrefault:()=>T5,$ZodPipe:()=>Mg,$ZodOptional:()=>Sg,$ZodObjectJIT:()=>V5,$ZodObject:()=>lS,$ZodNumberFormat:()=>w5,$ZodNumber:()=>Pg,$ZodNullable:()=>F5,$ZodNull:()=>W5,$ZodNonOptional:()=>k5,$ZodNever:()=>H5,$ZodNanoID:()=>xY,$ZodNaN:()=>n5,$ZodMap:()=>A5,$ZodMAC:()=>eY,$ZodLiteral:()=>N5,$ZodLazy:()=>f5,$ZodKSUID:()=>mY,$ZodJWT:()=>D5,$ZodIntersection:()=>q5,$ZodISOTime:()=>tY,$ZodISODuration:()=>dY,$ZodISODateTime:()=>cY,$ZodISODate:()=>oY,$ZodIPv6:()=>aY,$ZodIPv4:()=>pY,$ZodGUID:()=>RY,$ZodFunction:()=>x5,$ZodFile:()=>S5,$ZodExactOptional:()=>_5,$ZodError:()=>c1,$ZodEnum:()=>j5,$ZodEncodeError:()=>_b,$ZodEmoji:()=>iY,$ZodEmail:()=>rY,$ZodE164:()=>I5,$ZodDiscriminatedUnion:()=>K5,$ZodDefault:()=>Z5,$ZodDate:()=>Q5,$ZodCustomStringFormat:()=>u5,$ZodCustom:()=>y5,$ZodCodec:()=>$0,$ZodCheckUpperCase:()=>NY,$ZodCheckStringFormat:()=>fU,$ZodCheckStartsWith:()=>MY,$ZodCheckSizeEquals:()=>KY,$ZodCheckRegex:()=>PY,$ZodCheckProperty:()=>FY,$ZodCheckOverwrite:()=>TY,$ZodCheckNumberFormat:()=>QY,$ZodCheckMultipleOf:()=>zY,$ZodCheckMinSize:()=>LY,$ZodCheckMinLength:()=>BY,$ZodCheckMimeType:()=>ZY,$ZodCheckMaxSize:()=>VY,$ZodCheckMaxLength:()=>qY,$ZodCheckLowerCase:()=>jY,$ZodCheckLessThan:()=>Yg,$ZodCheckLengthEquals:()=>AY,$ZodCheckIncludes:()=>SY,$ZodCheckGreaterThan:()=>Vg,$ZodCheckEndsWith:()=>_Y,$ZodCheckBigIntFormat:()=>YY,$ZodCheck:()=>Z$,$ZodCatch:()=>R5,$ZodCUID2:()=>fY,$ZodCUID:()=>lY,$ZodCIDRv6:()=>$5,$ZodCIDRv4:()=>sY,$ZodBoolean:()=>e1,$ZodBigIntFormat:()=>g5,$ZodBigInt:()=>jg,$ZodBase64URL:()=>U5,$ZodBase64:()=>b5,$ZodAsyncError:()=>Z4,$ZodArray:()=>Y5,$ZodAny:()=>G5});var XS,PQ=Object.freeze({status:"aborted"});function L($,v,U){function I(w,g){if(!w._zod)Object.defineProperty(w,"_zod",{value:{def:g,constr:u,traits:new Set},enumerable:!1});if(w._zod.traits.has($))return;w._zod.traits.add($),v(w,g);let J=u.prototype,X=Object.keys(J);for(let W=0;W<X.length;W++){let G=X[W];if(!(G in w))w[G]=J[G].bind(w)}}let b=U?.Parent??Object;class D extends b{}Object.defineProperty(D,"name",{value:$});function u(w){var g;let J=U?.Parent?new D:this;I(J,w),(g=J._zod).deferred??(g.deferred=[]);for(let X of J._zod.deferred)X();return J}return Object.defineProperty(u,"init",{value:I}),Object.defineProperty(u,Symbol.hasInstance,{value:(w)=>{if(U?.Parent&&w instanceof U.Parent)return!0;return w?._zod?.traits?.has($)}}),Object.defineProperty(u,"name",{value:$}),u}var jQ=Symbol("zod_brand");class Z4 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class _b extends Error{constructor($){super(`Encountered unidirectional transform during encode: ${$}`);this.name="ZodEncodeError"}}(XS=globalThis).__zod_globalConfig??(XS.__zod_globalConfig={});var Mb=globalThis.__zod_globalConfig;function o$($){if($)Object.assign(Mb,$);return Mb}var n={};e$(n,{unwrapMessage:()=>x1,uint8ArrayToHex:()=>Zc,uint8ArrayToBase64url:()=>_c,uint8ArrayToBase64:()=>OS,stringifyPrimitive:()=>T,slugify:()=>MQ,shallowClone:()=>FQ,safeExtend:()=>Ac,required:()=>Nc,randomString:()=>Qc,propertyKeyTypes:()=>y1,promiseAllObject:()=>zc,primitiveTypes:()=>ZQ,prefixIssues:()=>Ev,pick:()=>Kc,partial:()=>jc,parsedType:()=>E,optionalKeys:()=>TQ,omit:()=>qc,objectClone:()=>Gc,numKeys:()=>Yc,nullish:()=>F6,normalizeParams:()=>C,mergeDefs:()=>a4,merge:()=>Pc,jsonStringifyReplacer:()=>RU,joinValues:()=>B,issue:()=>rU,isPlainObject:()=>T6,isObject:()=>Fb,hexToUint8Array:()=>Fc,getSizableOrigin:()=>h1,getParsedType:()=>Vc,getLengthableOrigin:()=>m1,getEnumValues:()=>l1,getElementAtPath:()=>Hc,floatSafeRemainder:()=>SQ,finalizeIssue:()=>Pv,extend:()=>Bc,explicitlyAborted:()=>RQ,escapeRegex:()=>sv,esc:()=>Ig,defineLazy:()=>J$,createTransparentProxy:()=>Lc,cloneDef:()=>Oc,clone:()=>Av,cleanRegex:()=>f1,cleanEnum:()=>Sc,captureStackTrace:()=>Dg,cached:()=>nU,base64urlToUint8Array:()=>Mc,base64ToUint8Array:()=>GS,assignProp:()=>Z6,assertNotEqual:()=>gc,assertNever:()=>Xc,assertIs:()=>Jc,assertEqual:()=>wc,assert:()=>Wc,allowsEval:()=>_Q,aborted:()=>k6,NUMBER_FORMAT_RANGES:()=>kQ,Class:()=>HS,BIGINT_FORMAT_RANGES:()=>EQ});function wc($){return $}function gc($){return $}function Jc($){}function Xc($){throw Error("Unexpected value in exhaustive check")}function Wc($){}function l1($){let v=Object.values($).filter((I)=>typeof I==="number");return Object.entries($).filter(([I,b])=>v.indexOf(+I)===-1).map(([I,b])=>b)}function B($,v="|"){return $.map((U)=>T(U)).join(v)}function RU($,v){if(typeof v==="bigint")return v.toString();return v}function nU($){return{get value(){{let U=$();return Object.defineProperty(this,"value",{value:U}),U}throw Error("cached value already set")}}}function F6($){return $===null||$===void 0}function f1($){let v=$.startsWith("^")?1:0,U=$.endsWith("$")?$.length-1:$.length;return $.slice(v,U)}function SQ($,v){let U=$/v,I=Math.round(U),b=Number.EPSILON*Math.max(Math.abs(U),1);if(Math.abs(U-I)<b)return 0;return U-I}var WS=Symbol("evaluating");function J$($,v,U){let I=void 0;Object.defineProperty($,v,{get(){if(I===WS)return;if(I===void 0)I=WS,I=U();return I},set(b){Object.defineProperty($,v,{value:b})},configurable:!0})}function Gc($){return Object.create(Object.getPrototypeOf($),Object.getOwnPropertyDescriptors($))}function Z6($,v,U){Object.defineProperty($,v,{value:U,writable:!0,enumerable:!0,configurable:!0})}function a4(...$){let v={};for(let U of $){let I=Object.getOwnPropertyDescriptors(U);Object.assign(v,I)}return Object.defineProperties({},v)}function Oc($){return a4($._zod.def)}function Hc($,v){if(!v)return $;return v.reduce((U,I)=>U?.[I],$)}function zc($){let v=Object.keys($),U=v.map((I)=>$[I]);return Promise.all(U).then((I)=>{let b={};for(let D=0;D<v.length;D++)b[v[D]]=I[D];return b})}function Qc($=10){let U="";for(let I=0;I<$;I++)U+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return U}function Ig($){return JSON.stringify($)}function MQ($){return $.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Dg="captureStackTrace"in Error?Error.captureStackTrace:(...$)=>{};function Fb($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var _Q=nU(()=>{if(Mb.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch($){return!1}});function T6($){if(Fb($)===!1)return!1;let v=$.constructor;if(v===void 0)return!0;if(typeof v!=="function")return!0;let U=v.prototype;if(Fb(U)===!1)return!1;if(Object.prototype.hasOwnProperty.call(U,"isPrototypeOf")===!1)return!1;return!0}function FQ($){if(T6($))return{...$};if(Array.isArray($))return[...$];if($ instanceof Map)return new Map($);if($ instanceof Set)return new Set($);return $}function Yc($){let v=0;for(let U in $)if(Object.prototype.hasOwnProperty.call($,U))v++;return v}var Vc=($)=>{let v=typeof $;switch(v){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN($)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray($))return"array";if($===null)return"null";if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return"promise";if(typeof Map<"u"&&$ instanceof Map)return"map";if(typeof Set<"u"&&$ instanceof Set)return"set";if(typeof Date<"u"&&$ instanceof Date)return"date";if(typeof File<"u"&&$ instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${v}`)}},y1=new Set(["string","number","symbol"]),ZQ=new Set(["string","number","bigint","boolean","symbol","undefined"]);function sv($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Av($,v,U){let I=new $._zod.constr(v??$._zod.def);if(!v||U?.parent)I._zod.parent=$;return I}function C($){let v=$;if(!v)return{};if(typeof v==="string")return{error:()=>v};if(v?.message!==void 0){if(v?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");v.error=v.message}if(delete v.message,typeof v.error==="string")return{...v,error:()=>v.error};return v}function Lc($){let v;return new Proxy({},{get(U,I,b){return v??(v=$()),Reflect.get(v,I,b)},set(U,I,b,D){return v??(v=$()),Reflect.set(v,I,b,D)},has(U,I){return v??(v=$()),Reflect.has(v,I)},deleteProperty(U,I){return v??(v=$()),Reflect.deleteProperty(v,I)},ownKeys(U){return v??(v=$()),Reflect.ownKeys(v)},getOwnPropertyDescriptor(U,I){return v??(v=$()),Reflect.getOwnPropertyDescriptor(v,I)},defineProperty(U,I,b){return v??(v=$()),Reflect.defineProperty(v,I,b)}})}function T($){if(typeof $==="bigint")return $.toString()+"n";if(typeof $==="string")return`"${$}"`;return`${$}`}function TQ($){return Object.keys($).filter((v)=>{return $[v]._zod.optin==="optional"&&$[v]._zod.optout==="optional"})}var kQ={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},EQ={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Kc($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let D=a4($._zod.def,{get shape(){let u={};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;u[w]=U.shape[w]}return Z6(this,"shape",u),u},checks:[]});return Av($,D)}function qc($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let D=a4($._zod.def,{get shape(){let u={...$._zod.def.shape};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;delete u[w]}return Z6(this,"shape",u),u},checks:[]});return Av($,D)}function Bc($,v){if(!T6(v))throw Error("Invalid input to extend: expected a plain object");let U=$._zod.def.checks;if(U&&U.length>0){let D=$._zod.def.shape;for(let u in v)if(Object.getOwnPropertyDescriptor(D,u)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let b=a4($._zod.def,{get shape(){let D={...$._zod.def.shape,...v};return Z6(this,"shape",D),D}});return Av($,b)}function Ac($,v){if(!T6(v))throw Error("Invalid input to safeExtend: expected a plain object");let U=a4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v};return Z6(this,"shape",I),I}});return Av($,U)}function Pc($,v){if($._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let U=a4($._zod.def,{get shape(){let I={...$._zod.def.shape,...v._zod.def.shape};return Z6(this,"shape",I),I},get catchall(){return v._zod.def.catchall},checks:v._zod.def.checks??[]});return Av($,U)}function jc($,v,U){let b=v._zod.def.checks;if(b&&b.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let u=a4(v._zod.def,{get shape(){let w=v._zod.def.shape,g={...w};if(U)for(let J in U){if(!(J in w))throw Error(`Unrecognized key: "${J}"`);if(!U[J])continue;g[J]=$?new $({type:"optional",innerType:w[J]}):w[J]}else for(let J in w)g[J]=$?new $({type:"optional",innerType:w[J]}):w[J];return Z6(this,"shape",g),g},checks:[]});return Av(v,u)}function Nc($,v,U){let I=a4(v._zod.def,{get shape(){let b=v._zod.def.shape,D={...b};if(U)for(let u in U){if(!(u in D))throw Error(`Unrecognized key: "${u}"`);if(!U[u])continue;D[u]=new $({type:"nonoptional",innerType:b[u]})}else for(let u in b)D[u]=new $({type:"nonoptional",innerType:b[u]});return Z6(this,"shape",D),D}});return Av(v,I)}function k6($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue!==!0)return!0;return!1}function RQ($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue===!1)return!0;return!1}function Ev($,v){return v.map((U)=>{var I;return(I=U).path??(I.path=[]),U.path.unshift($),U})}function x1($){return typeof $==="string"?$:$?.message}function Pv($,v,U){let I=$.message?$.message:x1($.inst?._zod.def?.error?.($))??x1(v?.error?.($))??x1(U.customError?.($))??x1(U.localeError?.($))??"Invalid input",{inst:b,continue:D,input:u,...w}=$;if(w.path??(w.path=[]),w.message=I,v?.reportInput)w.input=u;return w}function h1($){if($ instanceof Set)return"set";if($ instanceof Map)return"map";if($ instanceof File)return"file";return"unknown"}function m1($){if(Array.isArray($))return"array";if(typeof $==="string")return"string";return"unknown"}function E($){let v=typeof $;switch(v){case"number":return Number.isNaN($)?"nan":"number";case"object":{if($===null)return"null";if(Array.isArray($))return"array";let U=$;if(U&&Object.getPrototypeOf(U)!==Object.prototype&&"constructor"in U&&U.constructor)return U.constructor.name}}return v}function rU(...$){let[v,U,I]=$;if(typeof v==="string")return{message:v,code:"custom",input:U,inst:I};return{...v}}function Sc($){return Object.entries($).filter(([v,U])=>{return Number.isNaN(Number.parseInt(v,10))}).map((v)=>v[1])}function GS($){let v=atob($),U=new Uint8Array(v.length);for(let I=0;I<v.length;I++)U[I]=v.charCodeAt(I);return U}function OS($){let v="";for(let U=0;U<$.length;U++)v+=String.fromCharCode($[U]);return btoa(v)}function Mc($){let v=$.replace(/-/g,"+").replace(/_/g,"/"),U="=".repeat((4-v.length%4)%4);return GS(v+U)}function _c($){return OS($).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Fc($){let v=$.replace(/^0x/,"");if(v.length%2!==0)throw Error("Invalid hex string length");let U=new Uint8Array(v.length/2);for(let I=0;I<v.length;I+=2)U[I/2]=Number.parseInt(v.slice(I,I+2),16);return U}function Zc($){return Array.from($).map((v)=>v.toString(16).padStart(2,"0")).join("")}class HS{constructor(...$){}}var zS=($,v)=>{$.name="$ZodError",Object.defineProperty($,"_zod",{value:$._zod,enumerable:!1}),Object.defineProperty($,"issues",{value:v,enumerable:!1}),$.message=JSON.stringify(v,RU,2),Object.defineProperty($,"toString",{value:()=>$.message,enumerable:!1})},c1=L("$ZodError",zS),Rv=L("$ZodError",zS,{Parent:Error});function o1($,v=(U)=>U.message){let U={},I=[];for(let b of $.issues)if(b.path.length>0)U[b.path[0]]=U[b.path[0]]||[],U[b.path[0]].push(v(b));else I.push(v(b));return{formErrors:I,fieldErrors:U}}function t1($,v=(U)=>U.message){let U={_errors:[]},I=(b,D=[])=>{for(let u of b.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map((w)=>I({issues:w},[...D,...u.path]));else if(u.code==="invalid_key")I({issues:u.issues},[...D,...u.path]);else if(u.code==="invalid_element")I({issues:u.issues},[...D,...u.path]);else{let w=[...D,...u.path];if(w.length===0)U._errors.push(v(u));else{let g=U,J=0;while(J<w.length){let X=w[J];if(J!==w.length-1)g[X]=g[X]||{_errors:[]};else g[X]=g[X]||{_errors:[]},g[X]._errors.push(v(u));g=g[X],J++}}}};return I($),U}function nQ($,v=(U)=>U.message){let U={errors:[]},I=(b,D=[])=>{var u,w;for(let g of b.issues)if(g.code==="invalid_union"&&g.errors.length)g.errors.map((J)=>I({issues:J},[...D,...g.path]));else if(g.code==="invalid_key")I({issues:g.issues},[...D,...g.path]);else if(g.code==="invalid_element")I({issues:g.issues},[...D,...g.path]);else{let J=[...D,...g.path];if(J.length===0){U.errors.push(v(g));continue}let X=U,W=0;while(W<J.length){let G=J[W],O=W===J.length-1;if(typeof G==="string")X.properties??(X.properties={}),(u=X.properties)[G]??(u[G]={errors:[]}),X=X.properties[G];else X.items??(X.items=[]),(w=X.items)[G]??(w[G]={errors:[]}),X=X.items[G];if(O)X.errors.push(v(g));W++}}};return I($),U}function QS($){let v=[],U=$.map((I)=>typeof I==="object"?I.key:I);for(let I of U)if(typeof I==="number")v.push(`[${I}]`);else if(typeof I==="symbol")v.push(`[${JSON.stringify(String(I))}]`);else if(/[^\w$]/.test(I))v.push(`[${JSON.stringify(I)}]`);else{if(v.length)v.push(".");v.push(I)}return v.join("")}function rQ($){let v=[],U=[...$.issues].sort((I,b)=>(I.path??[]).length-(b.path??[]).length);for(let I of U)if(v.push(`\u2716 ${I.message}`),I.path?.length)v.push(` \u2192 at ${QS(I.path)}`);return v.join(`
|
|
243
243
|
`)}var CU=($)=>(v,U,I,b)=>{let D=I?{...I,async:!1}:{async:!1},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)throw new Z4;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>Pv(g,D,o$())));throw Dg(w,b?.callee),w}return u.value},ug=CU(Rv),iU=($)=>async(v,U,I,b)=>{let D=I?{...I,async:!0}:{async:!0},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)u=await u;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>Pv(g,D,o$())));throw Dg(w,b?.callee),w}return u.value},wg=iU(Rv),xU=($)=>(v,U,I)=>{let b=I?{...I,async:!1}:{async:!1},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)throw new Z4;return D.issues.length?{success:!1,error:new($??c1)(D.issues.map((u)=>Pv(u,b,o$())))}:{success:!0,data:D.value}},CQ=xU(Rv),lU=($)=>async(v,U,I)=>{let b=I?{...I,async:!0}:{async:!0},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)D=await D;return D.issues.length?{success:!1,error:new $(D.issues.map((u)=>Pv(u,b,o$())))}:{success:!0,data:D.value}},iQ=lU(Rv),gg=($)=>(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return CU($)(v,U,b)},kc=gg(Rv),Jg=($)=>(v,U,I)=>{return CU($)(v,U,I)},Ec=Jg(Rv),Xg=($)=>async(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return iU($)(v,U,b)},Rc=Xg(Rv),Wg=($)=>async(v,U,I)=>{return iU($)(v,U,I)},nc=Wg(Rv),Gg=($)=>(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return xU($)(v,U,b)},rc=Gg(Rv),Og=($)=>(v,U,I)=>{return xU($)(v,U,I)},Cc=Og(Rv),Hg=($)=>async(v,U,I)=>{let b=I?{...I,direction:"backward"}:{direction:"backward"};return lU($)(v,U,b)},ic=Hg(Rv),zg=($)=>async(v,U,I)=>{return lU($)(v,U,I)},xc=zg(Rv);var cv={};e$(cv,{xid:()=>yQ,uuid7:()=>hc,uuid6:()=>yc,uuid4:()=>fc,uuid:()=>Zb,uppercase:()=>HY,unicodeEmail:()=>YS,undefined:()=>GY,ulid:()=>fQ,time:()=>DY,string:()=>wY,sha512_hex:()=>Wo,sha512_base64url:()=>Oo,sha512_base64:()=>Go,sha384_hex:()=>go,sha384_base64url:()=>Xo,sha384_base64:()=>Jo,sha256_hex:()=>Do,sha256_base64url:()=>wo,sha256_base64:()=>uo,sha1_hex:()=>bo,sha1_base64url:()=>Io,sha1_base64:()=>Uo,rfc5322Email:()=>cc,number:()=>d1,null:()=>WY,nanoid:()=>mQ,md5_hex:()=>sc,md5_base64url:()=>vo,md5_base64:()=>$o,mac:()=>eQ,lowercase:()=>OY,ksuid:()=>hQ,ipv6:()=>aQ,ipv4:()=>pQ,integer:()=>JY,idnEmail:()=>oc,httpProtocol:()=>bY,html5Email:()=>mc,hostname:()=>pc,hex:()=>ec,guid:()=>oQ,extendedDuration:()=>lc,emoji:()=>dQ,email:()=>tQ,e164:()=>UY,duration:()=>cQ,domain:()=>ac,datetime:()=>uY,date:()=>IY,cuid2:()=>lQ,cuid:()=>xQ,cidrv6:()=>$Y,cidrv4:()=>sQ,browserEmail:()=>tc,boolean:()=>XY,bigint:()=>gY,base64url:()=>Qg,base64:()=>vY});var xQ=/^[cC][0-9a-z]{6,}$/,lQ=/^[0-9a-z]+$/,fQ=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,yQ=/^[0-9a-vA-V]{20}$/,hQ=/^[A-Za-z0-9]{27}$/,mQ=/^[a-zA-Z0-9_-]{21}$/,cQ=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,lc=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,oQ=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Zb=($)=>{if(!$)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${$}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},fc=Zb(4),yc=Zb(6),hc=Zb(7),tQ=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,mc=/^[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])?)*$/,cc=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,YS=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,oc=YS,tc=/^[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])?)*$/,dc="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function dQ(){return new RegExp(dc,"u")}var pQ=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,aQ=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,eQ=($)=>{let v=sv($??":");return new RegExp(`^(?:[0-9A-F]{2}${v}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${v}){5}[0-9a-f]{2}$`)},sQ=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,$Y=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,vY=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Qg=/^[A-Za-z0-9_-]*$/,pc=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,ac=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,bY=/^https?$/,UY=/^\+[1-9]\d{6,14}$/,VS="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",IY=new RegExp(`^${VS}$`);function LS($){return typeof $.precision==="number"?$.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":$.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${$.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function DY($){return new RegExp(`^${LS($)}$`)}function uY($){let v=LS({precision:$.precision}),U=["Z"];if($.local)U.push("");if($.offset)U.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let I=`${v}(?:${U.join("|")})`;return new RegExp(`^${VS}T(?:${I})$`)}var wY=($)=>{let v=$?`[\\s\\S]{${$?.minimum??0},${$?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${v}$`)},gY=/^-?\d+n?$/,JY=/^-?\d+$/,d1=/^-?\d+(?:\.\d+)?$/,XY=/^(?:true|false)$/i,WY=/^null$/i;var GY=/^undefined$/i;var OY=/^[^A-Z]*$/,HY=/^[^a-z]*$/,ec=/^[0-9a-fA-F]*$/;function p1($,v){return new RegExp(`^[A-Za-z0-9+/]{${$}}${v}$`)}function a1($){return new RegExp(`^[A-Za-z0-9_-]{${$}}$`)}var sc=/^[0-9a-fA-F]{32}$/,$o=p1(22,"=="),vo=a1(22),bo=/^[0-9a-fA-F]{40}$/,Uo=p1(27,"="),Io=a1(27),Do=/^[0-9a-fA-F]{64}$/,uo=p1(43,"="),wo=a1(43),go=/^[0-9a-fA-F]{96}$/,Jo=p1(64,""),Xo=a1(64),Wo=/^[0-9a-fA-F]{128}$/,Go=p1(86,"=="),Oo=a1(86);var Z$=L("$ZodCheck",($,v)=>{var U;$._zod??($._zod={}),$._zod.def=v,(U=$._zod).onattach??(U.onattach=[])}),qS={number:"number",bigint:"bigint",object:"date"},Yg=L("$ZodCheckLessThan",($,v)=>{Z$.init($,v);let U=qS[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.maximum:b.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(v.value<D)if(v.inclusive)b.maximum=v.value;else b.exclusiveMaximum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value<=v.value:I.value<v.value)return;I.issues.push({origin:U,code:"too_big",maximum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),Vg=L("$ZodCheckGreaterThan",($,v)=>{Z$.init($,v);let U=qS[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.minimum:b.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(v.value>D)if(v.inclusive)b.minimum=v.value;else b.exclusiveMinimum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value>=v.value:I.value>v.value)return;I.issues.push({origin:U,code:"too_small",minimum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),zY=L("$ZodCheckMultipleOf",($,v)=>{Z$.init($,v),$._zod.onattach.push((U)=>{var I;(I=U._zod.bag).multipleOf??(I.multipleOf=v.value)}),$._zod.check=(U)=>{if(typeof U.value!==typeof v.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof U.value==="bigint"?U.value%v.value===BigInt(0):SQ(U.value,v.value)===0)return;U.issues.push({origin:typeof U.value,code:"not_multiple_of",divisor:v.value,input:U.value,inst:$,continue:!v.abort})}}),QY=L("$ZodCheckNumberFormat",($,v)=>{Z$.init($,v),v.format=v.format||"float64";let U=v.format?.includes("int"),I=U?"int":"number",[b,D]=kQ[v.format];$._zod.onattach.push((u)=>{let w=u._zod.bag;if(w.format=v.format,w.minimum=b,w.maximum=D,U)w.pattern=JY}),$._zod.check=(u)=>{let w=u.value;if(U){if(!Number.isInteger(w)){u.issues.push({expected:I,format:v.format,code:"invalid_type",continue:!1,input:w,inst:$});return}if(!Number.isSafeInteger(w)){if(w>0)u.issues.push({input:w,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});else u.issues.push({input:w,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});return}}if(w<b)u.issues.push({origin:"number",input:w,code:"too_small",minimum:b,inclusive:!0,inst:$,continue:!v.abort});if(w>D)u.issues.push({origin:"number",input:w,code:"too_big",maximum:D,inclusive:!0,inst:$,continue:!v.abort})}}),YY=L("$ZodCheckBigIntFormat",($,v)=>{Z$.init($,v);let[U,I]=EQ[v.format];$._zod.onattach.push((b)=>{let D=b._zod.bag;D.format=v.format,D.minimum=U,D.maximum=I}),$._zod.check=(b)=>{let D=b.value;if(D<U)b.issues.push({origin:"bigint",input:D,code:"too_small",minimum:U,inclusive:!0,inst:$,continue:!v.abort});if(D>I)b.issues.push({origin:"bigint",input:D,code:"too_big",maximum:I,inclusive:!0,inst:$,continue:!v.abort})}}),VY=L("$ZodCheckMaxSize",($,v)=>{var U;Z$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!F6(b)&&b.size!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.maximum??Number.POSITIVE_INFINITY;if(v.maximum<b)I._zod.bag.maximum=v.maximum}),$._zod.check=(I)=>{let b=I.value;if(b.size<=v.maximum)return;I.issues.push({origin:h1(b),code:"too_big",maximum:v.maximum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),LY=L("$ZodCheckMinSize",($,v)=>{var U;Z$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!F6(b)&&b.size!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(v.minimum>b)I._zod.bag.minimum=v.minimum}),$._zod.check=(I)=>{let b=I.value;if(b.size>=v.minimum)return;I.issues.push({origin:h1(b),code:"too_small",minimum:v.minimum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),KY=L("$ZodCheckSizeEquals",($,v)=>{var U;Z$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!F6(b)&&b.size!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.minimum=v.size,b.maximum=v.size,b.size=v.size}),$._zod.check=(I)=>{let b=I.value,D=b.size;if(D===v.size)return;let u=D>v.size;I.issues.push({origin:h1(b),...u?{code:"too_big",maximum:v.size}:{code:"too_small",minimum:v.size},inclusive:!0,exact:!0,input:I.value,inst:$,continue:!v.abort})}}),qY=L("$ZodCheckMaxLength",($,v)=>{var U;Z$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!F6(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.maximum??Number.POSITIVE_INFINITY;if(v.maximum<b)I._zod.bag.maximum=v.maximum}),$._zod.check=(I)=>{let b=I.value;if(b.length<=v.maximum)return;let u=m1(b);I.issues.push({origin:u,code:"too_big",maximum:v.maximum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),BY=L("$ZodCheckMinLength",($,v)=>{var U;Z$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!F6(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(v.minimum>b)I._zod.bag.minimum=v.minimum}),$._zod.check=(I)=>{let b=I.value;if(b.length>=v.minimum)return;let u=m1(b);I.issues.push({origin:u,code:"too_small",minimum:v.minimum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),AY=L("$ZodCheckLengthEquals",($,v)=>{var U;Z$.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!F6(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.minimum=v.length,b.maximum=v.length,b.length=v.length}),$._zod.check=(I)=>{let b=I.value,D=b.length;if(D===v.length)return;let u=m1(b),w=D>v.length;I.issues.push({origin:u,...w?{code:"too_big",maximum:v.length}:{code:"too_small",minimum:v.length},inclusive:!0,exact:!0,input:I.value,inst:$,continue:!v.abort})}}),fU=L("$ZodCheckStringFormat",($,v)=>{var U,I;if(Z$.init($,v),$._zod.onattach.push((b)=>{let D=b._zod.bag;if(D.format=v.format,v.pattern)D.patterns??(D.patterns=new Set),D.patterns.add(v.pattern)}),v.pattern)(U=$._zod).check??(U.check=(b)=>{if(v.pattern.lastIndex=0,v.pattern.test(b.value))return;b.issues.push({origin:"string",code:"invalid_format",format:v.format,input:b.value,...v.pattern?{pattern:v.pattern.toString()}:{},inst:$,continue:!v.abort})});else(I=$._zod).check??(I.check=()=>{})}),PY=L("$ZodCheckRegex",($,v)=>{fU.init($,v),$._zod.check=(U)=>{if(v.pattern.lastIndex=0,v.pattern.test(U.value))return;U.issues.push({origin:"string",code:"invalid_format",format:"regex",input:U.value,pattern:v.pattern.toString(),inst:$,continue:!v.abort})}}),jY=L("$ZodCheckLowerCase",($,v)=>{v.pattern??(v.pattern=OY),fU.init($,v)}),NY=L("$ZodCheckUpperCase",($,v)=>{v.pattern??(v.pattern=HY),fU.init($,v)}),SY=L("$ZodCheckIncludes",($,v)=>{Z$.init($,v);let U=sv(v.includes),I=new RegExp(typeof v.position==="number"?`^.{${v.position}}${U}`:U);v.pattern=I,$._zod.onattach.push((b)=>{let D=b._zod.bag;D.patterns??(D.patterns=new Set),D.patterns.add(I)}),$._zod.check=(b)=>{if(b.value.includes(v.includes,v.position))return;b.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:v.includes,input:b.value,inst:$,continue:!v.abort})}}),MY=L("$ZodCheckStartsWith",($,v)=>{Z$.init($,v);let U=new RegExp(`^${sv(v.prefix)}.*`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.startsWith(v.prefix))return;I.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:v.prefix,input:I.value,inst:$,continue:!v.abort})}}),_Y=L("$ZodCheckEndsWith",($,v)=>{Z$.init($,v);let U=new RegExp(`.*${sv(v.suffix)}$`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.endsWith(v.suffix))return;I.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:v.suffix,input:I.value,inst:$,continue:!v.abort})}});function KS($,v,U){if($.issues.length)v.issues.push(...Ev(U,$.issues))}var FY=L("$ZodCheckProperty",($,v)=>{Z$.init($,v),$._zod.check=(U)=>{let I=v.schema._zod.run({value:U.value[v.property],issues:[]},{});if(I instanceof Promise)return I.then((b)=>KS(b,U,v.property));KS(I,U,v.property);return}}),ZY=L("$ZodCheckMimeType",($,v)=>{Z$.init($,v);let U=new Set(v.mime);$._zod.onattach.push((I)=>{I._zod.bag.mime=v.mime}),$._zod.check=(I)=>{if(U.has(I.value.type))return;I.issues.push({code:"invalid_value",values:v.mime,input:I.value.type,inst:$,continue:!v.abort})}}),TY=L("$ZodCheckOverwrite",($,v)=>{Z$.init($,v),$._zod.check=(U)=>{U.value=v.tx(U.value)}});class Lg{constructor($=[]){if(this.content=[],this.indent=0,this)this.args=$}indented($){this.indent+=1,$(this),this.indent-=1}write($){if(typeof $==="function"){$(this,{execution:"sync"}),$(this,{execution:"async"});return}let U=$.split(`
|
|
244
244
|
`).filter((D)=>D),I=Math.min(...U.map((D)=>D.length-D.trimStart().length)),b=U.map((D)=>D.slice(I)).map((D)=>" ".repeat(this.indent*2)+D);for(let D of b)this.content.push(D)}compile(){let $=Function,v=this?.args,I=[...(this?.content??[""]).map((b)=>` ${b}`)];return new $(...v,I.join(`
|
|
245
245
|
`))}}var kY={major:4,minor:4,patch:3};var v$=L("$ZodType",($,v)=>{var U;$??($={}),$._zod.def=v,$._zod.bag=$._zod.bag||{},$._zod.version=kY;let I=[...$._zod.def.checks??[]];if($._zod.traits.has("$ZodCheck"))I.unshift($);for(let b of I)for(let D of b._zod.onattach)D($);if(I.length===0)(U=$._zod).deferred??(U.deferred=[]),$._zod.deferred?.push(()=>{$._zod.run=$._zod.parse});else{let b=(u,w,g)=>{let J=k6(u),X;for(let W of w){if(W._zod.def.when){if(RQ(u))continue;if(!W._zod.def.when(u))continue}else if(J)continue;let G=u.issues.length,O=W._zod.check(u);if(O instanceof Promise&&g?.async===!1)throw new Z4;if(X||O instanceof Promise)X=(X??Promise.resolve()).then(async()=>{if(await O,u.issues.length===G)return;if(!J)J=k6(u,G)});else{if(u.issues.length===G)continue;if(!J)J=k6(u,G)}}if(X)return X.then(()=>{return u});return u},D=(u,w,g)=>{if(k6(u))return u.aborted=!0,u;let J=b(w,I,g);if(J instanceof Promise){if(g.async===!1)throw new Z4;return J.then((X)=>$._zod.parse(X,g))}return $._zod.parse(J,g)};$._zod.run=(u,w)=>{if(w.skipChecks)return $._zod.parse(u,w);if(w.direction==="backward"){let J=$._zod.parse({value:u.value,issues:[]},{...w,skipChecks:!0});if(J instanceof Promise)return J.then((X)=>{return D(X,u,w)});return D(J,u,w)}let g=$._zod.parse(u,w);if(g instanceof Promise){if(w.async===!1)throw new Z4;return g.then((J)=>b(J,I,w))}return b(g,I,w)}}J$($,"~standard",()=>({validate:(b)=>{try{let D=CQ($,b);return D.success?{value:D.data}:{issues:D.error?.issues}}catch(D){return iQ($,b).then((u)=>u.success?{value:u.data}:{issues:u.error?.issues})}},vendor:"zod",version:1}))}),Tb=L("$ZodString",($,v)=>{v$.init($,v),$._zod.pattern=[...$?._zod.bag?.patterns??[]].pop()??wY($._zod.bag),$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=String(U.value)}catch(b){}if(typeof U.value==="string")return U;return U.issues.push({expected:"string",code:"invalid_type",input:U.value,inst:$}),U}}),N$=L("$ZodStringFormat",($,v)=>{fU.init($,v),Tb.init($,v)}),RY=L("$ZodGUID",($,v)=>{v.pattern??(v.pattern=oQ),N$.init($,v)}),nY=L("$ZodUUID",($,v)=>{if(v.version){let I={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[v.version];if(I===void 0)throw Error(`Invalid UUID version: "${v.version}"`);v.pattern??(v.pattern=Zb(I))}else v.pattern??(v.pattern=Zb());N$.init($,v)}),rY=L("$ZodEmail",($,v)=>{v.pattern??(v.pattern=tQ),N$.init($,v)}),CY=L("$ZodURL",($,v)=>{N$.init($,v),$._zod.check=(U)=>{try{let I=U.value.trim();if(!v.normalize&&v.protocol?.source===bY.source){if(!/^https?:\/\//i.test(I)){U.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:U.value,inst:$,continue:!v.abort});return}}let b=new URL(I);if(v.hostname){if(v.hostname.lastIndex=0,!v.hostname.test(b.hostname))U.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:v.hostname.source,input:U.value,inst:$,continue:!v.abort})}if(v.protocol){if(v.protocol.lastIndex=0,!v.protocol.test(b.protocol.endsWith(":")?b.protocol.slice(0,-1):b.protocol))U.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:v.protocol.source,input:U.value,inst:$,continue:!v.abort})}if(v.normalize)U.value=b.href;else U.value=I;return}catch(I){U.issues.push({code:"invalid_format",format:"url",input:U.value,inst:$,continue:!v.abort})}}}),iY=L("$ZodEmoji",($,v)=>{v.pattern??(v.pattern=dQ()),N$.init($,v)}),xY=L("$ZodNanoID",($,v)=>{v.pattern??(v.pattern=mQ),N$.init($,v)}),lY=L("$ZodCUID",($,v)=>{v.pattern??(v.pattern=xQ),N$.init($,v)}),fY=L("$ZodCUID2",($,v)=>{v.pattern??(v.pattern=lQ),N$.init($,v)}),yY=L("$ZodULID",($,v)=>{v.pattern??(v.pattern=fQ),N$.init($,v)}),hY=L("$ZodXID",($,v)=>{v.pattern??(v.pattern=yQ),N$.init($,v)}),mY=L("$ZodKSUID",($,v)=>{v.pattern??(v.pattern=hQ),N$.init($,v)}),cY=L("$ZodISODateTime",($,v)=>{v.pattern??(v.pattern=uY(v)),N$.init($,v)}),oY=L("$ZodISODate",($,v)=>{v.pattern??(v.pattern=IY),N$.init($,v)}),tY=L("$ZodISOTime",($,v)=>{v.pattern??(v.pattern=DY(v)),N$.init($,v)}),dY=L("$ZodISODuration",($,v)=>{v.pattern??(v.pattern=cQ),N$.init($,v)}),pY=L("$ZodIPv4",($,v)=>{v.pattern??(v.pattern=pQ),N$.init($,v),$._zod.bag.format="ipv4"}),aY=L("$ZodIPv6",($,v)=>{v.pattern??(v.pattern=aQ),N$.init($,v),$._zod.bag.format="ipv6",$._zod.check=(U)=>{try{new URL(`http://[${U.value}]`)}catch{U.issues.push({code:"invalid_format",format:"ipv6",input:U.value,inst:$,continue:!v.abort})}}}),eY=L("$ZodMAC",($,v)=>{v.pattern??(v.pattern=eQ(v.delimiter)),N$.init($,v),$._zod.bag.format="mac"}),sY=L("$ZodCIDRv4",($,v)=>{v.pattern??(v.pattern=sQ),N$.init($,v)}),$5=L("$ZodCIDRv6",($,v)=>{v.pattern??(v.pattern=$Y),N$.init($,v),$._zod.check=(U)=>{let I=U.value.split("/");try{if(I.length!==2)throw Error();let[b,D]=I;if(!D)throw Error();let u=Number(D);if(`${u}`!==D)throw Error();if(u<0||u>128)throw Error();new URL(`http://[${b}]`)}catch{U.issues.push({code:"invalid_format",format:"cidrv6",input:U.value,inst:$,continue:!v.abort})}}});function v5($){if($==="")return!0;if(/\s/.test($))return!1;if($.length%4!==0)return!1;try{return atob($),!0}catch{return!1}}var b5=L("$ZodBase64",($,v)=>{v.pattern??(v.pattern=vY),N$.init($,v),$._zod.bag.contentEncoding="base64",$._zod.check=(U)=>{if(v5(U.value))return;U.issues.push({code:"invalid_format",format:"base64",input:U.value,inst:$,continue:!v.abort})}});function rS($){if(!Qg.test($))return!1;let v=$.replace(/[-_]/g,(I)=>I==="-"?"+":"/"),U=v.padEnd(Math.ceil(v.length/4)*4,"=");return v5(U)}var U5=L("$ZodBase64URL",($,v)=>{v.pattern??(v.pattern=Qg),N$.init($,v),$._zod.bag.contentEncoding="base64url",$._zod.check=(U)=>{if(rS(U.value))return;U.issues.push({code:"invalid_format",format:"base64url",input:U.value,inst:$,continue:!v.abort})}}),I5=L("$ZodE164",($,v)=>{v.pattern??(v.pattern=UY),N$.init($,v)});function CS($,v=null){try{let U=$.split(".");if(U.length!==3)return!1;let[I]=U;if(!I)return!1;let b=JSON.parse(atob(I));if("typ"in b&&b?.typ!=="JWT")return!1;if(!b.alg)return!1;if(v&&(!("alg"in b)||b.alg!==v))return!1;return!0}catch{return!1}}var D5=L("$ZodJWT",($,v)=>{N$.init($,v),$._zod.check=(U)=>{if(CS(U.value,v.alg))return;U.issues.push({code:"invalid_format",format:"jwt",input:U.value,inst:$,continue:!v.abort})}}),u5=L("$ZodCustomStringFormat",($,v)=>{N$.init($,v),$._zod.check=(U)=>{if(v.fn(U.value))return;U.issues.push({code:"invalid_format",format:v.format,input:U.value,inst:$,continue:!v.abort})}}),Pg=L("$ZodNumber",($,v)=>{v$.init($,v),$._zod.pattern=$._zod.bag.pattern??d1,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=Number(U.value)}catch(u){}let b=U.value;if(typeof b==="number"&&!Number.isNaN(b)&&Number.isFinite(b))return U;let D=typeof b==="number"?Number.isNaN(b)?"NaN":!Number.isFinite(b)?"Infinity":void 0:void 0;return U.issues.push({expected:"number",code:"invalid_type",input:b,inst:$,...D?{received:D}:{}}),U}}),w5=L("$ZodNumberFormat",($,v)=>{QY.init($,v),Pg.init($,v)}),e1=L("$ZodBoolean",($,v)=>{v$.init($,v),$._zod.pattern=XY,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=Boolean(U.value)}catch(D){}let b=U.value;if(typeof b==="boolean")return U;return U.issues.push({expected:"boolean",code:"invalid_type",input:b,inst:$}),U}}),jg=L("$ZodBigInt",($,v)=>{v$.init($,v),$._zod.pattern=gY,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=BigInt(U.value)}catch(b){}if(typeof U.value==="bigint")return U;return U.issues.push({expected:"bigint",code:"invalid_type",input:U.value,inst:$}),U}}),g5=L("$ZodBigIntFormat",($,v)=>{YY.init($,v),jg.init($,v)}),J5=L("$ZodSymbol",($,v)=>{v$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(typeof b==="symbol")return U;return U.issues.push({expected:"symbol",code:"invalid_type",input:b,inst:$}),U}}),X5=L("$ZodUndefined",($,v)=>{v$.init($,v),$._zod.pattern=GY,$._zod.values=new Set([void 0]),$._zod.parse=(U,I)=>{let b=U.value;if(typeof b>"u")return U;return U.issues.push({expected:"undefined",code:"invalid_type",input:b,inst:$}),U}}),W5=L("$ZodNull",($,v)=>{v$.init($,v),$._zod.pattern=WY,$._zod.values=new Set([null]),$._zod.parse=(U,I)=>{let b=U.value;if(b===null)return U;return U.issues.push({expected:"null",code:"invalid_type",input:b,inst:$}),U}}),G5=L("$ZodAny",($,v)=>{v$.init($,v),$._zod.parse=(U)=>U}),O5=L("$ZodUnknown",($,v)=>{v$.init($,v),$._zod.parse=(U)=>U}),H5=L("$ZodNever",($,v)=>{v$.init($,v),$._zod.parse=(U,I)=>{return U.issues.push({expected:"never",code:"invalid_type",input:U.value,inst:$}),U}}),z5=L("$ZodVoid",($,v)=>{v$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(typeof b>"u")return U;return U.issues.push({expected:"void",code:"invalid_type",input:b,inst:$}),U}}),Q5=L("$ZodDate",($,v)=>{v$.init($,v),$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=new Date(U.value)}catch(w){}let b=U.value,D=b instanceof Date;if(D&&!Number.isNaN(b.getTime()))return U;return U.issues.push({expected:"date",code:"invalid_type",input:b,...D?{received:"Invalid Date"}:{},inst:$}),U}});function AS($,v,U){if($.issues.length)v.issues.push(...Ev(U,$.issues));v.value[U]=$.value}var Y5=L("$ZodArray",($,v)=>{v$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(!Array.isArray(b))return U.issues.push({expected:"array",code:"invalid_type",input:b,inst:$}),U;U.value=Array(b.length);let D=[];for(let u=0;u<b.length;u++){let w=b[u],g=v.element._zod.run({value:w,issues:[]},I);if(g instanceof Promise)D.push(g.then((J)=>AS(J,U,u)));else AS(g,U,u)}if(D.length)return Promise.all(D).then(()=>U);return U}});function Ag($,v,U,I,b,D){let u=U in I;if($.issues.length){if(b&&D&&!u)return;v.issues.push(...Ev(U,$.issues))}if(!u&&!b){if(!$.issues.length)v.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[U]});return}if($.value===void 0){if(u)v.value[U]=void 0}else v.value[U]=$.value}function iS($){let v=Object.keys($.shape);for(let I of v)if(!$.shape?.[I]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${I}": expected a Zod schema`);let U=TQ($.shape);return{...$,keys:v,keySet:new Set(v),numKeys:v.length,optionalKeys:new Set(U)}}function xS($,v,U,I,b,D){let u=[],w=b.keySet,g=b.catchall._zod,J=g.def.type,X=g.optin==="optional",W=g.optout==="optional";for(let G in v){if(G==="__proto__")continue;if(w.has(G))continue;if(J==="never"){u.push(G);continue}let O=g.run({value:v[G],issues:[]},I);if(O instanceof Promise)$.push(O.then((z)=>Ag(z,U,G,v,X,W)));else Ag(O,U,G,v,X,W)}if(u.length)U.issues.push({code:"unrecognized_keys",keys:u,input:v,inst:D});if(!$.length)return U;return Promise.all($).then(()=>{return U})}var lS=L("$ZodObject",($,v)=>{if(v$.init($,v),!Object.getOwnPropertyDescriptor(v,"shape")?.get){let w=v.shape;Object.defineProperty(v,"shape",{get:()=>{let g={...w};return Object.defineProperty(v,"shape",{value:g}),g}})}let I=nU(()=>iS(v));J$($._zod,"propValues",()=>{let w=v.shape,g={};for(let J in w){let X=w[J]._zod;if(X.values){g[J]??(g[J]=new Set);for(let W of X.values)g[J].add(W)}}return g});let b=Fb,D=v.catchall,u;$._zod.parse=(w,g)=>{u??(u=I.value);let J=w.value;if(!b(J))return w.issues.push({expected:"object",code:"invalid_type",input:J,inst:$}),w;w.value={};let X=[],W=u.shape;for(let G of u.keys){let O=W[G],z=O._zod.optin==="optional",Q=O._zod.optout==="optional",Y=O._zod.run({value:J[G],issues:[]},g);if(Y instanceof Promise)X.push(Y.then((K)=>Ag(K,w,G,J,z,Q)));else Ag(Y,w,G,J,z,Q)}if(!D)return X.length?Promise.all(X).then(()=>w):w;return xS(X,J,w,g,I.value,$)}}),V5=L("$ZodObjectJIT",($,v)=>{lS.init($,v);let U=$._zod.parse,I=nU(()=>iS(v)),b=(G)=>{let O=new Lg(["shape","payload","ctx"]),z=I.value,Q=(S)=>{let j=Ig(S);return`shape[${j}]._zod.run({ value: input[${j}], issues: [] }, ctx)`};O.write("const input = payload.value;");let Y=Object.create(null),K=0;for(let S of z.keys)Y[S]=`key_${K++}`;O.write("const newResult = {};");for(let S of z.keys){let j=Y[S],A=Ig(S),h=G[S],s=h?._zod?.optin==="optional",l=h?._zod?.optout==="optional";if(O.write(`const ${j} = ${Q(S)};`),s&&l)O.write(`
|
|
@@ -305,12 +305,12 @@ programmable: funnel.claude.launch({ profileId | channelId, options, env, resume
|
|
|
305
305
|
|
|
306
306
|
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let u of $.seen.entries()){let w=u[1];if(v===u[0]){D(u);continue}if($.external){let J=$.external.registry.get(u[0])?.id;if(v!==u[0]&&J){D(u);continue}}if($.metadataRegistry.get(u[0])?.id){D(u);continue}if(w.cycle){D(u);continue}if(w.count>1){if($.reused==="ref"){D(u);continue}}}}function C6($,v){let U=$.seen.get(v);if(!U)throw Error("Unprocessed schema. This is a bug in Zod.");let I=(w)=>{let g=$.seen.get(w);if(g.ref===null)return;let J=g.def??g.schema,X={...J},W=g.ref;if(g.ref=null,W){I(W);let O=$.seen.get(W),z=O.schema;if(z.$ref&&($.target==="draft-07"||$.target==="draft-04"||$.target==="openapi-3.0"))J.allOf=J.allOf??[],J.allOf.push(z);else Object.assign(J,z);if(Object.assign(J,X),w._zod.parent===W)for(let Y in J){if(Y==="$ref"||Y==="allOf")continue;if(!(Y in X))delete J[Y]}if(z.$ref&&O.def)for(let Y in J){if(Y==="$ref"||Y==="allOf")continue;if(Y in O.def&&JSON.stringify(J[Y])===JSON.stringify(O.def[Y]))delete J[Y]}}let G=w._zod.parent;if(G&&G!==W){I(G);let O=$.seen.get(G);if(O?.schema.$ref){if(J.$ref=O.schema.$ref,O.def)for(let z in J){if(z==="$ref"||z==="allOf")continue;if(z in O.def&&JSON.stringify(J[z])===JSON.stringify(O.def[z]))delete J[z]}}}$.override({zodSchema:w,jsonSchema:J,path:g.path??[]})};for(let w of[...$.seen.entries()].reverse())I(w[0]);let b={};if($.target==="draft-2020-12")b.$schema="https://json-schema.org/draft/2020-12/schema";else if($.target==="draft-07")b.$schema="http://json-schema.org/draft-07/schema#";else if($.target==="draft-04")b.$schema="http://json-schema.org/draft-04/schema#";else if($.target==="openapi-3.0");if($.external?.uri){let w=$.external.registry.get(v)?.id;if(!w)throw Error("Schema is missing an `id` property");b.$id=$.external.uri(w)}Object.assign(b,U.def??U.schema);let D=$.metadataRegistry.get(v)?.id;if(D!==void 0&&b.id===D)delete b.id;let u=$.external?.defs??{};for(let w of $.seen.entries()){let g=w[1];if(g.def&&g.defId){if(g.def.id===g.defId)delete g.def.id;u[g.defId]=g.def}}if($.external);else if(Object.keys(u).length>0)if($.target==="draft-2020-12")b.$defs=u;else b.definitions=u;try{let w=JSON.parse(JSON.stringify(b));return Object.defineProperty(w,"~standard",{value:{...v["~standard"],jsonSchema:{input:UI(v,"input",$.processors),output:UI(v,"output",$.processors)}},enumerable:!1,writable:!1}),w}catch(w){throw Error("Error converting schema to JSON.")}}function Nv($,v){let U=v??{seen:new Set};if(U.seen.has($))return!1;U.seen.add($);let I=$._zod.def;if(I.type==="transform")return!0;if(I.type==="array")return Nv(I.element,U);if(I.type==="set")return Nv(I.valueType,U);if(I.type==="lazy")return Nv(I.getter(),U);if(I.type==="promise"||I.type==="optional"||I.type==="nonoptional"||I.type==="nullable"||I.type==="readonly"||I.type==="default"||I.type==="prefault")return Nv(I.innerType,U);if(I.type==="intersection")return Nv(I.left,U)||Nv(I.right,U);if(I.type==="record"||I.type==="map")return Nv(I.keyType,U)||Nv(I.valueType,U);if(I.type==="pipe"){if($._zod.traits.has("$ZodCodec"))return!0;return Nv(I.in,U)||Nv(I.out,U)}if(I.type==="object"){for(let b in I.shape)if(Nv(I.shape[b],U))return!0;return!1}if(I.type==="union"){for(let b of I.options)if(Nv(b,U))return!0;return!1}if(I.type==="tuple"){for(let b of I.items)if(Nv(b,U))return!0;if(I.rest&&Nv(I.rest,U))return!0;return!1}return!1}var S3=($,v={})=>(U)=>{let I=n6({...U,processors:v});return B$($,I),r6(I,$),C6(I,$)},UI=($,v,U={})=>(I)=>{let{libraryOptions:b,target:D}=I??{},u=n6({...b??{},target:D,io:v,processors:U});return B$($,u),r6(u,$),C6(u,$)};var nt={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},M3=($,v,U,I)=>{let b=U;b.type="string";let{minimum:D,maximum:u,format:w,patterns:g,contentEncoding:J}=$._zod.bag;if(typeof D==="number")b.minLength=D;if(typeof u==="number")b.maxLength=u;if(w){if(b.format=nt[w]??w,b.format==="")delete b.format;if(w==="time")delete b.format}if(J)b.contentEncoding=J;if(g&&g.size>0){let X=[...g];if(X.length===1)b.pattern=X[0].source;else if(X.length>1)b.allOf=[...X.map((W)=>({...v.target==="draft-07"||v.target==="draft-04"||v.target==="openapi-3.0"?{type:"string"}:{},pattern:W.source}))]}},_3=($,v,U,I)=>{let b=U,{minimum:D,maximum:u,format:w,multipleOf:g,exclusiveMaximum:J,exclusiveMinimum:X}=$._zod.bag;if(typeof w==="string"&&w.includes("int"))b.type="integer";else b.type="number";let W=typeof X==="number"&&X>=(D??Number.NEGATIVE_INFINITY),G=typeof J==="number"&&J<=(u??Number.POSITIVE_INFINITY),O=v.target==="draft-04"||v.target==="openapi-3.0";if(W)if(O)b.minimum=X,b.exclusiveMinimum=!0;else b.exclusiveMinimum=X;else if(typeof D==="number")b.minimum=D;if(G)if(O)b.maximum=J,b.exclusiveMaximum=!0;else b.exclusiveMaximum=J;else if(typeof u==="number")b.maximum=u;if(typeof g==="number")b.multipleOf=g},F3=($,v,U,I)=>{U.type="boolean"},Z3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},T3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},k3=($,v,U,I)=>{if(v.target==="openapi-3.0")U.type="string",U.nullable=!0,U.enum=[null];else U.type="null"},E3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},R3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},n3=($,v,U,I)=>{U.not={}},r3=($,v,U,I)=>{},C3=($,v,U,I)=>{},i3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},x3=($,v,U,I)=>{let b=$._zod.def,D=l1(b.entries);if(D.every((u)=>typeof u==="number"))U.type="number";if(D.every((u)=>typeof u==="string"))U.type="string";U.enum=D},l3=($,v,U,I)=>{let b=$._zod.def,D=[];for(let u of b.values)if(u===void 0){if(v.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof u==="bigint")if(v.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else D.push(Number(u));else D.push(u);if(D.length===0);else if(D.length===1){let u=D[0];if(U.type=u===null?"null":typeof u,v.target==="draft-04"||v.target==="openapi-3.0")U.enum=[u];else U.const=u}else{if(D.every((u)=>typeof u==="number"))U.type="number";if(D.every((u)=>typeof u==="string"))U.type="string";if(D.every((u)=>typeof u==="boolean"))U.type="boolean";if(D.every((u)=>u===null))U.type="null";U.enum=D}},f3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},y3=($,v,U,I)=>{let b=U,D=$._zod.pattern;if(!D)throw Error("Pattern not found in template literal");b.type="string",b.pattern=D.source},h3=($,v,U,I)=>{let b=U,D={type:"string",format:"binary",contentEncoding:"binary"},{minimum:u,maximum:w,mime:g}=$._zod.bag;if(u!==void 0)D.minLength=u;if(w!==void 0)D.maxLength=w;if(g)if(g.length===1)D.contentMediaType=g[0],Object.assign(b,D);else Object.assign(b,D),b.anyOf=g.map((J)=>({contentMediaType:J}));else Object.assign(b,D)},m3=($,v,U,I)=>{U.type="boolean"},c3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},o3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},t3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},d3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},p3=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},a3=($,v,U,I)=>{let b=U,D=$._zod.def,{minimum:u,maximum:w}=$._zod.bag;if(typeof u==="number")b.minItems=u;if(typeof w==="number")b.maxItems=w;b.type="array",b.items=B$(D.element,v,{...I,path:[...I.path,"items"]})},e3=($,v,U,I)=>{let b=U,D=$._zod.def;b.type="object",b.properties={};let u=D.shape;for(let J in u)b.properties[J]=B$(u[J],v,{...I,path:[...I.path,"properties",J]});let w=new Set(Object.keys(u)),g=new Set([...w].filter((J)=>{let X=D.shape[J]._zod;if(v.io==="input")return X.optin===void 0;else return X.optout===void 0}));if(g.size>0)b.required=Array.from(g);if(D.catchall?._zod.def.type==="never")b.additionalProperties=!1;else if(!D.catchall){if(v.io==="output")b.additionalProperties=!1}else if(D.catchall)b.additionalProperties=B$(D.catchall,v,{...I,path:[...I.path,"additionalProperties"]})},bJ=($,v,U,I)=>{let b=$._zod.def,D=b.inclusive===!1,u=b.options.map((w,g)=>B$(w,v,{...I,path:[...I.path,D?"oneOf":"anyOf",g]}));if(D)U.oneOf=u;else U.anyOf=u},s3=($,v,U,I)=>{let b=$._zod.def,D=B$(b.left,v,{...I,path:[...I.path,"allOf",0]}),u=B$(b.right,v,{...I,path:[...I.path,"allOf",1]}),w=(J)=>("allOf"in J)&&Object.keys(J).length===1,g=[...w(D)?D.allOf:[D],...w(u)?u.allOf:[u]];U.allOf=g},$V=($,v,U,I)=>{let b=U,D=$._zod.def;b.type="array";let u=v.target==="draft-2020-12"?"prefixItems":"items",w=v.target==="draft-2020-12"?"items":v.target==="openapi-3.0"?"items":"additionalItems",g=D.items.map((G,O)=>B$(G,v,{...I,path:[...I.path,u,O]})),J=D.rest?B$(D.rest,v,{...I,path:[...I.path,w,...v.target==="openapi-3.0"?[D.items.length]:[]]}):null;if(v.target==="draft-2020-12"){if(b.prefixItems=g,J)b.items=J}else if(v.target==="openapi-3.0"){if(b.items={anyOf:g},J)b.items.anyOf.push(J);if(b.minItems=g.length,!J)b.maxItems=g.length}else if(b.items=g,J)b.additionalItems=J;let{minimum:X,maximum:W}=$._zod.bag;if(typeof X==="number")b.minItems=X;if(typeof W==="number")b.maxItems=W},vV=($,v,U,I)=>{let b=U,D=$._zod.def;b.type="object";let u=D.keyType,g=u._zod.bag?.patterns;if(D.mode==="loose"&&g&&g.size>0){let X=B$(D.valueType,v,{...I,path:[...I.path,"patternProperties","*"]});b.patternProperties={};for(let W of g)b.patternProperties[W.source]=X}else{if(v.target==="draft-07"||v.target==="draft-2020-12")b.propertyNames=B$(D.keyType,v,{...I,path:[...I.path,"propertyNames"]});b.additionalProperties=B$(D.valueType,v,{...I,path:[...I.path,"additionalProperties"]})}let J=u._zod.values;if(J){let X=[...J].filter((W)=>typeof W==="string"||typeof W==="number");if(X.length>0)b.required=X}},bV=($,v,U,I)=>{let b=$._zod.def,D=B$(b.innerType,v,I),u=v.seen.get($);if(v.target==="openapi-3.0")u.ref=b.innerType,U.nullable=!0;else U.anyOf=[D,{type:"null"}]},UV=($,v,U,I)=>{let b=$._zod.def;B$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType},IV=($,v,U,I)=>{let b=$._zod.def;B$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType,U.default=JSON.parse(JSON.stringify(b.defaultValue))},DV=($,v,U,I)=>{let b=$._zod.def;B$(b.innerType,v,I);let D=v.seen.get($);if(D.ref=b.innerType,v.io==="input")U._prefault=JSON.parse(JSON.stringify(b.defaultValue))},uV=($,v,U,I)=>{let b=$._zod.def;B$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType;let u;try{u=b.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}U.default=u},wV=($,v,U,I)=>{let b=$._zod.def,D=b.in._zod.traits.has("$ZodTransform"),u=v.io==="input"?D?b.out:b.in:b.out;B$(u,v,I);let w=v.seen.get($);w.ref=u},gV=($,v,U,I)=>{let b=$._zod.def;B$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType,U.readOnly=!0},JV=($,v,U,I)=>{let b=$._zod.def;B$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType},UJ=($,v,U,I)=>{let b=$._zod.def;B$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType},XV=($,v,U,I)=>{let b=$._zod.innerType;B$(b,v,I);let D=v.seen.get($);D.ref=b},vJ={string:M3,number:_3,boolean:F3,bigint:Z3,symbol:T3,null:k3,undefined:E3,void:R3,never:n3,any:r3,unknown:C3,date:i3,enum:x3,literal:l3,nan:f3,template_literal:y3,file:h3,success:m3,custom:c3,function:o3,transform:t3,map:d3,set:p3,array:a3,object:e3,union:bJ,intersection:s3,tuple:$V,record:vV,nullable:bV,nonoptional:UV,default:IV,prefault:DV,catch:uV,pipe:wV,readonly:gV,promise:JV,optional:UJ,lazy:XV};function IJ($,v){if("_idmap"in $){let I=$,b=n6({...v,processors:vJ}),D={};for(let g of I._idmap.entries()){let[J,X]=g;B$(X,b)}let u={},w={registry:I,uri:v?.uri,defs:D};b.external=w;for(let g of I._idmap.entries()){let[J,X]=g;r6(b,X),u[J]=C6(b,X)}if(Object.keys(D).length>0){let g=b.target==="draft-2020-12"?"$defs":"definitions";u.__shared={[g]:D}}return{schemas:u}}let U=n6({...v,processors:vJ});return B$($,U),r6(U,$),C6(U,$)}class WV{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter($){this.ctx.counter=$}get seen(){return this.ctx.seen}constructor($){let v=$?.target??"draft-2020-12";if(v==="draft-4")v="draft-04";if(v==="draft-7")v="draft-07";this.ctx=n6({processors:vJ,target:v,...$?.metadata&&{metadata:$.metadata},...$?.unrepresentable&&{unrepresentable:$.unrepresentable},...$?.override&&{override:$.override},...$?.io&&{io:$.io}})}process($,v={path:[],schemaPath:[]}){return B$($,this.ctx,v)}emit($,v){if(v){if(v.cycles)this.ctx.cycles=v.cycles;if(v.reused)this.ctx.reused=v.reused;if(v.external)this.ctx.external=v.external}r6(this.ctx,$);let U=C6(this.ctx,$),{"~standard":I,...b}=U;return b}}var tS={};var g0={};e$(g0,{xor:()=>lM,xid:()=>XM,void:()=>RM,uuidv7:()=>bM,uuidv6:()=>vM,uuidv4:()=>$M,uuid:()=>sS,url:()=>UM,unknown:()=>nb,union:()=>ZJ,undefined:()=>kM,ulid:()=>JM,uint64:()=>ZM,uint32:()=>MM,tuple:()=>mV,transform:()=>kJ,templateLiteral:()=>v_,symbol:()=>TM,superRefine:()=>LL,success:()=>aM,stringbool:()=>J_,stringFormat:()=>qM,string:()=>J0,strictObject:()=>iM,set:()=>cM,refine:()=>VL,record:()=>cV,readonly:()=>GL,promise:()=>b_,preprocess:()=>W_,prefault:()=>IL,pipe:()=>WJ,partialRecord:()=>yM,optional:()=>W0,object:()=>CM,number:()=>_V,nullish:()=>pM,nullable:()=>G0,null:()=>EV,nonoptional:()=>DL,never:()=>FJ,nativeEnum:()=>oM,nanoid:()=>uM,nan:()=>eM,meta:()=>w_,map:()=>mM,mac:()=>OM,looseRecord:()=>hM,looseObject:()=>xM,literal:()=>tM,lazy:()=>zL,ksuid:()=>WM,keyof:()=>rM,jwt:()=>KM,json:()=>X_,ipv6:()=>HM,ipv4:()=>GM,invertCodec:()=>$_,intersection:()=>yV,int64:()=>FM,int32:()=>SM,int:()=>XJ,instanceof:()=>g_,httpUrl:()=>IM,hostname:()=>BM,hex:()=>AM,hash:()=>PM,guid:()=>eS,function:()=>U_,float64:()=>NM,float32:()=>jM,file:()=>dM,exactOptional:()=>sV,enum:()=>TJ,emoji:()=>DM,email:()=>aS,e164:()=>LM,discriminatedUnion:()=>fM,describe:()=>u_,date:()=>nM,custom:()=>D_,cuid2:()=>gM,cuid:()=>wM,codec:()=>sM,cidrv6:()=>QM,cidrv4:()=>zM,check:()=>I_,catch:()=>gL,boolean:()=>FV,bigint:()=>_M,base64url:()=>VM,base64:()=>YM,array:()=>Q0,any:()=>EM,_function:()=>U_,_default:()=>bL,_ZodString:()=>GJ,ZodXor:()=>xV,ZodXID:()=>LJ,ZodVoid:()=>CV,ZodUnknown:()=>nV,ZodUnion:()=>V0,ZodUndefined:()=>TV,ZodUUID:()=>R4,ZodURL:()=>H0,ZodULID:()=>VJ,ZodType:()=>I$,ZodTuple:()=>hV,ZodTransform:()=>aV,ZodTemplateLiteral:()=>OL,ZodSymbol:()=>ZV,ZodSuccess:()=>uL,ZodStringFormat:()=>S$,ZodString:()=>wI,ZodSet:()=>tV,ZodRecord:()=>DI,ZodReadonly:()=>WL,ZodPromise:()=>QL,ZodPreprocess:()=>XL,ZodPrefault:()=>UL,ZodPipe:()=>L0,ZodOptional:()=>EJ,ZodObject:()=>Y0,ZodNumberFormat:()=>rb,ZodNumber:()=>JI,ZodNullable:()=>$L,ZodNull:()=>kV,ZodNonOptional:()=>RJ,ZodNever:()=>rV,ZodNanoID:()=>zJ,ZodNaN:()=>JL,ZodMap:()=>oV,ZodMAC:()=>MV,ZodLiteral:()=>dV,ZodLazy:()=>HL,ZodKSUID:()=>KJ,ZodJWT:()=>MJ,ZodIntersection:()=>fV,ZodIPv6:()=>BJ,ZodIPv4:()=>qJ,ZodGUID:()=>X0,ZodFunction:()=>YL,ZodFile:()=>pV,ZodExactOptional:()=>eV,ZodEnum:()=>uI,ZodEmoji:()=>HJ,ZodEmail:()=>OJ,ZodE164:()=>SJ,ZodDiscriminatedUnion:()=>lV,ZodDefault:()=>vL,ZodDate:()=>z0,ZodCustomStringFormat:()=>gI,ZodCustom:()=>q0,ZodCodec:()=>K0,ZodCatch:()=>wL,ZodCUID2:()=>YJ,ZodCUID:()=>QJ,ZodCIDRv6:()=>PJ,ZodCIDRv4:()=>AJ,ZodBoolean:()=>XI,ZodBigIntFormat:()=>_J,ZodBigInt:()=>WI,ZodBase64URL:()=>NJ,ZodBase64:()=>jJ,ZodArray:()=>iV,ZodAny:()=>RV});var DJ={};e$(DJ,{uppercase:()=>cU,trim:()=>eU,toUpperCase:()=>$I,toLowerCase:()=>sU,startsWith:()=>tU,slugify:()=>vI,size:()=>kb,regex:()=>hU,property:()=>$J,positive:()=>pg,overwrite:()=>J4,normalize:()=>aU,nonpositive:()=>eg,nonnegative:()=>sg,negative:()=>ag,multipleOf:()=>E6,minSize:()=>E4,minLength:()=>e4,mime:()=>pU,maxSize:()=>R6,maxLength:()=>Eb,lte:()=>ov,lt:()=>T4,lowercase:()=>mU,length:()=>Rb,includes:()=>oU,gte:()=>jv,gt:()=>k4,endsWith:()=>dU});var II={};e$(II,{time:()=>HV,duration:()=>zV,datetime:()=>GV,date:()=>OV,ZodISOTime:()=>gJ,ZodISODuration:()=>JJ,ZodISODateTime:()=>uJ,ZodISODate:()=>wJ});var uJ=L("ZodISODateTime",($,v)=>{cY.init($,v),S$.init($,v)});function GV($){return c7(uJ,$)}var wJ=L("ZodISODate",($,v)=>{oY.init($,v),S$.init($,v)});function OV($){return o7(wJ,$)}var gJ=L("ZodISOTime",($,v)=>{tY.init($,v),S$.init($,v)});function HV($){return t7(gJ,$)}var JJ=L("ZodISODuration",($,v)=>{dY.init($,v),S$.init($,v)});function zV($){return d7(JJ,$)}var dS=($,v)=>{c1.init($,v),$.name="ZodError",Object.defineProperties($,{format:{value:(U)=>t1($,U)},flatten:{value:(U)=>o1($,U)},addIssue:{value:(U)=>{$.issues.push(U),$.message=JSON.stringify($.issues,RU,2)}},addIssues:{value:(U)=>{$.issues.push(...U),$.message=JSON.stringify($.issues,RU,2)}},isEmpty:{get(){return $.issues.length===0}}})},Ct=L("ZodError",dS),nv=L("ZodError",dS,{Parent:Error});var QV=CU(nv),YV=iU(nv),VV=xU(nv),LV=lU(nv),KV=gg(nv),qV=Jg(nv),BV=Xg(nv),AV=Wg(nv),PV=Gg(nv),jV=Og(nv),NV=Hg(nv),SV=zg(nv);var pS=new WeakMap;function O0($,v,U){let I=Object.getPrototypeOf($),b=pS.get(I);if(!b)b=new Set,pS.set(I,b);if(b.has(v))return;b.add(v);for(let D in U){let u=U[D];Object.defineProperty(I,D,{configurable:!0,enumerable:!1,get(){let w=u.bind(this);return Object.defineProperty(this,D,{configurable:!0,writable:!0,enumerable:!0,value:w}),w},set(w){Object.defineProperty(this,D,{configurable:!0,writable:!0,enumerable:!0,value:w})}})}}var I$=L("ZodType",($,v)=>{return v$.init($,v),Object.assign($["~standard"],{jsonSchema:{input:UI($,"input"),output:UI($,"output")}}),$.toJSONSchema=S3($,{}),$.def=v,$.type=v.type,Object.defineProperty($,"_def",{value:v}),$.parse=(U,I)=>QV($,U,I,{callee:$.parse}),$.safeParse=(U,I)=>VV($,U,I),$.parseAsync=async(U,I)=>YV($,U,I,{callee:$.parseAsync}),$.safeParseAsync=async(U,I)=>LV($,U,I),$.spa=$.safeParseAsync,$.encode=(U,I)=>KV($,U,I),$.decode=(U,I)=>qV($,U,I),$.encodeAsync=async(U,I)=>BV($,U,I),$.decodeAsync=async(U,I)=>AV($,U,I),$.safeEncode=(U,I)=>PV($,U,I),$.safeDecode=(U,I)=>jV($,U,I),$.safeEncodeAsync=async(U,I)=>NV($,U,I),$.safeDecodeAsync=async(U,I)=>SV($,U,I),O0($,"ZodType",{check(...U){let I=this.def;return this.clone(n.mergeDefs(I,{checks:[...I.checks??[],...U.map((b)=>typeof b==="function"?{_zod:{check:b,def:{check:"custom"},onattach:[]}}:b)]}),{parent:!0})},with(...U){return this.check(...U)},clone(U,I){return Av(this,U,I)},brand(){return this},register(U,I){return U.add(this,I),this},refine(U,I){return this.check(VL(U,I))},superRefine(U,I){return this.check(LL(U,I))},overwrite(U){return this.check(J4(U))},optional(){return W0(this)},exactOptional(){return sV(this)},nullable(){return G0(this)},nullish(){return W0(G0(this))},nonoptional(U){return DL(this,U)},array(){return Q0(this)},or(U){return ZJ([this,U])},and(U){return yV(this,U)},transform(U){return WJ(this,kJ(U))},default(U){return bL(this,U)},prefault(U){return IL(this,U)},catch(U){return gL(this,U)},pipe(U){return WJ(this,U)},readonly(){return GL(this)},describe(U){let I=this.clone();return uv.add(I,{description:U}),I},meta(...U){if(U.length===0)return uv.get(this);let I=this.clone();return uv.add(I,U[0]),I},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(U){return U(this)}}),Object.defineProperty($,"description",{get(){return uv.get($)?.description},configurable:!0}),$}),GJ=L("_ZodString",($,v)=>{Tb.init($,v),I$.init($,v),$._zod.processJSONSchema=(I,b,D)=>M3($,I,b,D);let U=$._zod.bag;$.format=U.format??null,$.minLength=U.minimum??null,$.maxLength=U.maximum??null,O0($,"_ZodString",{regex(...I){return this.check(hU(...I))},includes(...I){return this.check(oU(...I))},startsWith(...I){return this.check(tU(...I))},endsWith(...I){return this.check(dU(...I))},min(...I){return this.check(e4(...I))},max(...I){return this.check(Eb(...I))},length(...I){return this.check(Rb(...I))},nonempty(...I){return this.check(e4(1,...I))},lowercase(I){return this.check(mU(I))},uppercase(I){return this.check(cU(I))},trim(){return this.check(eU())},normalize(...I){return this.check(aU(...I))},toLowerCase(){return this.check(sU())},toUpperCase(){return this.check($I())},slugify(){return this.check(vI())}})}),wI=L("ZodString",($,v)=>{Tb.init($,v),GJ.init($,v),$.email=(U)=>$.check(Fg(OJ,U)),$.url=(U)=>$.check(w0(H0,U)),$.jwt=(U)=>$.check(dg(MJ,U)),$.emoji=(U)=>$.check(Rg(HJ,U)),$.guid=(U)=>$.check(u0(X0,U)),$.uuid=(U)=>$.check(Zg(R4,U)),$.uuidv4=(U)=>$.check(Tg(R4,U)),$.uuidv6=(U)=>$.check(kg(R4,U)),$.uuidv7=(U)=>$.check(Eg(R4,U)),$.nanoid=(U)=>$.check(ng(zJ,U)),$.guid=(U)=>$.check(u0(X0,U)),$.cuid=(U)=>$.check(rg(QJ,U)),$.cuid2=(U)=>$.check(Cg(YJ,U)),$.ulid=(U)=>$.check(ig(VJ,U)),$.base64=(U)=>$.check(cg(jJ,U)),$.base64url=(U)=>$.check(og(NJ,U)),$.xid=(U)=>$.check(xg(LJ,U)),$.ksuid=(U)=>$.check(lg(KJ,U)),$.ipv4=(U)=>$.check(fg(qJ,U)),$.ipv6=(U)=>$.check(yg(BJ,U)),$.cidrv4=(U)=>$.check(hg(AJ,U)),$.cidrv6=(U)=>$.check(mg(PJ,U)),$.e164=(U)=>$.check(tg(SJ,U)),$.datetime=(U)=>$.check(GV(U)),$.date=(U)=>$.check(OV(U)),$.time=(U)=>$.check(HV(U)),$.duration=(U)=>$.check(zV(U))});function J0($){return f7(wI,$)}var S$=L("ZodStringFormat",($,v)=>{N$.init($,v),GJ.init($,v)}),OJ=L("ZodEmail",($,v)=>{rY.init($,v),S$.init($,v)});function aS($){return Fg(OJ,$)}var X0=L("ZodGUID",($,v)=>{RY.init($,v),S$.init($,v)});function eS($){return u0(X0,$)}var R4=L("ZodUUID",($,v)=>{nY.init($,v),S$.init($,v)});function sS($){return Zg(R4,$)}function $M($){return Tg(R4,$)}function vM($){return kg(R4,$)}function bM($){return Eg(R4,$)}var H0=L("ZodURL",($,v)=>{CY.init($,v),S$.init($,v)});function UM($){return w0(H0,$)}function IM($){return w0(H0,{protocol:cv.httpProtocol,hostname:cv.domain,...n.normalizeParams($)})}var HJ=L("ZodEmoji",($,v)=>{iY.init($,v),S$.init($,v)});function DM($){return Rg(HJ,$)}var zJ=L("ZodNanoID",($,v)=>{xY.init($,v),S$.init($,v)});function uM($){return ng(zJ,$)}var QJ=L("ZodCUID",($,v)=>{lY.init($,v),S$.init($,v)});function wM($){return rg(QJ,$)}var YJ=L("ZodCUID2",($,v)=>{fY.init($,v),S$.init($,v)});function gM($){return Cg(YJ,$)}var VJ=L("ZodULID",($,v)=>{yY.init($,v),S$.init($,v)});function JM($){return ig(VJ,$)}var LJ=L("ZodXID",($,v)=>{hY.init($,v),S$.init($,v)});function XM($){return xg(LJ,$)}var KJ=L("ZodKSUID",($,v)=>{mY.init($,v),S$.init($,v)});function WM($){return lg(KJ,$)}var qJ=L("ZodIPv4",($,v)=>{pY.init($,v),S$.init($,v)});function GM($){return fg(qJ,$)}var MV=L("ZodMAC",($,v)=>{eY.init($,v),S$.init($,v)});function OM($){return h7(MV,$)}var BJ=L("ZodIPv6",($,v)=>{aY.init($,v),S$.init($,v)});function HM($){return yg(BJ,$)}var AJ=L("ZodCIDRv4",($,v)=>{sY.init($,v),S$.init($,v)});function zM($){return hg(AJ,$)}var PJ=L("ZodCIDRv6",($,v)=>{$5.init($,v),S$.init($,v)});function QM($){return mg(PJ,$)}var jJ=L("ZodBase64",($,v)=>{b5.init($,v),S$.init($,v)});function YM($){return cg(jJ,$)}var NJ=L("ZodBase64URL",($,v)=>{U5.init($,v),S$.init($,v)});function VM($){return og(NJ,$)}var SJ=L("ZodE164",($,v)=>{I5.init($,v),S$.init($,v)});function LM($){return tg(SJ,$)}var MJ=L("ZodJWT",($,v)=>{D5.init($,v),S$.init($,v)});function KM($){return dg(MJ,$)}var gI=L("ZodCustomStringFormat",($,v)=>{u5.init($,v),S$.init($,v)});function qM($,v,U={}){return bI(gI,$,v,U)}function BM($){return bI(gI,"hostname",cv.hostname,$)}function AM($){return bI(gI,"hex",cv.hex,$)}function PM($,v){let U=v?.enc??"hex",I=`${$}_${U}`,b=cv[I];if(!b)throw Error(`Unrecognized hash format: ${I}`);return bI(gI,I,b,v)}var JI=L("ZodNumber",($,v)=>{Pg.init($,v),I$.init($,v),$._zod.processJSONSchema=(I,b,D)=>_3($,I,b,D),O0($,"ZodNumber",{gt(I,b){return this.check(k4(I,b))},gte(I,b){return this.check(jv(I,b))},min(I,b){return this.check(jv(I,b))},lt(I,b){return this.check(T4(I,b))},lte(I,b){return this.check(ov(I,b))},max(I,b){return this.check(ov(I,b))},int(I){return this.check(XJ(I))},safe(I){return this.check(XJ(I))},positive(I){return this.check(k4(0,I))},nonnegative(I){return this.check(jv(0,I))},negative(I){return this.check(T4(0,I))},nonpositive(I){return this.check(ov(0,I))},multipleOf(I,b){return this.check(E6(I,b))},step(I,b){return this.check(E6(I,b))},finite(){return this}});let U=$._zod.bag;$.minValue=Math.max(U.minimum??Number.NEGATIVE_INFINITY,U.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,$.maxValue=Math.min(U.maximum??Number.POSITIVE_INFINITY,U.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,$.isInt=(U.format??"").includes("int")||Number.isSafeInteger(U.multipleOf??0.5),$.isFinite=!0,$.format=U.format??null});function _V($){return p7(JI,$)}var rb=L("ZodNumberFormat",($,v)=>{w5.init($,v),JI.init($,v)});function XJ($){return e7(rb,$)}function jM($){return s7(rb,$)}function NM($){return $3(rb,$)}function SM($){return v3(rb,$)}function MM($){return b3(rb,$)}var XI=L("ZodBoolean",($,v)=>{e1.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>F3($,U,I,b)});function FV($){return U3(XI,$)}var WI=L("ZodBigInt",($,v)=>{jg.init($,v),I$.init($,v),$._zod.processJSONSchema=(I,b,D)=>Z3($,I,b,D),$.gte=(I,b)=>$.check(jv(I,b)),$.min=(I,b)=>$.check(jv(I,b)),$.gt=(I,b)=>$.check(k4(I,b)),$.gte=(I,b)=>$.check(jv(I,b)),$.min=(I,b)=>$.check(jv(I,b)),$.lt=(I,b)=>$.check(T4(I,b)),$.lte=(I,b)=>$.check(ov(I,b)),$.max=(I,b)=>$.check(ov(I,b)),$.positive=(I)=>$.check(k4(BigInt(0),I)),$.negative=(I)=>$.check(T4(BigInt(0),I)),$.nonpositive=(I)=>$.check(ov(BigInt(0),I)),$.nonnegative=(I)=>$.check(jv(BigInt(0),I)),$.multipleOf=(I,b)=>$.check(E6(I,b));let U=$._zod.bag;$.minValue=U.minimum??null,$.maxValue=U.maximum??null,$.format=U.format??null});function _M($){return D3(WI,$)}var _J=L("ZodBigIntFormat",($,v)=>{g5.init($,v),WI.init($,v)});function FM($){return w3(_J,$)}function ZM($){return g3(_J,$)}var ZV=L("ZodSymbol",($,v)=>{J5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>T3($,U,I,b)});function TM($){return J3(ZV,$)}var TV=L("ZodUndefined",($,v)=>{X5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>E3($,U,I,b)});function kM($){return X3(TV,$)}var kV=L("ZodNull",($,v)=>{W5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>k3($,U,I,b)});function EV($){return W3(kV,$)}var RV=L("ZodAny",($,v)=>{G5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>r3($,U,I,b)});function EM(){return G3(RV)}var nV=L("ZodUnknown",($,v)=>{O5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>C3($,U,I,b)});function nb(){return O3(nV)}var rV=L("ZodNever",($,v)=>{H5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>n3($,U,I,b)});function FJ($){return H3(rV,$)}var CV=L("ZodVoid",($,v)=>{z5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>R3($,U,I,b)});function RM($){return z3(CV,$)}var z0=L("ZodDate",($,v)=>{Q5.init($,v),I$.init($,v),$._zod.processJSONSchema=(I,b,D)=>i3($,I,b,D),$.min=(I,b)=>$.check(jv(I,b)),$.max=(I,b)=>$.check(ov(I,b));let U=$._zod.bag;$.minDate=U.minimum?new Date(U.minimum):null,$.maxDate=U.maximum?new Date(U.maximum):null});function nM($){return Q3(z0,$)}var iV=L("ZodArray",($,v)=>{Y5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>a3($,U,I,b),$.element=v.element,O0($,"ZodArray",{min(U,I){return this.check(e4(U,I))},nonempty(U){return this.check(e4(1,U))},max(U,I){return this.check(Eb(U,I))},length(U,I){return this.check(Rb(U,I))},unwrap(){return this.element}})});function Q0($,v){return L3(iV,$,v)}function rM($){let v=$._zod.def.shape;return TJ(Object.keys(v))}var Y0=L("ZodObject",($,v)=>{V5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>e3($,U,I,b),n.defineLazy($,"shape",()=>{return v.shape}),O0($,"ZodObject",{keyof(){return TJ(Object.keys(this._zod.def.shape))},catchall(U){return this.clone({...this._zod.def,catchall:U})},passthrough(){return this.clone({...this._zod.def,catchall:nb()})},loose(){return this.clone({...this._zod.def,catchall:nb()})},strict(){return this.clone({...this._zod.def,catchall:FJ()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(U){return n.extend(this,U)},safeExtend(U){return n.safeExtend(this,U)},merge(U){return n.merge(this,U)},pick(U){return n.pick(this,U)},omit(U){return n.omit(this,U)},partial(...U){return n.partial(EJ,this,U[0])},required(...U){return n.required(RJ,this,U[0])}})});function CM($,v){let U={type:"object",shape:$??{},...n.normalizeParams(v)};return new Y0(U)}function iM($,v){return new Y0({type:"object",shape:$,catchall:FJ(),...n.normalizeParams(v)})}function xM($,v){return new Y0({type:"object",shape:$,catchall:nb(),...n.normalizeParams(v)})}var V0=L("ZodUnion",($,v)=>{s1.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>bJ($,U,I,b),$.options=v.options});function ZJ($,v){return new V0({type:"union",options:$,...n.normalizeParams(v)})}var xV=L("ZodXor",($,v)=>{V0.init($,v),L5.init($,v),$._zod.processJSONSchema=(U,I,b)=>bJ($,U,I,b),$.options=v.options});function lM($,v){return new xV({type:"union",options:$,inclusive:!1,...n.normalizeParams(v)})}var lV=L("ZodDiscriminatedUnion",($,v)=>{V0.init($,v),K5.init($,v)});function fM($,v,U){return new lV({type:"union",options:v,discriminator:$,...n.normalizeParams(U)})}var fV=L("ZodIntersection",($,v)=>{q5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>s3($,U,I,b)});function yV($,v){return new fV({type:"intersection",left:$,right:v})}var hV=L("ZodTuple",($,v)=>{Ng.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>$V($,U,I,b),$.rest=(U)=>$.clone({...$._zod.def,rest:U})});function mV($,v,U){let I=v instanceof v$,b=I?U:v;return new hV({type:"tuple",items:$,rest:I?v:null,...n.normalizeParams(b)})}var DI=L("ZodRecord",($,v)=>{B5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>vV($,U,I,b),$.keyType=v.keyType,$.valueType=v.valueType});function cV($,v,U){if(!v||!v._zod)return new DI({type:"record",keyType:J0(),valueType:$,...n.normalizeParams(v)});return new DI({type:"record",keyType:$,valueType:v,...n.normalizeParams(U)})}function yM($,v,U){let I=Av($);return I._zod.values=void 0,new DI({type:"record",keyType:I,valueType:v,...n.normalizeParams(U)})}function hM($,v,U){return new DI({type:"record",keyType:$,valueType:v,mode:"loose",...n.normalizeParams(U)})}var oV=L("ZodMap",($,v)=>{A5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>d3($,U,I,b),$.keyType=v.keyType,$.valueType=v.valueType,$.min=(...U)=>$.check(E4(...U)),$.nonempty=(U)=>$.check(E4(1,U)),$.max=(...U)=>$.check(R6(...U)),$.size=(...U)=>$.check(kb(...U))});function mM($,v,U){return new oV({type:"map",keyType:$,valueType:v,...n.normalizeParams(U)})}var tV=L("ZodSet",($,v)=>{P5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>p3($,U,I,b),$.min=(...U)=>$.check(E4(...U)),$.nonempty=(U)=>$.check(E4(1,U)),$.max=(...U)=>$.check(R6(...U)),$.size=(...U)=>$.check(kb(...U))});function cM($,v){return new tV({type:"set",valueType:$,...n.normalizeParams(v)})}var uI=L("ZodEnum",($,v)=>{j5.init($,v),I$.init($,v),$._zod.processJSONSchema=(I,b,D)=>x3($,I,b,D),$.enum=v.entries,$.options=Object.values(v.entries);let U=new Set(Object.keys(v.entries));$.extract=(I,b)=>{let D={};for(let u of I)if(U.has(u))D[u]=v.entries[u];else throw Error(`Key ${u} not found in enum`);return new uI({...v,checks:[],...n.normalizeParams(b),entries:D})},$.exclude=(I,b)=>{let D={...v.entries};for(let u of I)if(U.has(u))delete D[u];else throw Error(`Key ${u} not found in enum`);return new uI({...v,checks:[],...n.normalizeParams(b),entries:D})}});function TJ($,v){let U=Array.isArray($)?Object.fromEntries($.map((I)=>[I,I])):$;return new uI({type:"enum",entries:U,...n.normalizeParams(v)})}function oM($,v){return new uI({type:"enum",entries:$,...n.normalizeParams(v)})}var dV=L("ZodLiteral",($,v)=>{N5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>l3($,U,I,b),$.values=new Set(v.values),Object.defineProperty($,"value",{get(){if(v.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return v.values[0]}})});function tM($,v){return new dV({type:"literal",values:Array.isArray($)?$:[$],...n.normalizeParams(v)})}var pV=L("ZodFile",($,v)=>{S5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>h3($,U,I,b),$.min=(U,I)=>$.check(E4(U,I)),$.max=(U,I)=>$.check(R6(U,I)),$.mime=(U,I)=>$.check(pU(Array.isArray(U)?U:[U],I))});function dM($){return K3(pV,$)}var aV=L("ZodTransform",($,v)=>{M5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>t3($,U,I,b),$._zod.parse=(U,I)=>{if(I.direction==="backward")throw new _b($.constructor.name);U.addIssue=(D)=>{if(typeof D==="string")U.issues.push(n.issue(D,U.value,v));else{let u=D;if(u.fatal)u.continue=!1;u.code??(u.code="custom"),u.input??(u.input=U.value),u.inst??(u.inst=$),U.issues.push(n.issue(u))}};let b=v.transform(U.value,U);if(b instanceof Promise)return b.then((D)=>{return U.value=D,U.fallback=!0,U});return U.value=b,U.fallback=!0,U}});function kJ($){return new aV({type:"transform",transform:$})}var EJ=L("ZodOptional",($,v)=>{Sg.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>UJ($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function W0($){return new EJ({type:"optional",innerType:$})}var eV=L("ZodExactOptional",($,v)=>{_5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>UJ($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function sV($){return new eV({type:"optional",innerType:$})}var $L=L("ZodNullable",($,v)=>{F5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>bV($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function G0($){return new $L({type:"nullable",innerType:$})}function pM($){return W0(G0($))}var vL=L("ZodDefault",($,v)=>{Z5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>IV($,U,I,b),$.unwrap=()=>$._zod.def.innerType,$.removeDefault=$.unwrap});function bL($,v){return new vL({type:"default",innerType:$,get defaultValue(){return typeof v==="function"?v():n.shallowClone(v)}})}var UL=L("ZodPrefault",($,v)=>{T5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>DV($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function IL($,v){return new UL({type:"prefault",innerType:$,get defaultValue(){return typeof v==="function"?v():n.shallowClone(v)}})}var RJ=L("ZodNonOptional",($,v)=>{k5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>UV($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function DL($,v){return new RJ({type:"nonoptional",innerType:$,...n.normalizeParams(v)})}var uL=L("ZodSuccess",($,v)=>{E5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>m3($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function aM($){return new uL({type:"success",innerType:$})}var wL=L("ZodCatch",($,v)=>{R5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>uV($,U,I,b),$.unwrap=()=>$._zod.def.innerType,$.removeCatch=$.unwrap});function gL($,v){return new wL({type:"catch",innerType:$,catchValue:typeof v==="function"?v:()=>v})}var JL=L("ZodNaN",($,v)=>{n5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>f3($,U,I,b)});function eM($){return V3(JL,$)}var L0=L("ZodPipe",($,v)=>{Mg.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>wV($,U,I,b),$.in=v.in,$.out=v.out});function WJ($,v){return new L0({type:"pipe",in:$,out:v})}var K0=L("ZodCodec",($,v)=>{L0.init($,v),$0.init($,v)});function sM($,v,U){return new K0({type:"pipe",in:$,out:v,transform:U.decode,reverseTransform:U.encode})}function $_($){let v=$._zod.def;return new K0({type:"pipe",in:v.out,out:v.in,transform:v.reverseTransform,reverseTransform:v.transform})}var XL=L("ZodPreprocess",($,v)=>{L0.init($,v),r5.init($,v)}),WL=L("ZodReadonly",($,v)=>{C5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>gV($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function GL($){return new WL({type:"readonly",innerType:$})}var OL=L("ZodTemplateLiteral",($,v)=>{i5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>y3($,U,I,b)});function v_($,v){return new OL({type:"template_literal",parts:$,...n.normalizeParams(v)})}var HL=L("ZodLazy",($,v)=>{f5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>XV($,U,I,b),$.unwrap=()=>$._zod.def.getter()});function zL($){return new HL({type:"lazy",getter:$})}var QL=L("ZodPromise",($,v)=>{l5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>JV($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function b_($){return new QL({type:"promise",innerType:$})}var YL=L("ZodFunction",($,v)=>{x5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>o3($,U,I,b)});function U_($){return new YL({type:"function",input:Array.isArray($?.input)?mV($?.input):$?.input??Q0(nb()),output:$?.output??nb()})}var q0=L("ZodCustom",($,v)=>{y5.init($,v),I$.init($,v),$._zod.processJSONSchema=(U,I,b)=>c3($,U,I,b)});function I_($){let v=new Z$({check:"custom"});return v._zod.check=$,v}function D_($,v){return q3(q0,$??(()=>!0),v)}function VL($,v={}){return B3(q0,$,v)}function LL($,v){return A3($,v)}var u_=P3,w_=j3;function g_($,v={}){let U=new q0({type:"custom",check:"custom",fn:(I)=>I instanceof $,abort:!0,...n.normalizeParams(v)});return U._zod.bag.Class=$,U._zod.check=(I)=>{if(!(I.value instanceof $))I.issues.push({code:"invalid_type",expected:$.name,input:I.value,inst:U,path:[...U._zod.def.path??[]]})},U}var J_=(...$)=>N3({Codec:K0,Boolean:XI,String:wI},...$);function X_($){let v=zL(()=>{return ZJ([J0($),_V(),FV(),EV(),Q0(v),cV(J0(),v)])});return v}function W_($,v){return new XL({type:"pipe",in:kJ($),out:v})}var xt={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function lt($){o$({customError:$})}function ft(){return o$().customError}var KL;(function($){})(KL||(KL={}));var y={...g0,...DJ,iso:II},yt=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function ht($,v){let U=$.$schema;if(U==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(U==="http://json-schema.org/draft-07/schema#")return"draft-7";if(U==="http://json-schema.org/draft-04/schema#")return"draft-4";return v??"draft-2020-12"}function mt($,v){if(!$.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let U=$.slice(1).split("/").filter(Boolean);if(U.length===0)return v.rootSchema;let I=v.version==="draft-2020-12"?"$defs":"definitions";if(U[0]===I){let b=U[1];if(!b||!v.defs[b])throw Error(`Reference not found: ${$}`);return v.defs[b]}throw Error(`Reference not found: ${$}`)}function G_($,v){if($.not!==void 0){if(typeof $.not==="object"&&Object.keys($.not).length===0)return y.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if($.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if($.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if($.if!==void 0||$.then!==void 0||$.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if($.dependentSchemas!==void 0||$.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if($.$ref){let b=$.$ref;if(v.refs.has(b))return v.refs.get(b);if(v.processing.has(b))return y.lazy(()=>{if(!v.refs.has(b))throw Error(`Circular reference not resolved: ${b}`);return v.refs.get(b)});v.processing.add(b);let D=mt(b,v),u=Hv(D,v);return v.refs.set(b,u),v.processing.delete(b),u}if($.enum!==void 0){let b=$.enum;if(v.version==="openapi-3.0"&&$.nullable===!0&&b.length===1&&b[0]===null)return y.null();if(b.length===0)return y.never();if(b.length===1)return y.literal(b[0]);if(b.every((u)=>typeof u==="string"))return y.enum(b);let D=b.map((u)=>y.literal(u));if(D.length<2)return D[0];return y.union([D[0],D[1],...D.slice(2)])}if($.const!==void 0)return y.literal($.const);let U=$.type;if(Array.isArray(U)){let b=U.map((D)=>{let u={...$,type:D};return G_(u,v)});if(b.length===0)return y.never();if(b.length===1)return b[0];return y.union(b)}if(!U)return y.any();let I;switch(U){case"string":{let b=y.string();if($.format){let D=$.format;if(D==="email")b=b.check(y.email());else if(D==="uri"||D==="uri-reference")b=b.check(y.url());else if(D==="uuid"||D==="guid")b=b.check(y.uuid());else if(D==="date-time")b=b.check(y.iso.datetime());else if(D==="date")b=b.check(y.iso.date());else if(D==="time")b=b.check(y.iso.time());else if(D==="duration")b=b.check(y.iso.duration());else if(D==="ipv4")b=b.check(y.ipv4());else if(D==="ipv6")b=b.check(y.ipv6());else if(D==="mac")b=b.check(y.mac());else if(D==="cidr")b=b.check(y.cidrv4());else if(D==="cidr-v6")b=b.check(y.cidrv6());else if(D==="base64")b=b.check(y.base64());else if(D==="base64url")b=b.check(y.base64url());else if(D==="e164")b=b.check(y.e164());else if(D==="jwt")b=b.check(y.jwt());else if(D==="emoji")b=b.check(y.emoji());else if(D==="nanoid")b=b.check(y.nanoid());else if(D==="cuid")b=b.check(y.cuid());else if(D==="cuid2")b=b.check(y.cuid2());else if(D==="ulid")b=b.check(y.ulid());else if(D==="xid")b=b.check(y.xid());else if(D==="ksuid")b=b.check(y.ksuid())}if(typeof $.minLength==="number")b=b.min($.minLength);if(typeof $.maxLength==="number")b=b.max($.maxLength);if($.pattern)b=b.regex(new RegExp($.pattern));I=b;break}case"number":case"integer":{let b=U==="integer"?y.number().int():y.number();if(typeof $.minimum==="number")b=b.min($.minimum);if(typeof $.maximum==="number")b=b.max($.maximum);if(typeof $.exclusiveMinimum==="number")b=b.gt($.exclusiveMinimum);else if($.exclusiveMinimum===!0&&typeof $.minimum==="number")b=b.gt($.minimum);if(typeof $.exclusiveMaximum==="number")b=b.lt($.exclusiveMaximum);else if($.exclusiveMaximum===!0&&typeof $.maximum==="number")b=b.lt($.maximum);if(typeof $.multipleOf==="number")b=b.multipleOf($.multipleOf);I=b;break}case"boolean":{I=y.boolean();break}case"null":{I=y.null();break}case"object":{let b={},D=$.properties||{},u=new Set($.required||[]);for(let[g,J]of Object.entries(D)){let X=Hv(J,v);b[g]=u.has(g)?X:X.optional()}if($.propertyNames){let g=Hv($.propertyNames,v),J=$.additionalProperties&&typeof $.additionalProperties==="object"?Hv($.additionalProperties,v):y.any();if(Object.keys(b).length===0){I=y.record(g,J);break}let X=y.object(b).passthrough(),W=y.looseRecord(g,J);I=y.intersection(X,W);break}if($.patternProperties){let g=$.patternProperties,J=Object.keys(g),X=[];for(let G of J){let O=Hv(g[G],v),z=y.string().regex(new RegExp(G));X.push(y.looseRecord(z,O))}let W=[];if(Object.keys(b).length>0)W.push(y.object(b).passthrough());if(W.push(...X),W.length===0)I=y.object({}).passthrough();else if(W.length===1)I=W[0];else{let G=y.intersection(W[0],W[1]);for(let O=2;O<W.length;O++)G=y.intersection(G,W[O]);I=G}break}let w=y.object(b);if($.additionalProperties===!1)I=w.strict();else if(typeof $.additionalProperties==="object")I=w.catchall(Hv($.additionalProperties,v));else I=w.passthrough();break}case"array":{let{prefixItems:b,items:D}=$;if(b&&Array.isArray(b)){let u=b.map((g)=>Hv(g,v)),w=D&&typeof D==="object"&&!Array.isArray(D)?Hv(D,v):void 0;if(w)I=y.tuple(u).rest(w);else I=y.tuple(u);if(typeof $.minItems==="number")I=I.check(y.minLength($.minItems));if(typeof $.maxItems==="number")I=I.check(y.maxLength($.maxItems))}else if(Array.isArray(D)){let u=D.map((g)=>Hv(g,v)),w=$.additionalItems&&typeof $.additionalItems==="object"?Hv($.additionalItems,v):void 0;if(w)I=y.tuple(u).rest(w);else I=y.tuple(u);if(typeof $.minItems==="number")I=I.check(y.minLength($.minItems));if(typeof $.maxItems==="number")I=I.check(y.maxLength($.maxItems))}else if(D!==void 0){let u=Hv(D,v),w=y.array(u);if(typeof $.minItems==="number")w=w.min($.minItems);if(typeof $.maxItems==="number")w=w.max($.maxItems);I=w}else I=y.array(y.any());break}default:throw Error(`Unsupported type: ${U}`)}return I}function Hv($,v){if(typeof $==="boolean")return $?y.any():y.never();let U=G_($,v),I=$.type||$.enum!==void 0||$.const!==void 0;if($.anyOf&&Array.isArray($.anyOf)){let w=$.anyOf.map((J)=>Hv(J,v)),g=y.union(w);U=I?y.intersection(U,g):g}if($.oneOf&&Array.isArray($.oneOf)){let w=$.oneOf.map((J)=>Hv(J,v)),g=y.xor(w);U=I?y.intersection(U,g):g}if($.allOf&&Array.isArray($.allOf))if($.allOf.length===0)U=I?U:y.any();else{let w=I?U:Hv($.allOf[0],v),g=I?0:1;for(let J=g;J<$.allOf.length;J++)w=y.intersection(w,Hv($.allOf[J],v));U=w}if($.nullable===!0&&v.version==="openapi-3.0")U=y.nullable(U);if($.readOnly===!0)U=y.readonly(U);if($.default!==void 0)U=U.default($.default);let b={},D=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let w of D)if(w in $)b[w]=$[w];let u=["contentEncoding","contentMediaType","contentSchema"];for(let w of u)if(w in $)b[w]=$[w];for(let w of Object.keys($))if(!yt.has(w))b[w]=$[w];if(Object.keys(b).length>0)v.registry.add(U,b);if($.description)U=U.describe($.description);return U}function O_($,v){if(typeof $==="boolean")return $?y.any():y.never();let U;try{U=JSON.parse(JSON.stringify($))}catch{throw Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let I=ht(U,v?.defaultTarget),b=U.$defs||U.definitions||{},D={version:I,defs:b,refs:new Map,processing:new Set,rootSchema:U,registry:v?.registry??uv};return Hv(U,D)}var qL={};e$(qL,{string:()=>ct,number:()=>ot,date:()=>pt,boolean:()=>tt,bigint:()=>dt});function ct($){return y7(wI,$)}function ot($){return a7(JI,$)}function tt($){return I3(XI,$)}function dt($){return u3(WI,$)}function pt($){return Y3(z0,$)}o$(v0());var at=class ${sessionId;resumeUrl;seq;constructor(v){this.sessionId=v.sessionId,this.resumeUrl=v.resumeUrl,this.seq=v.seq,Object.freeze(this)}static empty(){return new $({sessionId:null,resumeUrl:null,seq:null})}canResume(){return this.sessionId!==null}withSeq(v){return new $({sessionId:this.sessionId,resumeUrl:this.resumeUrl,seq:v})}withReady(v,U){return new $({sessionId:v,resumeUrl:U,seq:this.seq})}withReset(){return $.empty()}},et=class{props;initialTimer=null;intervalTimer=null;ackReceived=!0;constructor($){this.props=$}start($){this.stop(),this.ackReceived=!0;let v=$g({deps:this.props.deps})*$,U=p(()=>this.props.deps.setTimeout(()=>{this.initialTimer=null,this.safeFire();let I=p(()=>this.props.deps.setInterval(()=>this.safeFire(),$));if(I instanceof Error)this.props.log.error({action:"heartbeat.interval.schedule.error",message:x({error:I}),error:I}),this.intervalTimer=null;else this.intervalTimer=I},v));if(U instanceof Error)this.props.log.error({action:"heartbeat.initial.schedule.error",message:x({error:U}),error:U}),this.initialTimer=null;else this.initialTimer=U}stop(){if(this.initialTimer!==null){let $=this.initialTimer,v=p(()=>this.props.deps.clearTimeout($));if(v instanceof Error)this.props.log.error({action:"heartbeat.initial.clear.error",message:x({error:v}),error:v});this.initialTimer=null}if(this.intervalTimer!==null){let $=this.intervalTimer,v=p(()=>this.props.deps.clearInterval($));if(v instanceof Error)this.props.log.error({action:"heartbeat.interval.clear.error",message:x({error:v}),error:v});this.intervalTimer=null}}ack(){this.ackReceived=!0}isRunning(){return this.initialTimer!==null||this.intervalTimer!==null}safeFire(){jb({fn:()=>this.fire(),onError:($)=>{this.props.log.error({action:"heartbeat.fire.error",message:x({error:$}),error:$})}})}fire(){if(!this.ackReceived){this.props.onZombie();return}this.ackReceived=!1,this.props.onSend()}},st=z$.object({op:z$.number(),d:z$.unknown(),s:z$.number().nullable(),t:z$.string().nullable()});function $d($){let v=Sb($);if(v instanceof mv)return v;let U=st.safeParse(v);if(!U.success)return new mv(`invalid gateway message frame (${$.length} bytes)`,{cause:U.error});return U.data}var vd="wss://gateway.discord.gg/?v=10&encoding=json",Q_=0,nJ=1,Y_=2,V_=6,L_=7,K_=9,q_=10,B_=11,H_={[Q_]:"DISPATCH",[nJ]:"HEARTBEAT",[Y_]:"IDENTIFY",[V_]:"RESUME",[L_]:"RECONNECT",[K_]:"INVALID_SESSION",[q_]:"HELLO",[B_]:"HEARTBEAT_ACK"},z_=1,bd=new Set([4004,4010,4011,4012,4013,4014]),Ud=class{props;log;ws=null;heartbeat=null;currentSession=at.empty();isStoppedFlag=!1;hasConnected=!1;pendingResolve=null;pendingResolved=!1;invalidSessionTimer=null;constructor($){this.props=$,this.log=new d4({source:"discord.gateway",handler:$.onLog,deps:$.deps})}get session(){return this.currentSession}get isStopped(){return this.isStoppedFlag}connect($){let v=this.props.deps.WebSocket;if(!v){let D=new Uv("WebSocket runtime not available");return this.log.error({action:"ws.error",message:x({error:D}),error:D}),Promise.resolve(D)}let U=$??vd,I=p(()=>new URL(U).hostname),b=I instanceof Error?"unknown":I;return this.log.info({action:"connect.start",message:`host=${b}`}),this.pendingResolved=!1,this.hasConnected=!1,new Promise((D)=>{this.pendingResolve=D;let u=p(()=>new v(U));if(u instanceof Error){let J=new Uv(`WebSocket construction failed: ${x({error:u})}`,{cause:u});this.log.error({action:"ws.construct.error",message:x({error:J}),error:J}),this.ws=null,this.pendingResolved=!0,D(J);return}let w=u;this.ws=w;let g=p(()=>{w.addEventListener("message",(J)=>this.safeOnMessage(J,w)),w.addEventListener("close",(J)=>this.safeOnClose(J)),w.addEventListener("error",()=>this.safeOnError())});if(g instanceof Error){let J=new Uv(`WebSocket listener registration failed: ${x({error:g})}`,{cause:g});this.log.error({action:"ws.listener.error",message:x({error:J}),error:J}),this.ws=null,this.pendingResolved=!0,D(J)}})}disconnect(){this.log.info({action:"disconnect",message:"shutting down gateway"}),this.isStoppedFlag=!0,this.heartbeat?.stop(),this.clearInvalidSessionTimer(),this.closeSocket({ws:this.ws,code:1000,reason:"shutdown"}),this.ws=null}isConnected(){return this.ws!==null&&this.ws.readyState===z_}completeConnect($){if(this.pendingResolved||!this.pendingResolve)return;this.pendingResolved=!0,this.pendingResolve($)}safeOnMessage($,v){let U=p(()=>this.onMessage(String($.data),v));if(U instanceof Error)this.log.error({action:"ws.message.threw",message:x({error:U}),error:U})}safeOnClose($){let v=p(()=>this.onClose($));if(v instanceof Error)this.log.error({action:"ws.close.threw",message:x({error:v}),error:v})}safeOnError(){let $=p(()=>this.onError());if($ instanceof Error)this.log.error({action:"ws.error.threw",message:x({error:$}),error:$})}onMessage($,v){if(this.isStoppedFlag)return;let U=$d($);if(U instanceof mv){this.log.error({action:"ws.parse.error",message:U.message,error:U,detail:{length:$.length}});return}if(this.log.debug({action:"ws.recv",message:`op=${H_[U.op]??U.op} t=${U.t??"-"} s=${U.s??"-"} length=${$.length}`,detail:{op:U.op,t:U.t,s:U.s,length:$.length}}),U.s!==null)this.currentSession=this.currentSession.withSeq(U.s);if(U.op===q_)return this.onHello(U);if(U.op===B_)return this.onHeartbeatAck();if(U.op===nJ)return this.onHeartbeatRequest();if(U.op===L_)return this.onReconnectRequest(v);if(U.op===K_)return this.onInvalidSession(U,v);if(U.op===Q_)return this.onDispatch(U);this.log.warn({action:"ws.op.unknown",message:`unknown op=${U.op}`,detail:{op:U.op}})}onHello($){let v=p4($.d)?$.d:null,U=v&&typeof v.heartbeat_interval==="number"?v.heartbeat_interval:0;if(this.log.info({action:"gateway.hello",message:`heartbeat_interval=${U}ms`,detail:{interval:U}}),this.heartbeat?.stop(),this.heartbeat=new et({log:this.log,deps:this.props.deps,onSend:()=>{this.log.debug({action:"heartbeat.send",message:`seq=${this.currentSession.seq}`}),this.send({op:nJ,d:this.currentSession.seq})},onZombie:()=>{this.log.warn({action:"heartbeat.zombie",message:"no ACK received, closing connection"}),this.closeSocket({ws:this.ws,code:4009,reason:"zombie connection"})}}),this.heartbeat.start(U),this.currentSession.canResume())this.sendResume();else this.sendIdentify()}onHeartbeatAck(){this.log.debug({action:"heartbeat.ack",message:"received"}),this.heartbeat?.ack()}onHeartbeatRequest(){this.log.debug({action:"heartbeat.requested",message:"server requested heartbeat"}),this.send({op:nJ,d:this.currentSession.seq})}onReconnectRequest($){this.log.info({action:"ws.reconnect.requested",message:"server requested reconnect"}),this.closeSocket({ws:$,code:4000,reason:"reconnect requested"})}onInvalidSession($,v){let U=$.d===!0||p4($.d)&&$.d.resumable===!0;this.log.warn({action:"session.invalid",message:`resumable=${U}`,detail:{resumable:U}});let I=1000+$g({deps:this.props.deps})*4000;if(!U)this.currentSession=this.currentSession.withReset();this.clearInvalidSessionTimer();let b=p(()=>this.props.deps.setTimeout(()=>{this.invalidSessionTimer=null,this.closeSocket({ws:v,code:4000,reason:"invalid session"})},I));if(b instanceof Error)this.log.error({action:"session.invalid.timer.error",message:x({error:b}),error:b}),this.invalidSessionTimer=null;else this.invalidSessionTimer=b}onDispatch($){let v=p4($.d)?$.d:null;if($.t==="READY"&&v){let U=typeof v.session_id==="string"?v.session_id:"",I=typeof v.resume_gateway_url==="string"?v.resume_gateway_url:"";this.currentSession=this.currentSession.withReady(U,I),this.log.info({action:"gateway.ready",message:"session ready",detail:{hasResumeUrl:I!==""}}),this.hasConnected=!0,this.props.onStatus("connected"),this.completeConnect(null)}if($.t==="RESUMED")this.log.info({action:"gateway.resumed",message:`seq=${this.currentSession.seq}`}),this.hasConnected=!0,this.props.onStatus("connected"),this.completeConnect(null);if($.t&&v)this.props.onDispatch($.t,v);else if($.t)this.log.debug({action:"dispatch.empty",message:`dropped ${$.t} (no payload)`,detail:{type:$.t}})}onClose($){let v=bd.has($.code);if(this.log.info({action:"ws.close",message:`code=${$.code} reason=${$.reason||"none"}${v?" (terminal)":""}`,detail:{code:$.code,reason:$.reason,terminal:v}}),this.ws=null,this.heartbeat?.stop(),this.clearInvalidSessionTimer(),v)this.isStoppedFlag=!0;if(this.hasConnected||v)this.props.onStatus("disconnected");if(!this.pendingResolved){let U=new Uv(`WebSocket closed before ready (code=${$.code})`,{code:$.code});this.completeConnect(U)}}onError(){let $=new Uv("WebSocket connection error");this.log.error({action:"ws.error",message:x({error:$}),error:$}),this.completeConnect($)}clearInvalidSessionTimer(){if(this.invalidSessionTimer===null)return;let $=this.invalidSessionTimer,v=p(()=>this.props.deps.clearTimeout($));if(v instanceof Error)this.log.error({action:"session.invalid.timer.clear.error",message:x({error:v}),error:v});this.invalidSessionTimer=null}closeSocket($){if($.ws===null)return;let v=$.ws,U=p(()=>{if($.code!==void 0)v.close($.code,$.reason??"");else v.close()});if(U instanceof Error)this.log.error({action:"ws.close.error",message:x({error:U}),error:U})}send($){let v=this.safeSerialize($);if(v===null)return;this.log.debug({action:"ws.send",message:`op=${H_[$.op]??$.op} length=${v.length}`,detail:{op:$.op,length:v.length}});let U=this.ws;if(U===null){this.log.warn({action:"ws.send",message:"ws.send skipped: socket is null"});return}if(U.readyState!==z_){this.log.warn({action:"ws.send",message:`ws.send skipped: readyState=${U.readyState} (not OPEN)`,detail:{readyState:U.readyState}});return}let I=p(()=>U.send(v));if(I instanceof Error)this.log.error({action:"ws.send",message:`ws.send failed: ${x({error:I})}`,error:I})}safeSerialize($){let v=Ug({op:$.op,d:$.d??null});if(v instanceof Error)return this.log.error({action:"ws.send.serialize.error",message:x({error:v}),error:v,detail:{op:$.op}}),null;return v}sendIdentify(){this.log.info({action:"gateway.identify",message:`intents=${this.props.intents}`}),this.send({op:Y_,d:{token:this.props.token,intents:this.props.intents,properties:{os:"linux",browser:"open-flume",device:"open-flume"}}})}sendResume(){this.log.info({action:"gateway.resume",message:`seq=${this.currentSession.seq}`}),this.send({op:V_,d:{token:this.props.token,session_id:this.currentSession.sessionId,seq:this.currentSession.seq}})}},i6={Guilds:1,GuildMembers:2,GuildModeration:4,GuildExpressions:8,GuildIntegrations:16,GuildWebhooks:32,GuildInvites:64,GuildVoiceStates:128,GuildPresences:256,GuildMessages:512,GuildMessageReactions:1024,GuildMessageTyping:2048,DirectMessages:4096,DirectMessageReactions:8192,DirectMessageTyping:16384,MessageContent:32768,GuildScheduledEvents:65536,AutoModerationConfiguration:1048576,AutoModerationExecution:2097152,GuildMessagePolls:16777216,DirectMessagePolls:33554432};function Id($,v){let U={event_type:$};if(typeof v.channel_id==="string")U.channel_id=v.channel_id;if(typeof v.guild_id==="string")U.guild_id=v.guild_id;if(p4(v.author)&&typeof v.author.id==="string")U.user_id=v.author.id;return U}var Dd=i6.Guilds|i6.GuildMessages|i6.DirectMessages,A_=class extends Nb{options;name="discord";gateway=null;reconnector=null;constructor($){super();this.options=$}async connect($){if(!this.hasWebSocket($))return new F4("Discord source: deps.WebSocket is null (no WebSocket runtime available)");if($.reconnect&&!this.reconnector)this.reconnector=new vg({...$.reconnect,log:$.log,deps:$.deps});return await this.connectInternal($)}disconnect(){if(this.reconnector&&!this.reconnector.aborted)this.context?.log.debug({action:"reconnect.cancel",message:"aborting reconnector"});this.reconnector?.cancel(),this.gateway?.disconnect(),this.gateway=null}hasWebSocket($){let v=p(()=>Boolean($.deps.WebSocket));if(v instanceof Error){let U=F$({value:v});return $.log.error({action:"deps.web-socket.read.error",message:x({error:U}),error:U}),!1}return v}async connectInternal($,v){this.setStatus("connecting"),this.gateway=new Ud({token:this.options.token,intents:this.options.intents??Dd,onLog:$.log.handler,deps:$.deps,onDispatch:(I,b)=>this.dispatch($,I,b),onStatus:(I)=>this.handleGatewayStatus($,I)});let U=await this.gateway.connect(v);if(U instanceof Uv){if($.log.error({action:"connect.failed",message:x({error:U}),error:U}),this.gateway.isStopped||!this.reconnector||this.reconnector.aborted)return this.setStatus("disconnected"),U;this.scheduleReconnect($)}return null}dispatch($,v,U){this.emit({source:"discord",type:v,data:U,meta:this.safeExtractMeta($,v,U),receivedAt:ev({deps:$.deps})})}safeExtractMeta($,v,U){let I=p(()=>Id(v,U));if(I instanceof Error){let b=F$({value:I});return $.log.warn({action:"meta.extract.error",message:x({error:b}),error:b,detail:{eventName:v}}),{event_type:v}}return I}handleGatewayStatus($,v){if(v==="connected"){if(this.reconnector&&this.reconnector.attempt>0)$.log.info({action:"reconnect.reset",message:`cleared ${this.reconnector.attempt} attempts`});this.reconnector?.reset(),this.setStatus("connected");return}if(this.gateway?.isStopped){this.setStatus("disconnected");return}this.scheduleReconnect($)}scheduleReconnect($){let v=this.gateway?.session.resumeUrl??void 0;bg({reconnector:this.reconnector,log:$.log,setStatus:(U)=>this.setStatus(U),retry:()=>{this.connectInternal($,v).catch((U)=>{let I=F$({value:U});$.log.error({action:"reconnect.unhandled",message:x({error:I}),error:I}),this.setStatus("disconnected")})}})}};var T$=($)=>{return $ instanceof Error?$.message:String($)};class BL{ownUserId;constructor($){this.ownUserId=$.ownUserId}process($){if($.authorIsBot)return{skip:!0};let v=this.ownUserId?$.mentionedUserIds.includes(this.ownUserId):!1;return{skip:!1,content:JSON.stringify($.raw),meta:{event_type:"discord",channel_id:$.channelId,user_id:$.authorId,mentioned:String(v),guild_id:$.guildId??""}}}}var tv=class extends Error{status;constructor($){super($.message,$.cause===void 0?void 0:{cause:$.cause});this.name="FlumeHttpError",this.status=$.status,Object.freeze(this)}};function ud(){let $=p(()=>globalThis.WebSocket);if($ instanceof Error||typeof $!=="function")return null;return $}function PL(){return{fetch:($,v)=>globalThis.fetch($,v),WebSocket:ud(),now:()=>Date.now(),random:()=>Math.random(),setTimeout:($,v)=>globalThis.setTimeout($,v),clearTimeout:($)=>globalThis.clearTimeout($),setInterval:($,v)=>globalThis.setInterval($,v),clearInterval:($)=>globalThis.clearInterval($)}}var AL={value:void 0,done:!0},wd=class{props;items=[];resolvers=[];closed=!1;constructor($){this.props=$}push($){if(this.closed)return;let v=this.resolvers.shift();if(v){v({value:$,done:!1});return}if(this.items.length>=this.props.buffer){if(this.props.onOverflow==="drop-newest")return;this.items.shift()}this.items.push($)}close(){if(this.closed)return;this.closed=!0;while(this.resolvers.length>0){let $=this.resolvers.shift();if($)$(AL)}}next(){let $=this.items.shift();if($!==void 0)return Promise.resolve({value:$,done:!1});if(this.closed)return Promise.resolve(AL);return new Promise((v)=>this.resolvers.push(v))}return(){return this.close(),this.props.onClose(),Promise.resolve(AL)}[Symbol.asyncIterator](){return this}},gd=1000,Jd=class{streams=new Set;closed=!1;publish($){if(this.closed)return;for(let v of this.streams)v.push($)}subscribe($){let v=new wd({buffer:$?.buffer??gd,onOverflow:$?.onOverflow??"drop-oldest",onClose:()=>this.streams.delete(v)});if(this.closed)return v.close(),v;return this.streams.add(v),v}close(){if(this.closed)return;this.closed=!0;for(let $ of this.streams)$.close();this.streams.clear()}},P_=class{props;kind="closed";constructor($){this.props=$,Object.freeze(this)}statuses(){return this.props.finalStatuses}errors(){return this.props.closeErrors}},Xd=class{props;kind="running";closePromise=null;onAbort;constructor($){this.props=$,this.onAbort=()=>{this.props.log.info({action:"flume.abort",message:"signal aborted, closing"}),jb({fn:()=>this.close(),onError:(U)=>{this.props.log.error({action:"flume.abort.close.failed",message:x({error:U}),error:U})}})};let v=$.signal;if(v){let U=p(()=>v.addEventListener("abort",this.onAbort,{once:!0}));if(U instanceof Error){let I=F$({value:U});$.log.error({action:"signal.addListener.failed",message:x({error:I}),error:I})}}}close(){if(this.closePromise)return this.closePromise;return this.closePromise=this.runClose(),this.closePromise}statuses(){return this.snapshotStatuses()}stream($){return this.props.hub.subscribe($)}get signal(){return this.props.signal}async runClose(){let $=[];try{this.props.log.info({action:"flume.close",message:`closing ${this.props.sources.length} source(s)`});let v=await Promise.allSettled(this.props.sources.map((I)=>Promise.resolve().then(()=>I.stop())));for(let[I,b]of v.entries())if(b.status==="rejected"){let D=this.props.sources[I],u=D?this.sourceName(D):"?",w=F$({value:b.reason});$.push({source:u,error:w}),this.props.log.error({action:"flume.close.failed",message:`${u}: ${x({error:w})}`,error:w,detail:{source:u}})}let U=this.props.signal;if(U){let I=p(()=>U.removeEventListener("abort",this.onAbort));if(I instanceof Error){let b=F$({value:I});this.props.log.error({action:"signal.removeListener.failed",message:x({error:b}),error:b})}}return this.props.log.info({action:"flume.close.complete",message:"all sources closed"}),this.props.hub.close(),new P_({finalStatuses:this.snapshotStatuses(),closeErrors:$})}catch(v){let U=F$({value:v});return this.props.log.error({action:"flume.close.unhandled",message:x({error:U}),error:U}),this.props.hub.close(),new P_({finalStatuses:this.snapshotStatuses(),closeErrors:$})}}snapshotStatuses(){return this.props.sources.map(($)=>{let v=this.sourceName($),U=p(()=>$.status());if(U instanceof Error){let I=F$({value:U});return this.props.log.error({action:"source.status.failed",message:`${v}: ${x({error:I})}`,error:I,detail:{source:v}}),{source:v,status:"disconnected"}}return{source:v,status:U}})}sourceName($){let v=p(()=>$.name);if(v instanceof Error)return"?";if(typeof v!=="string")return"?";return v}},j_={maxAttempts:1/0,baseDelay:1000,maxDelay:30000};function Wd($){if($===!1||$===void 0)return null;if($===!0)return{...j_};return{...j_,...$}}var N_=class{options;consumed=!1;log;deps;sources;sourceEventHandler;hub=new Jd;constructor($){this.options=$,this.sources=$.sources,this.deps=$.deps??PL(),this.log=new d4({source:"flume",handler:this.buildLogHandler(),deps:this.deps}),this.sourceEventHandler=(v)=>this.emitItem({kind:"event",event:v})}buildLogHandler(){return($)=>{this.emitItem({kind:"log",log:$});let v=this.options.onError;if(!v||$.level!=="error")return;try{Promise.resolve(v($)).catch(()=>{})}catch{}}}emitItem($){this.hub.publish($);let v=this.options.onEvent;if(!v)return;try{Promise.resolve(v($)).catch(()=>{})}catch{}}async open(){let $=this.guardOpen();if($)return $;this.consumed=!0,this.log.info({action:"flume.open",message:`opening ${this.sources.length} source(s)`,detail:{count:this.sources.length}});let v=Wd(this.options.reconnect),U=await Promise.allSettled(this.sources.map((D)=>this.safeStart(D,v))),I=[],b=[];for(let[D,u]of U.entries()){let w=this.sources[D];if(w===void 0)continue;let g=this.sourceName(w);if(u.status==="rejected"){I.push({name:g,error:F$({value:u.reason})});continue}if(u.value instanceof Error){I.push({name:g,error:u.value});continue}b.push(w)}if(I.length>0){for(let w of I)this.log.error({action:"flume.source.failed",message:`${w.name}: ${x({error:w.error})}`,error:w.error,detail:{source:w.name}});await this.rollback(b);let D=I.map((w)=>`${w.name}: ${x({error:w.error})}`).join("; "),u=new F4(`Flume.open: ${I.length} source(s) failed: ${D}`);return this.log.error({action:"flume.open.failed",message:x({error:u}),error:u}),u}if(this.isSignalAborted()){await this.rollback(this.sources);let D=new F4("Flume.open: aborted during open");return this.log.warn({action:"flume.open.aborted",message:x({error:D}),error:D}),D}return this.log.info({action:"flume.open.complete",message:"all sources opened"}),new Xd({sources:this.sources,signal:this.options.signal,log:this.log,hub:this.hub})}guardOpen(){if(this.consumed){let $=new F4("Flume.open: already opened");return this.log.warn({action:"flume.open.refused",message:x({error:$}),error:$}),$}if(this.isSignalAborted()){let $=new F4("Flume.open: signal already aborted");return this.log.warn({action:"flume.open.refused",message:x({error:$}),error:$}),$}return null}isSignalAborted(){let $=this.options.signal;if(!$)return!1;let v=p(()=>$.aborted===!0);return v instanceof Error?!0:v}sourceName($){let v=p(()=>$.name);if(v instanceof Error)return"?";if(typeof v!=="string")return"?";return v}safeStart($,v){let U=this.sourceName($),I={onEvent:this.sourceEventHandler,log:this.log.child(U),deps:this.deps,reconnect:v,signal:this.options.signal};return Promise.resolve().then(()=>$.start(I))}async rollback($){let v=await Promise.allSettled($.map((U)=>Promise.resolve().then(()=>U.stop())));for(let[U,I]of v.entries())if(I.status==="rejected"){let b=$[U],D=b?this.sourceName(b):"?",u=F$({value:I.reason});this.log.error({action:"flume.rollback.failed",message:`${D}: ${x({error:u})}`,error:u,detail:{source:D}})}}};var GI=($)=>{if(!$||Object.keys($).length===0)return;return{...PL(),...$}},OI=($)=>{if(!$)return;return(v)=>{if(v.level==="debug")return;let U=`${v.source}/${v.action}: ${v.message}`,I=Gd(v);if(v.level==="error"){$.error(U,I);return}if(v.level==="warn"){$.warn(U,I);return}$.info(U,I)}},Gd=($)=>{let v={...$.detail??{}};if($.error){if(v.error=$.error.message,$.error.stack)v.stack=$.error.stack;if($.error.name&&$.error.name!=="Error")v.errorName=$.error.name}return Object.keys(v).length>0?v:void 0};class B0{isAlive(){return!0}}class A0{props;constructor($){this.props=$;Object.freeze(this)}recordRaw($,v){this.props.log?.recordRaw({eventId:$,type:this.props.type,connectorId:this.props.connectorId,channelId:this.props.channelId,payload:v})}recordProcessed($,v,U){this.props.log?.recordProcessed({eventId:$,type:this.props.type,connectorId:this.props.connectorId,channelId:this.props.channelId,outcome:v,payload:U})}recordConnection($,v){this.props.log?.recordConnection({type:this.props.type,connectorId:this.props.connectorId,channelId:this.props.channelId,status:$,detail:v})}}class Cb extends B0{logger;diagnostics;type;running=null;connected=!1;reconnecting=!1;deliveryChain=Promise.resolve();constructor($){super();this.type=$.type,this.logger=$.logger,this.diagnostics=new A0({type:$.type,connectorId:$.connectorId,channelId:$.channelId,log:$.diagnosticLog})}async runStart($){let v=$.reconnect??!0,U=v===!1?void 0:v===!0?{}:v,I=(w)=>{if(w.kind==="event"){this.deliveryChain=this.deliveryChain.catch(()=>{}).then(()=>Promise.resolve($.onEvent(w.event)));return}let g=w.log,J=zd(g);if(J)this.handleStatus(J);$.onLog?.(g)},b={sources:[$.source],onEvent:I};if($.deps)b.deps=$.deps;if($.signal)b.signal=$.signal;if(U)b.reconnect=U;let u=await new N_(b).open();if(u instanceof Error)throw this.diagnostics.recordConnection("error",T$(u)),u;this.running=u}async stop(){if(!this.running)return;try{await this.running.close(),this.diagnostics.recordConnection("disconnected","")}catch($){this.diagnostics.recordConnection("error",T$($)),this.logger?.error(`${this.type} stop error`,{error:T$($)})}finally{this.running=null,this.connected=!1,this.reconnecting=!1,this.deliveryChain=Promise.resolve(),this.onStop(),this.diagnostics.recordConnection("stopped","")}}isAlive(){if(this.running===null)return!1;return this.connected||this.reconnecting}handleStatus($){if($.status==="connected"){this.connected=!0,this.reconnecting=!1,this.diagnostics.recordConnection("connected",$.detail??"");return}if($.status==="disconnected"){this.connected=!1,this.reconnecting=!1,this.diagnostics.recordConnection("disconnected",$.detail??"");return}if($.status==="reconnecting")this.connected=!1,this.reconnecting=!0}onStop(){}}var Od=["disconnected","connecting","connected","reconnecting"],Hd=($)=>typeof $==="string"&&Od.includes($),zd=($)=>{if($.action!=="status")return null;let v=$.detail;if(!v)return null;let U=v.to;if(!Hd(U))return null;let I=typeof v.reason==="string"?v.reason:null;return{source:$.source,status:U,detail:I}};var Qd=["MESSAGE_CREATE","MESSAGE_UPDATE"],jL=($)=>typeof $==="object"&&$!==null&&!Array.isArray($),NL=($,v)=>{let U=$[v];return typeof U==="string"?U:void 0};class SL extends Cb{config;env;flumeDeps;signal;eventTypes;processor=null;constructor($){super({type:"discord",connectorId:$.config.id,channelId:$.channelId??null,logger:$.logger,diagnosticLog:$.diagnosticLog});this.config=$.config,this.env=$.env??process.env,this.flumeDeps=$.flumeDeps??{},this.signal=$.signal,this.eventTypes=$.eventTypes==="all"?"all":new Set($.eventTypes??Qd)}async start($){this.diagnostics.recordConnection("started","");let v;try{v=o4({literal:this.config.botToken,envVar:this.config.botTokenEnv,env:this.env,label:`${this.config.name}.botToken`})}catch(I){throw this.diagnostics.recordConnection("auth-failed",T$(I)),I}let U=new A_({token:v,intents:i6.Guilds|i6.GuildMessages|i6.MessageContent|i6.DirectMessages});await this.runStart({source:U,onLog:OI(this.logger),deps:GI(this.flumeDeps),signal:this.signal,onEvent:(I)=>{if(I.source!=="discord")return Promise.resolve();return this.handleEvent(I,$)}})}onStop(){this.processor=null}async handleEvent($,v){if($.type==="READY"){this.adoptReady($.data);return}if(!this.processor){let G=crypto.randomUUID();this.diagnostics.recordRaw(G,JSON.stringify($.data)),this.diagnostics.recordProcessed(G,"skip:pre-ready","");return}if(this.eventTypes!=="all"&&!this.eventTypes.has($.type)){let G=crypto.randomUUID();this.diagnostics.recordRaw(G,JSON.stringify($.data)),this.diagnostics.recordProcessed(G,`skip:filtered:${$.type}`,"");return}let U=$.data,I=jL(U.author)?U.author:null,b=I!==null&&I.bot===!0,D=$.meta.user_id??"",u=$.meta.channel_id??"",w=$.meta.guild_id??null,g=Array.isArray(U.mentions)?U.mentions.map((G)=>jL(G)?NL(G,"id")??"":"").filter((G)=>G!==""):[],J=crypto.randomUUID(),X=JSON.stringify(U);this.diagnostics.recordRaw(J,X);let W=this.processor.process({authorId:D,authorIsBot:b,channelId:u,guildId:w,mentionedUserIds:g,raw:U});if(W.skip){this.diagnostics.recordProcessed(J,"skip:bot",X),this.logger?.info("discord skip",{reason:"bot author"});return}await this.deliver(v,J,X,W.content,W.meta)}adoptReady($){let v=jL($.user)?NL($.user,"id"):void 0,U=NL($,"user_id"),I=v??U??"";if(!I){let b=crypto.randomUUID();this.diagnostics.recordRaw(b,JSON.stringify($)),this.diagnostics.recordProcessed(b,"skip:ready-missing-user-id",""),this.diagnostics.recordConnection("error","discord READY payload had neither user.id nor user_id; processor not initialized"),this.logger?.error("discord READY missing user id",{connector:this.config.name});return}this.processor=new BL({ownUserId:I})}async deliver($,v,U,I,b){try{await $(I,b)}catch(D){this.diagnostics.recordProcessed(v,"emitted:delivery-failed",I||U),this.logger?.error("discord notify error",{error:T$(D)});return}this.diagnostics.recordProcessed(v,"emitted",I)}}var ib=($,v,U,I)=>{let b=U[$];if(typeof b==="string")return{[$]:b};let D=U[v];if(typeof D==="string")return{[v]:D};let u={},w=I[$],g=I[v];if(typeof w==="string")u[$]=w;if(typeof g==="string")u[v]=g;return u};var S_=($={})=>({type:"discord",toolExposed:!0,createListener(v,U){return new SL({config:t4.parse(v),channelId:U.channelId,logger:U.logger,diagnosticLog:U.diagnosticLog,signal:U.signal,eventTypes:$.eventTypes})},createAdapter(v,U){return new AQ({config:t4.parse(v),http:U.http})},secretTokens(v){return[t4.parse(v).botToken].filter((I)=>I!==void 0)},buildConfig(v,U){return t4.parse({id:U.id,type:"discord",name:v.name,...typeof v.botToken==="string"?{botToken:v.botToken}:{},...typeof v.botTokenEnv==="string"?{botTokenEnv:v.botTokenEnv}:{},createdAt:U.now,updatedAt:U.now})},applyUpdate(v,U,I){let b=t4.parse(v);return t4.parse({id:b.id,name:b.name,type:"discord",createdAt:b.createdAt,updatedAt:I.now,...ib("botToken","botTokenEnv",U,b)})},operations:{}});import{openSync as __}from"fs";function M_($){let v=[],U=Array.from($),I="",b=!1,D=0;while(D<U.length){let u=U[D]??"";if(b){if(u==='"'&&U[D+1]==='"'){I+='"',D+=2;continue}if(u==='"'){b=!1,D+=1;continue}I+=u,D+=1;continue}if(u==='"'){b=!0,D+=1;continue}if(u===","){v.push(I),I="",D+=1;continue}I+=u,D+=1}return v.push(I),v}class P0{}var ML=($)=>{if(!$)return;let v={};for(let[U,I]of Object.entries(process.env))if(typeof I==="string")v[U]=I;for(let[U,I]of Object.entries($))v[U]=I;return v},_L=()=>process.platform==="win32";class $v extends P0{constructor(){super();Object.freeze(this)}runSync($){let v=Bun.spawnSync($,{stdout:"pipe",stderr:"pipe"});return{exitCode:v.exitCode??0,stdout:v.stdout.toString(),stderr:v.stderr.toString()}}async run($,v={}){let U=Bun.spawn($,{cwd:v.cwd,env:ML(v.env),stdin:v.input!==void 0?"pipe":"ignore",stdout:"pipe",stderr:"pipe"});if(v.input!==void 0&&U.stdin)U.stdin.write(v.input),U.stdin.end();let I=await U.exited,b=await new Response(U.stdout).text(),D=await new Response(U.stderr).text();return{exitCode:I,stdout:b,stderr:D}}async attach($,v={}){let U=Bun.spawn($,{cwd:v.cwd,env:ML(v.env),stdio:["inherit","inherit","inherit"]});if(v.onSpawned)v.onSpawned(U.pid);return await U.exited}detach($,v={}){let U=v.stdoutFile?__(v.stdoutFile,"a"):"ignore",I=v.stderrFile?v.stderrFile===v.stdoutFile&&typeof U==="number"?U:__(v.stderrFile,"a"):"ignore";Bun.spawn($,{env:ML(v.env),stdio:["ignore",U,I],windowsHide:!0}).unref()}kill($,v="SIGTERM"){try{process.kill($,v)}catch{}}isAlive($){if(!Number.isInteger($)||$<=0)return!1;if(_L())return this.isAliveWindows($);return this.isAlivePosix($)}listProcessesContaining($){if(!$)return[];if(_L())return this.listProcessesContainingWindows($);return this.listProcessesContainingPosix($)}getStartTime($){if(!Number.isInteger($)||$<=0)return null;if(_L())return this.getStartTimeWindows($);return this.getStartTimePosix($)}isAlivePosix($){let v=this.runSync(["ps","-p",String($),"-o","state="]);if(v.exitCode!==0)return!1;let U=v.stdout.trim();if(!U)return!1;return!U.startsWith("Z")}isAliveWindows($){let v=this.runSync(["tasklist","/FI",`PID eq ${$}`,"/NH","/FO","CSV"]);if(v.exitCode!==0)return!1;return v.stdout.includes(`"${$}"`)}listProcessesContainingPosix($){let v=this.runSync(["ps","-e","-o","pid=,args="]);if(v.exitCode!==0)return[];let U=[];for(let I of v.stdout.split(`
|
|
307
307
|
`)){let b=I.trim();if(!b)continue;let D=/^(\d+)\s+(.+)$/.exec(b);if(!D)continue;let u=Number(D[1]),w=D[2]??"";if(!Number.isInteger(u)||u<=0)continue;if(!w.includes($))continue;U.push({pid:u,command:w})}return U}getStartTimePosix($){let v=this.runSync(["ps","-p",String($),"-o","lstart="]);if(v.exitCode!==0)return null;let U=v.stdout.trim();if(!U)return null;return U}getStartTimeWindows($){let v=`Get-CimInstance Win32_Process -Filter "ProcessId=${$}" | Select-Object -ExpandProperty CreationDate | ForEach-Object { $_.ToString("o") }`,U=this.runSync(["powershell","-NoProfile","-Command",v]);if(U.exitCode!==0)return null;let I=U.stdout.trim();if(!I)return null;return I}listProcessesContainingWindows($){let U=this.runSync(["powershell","-NoProfile","-Command","Get-CimInstance Win32_Process | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"]);if(U.exitCode!==0)return[];let I=[],b=U.stdout.split(/\r?\n/).slice(1);for(let D of b){let u=D.trim();if(!u)continue;let w=M_(u);if(w.length<2)continue;let g=Number(w[0]),J=w[1]??"";if(!Number.isInteger(g)||g<=0)continue;if(!J.includes($))continue;I.push({pid:g,command:J})}return I}}var Yd=new $v;class FL extends Pb{process;constructor($={}){super();this.process=$.process??Yd,Object.freeze(this)}async call($){let v=["api",$.path];if($.method&&$.method.toLowerCase()!=="get")v.push("-X",$.method.toUpperCase());let U=$.body&&typeof $.body==="object"&&Object.keys($.body).length>0;if(U)v.push("--input","-");let I=await this.process.run(["gh",...v],{input:U?JSON.stringify($.body):void 0});if(I.exitCode!==0)throw Error(`gh api failed: ${I.stderr.trim()||I.stdout.trim()}`);try{return JSON.parse(I.stdout)}catch{return I.stdout}}}var $6=H.object({id:H.string(),name:H.string(),type:H.literal("gh"),pollInterval:H.number().int().positive().optional(),token:H.string().optional(),tokenEnv:H.string().optional(),createdAt:H.string().datetime().optional(),updatedAt:H.string().datetime().optional()});async function rJ($){try{return await $.response.text()}catch(v){return new tv({message:`${$.context}: failed to read body: ${x({error:v})}`,status:$.response.status,cause:v})}}function Vd($){return{event_type:"notification",reason:$.reason,subject_type:$.subject.type,repository:$.repository.full_name,thread_id:$.id}}var Ld=z$.object({id:z$.string(),reason:z$.string(),unread:z$.boolean(),updated_at:z$.string(),subject:z$.object({title:z$.string(),url:z$.string().nullable(),type:z$.string()}),repository:z$.object({full_name:z$.string()})}),Kd=class{props;seen=new Map;constructor($){this.props=$}has($,v){return this.seen.get($)===v}add($,v){this.seen.set($,v)}trim(){if(this.seen.size<=this.props.maxSize)return;let $=this.seen.size-this.props.maxSize;for(let v of this.seen.keys()){if($<=0)break;this.seen.delete(v),$--}}get size(){return this.seen.size}},qd="https://api.github.com/notifications",Bd=3,Ad=5000,Pd=class{props;log;cache=new Kd({maxSize:Ad});timer=null;rateLimitTimer=null;since=null;etag=null;lastModified=null;bootstrapped=!1;isStoppedFlag=!1;inFlight=!1;consecutiveErrors=0;effectiveIntervalSec;controller=null;constructor($){this.props=$,this.log=new d4({source:"github.poller",handler:$.onLog,deps:$.deps}),this.effectiveIntervalSec=$.interval}get isStopped(){return this.isStoppedFlag}async start(){this.isStoppedFlag=!1;let $=p(()=>new AbortController);if($ instanceof Error)this.log.error({action:"github.abort-controller.new.error",message:x({error:$}),error:$}),this.controller=null;else this.controller=$;this.log.info({action:"poller.start",message:`polling every ${this.effectiveIntervalSec}s`});let v=await this.poll();if(v)return v;if(this.isStoppedFlag)return null;if(this.rateLimitTimer!==null)return null;return this.scheduleInterval(),null}stop(){this.log.info({action:"poller.stop",message:"stopping poller"}),this.isStoppedFlag=!0,this.controller?.abort(),this.controller=null,this.clearTimer(),this.clearRateLimitTimer()}scheduleInterval(){this.clearTimer();let $=p(()=>this.props.deps.setInterval(()=>{this.poll().catch((v)=>{let U=F$({value:v});this.log.error({action:"poll.unhandled",message:x({error:U}),error:U})})},this.effectiveIntervalSec*1000));if($ instanceof Error){if(this.log.error({action:"poller.interval.schedule.error",message:x({error:$}),error:$}),this.timer=null,!this.isStoppedFlag)this.props.onDisconnected("interval scheduling rejected by runtime");return}this.timer=$}async poll(){if(this.inFlight||this.isStoppedFlag)return null;this.inFlight=!0;try{return await this.pollOnce()}catch($){let v=F$({value:$}),U=new tv({message:`poll loop threw: ${x({error:v})}`,status:0,cause:v});if(this.log.error({action:"poll.unhandled",message:x({error:U}),error:U}),!this.bootstrapped)return U;return null}finally{this.inFlight=!1}}async pollOnce(){let $=new URLSearchParams({all:"false",per_page:"50"});if(this.since)$.set("since",this.since);let v=`${qd}?${$}`;this.log.debug({action:"http.request",message:`GET ${v}`});let U={Authorization:`Bearer ${this.props.token}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"};if(this.etag)U["If-None-Match"]=this.etag;if(this.lastModified)U["If-Modified-Since"]=this.lastModified;let I=await p(()=>this.props.deps.fetch(v,{headers:U,signal:this.controller?.signal}));if(this.isStoppedFlag)return null;if(I instanceof Error)return this.log.error({action:"http.error",message:x({error:I}),error:I}),this.recordFailure({kind:"network",message:I.message,cause:I});if(this.log.debug({action:"http.response",message:`GET ${I.status}`,detail:{status:I.status,url:v}}),this.maybeWidenInterval(I.headers.get("X-Poll-Interval")),I.status===304)return this.consecutiveErrors=0,this.log.debug({action:"poll.not-modified",message:"304 Not Modified"}),null;if(this.isRateLimited(I))return this.handleRateLimit(I),null;if(!I.ok){let u=new tv({message:`HTTP ${I.status}`,status:I.status});return this.recordFailure({kind:"http",message:x({error:u}),error:u})}this.consecutiveErrors=0,this.etag=I.headers.get("ETag"),this.lastModified=I.headers.get("Last-Modified");let b=await rJ({response:I,context:"notifications"});if(this.isStoppedFlag)return null;if(b instanceof tv)return this.log.warn({action:"http.body.read",message:x({error:b}),error:b}),this.recordFailure({kind:"http",message:b.message,error:b});let D=Sb(b);if(D instanceof mv)return this.log.warn({action:"http.body.parse",message:D.message,error:D}),null;if(!Array.isArray(D))return this.log.warn({action:"http.body.shape",message:"response body is not an array, dropping",detail:{bodyType:typeof D}}),null;return this.processNotifications(D),null}recordFailure($){this.consecutiveErrors++;let v=$.error??new tv({message:$.message,status:0,cause:$.cause});if(this.log.error({action:"http.error",message:$.message,error:v,detail:{consecutiveErrors:this.consecutiveErrors}}),this.consecutiveErrors>=Bd&&!this.isStoppedFlag)this.props.onDisconnected($.kind==="network"?"network error":$.message);if(!this.bootstrapped)return v;return null}isRateLimited($){if($.status===429)return!0;if($.status===403&&$.headers.get("X-RateLimit-Remaining")==="0")return!0;return!1}handleRateLimit($){let v=$.headers.get("Retry-After"),U=$.headers.get("X-RateLimit-Reset"),I=Math.floor(ev({deps:this.props.deps})/1000),b=v!==null?Number.parseInt(v,10):NaN,D=U!==null?Number.parseInt(U,10)-I:NaN,u=Number.isFinite(b)&&b>0?b:Number.isFinite(D)&&D>0?D:60;this.log.warn({action:"rate.limit",message:`rate limited, pausing for ${u}s`,detail:{status:$.status,delaySec:u}}),this.clearTimer(),this.clearRateLimitTimer();let w=p(()=>this.props.deps.setTimeout(()=>{if(this.rateLimitTimer=null,this.isStoppedFlag)return;this.scheduleInterval()},u*1000));if(w instanceof Error)this.log.error({action:"poller.rate-limit.schedule.error",message:x({error:w}),error:w}),this.rateLimitTimer=null;else this.rateLimitTimer=w}clearTimer(){if(this.timer===null)return;let $=this.timer,v=p(()=>this.props.deps.clearInterval($));if(v instanceof Error)this.log.error({action:"poller.timer.clear.error",message:x({error:v}),error:v});this.timer=null}clearRateLimitTimer(){if(this.rateLimitTimer===null)return;let $=this.rateLimitTimer,v=p(()=>this.props.deps.clearTimeout($));if(v instanceof Error)this.log.error({action:"poller.rate-limit.clear.error",message:x({error:v}),error:v});this.rateLimitTimer=null}maybeWidenInterval($){if($===null)return;let v=Number.parseInt($,10);if(!Number.isFinite(v)||v<=this.effectiveIntervalSec)return;if(this.log.info({action:"poll.widen-interval",message:`widening interval ${this.effectiveIntervalSec}s -> ${v}s per X-Poll-Interval`,detail:{from:this.effectiveIntervalSec,to:v}}),this.effectiveIntervalSec=v,this.timer!==null)this.scheduleInterval()}processNotifications($){let v=$.map((D)=>Ld.safeParse(D));for(let D of v){if(D.success)continue;this.log.warn({action:"parse.skip",message:"notification did not match schema",detail:{issues:D.error.issues.map((u)=>({path:u.path,message:u.message}))}})}let U=v.flatMap((D)=>D.success?[D.data]:[]),I=$.length-U.length;if(I>0)this.log.warn({action:"parse.summary",message:`${I}/${$.length} notifications dropped by schema`});if(!this.bootstrapped){this.bootstrapped=!0;for(let D of U)this.cache.add(D.id,D.updated_at);this.advanceCursor(),this.log.info({action:"poller.bootstrap",message:`seeded ${U.length} existing notifications`}),this.props.onConnected();return}let b=U.filter((D)=>{if(this.cache.has(D.id,D.updated_at))return!1;return this.cache.add(D.id,D.updated_at),!0});if(this.cache.trim(),this.advanceCursor(),b.length>0){this.log.info({action:"poll.fresh",message:`${b.length} new notifications`,detail:{count:b.length}}),this.props.onNotifications(b);return}this.log.debug({action:"poll.idle",message:"0 new notifications"})}advanceCursor(){if(this.lastModified!==null){let U=new Date(this.lastModified);if(!Number.isNaN(U.getTime())){let I=p(()=>U.toISOString());if(!(I instanceof Error)){this.since=I;return}}}let $=ev({deps:this.props.deps});if(!Number.isFinite($)){this.log.warn({action:"cursor.advance.skip",message:"deps.now() returned non-finite, leaving since cursor unchanged"});return}let v=p(()=>new Date($).toISOString());if(v instanceof Error){let U=F$({value:v});this.log.warn({action:"cursor.advance.skip",message:x({error:U}),error:U});return}this.since=v}},F_=class extends Nb{options;name="github";poller=null;constructor($){super();this.options=$}async connect($){this.setStatus("connecting"),this.poller=new Pd({token:this.options.token,interval:this.options.pollInterval??60,onLog:$.log.handler,deps:$.deps,onNotifications:(U)=>this.handleNotifications($,U),onConnected:()=>this.setStatus("connected"),onDisconnected:(U)=>this.setStatus("disconnected",U)});let v=await this.poller.start();if(v instanceof Error)return $.log.error({action:"source.start.failed",message:x({error:v}),error:v}),this.setStatus("disconnected",v.message),v;return null}disconnect(){this.poller?.stop(),this.poller=null}handleNotifications($,v){for(let U of v)this.emit({source:"github",type:"notification",data:U,meta:this.safeExtractMeta($,U),receivedAt:ev({deps:$.deps})})}safeExtractMeta($,v){let U=p(()=>Vd(v));if(U instanceof Error){let I=F$({value:U});return $.log.warn({action:"meta.extract.error",message:x({error:I}),error:I,detail:{notificationId:v.id}}),{event_type:"notification"}}return U}};var jd=new $v;class ZL extends Cb{config;env;process;flumeDeps;signal;constructor($){super({type:"gh",connectorId:$.config.id,channelId:$.channelId??null,logger:$.logger,diagnosticLog:$.diagnosticLog});this.config=$.config,this.env=$.env??process.env,this.process=$.process??jd,this.flumeDeps=$.flumeDeps??{},this.signal=$.signal}async start($){this.diagnostics.recordConnection("started","");let v;try{v=await this.resolveToken()}catch(I){throw this.diagnostics.recordConnection("auth-failed",T$(I)),I}let U=new F_({token:v,pollInterval:this.config.pollInterval??60});await this.runStart({source:U,onLog:OI(this.logger),deps:GI(this.flumeDeps),signal:this.signal,onEvent:(I)=>{if(I.source!=="github")return Promise.resolve();return this.handleEvent(I,$)}})}async resolveToken(){if(this.config.token)return this.config.token;if(this.config.tokenEnv){let v=this.env[this.config.tokenEnv];if(typeof v==="string"&&v!=="")return v;throw Error(`${this.config.name}.token references env var "${this.config.tokenEnv}" but it is not set`)}let $=await this.process.run(["gh","auth","token"]);if($.exitCode!==0)throw Error(`gh auth token failed: ${$.stderr.trim()||$.stdout.trim()}`);return $.stdout.trim()}async handleEvent($,v){let U=$.data.id,I=JSON.stringify($.data);this.diagnostics.recordRaw(U,I);let b={...$.meta,event_type:"gh",subject_url:$.data.subject.url??"",updated_at:$.data.updated_at};await this.deliver(v,U,I,b)}async deliver($,v,U,I){try{await $(U,I)}catch(b){this.diagnostics.recordProcessed(v,"emitted:delivery-failed",U),this.logger?.error("gh notify error",{error:T$(b)});return}this.diagnostics.recordProcessed(v,"emitted",U)}}var Z_=()=>({type:"gh",toolExposed:!0,createListener($,v){return new ZL({config:$6.parse($),channelId:v.channelId,process:v.process,logger:v.logger,diagnosticLog:v.diagnosticLog,signal:v.signal})},createAdapter($,v){return $6.parse($),new FL({process:v.process})},secretTokens($){return[$6.parse($).token].filter((U)=>U!==void 0)},buildConfig($,v){return $6.parse({id:v.id,type:"gh",name:$.name,...typeof $.pollInterval==="number"?{pollInterval:$.pollInterval}:{},...typeof $.token==="string"?{token:$.token}:{},...typeof $.tokenEnv==="string"?{tokenEnv:$.tokenEnv}:{},createdAt:v.now,updatedAt:v.now})},applyUpdate($,v,U){let I=$6.parse($);return $6.parse({id:I.id,name:I.name,type:"gh",pollInterval:typeof v.pollInterval==="number"?v.pollInterval:I.pollInterval,createdAt:I.createdAt,updatedAt:U.now,...ib("token","tokenEnv",v,I)})},operations:{}});import{join as od}from"path";var TL=H.enum(["latest","all","skip"]),x6=H.object({id:H.string(),cron:H.string(),prompt:H.string(),enabled:H.boolean().default(!0),catchupPolicy:TL.default("latest")}),n4=H.object({id:H.string(),name:H.string(),type:H.literal("schedule"),entries:H.array(x6).default([]),createdAt:H.string().datetime().optional(),updatedAt:H.string().datetime().optional()});var j0=($,v,U)=>{let I=new Set;for(let b of $.split(",")){let[D,u]=b.split("/"),w=u?Number(u):1;if(!Number.isFinite(w)||w<=0)throw Error(`invalid cron step: "${u}"`);let g=v,J=U;if(D==="*"||D===void 0||D==="")g=v,J=U;else if(D.includes("-")){let[X,W]=D.split("-"),G=Number(X),O=Number(W);if(!Number.isFinite(G)||!Number.isFinite(O))throw Error(`invalid cron range: "${D}"`);g=G,J=O}else{let X=Number(D);if(!Number.isFinite(X))throw Error(`invalid cron value: "${D}"`);g=X,J=u?U:X}if(g<v||J>U||g>J)throw Error(`cron value out of range: ${D} (must be ${v}-${U})`);for(let X=g;X<=J;X+=w)I.add(X)}return{min:v,max:U,values:I}},CJ=($,v)=>{let U=$.trim().split(/\s+/);if(U.length!==5)throw Error(`cron must have 5 fields (got ${U.length}): "${$}"`);let[I,b,D,u,w]=U;if(!I||!b||!D||!u||!w)throw Error(`cron has empty fields: "${$}"`);let g=[{field:j0(I,0,59),value:v.getMinutes()},{field:j0(b,0,23),value:v.getHours()},{field:j0(D,1,31),value:v.getDate()},{field:j0(u,1,12),value:v.getMonth()+1},{field:j0(w,0,6),value:v.getDay()}];for(let{field:J,value:X}of g)if(!J.values.has(X))return!1;return!0};var T_=1440;class kL extends B0{config;lastFiredStore;logger;diagnostics;now;onFired;timer=null;stopped=!1;tickScheduled=!1;constructor($){super();this.config=$.config,this.lastFiredStore=$.lastFiredStore,this.logger=$.logger,this.diagnostics=new A0({type:"schedule",connectorId:$.config.id,channelId:$.channelId??null,log:$.diagnosticLog}),this.now=$.now??(()=>new Date),this.onFired=$.onFired??null}async start($){this.stopped=!1,this.tickScheduled=!0,this.diagnostics.recordConnection("started","");let v=()=>{if(this.stopped)return;let U=this.now(),I=60000-(U.getSeconds()*1000+U.getMilliseconds());this.timer=setTimeout(async()=>{if(this.stopped)return;try{await this.tick($)}catch(b){this.recordTickError(b)}v()},I),this.timer.unref(),this.tickScheduled=!0};try{await this.tick($)}catch(U){this.recordTickError(U)}this.diagnostics.recordConnection("connected",""),v()}async stop(){if(this.stopped=!0,this.tickScheduled=!1,this.timer)clearTimeout(this.timer),this.timer=null;this.diagnostics.recordConnection("disconnected",""),this.diagnostics.recordConnection("stopped","")}recordTickError($){let v=T$($);this.diagnostics.recordConnection("error",`tick: ${v}`),this.logger?.error("schedule tick failed",{connector:this.config.name,error:v})}isAlive(){return!this.stopped&&this.tickScheduled}async tick($){let v=this.truncateToMinute(this.now()),U=this.lastFiredStore.load(),I=!1;for(let b of this.config.entries){if(!b.enabled)continue;if(await this.fireEntry(b,v,U,$))I=!0}if(I)this.lastFiredStore.save(U)}async fireEntry($,v,U,I){let b=U.get($.id),D=b?new Date(b.getTime()+60000):v;if(D.getTime()>v.getTime())return!1;if($.catchupPolicy==="skip"){try{if(!CJ($.cron,v))return!1}catch(w){return this.logInvalidCron($,w),!1}return await this.notifyOne($,v,I,!1),U.set($.id,v),!0}if($.catchupPolicy==="all"){let w=this.findAllMatches($.cron,D,v,$.id);if(w.length===0)return!1;for(let g of w)await this.notifyOne($,g,I,g.getTime()!==v.getTime());return U.set($.id,w[w.length-1]??v),!0}let u=this.findMostRecentMatch($.cron,D,v,$.id);if(!u)return!1;return await this.notifyOne($,u,I,u.getTime()!==v.getTime()),U.set($.id,u),!0}async notifyOne($,v,U,I){let b={event_type:"schedule",schedule_id:$.id,cron:$.cron,fired_at:v.toISOString(),catchup_policy:$.catchupPolicy};if(I)b.catchup="true";let D=`${$.id}@${v.toISOString()}`;this.diagnostics.recordRaw(D,JSON.stringify({schedule_id:$.id,cron:$.cron,prompt:$.prompt,fired_at:v.toISOString(),catchup:I}));try{await U($.prompt,b)}catch(u){throw this.diagnostics.recordProcessed(D,"emitted:delivery-failed",$.prompt),u}if(this.diagnostics.recordProcessed(D,"emitted",$.prompt),this.onFired)try{await this.onFired($,v)}catch(u){this.logger?.error("schedule onFired callback failed",{connector:this.config.name,id:$.id,error:T$(u)})}}findMostRecentMatch($,v,U,I){let b=Math.min(T_,Math.floor((U.getTime()-v.getTime())/60000)+1);for(let D=0;D<b;D++){let u=new Date(U.getTime()-D*60000);try{if(CJ($,u))return u}catch(w){return this.logInvalidCron({id:I,cron:$},w),null}}return null}findAllMatches($,v,U,I){let b=Math.min(T_,Math.floor((U.getTime()-v.getTime())/60000)+1),D=[];for(let u=0;u<b;u++){let w=new Date(v.getTime()+u*60000);if(w.getTime()>U.getTime())break;try{if(CJ($,w))D.push(w)}catch(g){return this.logInvalidCron({id:I,cron:$},g),[]}}return D}logInvalidCron($,v){let U=T$(v);this.diagnostics.recordConnection("error",`invalid cron "${$.cron}" (entry ${$.id}): ${U}`),this.logger?.error("invalid cron expression in schedule",{connector:this.config.name,id:$.id,cron:$.cron,error:U})}truncateToMinute($){let v=new Date($.getTime());return v.setSeconds(0,0),v}}import{dirname as md}from"path";import{appendFileSync as Nd,chmodSync as Sd,closeSync as Md,existsSync as _d,mkdirSync as Fd,openSync as Zd,readdirSync as Td,readFileSync as R_,renameSync as kd,statSync as n_,unlinkSync as S0,writeFileSync as r_}from"fs";import{dirname as Ed,basename as Rd}from"path";class N0{}var nd=384,EL=0,rd=()=>{return EL=EL+1|0,`${process.pid}-${EL}-${Math.floor(Math.random()*1e9)}`};class d$ extends N0{constructor(){super();Object.freeze(this)}existsSync($){return _d($)}readFileSync($){return R_($,"utf-8")}writeFileSync($,v){E_($,v,null)}writeSecretFileSync($,v){E_($,v,nd)}appendFileSync($,v){Nd($,v)}unlink($){try{S0($)}catch(v){if(RL(v,"ENOENT"))return;throw v}}mkdirSync($,v){Fd($,{recursive:v?.recursive??!1})}readdirSync($){return Td($)}statSync($){let v=n_($);return{mtimeMs:v.mtimeMs,mode:v.mode&511}}withFileLock($,v){let U=ld($);try{return v()}finally{try{Md(U)}catch{}try{S0($)}catch{}}}}var Cd=10,id=100,k_=5000,xd=30000,ld=($)=>{let v=performance.now()+k_,U=0;while(!0)try{let I=Zd($,"wx",384);return r_(I,String(process.pid)),I}catch(I){if(!RL(I,"EEXIST"))throw I;if(performance.now()>=v)throw Error(`failed to acquire file lock ${$} within ${k_}ms`);fd($);let b=Math.min(id,Cd*2**Math.min(U,4));hd(b),U=U+1}},fd=($)=>{let v,U;try{U=n_($).mtimeMs,v=Number(R_($,"utf-8").trim())}catch{return}if(Date.now()-U>xd){try{S0($)}catch{}return}if(v>0&&!yd(v))try{S0($)}catch{}},yd=($)=>{try{return process.kill($,0),!0}catch(v){if(RL(v,"EPERM"))return!0;return!1}},hd=($)=>{let v=new SharedArrayBuffer(4),U=new Int32Array(v);Atomics.wait(U,0,0,$)},RL=($,v)=>{if(!($ instanceof Error))return!1;if(!("code"in $))return!1;return $.code===v},E_=($,v,U)=>{let b=`${Ed($)}/.${Rd($)}.${rd()}.tmp`,D=U===null?void 0:{mode:U};try{if(r_(b,v,D),U!==null)try{Sd(b,U)}catch{}kd(b,$)}catch(u){try{S0(b)}catch{}throw u}};var cd=new d$;class nL{path;fs;constructor($){this.path=$.path,this.fs=$.fs??cd,Object.freeze(this)}load(){let $=new Map;if(!this.fs.existsSync(this.path))return $;let v=JSON.parse(this.fs.readFileSync(this.path));if(v===null||typeof v!=="object")return $;for(let[U,I]of Object.entries(v))if(typeof I==="string")$.set(U,new Date(I));return $}save($){let v={};for(let[U,I]of $)v[U]=I.toISOString();this.fs.mkdirSync(md(this.path),{recursive:!0}),this.fs.writeFileSync(this.path,`${JSON.stringify(v,null,2)}
|
|
308
|
-
`)}}var td=H.object({cron:H.string(),prompt:H.string(),id:H.string().optional(),enabled:H.boolean().optional(),catchupPolicy:x6.shape.catchupPolicy.optional()}),dd=H.object({id:H.string()}),C_=($={})=>({type:"schedule",toolExposed:!1,createListener(v,U){let I=n4.parse(v);return new kL({config:I,lastFiredStore:new nL({path:od(U.connectorDir(U.channelId,I.id),"state.json"),fs:U.fs}),channelId:U.channelId,logger:U.logger,diagnosticLog:U.diagnosticLog,onFired:$.onFired,now:()=>U.clock.now()})},createAdapter:null,secretTokens(){return[]},buildConfig(v,U){return n4.parse({id:U.id,type:"schedule",name:v.name,entries:Array.isArray(v.entries)?v.entries:[],createdAt:U.now,updatedAt:U.now})},applyUpdate(v,U,I){let b=n4.parse(v);return n4.parse({...b,updatedAt:I.now})},operations:{listEntries(v){let U=n4.parse(v.config);return{config:v.config,result:U.entries}},addEntry(v){let U=n4.parse(v.config),I=td.parse(v.args),b=x6.parse({id:I.id??v.context.generateId(),cron:I.cron,prompt:I.prompt,...I.enabled!==void 0?{enabled:I.enabled}:{},...I.catchupPolicy!==void 0?{catchupPolicy:I.catchupPolicy}:{}});return{config:n4.parse({...U,entries:[...U.entries,b],updatedAt:v.context.now}),result:b}},removeEntry(v){let U=n4.parse(v.config),I=dd.parse(v.args);if(!U.entries.some((b)=>b.id===I.id))throw Error(`schedule entry "${I.id}" not found`);return{config:n4.parse({...U,entries:U.entries.filter((b)=>b.id!==I.id),updatedAt:v.context.now}),result:null}}}});var pd="https://slack.com/api/",ad=($)=>{let v={};for(let[U,I]of Object.entries($))v[U]=I;return v};class rL extends Pb{token;http;constructor($){super();this.token=o4({literal:$.config.botToken,envVar:$.config.botTokenEnv,env:$.env??process.env,label:`${$.config.name}.botToken`}),this.http=$.http??new g4,Object.freeze(this)}async call($){let v=`${pd}${$.path}`,U=$.body!==null&&typeof $.body==="object"?ad($.body):{},I=new URLSearchParams;for(let[u,w]of Object.entries(U))I.set(u,typeof w==="string"?w:JSON.stringify(w));let D=await(await this.http.fetch({method:"POST",url:v,headers:{Authorization:`Bearer ${this.token}`,"Content-Type":"application/x-www-form-urlencoded"},body:I.toString()})).text();try{return JSON.parse(D)}catch{return{ok:!1,error:`non-JSON response: ${D.slice(0,200)}`}}}async postMessage($){return this.call({method:"post",path:"chat.postMessage",body:{channel:$.channel,text:$.text,...$.threadTs?{thread_ts:$.threadTs}:{}}})}async addReaction($){return this.call({method:"post",path:"reactions.add",body:{channel:$.channel,timestamp:$.timestamp,name:$.name}})}async removeReaction($){return this.call({method:"post",path:"reactions.remove",body:{channel:$.channel,timestamp:$.timestamp,name:$.name}})}}var v6=H.object({id:H.string(),name:H.string(),type:H.literal("slack"),botToken:H.string().startsWith("xoxb-").optional(),appToken:H.string().startsWith("xapp-").optional(),botTokenEnv:H.string().optional(),appTokenEnv:H.string().optional(),minify:H.boolean().default(!0),createdAt:H.string().datetime().optional(),updatedAt:H.string().datetime().optional()});function ed($){let v={event_type:$.type},U=p4($.payload.event)?$.payload.event:null;if(!U)return v;if(typeof U.channel==="string")v.channel_id=U.channel;if(typeof U.user==="string")v.user_id=U.user;if(typeof U.thread_ts==="string")v.thread_ts=U.thread_ts;if(typeof U.type==="string")v.slack_event_type=U.type;return v}var sd=class{props;seen=new Map;constructor($){this.props=$}has($){let v=this.seen.get($);if(v===void 0)return!1;if(ev({deps:this.props.deps})-v>this.props.ttlMs)return this.seen.delete($),!1;return!0}add($){this.seen.set($,ev({deps:this.props.deps}))}trim(){let $=ev({deps:this.props.deps})-this.props.ttlMs;for(let[U,I]of this.seen)if(I<$)this.seen.delete(U);if(this.seen.size<=this.props.maxSize)return;let v=this.seen.size-this.props.maxSize;for(let U of this.seen.keys()){if(v<=0)break;this.seen.delete(U),v--}}get size(){return this.seen.size}},$p=z$.object({ok:z$.boolean(),url:z$.string().optional(),error:z$.string().optional()}),CL="https://slack.com/api/apps.connections.open";async function vp($){let v=new d4({source:"slack.url",handler:$.onLog,deps:$.deps});v.debug({action:"http.request",message:`POST ${CL}`});let U=await p(()=>$.deps.fetch(CL,{method:"POST",headers:{Authorization:`Bearer ${$.appToken}`},signal:$.signal}));if(U instanceof Error){let w=F$({value:U});return v.error({action:"http.error",message:x({error:w}),error:w}),new Uv(`apps.connections.open transport: ${U.message}`,{cause:U})}v.debug({action:"http.response",message:`POST ${U.status}`,detail:{status:U.status,url:CL}});let I=await rJ({response:U,context:"apps.connections.open"});if(I instanceof tv)return v.warn({action:"http.body.read",message:x({error:I}),error:I}),I;let b=Sb(I);if(b instanceof mv)return v.warn({action:"http.body.parse",message:b.message,error:b}),new tv({message:"apps.connections.open: invalid JSON body",status:U.status,cause:b});let D=p4(b)?b:{};v.debug({action:"http.body",message:"apps.connections.open response",detail:{ok:D.ok,error:D.error}});let u=$p.safeParse(b);if(!u.success)return v.warn({action:"http.body.schema",message:"apps.connections.open: invalid response shape",detail:{issues:u.error.issues.map((w)=>({path:w.path,message:w.message}))}}),new tv({message:"apps.connections.open: invalid response shape",status:U.status,cause:u.error});if(!u.data.ok||!u.data.url)return v.warn({action:"slack.api.error",message:`apps.connections.open failed: ${u.data.error??"no url"}`}),new tv({message:`apps.connections.open failed: ${u.data.error??"no url"}`,status:U.status});return v.info({action:"slack.url.obtained",message:"WSS URL obtained"}),u.data.url}var bp=z$.object({envelope_id:z$.string(),type:z$.string(),payload:z$.record(z$.string(),z$.unknown()),accepts_response_payload:z$.boolean().optional(),retry_attempt:z$.number().optional(),retry_reason:z$.string().optional()}),Up=90000,Ip=15000,i_=1,Dp=class{props;log;ws=null;isStoppedFlag=!1;hasConnected=!1;pendingResolve=null;pendingResolved=!1;lastFrameAt=0;idleWatchdog=null;constructor($){this.props=$,this.log=new d4({source:"slack.socket-mode",handler:$.onLog,deps:$.deps})}get isStopped(){return this.isStoppedFlag}async connect($){this.log.info({action:"connect.start",message:"opening WebSocket connection"});let v=await vp({appToken:this.props.appToken,signal:$?.signal,onLog:this.props.onLog,deps:this.props.deps});if(v instanceof tv)return this.log.error({action:"http.error",message:v.message,error:v}),v;if(v instanceof Uv)return this.log.error({action:"url.error",message:v.message,error:v}),v;if(this.isStoppedFlag){let U=new Uv("stopped before WebSocket open");return this.log.info({action:"connect.aborted",message:x({error:U})}),U}return this.log.info({action:"slack.url.obtained",message:"WebSocket URL obtained"}),this.openSocket(v)}disconnect(){this.log.info({action:"disconnect",message:"stopping socket mode"}),this.isStoppedFlag=!0,this.disarmIdleWatchdog(),this.closeSocket(this.ws),this.ws=null}armIdleWatchdog(){this.disarmIdleWatchdog();let $=this.props.idleTimeoutMs??Up,v=p(()=>this.props.deps.setInterval(()=>this.checkIdle($),Ip));if(v instanceof Error){this.log.error({action:"idle.watchdog.schedule.error",message:x({error:v}),error:v});return}this.idleWatchdog=v}disarmIdleWatchdog(){if(!this.idleWatchdog)return;let $=this.idleWatchdog;this.idleWatchdog=null;let v=p(()=>this.props.deps.clearInterval($));if(v instanceof Error)this.log.error({action:"idle.watchdog.clear.error",message:x({error:v}),error:v})}checkIdle($){if(!this.hasConnected||this.isStoppedFlag)return;let v=this.props.deps.now()-this.lastFrameAt;if(v<$)return;this.log.warn({action:"idle.timeout",message:`no frames for ${v}ms (limit ${$}ms) \u2014 force-closing socket`,detail:{elapsedMs:v,limitMs:$}}),this.disarmIdleWatchdog(),this.closeSocket(this.ws)}isConnected(){return this.ws!==null&&this.ws.readyState===i_}openSocket($){let v=this.props.deps.WebSocket;if(!v){let U=new Uv("WebSocket runtime not available");return this.log.error({action:"ws.error",message:x({error:U}),error:U}),Promise.resolve(U)}return this.pendingResolved=!1,this.hasConnected=!1,new Promise((U)=>{this.pendingResolve=U;let I=p(()=>new v($));if(I instanceof Error){let u=new Uv(`WebSocket construction failed: ${x({error:I})}`,{cause:I});this.log.error({action:"ws.construct.error",message:x({error:u}),error:u}),this.ws=null,this.pendingResolved=!0,U(u);return}let b=I;this.ws=b;let D=p(()=>{b.addEventListener("message",(u)=>this.safeOnMessage(u,b)),b.addEventListener("close",(u)=>this.safeOnClose(u)),b.addEventListener("error",()=>this.safeOnError())});if(D instanceof Error){let u=new Uv(`WebSocket listener registration failed: ${x({error:D})}`,{cause:D});this.log.error({action:"ws.listener.error",message:x({error:u}),error:u}),this.ws=null,this.pendingResolved=!0,U(u)}})}completeConnect($){if(this.pendingResolved||!this.pendingResolve)return;this.pendingResolved=!0,this.pendingResolve($)}safeOnMessage($,v){let U=p(()=>this.onMessage(String($.data),v));if(U instanceof Error)this.log.error({action:"ws.message.threw",message:x({error:U}),error:U})}safeOnClose($){let v=p(()=>this.onClose($));if(v instanceof Error)this.log.error({action:"ws.close.threw",message:x({error:v}),error:v})}safeOnError(){let $=p(()=>this.onError());if($ instanceof Error)this.log.error({action:"ws.error.threw",message:x({error:$}),error:$})}onMessage($,v){if(this.isStoppedFlag)return;let U=Sb($);if(U instanceof mv){this.log.error({action:"ws.parse.error",message:U.message,error:U,detail:{length:$.length}});return}if(!p4(U)){this.log.error({action:"ws.parse.error",message:"expected JSON object",error:new mv(`non-object frame (${typeof U})`)});return}if(this.log.debug({action:"ws.recv",message:`type=${typeof U.type==="string"?U.type:"-"} length=${$.length}`,detail:{length:$.length}}),this.lastFrameAt=this.props.deps.now(),U.type==="hello"){this.log.info({action:"socket.hello",message:"connection ready"}),this.hasConnected=!0,this.armIdleWatchdog(),this.props.onConnected(),this.completeConnect(null);return}if(U.type==="disconnect"){let b=typeof U.reason==="string"?U.reason:"unknown";this.log.info({action:"ws.disconnect.requested",message:`reason=${b}`,detail:{reason:b}}),this.closeSocket(v);return}if(typeof U.envelope_id==="string"){this.log.debug({action:"ws.ack",message:`envelope_id=${U.envelope_id}`});let b=this.safeSerialize({envelope_id:U.envelope_id});if(b!==null)this.send(v,b)}let I=bp.safeParse(U);if(I.success){this.log.debug({action:"envelope.recv",message:`type=${I.data.type} envelope_id=${I.data.envelope_id}`,detail:{type:I.data.type,envelopeId:I.data.envelope_id}}),this.props.onMessage(I.data);return}this.log.warn({action:"envelope.parse.error",message:"unrecognised envelope shape, dropping",detail:{type:typeof U.type==="string"?U.type:"unknown",issues:I.error.issues.map((b)=>({path:b.path,message:b.message}))}})}onClose($){if(this.log.info({action:"ws.close",message:`code=${$.code} reason=${$.reason||"none"}`,detail:{code:$.code,reason:$.reason}}),this.disarmIdleWatchdog(),this.ws=null,this.hasConnected)this.props.onDisconnected();if(!this.pendingResolved){let v=new Uv(`WebSocket closed before hello (code=${$.code})`,{code:$.code});this.completeConnect(v)}}onError(){let $=new Uv("WebSocket connection error");this.log.error({action:"ws.error",message:x({error:$}),error:$}),this.completeConnect($)}closeSocket($){if($===null)return;let v=p(()=>$.close());if(v instanceof Error)this.log.error({action:"ws.close.error",message:x({error:v}),error:v})}send($,v){if($.readyState!==i_){this.log.warn({action:"ws.send",message:`ws.send skipped: readyState=${$.readyState} (not OPEN)`,detail:{readyState:$.readyState}});return}let U=p(()=>$.send(v));if(U instanceof Error)this.log.error({action:"ws.send",message:`ws.send failed: ${x({error:U})}`,error:U})}safeSerialize($){let v=Ug($);if(v instanceof Error)return this.log.error({action:"ws.send.serialize.error",message:x({error:v}),error:v}),null;return v}},up=1024,wp=300000,x_=class extends Nb{options;name="slack";socket=null;reconnector=null;internalController=null;seen=null;constructor($){super();this.options=$}async connect($){if(!this.hasWebSocket($))return new F4("Slack source: deps.WebSocket is null (no WebSocket runtime available)");if(this.seen=new sd({maxSize:up,ttlMs:wp,deps:$.deps}),$.reconnect&&!this.reconnector)this.reconnector=new vg({...$.reconnect,log:$.log,deps:$.deps});let v=p(()=>new AbortController);if(v instanceof Error){let U=F$({value:v});$.log.error({action:"slack.abort-controller.new.error",message:x({error:U}),error:U}),this.internalController=null}else this.internalController=v;return await this.connectInternal($)}disconnect(){let $=this.context;if($&&this.reconnector&&!this.reconnector.aborted)$.log.debug({action:"reconnect.cancel",message:"aborting reconnector"});this.reconnector?.cancel(),this.internalController?.abort(),this.socket?.disconnect(),this.socket=null,this.internalController=null}hasWebSocket($){let v=p(()=>Boolean($.deps.WebSocket));if(v instanceof Error){let U=F$({value:v});return $.log.error({action:"deps.web-socket.read.error",message:x({error:U}),error:U}),!1}return v}async connectInternal($){this.setStatus("connecting"),this.socket=new Dp({appToken:this.options.appToken,onLog:$.log.handler,deps:$.deps,onMessage:(U)=>this.handleMessage($,U),onConnected:()=>{if(this.reconnector&&this.reconnector.attempt>0)$.log.info({action:"reconnect.reset",message:`cleared ${this.reconnector.attempt} attempts`});this.reconnector?.reset(),this.setStatus("connected")},onDisconnected:()=>{if(this.socket?.isStopped){this.setStatus("disconnected");return}this.scheduleReconnect($)}});let v=await this.socket.connect({signal:this.internalController?.signal});if(v instanceof Error){if($.log.error({action:"connect.failed",message:x({error:v}),error:v}),this.socket.isStopped||!this.reconnector||this.reconnector.aborted)return this.setStatus("disconnected"),v;this.scheduleReconnect($)}return null}handleMessage($,v){let U=this.seen;if(!U)return;if(U.has(v.envelope_id)){$.log.debug({action:"dedup.skip",message:`duplicate envelope_id=${v.envelope_id}`,detail:{envelope_id:v.envelope_id,retry_attempt:v.retry_attempt}});return}U.add(v.envelope_id),U.trim(),this.emit({source:"slack",type:v.type,data:v.payload,meta:this.safeExtractMeta($,v),receivedAt:ev({deps:$.deps})})}safeExtractMeta($,v){let U=p(()=>ed(v));if(U instanceof Error){let I=F$({value:U});return $.log.warn({action:"meta.extract.error",message:x({error:I}),error:I,detail:{envelopeType:v.type}}),{event_type:v.type}}return U}scheduleReconnect($){bg({reconnector:this.reconnector,log:$.log,setStatus:(v)=>this.setStatus(v),retry:()=>{this.connectInternal($).catch((v)=>{let U=F$({value:v});$.log.error({action:"reconnect.unhandled",message:x({error:U}),error:U}),this.setStatus("disconnected")})}})}};class M0 extends Error{constructor($,v){super($);if(this.name=new.target.name,v?.cause!==void 0)Object.defineProperty(this,"cause",{value:v.cause,enumerable:!1})}}class _0 extends M0{channel;code="channel-not-found";constructor($,v){super(`channel not found: ${$}`,v);this.channel=$}}class iJ extends M0{channel;code="channel-already-exists";constructor($,v){super(`channel already exists: ${$}`,v);this.channel=$}}class HI extends M0{channel;connector;code="connector-not-found";constructor($,v,U){super(`connector not found in ${$}: ${v}`,U);this.channel=$;this.connector=v}}class F0 extends M0{connector;detail;code="auth-failed";constructor($,v,U){super(`${$}: auth failed \u2014 ${v}`,U);this.connector=$;this.detail=v}}var gp=["type","subtype","user","bot_id","text","ts","thread_ts","channel","channel_type","files","attachments"],Jp=["id","name","mimetype","filetype","size","url_private","permalink"],Xp=["title","text","fallback"],xJ=($)=>{return typeof $==="object"&&$!==null&&!Array.isArray($)},iL=($,v)=>{let U={};for(let I of v)if($[I]!==void 0)U[I]=$[I];return U},Wp=($)=>{return Object.keys($).some((v)=>v.startsWith("thumb")||v.startsWith("preview"))},Gp=($)=>{if(!xJ($))return $;let v=iL($,Jp);if(Wp($))v._funnel_omitted=["thumb_*"];return v},xL=($)=>{if(!xJ($))return"";let v=$.text;if(typeof v==="string")return v;let U=$.elements;if(!Array.isArray(U))return"";return U.map(xL).join("")},Op=($)=>{if(!Array.isArray($))return"";return $.map(xL).join("\t")},Hp=($)=>{if(!xJ($))return"";if($.type==="table"&&Array.isArray($.rows))return $.rows.map(Op).join(`
|
|
309
|
-
`);return xL($)},
|
|
310
|
-
`)},
|
|
311
|
-
${I}`:I,v._funnel_omitted=["blocks"]}return v},l_=($)=>{let v=iL($,gp);if(Array.isArray(v.files))v.files=v.files.map(Gp);if(Array.isArray(v.attachments))v.attachments=v.attachments.map(Qp);return v};var Yp=new Set(["message","app_mention"]),Vp=new Set([void 0,"thread_broadcast","bot_message","file_share"]),Lp=1e4,X4=($,v)=>{let U=$[v];return typeof U==="string"?U:void 0};class lL{ownBotUserId;ownBotId;minify;now;dedup=new Map;constructor($){this.ownBotUserId=$.ownBotUserId,this.ownBotId=$.ownBotId,this.minify=$.minify??!0,this.now=$.now??(()=>Date.now())}process($){let v=X4($,"type");if(!v||!Yp.has(v))return{skip:!0,reason:"skip:type"};let U=X4($,"subtype");if(!Vp.has(U))return{skip:!0,reason:"skip:subtype"};let I=X4($,"channel")??"",b=X4($,"event_ts")??X4($,"ts")??"",D=`${I}:${b}`,u=this.now();if(this.dedup.has(D))return{skip:!0,reason:"skip:dedup"};this.dedup.set(D,u);for(let Y of this.dedup.keys())if((this.dedup.get(Y)??0)<u-Lp)this.dedup.delete(Y);let w=X4($,"user"),g=X4($,"bot_id");if(w===this.ownBotUserId)return{skip:!0,reason:"skip:self-user"};if(g===this.ownBotId)return{skip:!0,reason:"skip:self-bot"};let J=X4($,"text")??"",X=J.includes(`<@${this.ownBotUserId}>`),W=X4($,"thread_ts")??X4($,"ts")??"",G=X4($,"ts")??"",O=v==="app_mention"?"app_mention":"message",z=this.minify?l_($):$;return{skip:!1,event:{kind:"message",channel:I,user:w??"",rawText:J,text:Kp(J,this.ownBotUserId),threadTs:W,ts:G,isThreadRoot:W===G,mentioned:X,source:O},content:JSON.stringify(z),meta:{event_type:"slack",channel_id:I,user_id:w??"",mentioned:String(X),thread_ts:W},shouldReact:X,channel:I,timestamp:G}}}var Kp=($,v)=>$.replace(new RegExp(`<@${v}>`,"g"),"").trim();var qp=H.object({ok:H.boolean(),user_id:H.string().optional(),bot_id:H.string().optional(),error:H.string().optional()}),Bp="https://slack.com/api/auth.test";class fL extends Cb{config;env;flumeDeps;http;signal;preprocessEvent;onInteractive;processor=null;botToken="";constructor($){super({type:"slack",connectorId:$.config.id,channelId:$.channelId??null,logger:$.logger,diagnosticLog:$.diagnosticLog});this.config=$.config,this.env=$.env??process.env,this.flumeDeps=$.flumeDeps??{},this.http=$.http??new g4,this.signal=$.signal,this.preprocessEvent=$.preprocessEvent,this.onInteractive=$.onInteractive}async start($){this.diagnostics.recordConnection("started","");let v,U;try{v=o4({literal:this.config.appToken,envVar:this.config.appTokenEnv,env:this.env,label:`${this.config.name}.appToken`}),U=o4({literal:this.config.botToken,envVar:this.config.botTokenEnv,env:this.env,label:`${this.config.name}.botToken`})}catch(D){throw this.diagnostics.recordConnection("auth-failed",T$(D)),D}this.botToken=U;let I=await this.callAuthTest();if(!I.ok){let D=I.error??"auth.test returned ok=false";throw this.diagnostics.recordConnection("auth-failed",D),new F0(this.config.name,D)}this.processor=new lL({ownBotUserId:I.user_id??"",ownBotId:I.bot_id??"",minify:this.config.minify});let b=new x_({appToken:v,botToken:this.botToken});await this.runStart({source:b,onLog:OI(this.logger),deps:GI(this.flumeDeps),signal:this.signal,onEvent:(D)=>{if(D.source!=="slack")return Promise.resolve();return this.handleEvent(D,$)}})}onStop(){this.processor=null}async handleInteractive($){let v=crypto.randomUUID(),U=JSON.stringify($);if(this.diagnostics.recordRaw(v,U),!this.onInteractive){this.diagnostics.recordProcessed(v,"skip:no-interactive-handler","");return}let I=typeof $.type==="string"?$.type:"unknown";try{await this.onInteractive($),this.diagnostics.recordProcessed(v,`interactive:${I}`,"")}catch(b){let D=T$(b);this.diagnostics.recordProcessed(v,`interactive-error:${I}`,D),this.logger?.error(`slack interactive handler error (${I})`,{error:D})}}async callAuthTest(){let $;try{$=await(await this.http.fetch({method:"POST",url:Bp,headers:{Authorization:`Bearer ${this.botToken}`,"Content-Type":"application/x-www-form-urlencoded"}})).text()}catch(U){throw this.diagnostics.recordConnection("auth-failed",T$(U)),U}let v=qp.safeParse(f_($));if(!v.success)return{ok:!1,error:`non-JSON auth.test response: ${$.slice(0,200)}`};return v.data}async handleEvent($,v){if(!this.processor)return;if($.type==="interactive"){await this.handleInteractive($.data);return}let U=$.data.event;if(!Ap(U)){let w=crypto.randomUUID();this.diagnostics.recordRaw(w,JSON.stringify($.data)),this.diagnostics.recordProcessed(w,"skip:non-object-event","");return}let I=crypto.randomUUID(),b=JSON.stringify(U);this.diagnostics.recordRaw(I,b);let D=U;if(this.preprocessEvent){let w=await this.preprocessEvent(U);if(w===null){this.diagnostics.recordProcessed(I,"skip:preprocess",b);return}D=w}let u=this.processor.process(D);if(u.skip){this.diagnostics.recordProcessed(I,u.reason,b);return}await this.deliver(v,I,b,u.content,u.meta,u.shouldReact)}async deliver($,v,U,I,b,D){try{await $(I,b)}catch(u){this.diagnostics.recordProcessed(v,"emitted:delivery-failed",I||U),this.logger?.error("slack notify error",{error:T$(u)});return}if(this.diagnostics.recordProcessed(v,"emitted",I),D)this.postReaction(b).catch((u)=>{this.diagnostics.recordProcessed(v,"emitted:reaction-failed",T$(u)),this.logger?.warn("slack reaction failed",{error:T$(u)})})}async postReaction($){let v=await this.http.fetch({method:"POST",url:"https://slack.com/api/reactions.add",headers:{Authorization:`Bearer ${this.botToken}`,"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({channel:$.channel_id??"",timestamp:$.thread_ts??"",name:"eyes"}).toString()}),U=await v.text(),I=jp(U);if(!I.ok)throw Error(`slack reactions.add: ${I.error??`status=${v.status}`}`)}}var Ap=($)=>typeof $==="object"&&$!==null&&!Array.isArray($),f_=($)=>{try{return JSON.parse($)}catch{return null}},Pp=H.object({ok:H.boolean(),error:H.string().optional()}),jp=($)=>{let v=Pp.safeParse(f_($));if(!v.success)return{ok:!1,error:`non-JSON response: ${$.slice(0,200)}`};return v.data};var y_=($={})=>({type:"slack",toolExposed:!0,createListener(v,U){let I=v6.parse(v);return new fL({config:I,channelId:U.channelId,logger:U.logger,diagnosticLog:U.diagnosticLog,http:U.http,signal:U.signal,preprocessEvent:$.preprocessEvent,onInteractive:$.onInteractive})},createAdapter(v,U){return new rL({config:v6.parse(v),http:U.http})},secretTokens(v){let U=v6.parse(v);return[U.botToken,U.appToken].filter((I)=>I!==void 0)},buildConfig(v,U){return v6.parse({id:U.id,type:"slack",name:v.name,...typeof v.botToken==="string"?{botToken:v.botToken}:{},...typeof v.appToken==="string"?{appToken:v.appToken}:{},...typeof v.botTokenEnv==="string"?{botTokenEnv:v.botTokenEnv}:{},...typeof v.appTokenEnv==="string"?{appTokenEnv:v.appTokenEnv}:{},minify:typeof v.minify==="boolean"?v.minify:!0,createdAt:U.now,updatedAt:U.now})},applyUpdate(v,U,I){let b=v6.parse(v);return v6.parse({id:b.id,name:b.name,type:"slack",minify:b.minify,createdAt:b.createdAt,updatedAt:I.now,...ib("botToken","botTokenEnv",U,b),...ib("appToken","appTokenEnv",U,b)})},operations:{}});var lJ=()=>[y_(),Z_(),S_(),C_()];import{existsSync as B9$,readFileSync as A9$}from"fs";import{homedir as P9$}from"os";import{join as Kx}from"path";var uA$=Object.freeze({status:"aborted"});function M($,v,U){function I(w,g){if(!w._zod)Object.defineProperty(w,"_zod",{value:{def:g,constr:u,traits:new Set},enumerable:!1});if(w._zod.traits.has($))return;w._zod.traits.add($),v(w,g);let J=u.prototype,X=Object.keys(J);for(let W=0;W<X.length;W++){let G=X[W];if(!(G in w))w[G]=J[G].bind(w)}}let b=U?.Parent??Object;class D extends b{}Object.defineProperty(D,"name",{value:$});function u(w){var g;let J=U?.Parent?new D:this;I(J,w),(g=J._zod).deferred??(g.deferred=[]);for(let X of J._zod.deferred)X();return J}return Object.defineProperty(u,"init",{value:I}),Object.defineProperty(u,Symbol.hasInstance,{value:(w)=>{if(U?.Parent&&w instanceof U.Parent)return!0;return w?._zod?.traits?.has($)}}),Object.defineProperty(u,"name",{value:$}),u}var wA$=Symbol("zod_brand");class b6 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Z0 extends Error{constructor($){super(`Encountered unidirectional transform during encode: ${$}`);this.name="ZodEncodeError"}}var fJ={};function $4($){if($)Object.assign(fJ,$);return fJ}var L$={};e$(L$,{unwrapMessage:()=>T0,uint8ArrayToHex:()=>pp,uint8ArrayToBase64url:()=>tp,uint8ArrayToBase64:()=>p_,stringifyPrimitive:()=>cJ,slugify:()=>mL,shallowClone:()=>m_,safeExtend:()=>fp,required:()=>mp,randomString:()=>Rp,propertyKeyTypes:()=>oL,promiseAllObject:()=>Ep,primitiveTypes:()=>c_,prefixIssues:()=>D6,pick:()=>ip,partial:()=>hp,parsedType:()=>pL,optionalKeys:()=>tL,omit:()=>xp,objectClone:()=>Zp,numKeys:()=>np,nullish:()=>E0,normalizeParams:()=>a,mergeDefs:()=>U6,merge:()=>yp,jsonStringifyReplacer:()=>zI,joinValues:()=>yJ,issue:()=>YI,isPlainObject:()=>f6,isObject:()=>xb,hexToUint8Array:()=>dp,getSizableOrigin:()=>t_,getParsedType:()=>rp,getLengthableOrigin:()=>n0,getEnumValues:()=>k0,getElementAtPath:()=>kp,floatSafeRemainder:()=>hL,finalizeIssue:()=>G4,extend:()=>lp,escapeRegex:()=>I6,esc:()=>hJ,defineLazy:()=>K$,createTransparentProxy:()=>Cp,cloneDef:()=>Tp,clone:()=>W4,cleanRegex:()=>R0,cleanEnum:()=>cp,captureStackTrace:()=>mJ,cached:()=>QI,base64urlToUint8Array:()=>op,base64ToUint8Array:()=>d_,assignProp:()=>l6,assertNotEqual:()=>Sp,assertNever:()=>_p,assertIs:()=>Mp,assertEqual:()=>Np,assert:()=>Fp,allowsEval:()=>cL,aborted:()=>y6,NUMBER_FORMAT_RANGES:()=>dL,Class:()=>a_,BIGINT_FORMAT_RANGES:()=>o_});function Np($){return $}function Sp($){return $}function Mp($){}function _p($){throw Error("Unexpected value in exhaustive check")}function Fp($){}function k0($){let v=Object.values($).filter((I)=>typeof I==="number");return Object.entries($).filter(([I,b])=>v.indexOf(+I)===-1).map(([I,b])=>b)}function yJ($,v="|"){return $.map((U)=>cJ(U)).join(v)}function zI($,v){if(typeof v==="bigint")return v.toString();return v}function QI($){return{get value(){{let U=$();return Object.defineProperty(this,"value",{value:U}),U}throw Error("cached value already set")}}}function E0($){return $===null||$===void 0}function R0($){let v=$.startsWith("^")?1:0,U=$.endsWith("$")?$.length-1:$.length;return $.slice(v,U)}function hL($,v){let U=($.toString().split(".")[1]||"").length,I=v.toString(),b=(I.split(".")[1]||"").length;if(b===0&&/\d?e-\d?/.test(I)){let g=I.match(/\d?e-(\d?)/);if(g?.[1])b=Number.parseInt(g[1])}let D=U>b?U:b,u=Number.parseInt($.toFixed(D).replace(".","")),w=Number.parseInt(v.toFixed(D).replace(".",""));return u%w/10**D}var h_=Symbol("evaluating");function K$($,v,U){let I=void 0;Object.defineProperty($,v,{get(){if(I===h_)return;if(I===void 0)I=h_,I=U();return I},set(b){Object.defineProperty($,v,{value:b})},configurable:!0})}function Zp($){return Object.create(Object.getPrototypeOf($),Object.getOwnPropertyDescriptors($))}function l6($,v,U){Object.defineProperty($,v,{value:U,writable:!0,enumerable:!0,configurable:!0})}function U6(...$){let v={};for(let U of $){let I=Object.getOwnPropertyDescriptors(U);Object.assign(v,I)}return Object.defineProperties({},v)}function Tp($){return U6($._zod.def)}function kp($,v){if(!v)return $;return v.reduce((U,I)=>U?.[I],$)}function Ep($){let v=Object.keys($),U=v.map((I)=>$[I]);return Promise.all(U).then((I)=>{let b={};for(let D=0;D<v.length;D++)b[v[D]]=I[D];return b})}function Rp($=10){let U="";for(let I=0;I<$;I++)U+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return U}function hJ($){return JSON.stringify($)}function mL($){return $.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var mJ="captureStackTrace"in Error?Error.captureStackTrace:(...$)=>{};function xb($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var cL=QI(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch($){return!1}});function f6($){if(xb($)===!1)return!1;let v=$.constructor;if(v===void 0)return!0;if(typeof v!=="function")return!0;let U=v.prototype;if(xb(U)===!1)return!1;if(Object.prototype.hasOwnProperty.call(U,"isPrototypeOf")===!1)return!1;return!0}function m_($){if(f6($))return{...$};if(Array.isArray($))return[...$];return $}function np($){let v=0;for(let U in $)if(Object.prototype.hasOwnProperty.call($,U))v++;return v}var rp=($)=>{let v=typeof $;switch(v){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN($)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray($))return"array";if($===null)return"null";if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return"promise";if(typeof Map<"u"&&$ instanceof Map)return"map";if(typeof Set<"u"&&$ instanceof Set)return"set";if(typeof Date<"u"&&$ instanceof Date)return"date";if(typeof File<"u"&&$ instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${v}`)}},oL=new Set(["string","number","symbol"]),c_=new Set(["string","number","bigint","boolean","symbol","undefined"]);function I6($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function W4($,v,U){let I=new $._zod.constr(v??$._zod.def);if(!v||U?.parent)I._zod.parent=$;return I}function a($){let v=$;if(!v)return{};if(typeof v==="string")return{error:()=>v};if(v?.message!==void 0){if(v?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");v.error=v.message}if(delete v.message,typeof v.error==="string")return{...v,error:()=>v.error};return v}function Cp($){let v;return new Proxy({},{get(U,I,b){return v??(v=$()),Reflect.get(v,I,b)},set(U,I,b,D){return v??(v=$()),Reflect.set(v,I,b,D)},has(U,I){return v??(v=$()),Reflect.has(v,I)},deleteProperty(U,I){return v??(v=$()),Reflect.deleteProperty(v,I)},ownKeys(U){return v??(v=$()),Reflect.ownKeys(v)},getOwnPropertyDescriptor(U,I){return v??(v=$()),Reflect.getOwnPropertyDescriptor(v,I)},defineProperty(U,I,b){return v??(v=$()),Reflect.defineProperty(v,I,b)}})}function cJ($){if(typeof $==="bigint")return $.toString()+"n";if(typeof $==="string")return`"${$}"`;return`${$}`}function tL($){return Object.keys($).filter((v)=>{return $[v]._zod.optin==="optional"&&$[v]._zod.optout==="optional"})}var dL={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},o_={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function ip($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let D=U6($._zod.def,{get shape(){let u={};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;u[w]=U.shape[w]}return l6(this,"shape",u),u},checks:[]});return W4($,D)}function xp($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let D=U6($._zod.def,{get shape(){let u={...$._zod.def.shape};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;delete u[w]}return l6(this,"shape",u),u},checks:[]});return W4($,D)}function lp($,v){if(!f6(v))throw Error("Invalid input to extend: expected a plain object");let U=$._zod.def.checks;if(U&&U.length>0){let D=$._zod.def.shape;for(let u in v)if(Object.getOwnPropertyDescriptor(D,u)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let b=U6($._zod.def,{get shape(){let D={...$._zod.def.shape,...v};return l6(this,"shape",D),D}});return W4($,b)}function fp($,v){if(!f6(v))throw Error("Invalid input to safeExtend: expected a plain object");let U=U6($._zod.def,{get shape(){let I={...$._zod.def.shape,...v};return l6(this,"shape",I),I}});return W4($,U)}function yp($,v){let U=U6($._zod.def,{get shape(){let I={...$._zod.def.shape,...v._zod.def.shape};return l6(this,"shape",I),I},get catchall(){return v._zod.def.catchall},checks:[]});return W4($,U)}function hp($,v,U){let b=v._zod.def.checks;if(b&&b.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let u=U6(v._zod.def,{get shape(){let w=v._zod.def.shape,g={...w};if(U)for(let J in U){if(!(J in w))throw Error(`Unrecognized key: "${J}"`);if(!U[J])continue;g[J]=$?new $({type:"optional",innerType:w[J]}):w[J]}else for(let J in w)g[J]=$?new $({type:"optional",innerType:w[J]}):w[J];return l6(this,"shape",g),g},checks:[]});return W4(v,u)}function mp($,v,U){let I=U6(v._zod.def,{get shape(){let b=v._zod.def.shape,D={...b};if(U)for(let u in U){if(!(u in D))throw Error(`Unrecognized key: "${u}"`);if(!U[u])continue;D[u]=new $({type:"nonoptional",innerType:b[u]})}else for(let u in b)D[u]=new $({type:"nonoptional",innerType:b[u]});return l6(this,"shape",D),D}});return W4(v,I)}function y6($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue!==!0)return!0;return!1}function D6($,v){return v.map((U)=>{var I;return(I=U).path??(I.path=[]),U.path.unshift($),U})}function T0($){return typeof $==="string"?$:$?.message}function G4($,v,U){let I={...$,path:$.path??[]};if(!$.message){let b=T0($.inst?._zod.def?.error?.($))??T0(v?.error?.($))??T0(U.customError?.($))??T0(U.localeError?.($))??"Invalid input";I.message=b}if(delete I.inst,delete I.continue,!v?.reportInput)delete I.input;return I}function t_($){if($ instanceof Set)return"set";if($ instanceof Map)return"map";if($ instanceof File)return"file";return"unknown"}function n0($){if(Array.isArray($))return"array";if(typeof $==="string")return"string";return"unknown"}function pL($){let v=typeof $;switch(v){case"number":return Number.isNaN($)?"nan":"number";case"object":{if($===null)return"null";if(Array.isArray($))return"array";let U=$;if(U&&Object.getPrototypeOf(U)!==Object.prototype&&"constructor"in U&&U.constructor)return U.constructor.name}}return v}function YI(...$){let[v,U,I]=$;if(typeof v==="string")return{message:v,code:"custom",input:U,inst:I};return{...v}}function cp($){return Object.entries($).filter(([v,U])=>{return Number.isNaN(Number.parseInt(v,10))}).map((v)=>v[1])}function d_($){let v=atob($),U=new Uint8Array(v.length);for(let I=0;I<v.length;I++)U[I]=v.charCodeAt(I);return U}function p_($){let v="";for(let U=0;U<$.length;U++)v+=String.fromCharCode($[U]);return btoa(v)}function op($){let v=$.replace(/-/g,"+").replace(/_/g,"/"),U="=".repeat((4-v.length%4)%4);return d_(v+U)}function tp($){return p_($).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function dp($){let v=$.replace(/^0x/,"");if(v.length%2!==0)throw Error("Invalid hex string length");let U=new Uint8Array(v.length/2);for(let I=0;I<v.length;I+=2)U[I/2]=Number.parseInt(v.slice(I,I+2),16);return U}function pp($){return Array.from($).map((v)=>v.toString(16).padStart(2,"0")).join("")}class a_{constructor(...$){}}var e_=($,v)=>{$.name="$ZodError",Object.defineProperty($,"_zod",{value:$._zod,enumerable:!1}),Object.defineProperty($,"issues",{value:v,enumerable:!1}),$.message=JSON.stringify(v,zI,2),Object.defineProperty($,"toString",{value:()=>$.message,enumerable:!1})},oJ=M("$ZodError",e_),aL=M("$ZodError",e_,{Parent:Error});function s_($,v=(U)=>U.message){let U={},I=[];for(let b of $.issues)if(b.path.length>0)U[b.path[0]]=U[b.path[0]]||[],U[b.path[0]].push(v(b));else I.push(v(b));return{formErrors:I,fieldErrors:U}}function $F($,v=(U)=>U.message){let U={_errors:[]},I=(b)=>{for(let D of b.issues)if(D.code==="invalid_union"&&D.errors.length)D.errors.map((u)=>I({issues:u}));else if(D.code==="invalid_key")I({issues:D.issues});else if(D.code==="invalid_element")I({issues:D.issues});else if(D.path.length===0)U._errors.push(v(D));else{let u=U,w=0;while(w<D.path.length){let g=D.path[w];if(w!==D.path.length-1)u[g]=u[g]||{_errors:[]};else u[g]=u[g]||{_errors:[]},u[g]._errors.push(v(D));u=u[g],w++}}};return I($),U}var tJ=($)=>(v,U,I,b)=>{let D=I?Object.assign(I,{async:!1}):{async:!1},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)throw new b6;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>G4(g,D,$4())));throw mJ(w,b?.callee),w}return u.value};var dJ=($)=>async(v,U,I,b)=>{let D=I?Object.assign(I,{async:!0}):{async:!0},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)u=await u;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>G4(g,D,$4())));throw mJ(w,b?.callee),w}return u.value};var r0=($)=>(v,U,I)=>{let b=I?{...I,async:!1}:{async:!1},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)throw new b6;return D.issues.length?{success:!1,error:new($??oJ)(D.issues.map((u)=>G4(u,b,$4())))}:{success:!0,data:D.value}},C0=r0(aL),i0=($)=>async(v,U,I)=>{let b=I?Object.assign(I,{async:!0}):{async:!0},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)D=await D;return D.issues.length?{success:!1,error:new $(D.issues.map((u)=>G4(u,b,$4())))}:{success:!0,data:D.value}},pJ=i0(aL),vF=($)=>(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return tJ($)(v,U,b)};var bF=($)=>(v,U,I)=>{return tJ($)(v,U,I)};var UF=($)=>async(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return dJ($)(v,U,b)};var IF=($)=>async(v,U,I)=>{return dJ($)(v,U,I)};var DF=($)=>(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return r0($)(v,U,b)};var uF=($)=>(v,U,I)=>{return r0($)(v,U,I)};var wF=($)=>async(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return i0($)(v,U,b)};var gF=($)=>async(v,U,I)=>{return i0($)(v,U,I)};var JF=/^[cC][^\s-]{8,}$/,XF=/^[0-9a-z]+$/,WF=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,GF=/^[0-9a-vA-V]{20}$/,OF=/^[A-Za-z0-9]{27}$/,HF=/^[a-zA-Z0-9_-]{21}$/,zF=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var QF=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,eL=($)=>{if(!$)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${$}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var YF=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var ep="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function VF(){return new RegExp(ep,"u")}var LF=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,KF=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var qF=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,BF=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,AF=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,sL=/^[A-Za-z0-9_-]*$/;var PF=/^\+[1-9]\d{6,14}$/,jF="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NF=new RegExp(`^${jF}$`);function SF($){return typeof $.precision==="number"?$.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":$.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${$.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function MF($){return new RegExp(`^${SF($)}$`)}function _F($){let v=SF({precision:$.precision}),U=["Z"];if($.local)U.push("");if($.offset)U.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let I=`${v}(?:${U.join("|")})`;return new RegExp(`^${jF}T(?:${I})$`)}var FF=($)=>{let v=$?`[\\s\\S]{${$?.minimum??0},${$?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${v}$`)};var ZF=/^-?\d+$/,aJ=/^-?\d+(?:\.\d+)?$/,TF=/^(?:true|false)$/i,kF=/^null$/i;var EF=/^[^A-Z]*$/,RF=/^[^a-z]*$/;var wv=M("$ZodCheck",($,v)=>{var U;$._zod??($._zod={}),$._zod.def=v,(U=$._zod).onattach??(U.onattach=[])}),nF={number:"number",bigint:"bigint",object:"date"},$K=M("$ZodCheckLessThan",($,v)=>{wv.init($,v);let U=nF[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.maximum:b.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(v.value<D)if(v.inclusive)b.maximum=v.value;else b.exclusiveMaximum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value<=v.value:I.value<v.value)return;I.issues.push({origin:U,code:"too_big",maximum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),vK=M("$ZodCheckGreaterThan",($,v)=>{wv.init($,v);let U=nF[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.minimum:b.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(v.value>D)if(v.inclusive)b.minimum=v.value;else b.exclusiveMinimum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value>=v.value:I.value>v.value)return;I.issues.push({origin:U,code:"too_small",minimum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),rF=M("$ZodCheckMultipleOf",($,v)=>{wv.init($,v),$._zod.onattach.push((U)=>{var I;(I=U._zod.bag).multipleOf??(I.multipleOf=v.value)}),$._zod.check=(U)=>{if(typeof U.value!==typeof v.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof U.value==="bigint"?U.value%v.value===BigInt(0):hL(U.value,v.value)===0)return;U.issues.push({origin:typeof U.value,code:"not_multiple_of",divisor:v.value,input:U.value,inst:$,continue:!v.abort})}}),CF=M("$ZodCheckNumberFormat",($,v)=>{wv.init($,v),v.format=v.format||"float64";let U=v.format?.includes("int"),I=U?"int":"number",[b,D]=dL[v.format];$._zod.onattach.push((u)=>{let w=u._zod.bag;if(w.format=v.format,w.minimum=b,w.maximum=D,U)w.pattern=ZF}),$._zod.check=(u)=>{let w=u.value;if(U){if(!Number.isInteger(w)){u.issues.push({expected:I,format:v.format,code:"invalid_type",continue:!1,input:w,inst:$});return}if(!Number.isSafeInteger(w)){if(w>0)u.issues.push({input:w,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});else u.issues.push({input:w,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});return}}if(w<b)u.issues.push({origin:"number",input:w,code:"too_small",minimum:b,inclusive:!0,inst:$,continue:!v.abort});if(w>D)u.issues.push({origin:"number",input:w,code:"too_big",maximum:D,inclusive:!0,inst:$,continue:!v.abort})}});var iF=M("$ZodCheckMaxLength",($,v)=>{var U;wv.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!E0(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.maximum??Number.POSITIVE_INFINITY;if(v.maximum<b)I._zod.bag.maximum=v.maximum}),$._zod.check=(I)=>{let b=I.value;if(b.length<=v.maximum)return;let u=n0(b);I.issues.push({origin:u,code:"too_big",maximum:v.maximum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),xF=M("$ZodCheckMinLength",($,v)=>{var U;wv.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!E0(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(v.minimum>b)I._zod.bag.minimum=v.minimum}),$._zod.check=(I)=>{let b=I.value;if(b.length>=v.minimum)return;let u=n0(b);I.issues.push({origin:u,code:"too_small",minimum:v.minimum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),lF=M("$ZodCheckLengthEquals",($,v)=>{var U;wv.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!E0(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.minimum=v.length,b.maximum=v.length,b.length=v.length}),$._zod.check=(I)=>{let b=I.value,D=b.length;if(D===v.length)return;let u=n0(b),w=D>v.length;I.issues.push({origin:u,...w?{code:"too_big",maximum:v.length}:{code:"too_small",minimum:v.length},inclusive:!0,exact:!0,input:I.value,inst:$,continue:!v.abort})}}),x0=M("$ZodCheckStringFormat",($,v)=>{var U,I;if(wv.init($,v),$._zod.onattach.push((b)=>{let D=b._zod.bag;if(D.format=v.format,v.pattern)D.patterns??(D.patterns=new Set),D.patterns.add(v.pattern)}),v.pattern)(U=$._zod).check??(U.check=(b)=>{if(v.pattern.lastIndex=0,v.pattern.test(b.value))return;b.issues.push({origin:"string",code:"invalid_format",format:v.format,input:b.value,...v.pattern?{pattern:v.pattern.toString()}:{},inst:$,continue:!v.abort})});else(I=$._zod).check??(I.check=()=>{})}),fF=M("$ZodCheckRegex",($,v)=>{x0.init($,v),$._zod.check=(U)=>{if(v.pattern.lastIndex=0,v.pattern.test(U.value))return;U.issues.push({origin:"string",code:"invalid_format",format:"regex",input:U.value,pattern:v.pattern.toString(),inst:$,continue:!v.abort})}}),yF=M("$ZodCheckLowerCase",($,v)=>{v.pattern??(v.pattern=EF),x0.init($,v)}),hF=M("$ZodCheckUpperCase",($,v)=>{v.pattern??(v.pattern=RF),x0.init($,v)}),mF=M("$ZodCheckIncludes",($,v)=>{wv.init($,v);let U=I6(v.includes),I=new RegExp(typeof v.position==="number"?`^.{${v.position}}${U}`:U);v.pattern=I,$._zod.onattach.push((b)=>{let D=b._zod.bag;D.patterns??(D.patterns=new Set),D.patterns.add(I)}),$._zod.check=(b)=>{if(b.value.includes(v.includes,v.position))return;b.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:v.includes,input:b.value,inst:$,continue:!v.abort})}}),cF=M("$ZodCheckStartsWith",($,v)=>{wv.init($,v);let U=new RegExp(`^${I6(v.prefix)}.*`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.startsWith(v.prefix))return;I.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:v.prefix,input:I.value,inst:$,continue:!v.abort})}}),oF=M("$ZodCheckEndsWith",($,v)=>{wv.init($,v);let U=new RegExp(`.*${I6(v.suffix)}$`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.endsWith(v.suffix))return;I.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:v.suffix,input:I.value,inst:$,continue:!v.abort})}});var tF=M("$ZodCheckOverwrite",($,v)=>{wv.init($,v),$._zod.check=(U)=>{U.value=v.tx(U.value)}});class bK{constructor($=[]){if(this.content=[],this.indent=0,this)this.args=$}indented($){this.indent+=1,$(this),this.indent-=1}write($){if(typeof $==="function"){$(this,{execution:"sync"}),$(this,{execution:"async"});return}let U=$.split(`
|
|
308
|
+
`)}}var td=H.object({cron:H.string(),prompt:H.string(),id:H.string().optional(),enabled:H.boolean().optional(),catchupPolicy:x6.shape.catchupPolicy.optional()}),dd=H.object({id:H.string()}),C_=($={})=>({type:"schedule",toolExposed:!1,createListener(v,U){let I=n4.parse(v);return new kL({config:I,lastFiredStore:new nL({path:od(U.connectorDir(U.channelId,I.id),"state.json"),fs:U.fs}),channelId:U.channelId,logger:U.logger,diagnosticLog:U.diagnosticLog,onFired:$.onFired,now:()=>U.clock.now()})},createAdapter:null,secretTokens(){return[]},buildConfig(v,U){return n4.parse({id:U.id,type:"schedule",name:v.name,entries:Array.isArray(v.entries)?v.entries:[],createdAt:U.now,updatedAt:U.now})},applyUpdate(v,U,I){let b=n4.parse(v);return n4.parse({...b,updatedAt:I.now})},operations:{listEntries(v){let U=n4.parse(v.config);return{config:v.config,result:U.entries}},addEntry(v){let U=n4.parse(v.config),I=td.parse(v.args),b=x6.parse({id:I.id??v.context.generateId(),cron:I.cron,prompt:I.prompt,...I.enabled!==void 0?{enabled:I.enabled}:{},...I.catchupPolicy!==void 0?{catchupPolicy:I.catchupPolicy}:{}});return{config:n4.parse({...U,entries:[...U.entries,b],updatedAt:v.context.now}),result:b}},removeEntry(v){let U=n4.parse(v.config),I=dd.parse(v.args);if(!U.entries.some((b)=>b.id===I.id))throw Error(`schedule entry "${I.id}" not found`);return{config:n4.parse({...U,entries:U.entries.filter((b)=>b.id!==I.id),updatedAt:v.context.now}),result:null}}}});var pd="https://slack.com/api/",ad=($)=>{let v={};for(let[U,I]of Object.entries($))v[U]=I;return v};class rL extends Pb{token;http;constructor($){super();this.token=o4({literal:$.config.botToken,envVar:$.config.botTokenEnv,env:$.env??process.env,label:`${$.config.name}.botToken`}),this.http=$.http??new g4,Object.freeze(this)}async call($){let v=`${pd}${$.path}`,U=$.body!==null&&typeof $.body==="object"?ad($.body):{},I=new URLSearchParams;for(let[u,w]of Object.entries(U))I.set(u,typeof w==="string"?w:JSON.stringify(w));let D=await(await this.http.fetch({method:"POST",url:v,headers:{Authorization:`Bearer ${this.token}`,"Content-Type":"application/x-www-form-urlencoded"},body:I.toString()})).text();try{return JSON.parse(D)}catch{return{ok:!1,error:`non-JSON response: ${D.slice(0,200)}`}}}async postMessage($){return this.call({method:"post",path:"chat.postMessage",body:{channel:$.channel,text:$.text,...$.threadTs?{thread_ts:$.threadTs}:{}}})}async addReaction($){return this.call({method:"post",path:"reactions.add",body:{channel:$.channel,timestamp:$.timestamp,name:$.name}})}async removeReaction($){return this.call({method:"post",path:"reactions.remove",body:{channel:$.channel,timestamp:$.timestamp,name:$.name}})}}var v6=H.object({id:H.string(),name:H.string(),type:H.literal("slack"),botToken:H.string().startsWith("xoxb-").optional(),appToken:H.string().startsWith("xapp-").optional(),botTokenEnv:H.string().optional(),appTokenEnv:H.string().optional(),minify:H.boolean().default(!0),createdAt:H.string().datetime().optional(),updatedAt:H.string().datetime().optional()});function ed($){let v={event_type:$.type},U=p4($.payload.event)?$.payload.event:null;if(!U)return v;if(typeof U.channel==="string")v.channel_id=U.channel;if(typeof U.user==="string")v.user_id=U.user;if(typeof U.thread_ts==="string")v.thread_ts=U.thread_ts;if(typeof U.type==="string")v.slack_event_type=U.type;return v}var sd=class{props;seen=new Map;constructor($){this.props=$}has($){let v=this.seen.get($);if(v===void 0)return!1;if(ev({deps:this.props.deps})-v>this.props.ttlMs)return this.seen.delete($),!1;return!0}add($){this.seen.set($,ev({deps:this.props.deps}))}trim(){let $=ev({deps:this.props.deps})-this.props.ttlMs;for(let[U,I]of this.seen)if(I<$)this.seen.delete(U);if(this.seen.size<=this.props.maxSize)return;let v=this.seen.size-this.props.maxSize;for(let U of this.seen.keys()){if(v<=0)break;this.seen.delete(U),v--}}get size(){return this.seen.size}},$p=z$.object({ok:z$.boolean(),url:z$.string().optional(),error:z$.string().optional()}),CL="https://slack.com/api/apps.connections.open";async function vp($){let v=new d4({source:"slack.url",handler:$.onLog,deps:$.deps});v.debug({action:"http.request",message:`POST ${CL}`});let U=await p(()=>$.deps.fetch(CL,{method:"POST",headers:{Authorization:`Bearer ${$.appToken}`},signal:$.signal}));if(U instanceof Error){let w=F$({value:U});return v.error({action:"http.error",message:x({error:w}),error:w}),new Uv(`apps.connections.open transport: ${U.message}`,{cause:U})}v.debug({action:"http.response",message:`POST ${U.status}`,detail:{status:U.status,url:CL}});let I=await rJ({response:U,context:"apps.connections.open"});if(I instanceof tv)return v.warn({action:"http.body.read",message:x({error:I}),error:I}),I;let b=Sb(I);if(b instanceof mv)return v.warn({action:"http.body.parse",message:b.message,error:b}),new tv({message:"apps.connections.open: invalid JSON body",status:U.status,cause:b});let D=p4(b)?b:{};v.debug({action:"http.body",message:"apps.connections.open response",detail:{ok:D.ok,error:D.error}});let u=$p.safeParse(b);if(!u.success)return v.warn({action:"http.body.schema",message:"apps.connections.open: invalid response shape",detail:{issues:u.error.issues.map((w)=>({path:w.path,message:w.message}))}}),new tv({message:"apps.connections.open: invalid response shape",status:U.status,cause:u.error});if(!u.data.ok||!u.data.url)return v.warn({action:"slack.api.error",message:`apps.connections.open failed: ${u.data.error??"no url"}`}),new tv({message:`apps.connections.open failed: ${u.data.error??"no url"}`,status:U.status});return v.info({action:"slack.url.obtained",message:"WSS URL obtained"}),u.data.url}var bp=z$.object({envelope_id:z$.string(),type:z$.string(),payload:z$.record(z$.string(),z$.unknown()),accepts_response_payload:z$.boolean().optional(),retry_attempt:z$.number().optional(),retry_reason:z$.string().optional()}),Up=15000,i_=1,Ip=class{props;log;ws=null;isStoppedFlag=!1;hasConnected=!1;pendingResolve=null;pendingResolved=!1;lastFrameAt=0;idleWatchdog=null;constructor($){this.props=$,this.log=new d4({source:"slack.socket-mode",handler:$.onLog,deps:$.deps})}get isStopped(){return this.isStoppedFlag}async connect($){this.log.info({action:"connect.start",message:"opening WebSocket connection"});let v=await vp({appToken:this.props.appToken,signal:$?.signal,onLog:this.props.onLog,deps:this.props.deps});if(v instanceof tv)return this.log.error({action:"http.error",message:v.message,error:v}),v;if(v instanceof Uv)return this.log.error({action:"url.error",message:v.message,error:v}),v;if(this.isStoppedFlag){let U=new Uv("stopped before WebSocket open");return this.log.info({action:"connect.aborted",message:x({error:U})}),U}return this.log.info({action:"slack.url.obtained",message:"WebSocket URL obtained"}),this.openSocket(v)}disconnect(){this.log.info({action:"disconnect",message:"stopping socket mode"}),this.isStoppedFlag=!0,this.disarmIdleWatchdog(),this.closeSocket(this.ws),this.ws=null}armIdleWatchdog(){this.disarmIdleWatchdog();let $=this.props.idleTimeoutMs;if($===null||$===void 0||$<=0)return;let v=p(()=>this.props.deps.setInterval(()=>this.checkIdle($),Up));if(v instanceof Error){this.log.error({action:"idle.watchdog.schedule.error",message:x({error:v}),error:v});return}this.idleWatchdog=v}disarmIdleWatchdog(){if(!this.idleWatchdog)return;let $=this.idleWatchdog;this.idleWatchdog=null;let v=p(()=>this.props.deps.clearInterval($));if(v instanceof Error)this.log.error({action:"idle.watchdog.clear.error",message:x({error:v}),error:v})}checkIdle($){if(!this.hasConnected||this.isStoppedFlag)return;let v=this.props.deps.now()-this.lastFrameAt;if(v<$)return;this.log.warn({action:"idle.timeout",message:`no frames for ${v}ms (limit ${$}ms) \u2014 force-closing socket`,detail:{elapsedMs:v,limitMs:$}}),this.disarmIdleWatchdog(),this.closeSocket(this.ws)}isConnected(){return this.ws!==null&&this.ws.readyState===i_}openSocket($){let v=this.props.deps.WebSocket;if(!v){let U=new Uv("WebSocket runtime not available");return this.log.error({action:"ws.error",message:x({error:U}),error:U}),Promise.resolve(U)}return this.pendingResolved=!1,this.hasConnected=!1,new Promise((U)=>{this.pendingResolve=U;let I=p(()=>new v($));if(I instanceof Error){let u=new Uv(`WebSocket construction failed: ${x({error:I})}`,{cause:I});this.log.error({action:"ws.construct.error",message:x({error:u}),error:u}),this.ws=null,this.pendingResolved=!0,U(u);return}let b=I;this.ws=b;let D=p(()=>{b.addEventListener("message",(u)=>this.safeOnMessage(u,b)),b.addEventListener("close",(u)=>this.safeOnClose(u)),b.addEventListener("error",()=>this.safeOnError())});if(D instanceof Error){let u=new Uv(`WebSocket listener registration failed: ${x({error:D})}`,{cause:D});this.log.error({action:"ws.listener.error",message:x({error:u}),error:u}),this.ws=null,this.pendingResolved=!0,U(u)}})}completeConnect($){if(this.pendingResolved||!this.pendingResolve)return;this.pendingResolved=!0,this.pendingResolve($)}safeOnMessage($,v){let U=p(()=>this.onMessage(String($.data),v));if(U instanceof Error)this.log.error({action:"ws.message.threw",message:x({error:U}),error:U})}safeOnClose($){let v=p(()=>this.onClose($));if(v instanceof Error)this.log.error({action:"ws.close.threw",message:x({error:v}),error:v})}safeOnError(){let $=p(()=>this.onError());if($ instanceof Error)this.log.error({action:"ws.error.threw",message:x({error:$}),error:$})}onMessage($,v){if(this.isStoppedFlag)return;let U=Sb($);if(U instanceof mv){this.log.error({action:"ws.parse.error",message:U.message,error:U,detail:{length:$.length}});return}if(!p4(U)){this.log.error({action:"ws.parse.error",message:"expected JSON object",error:new mv(`non-object frame (${typeof U})`)});return}if(this.log.debug({action:"ws.recv",message:`type=${typeof U.type==="string"?U.type:"-"} length=${$.length}`,detail:{length:$.length}}),this.lastFrameAt=this.props.deps.now(),U.type==="hello"){this.log.info({action:"socket.hello",message:"connection ready"}),this.hasConnected=!0,this.armIdleWatchdog(),this.props.onConnected(),this.completeConnect(null);return}if(U.type==="disconnect"){let b=typeof U.reason==="string"?U.reason:"unknown";this.log.info({action:"ws.disconnect.requested",message:`reason=${b}`,detail:{reason:b}}),this.closeSocket(v);return}if(typeof U.envelope_id==="string"){this.log.debug({action:"ws.ack",message:`envelope_id=${U.envelope_id}`});let b=this.safeSerialize({envelope_id:U.envelope_id});if(b!==null)this.send(v,b)}let I=bp.safeParse(U);if(I.success){this.log.debug({action:"envelope.recv",message:`type=${I.data.type} envelope_id=${I.data.envelope_id}`,detail:{type:I.data.type,envelopeId:I.data.envelope_id}}),this.props.onMessage(I.data);return}this.log.warn({action:"envelope.parse.error",message:"unrecognised envelope shape, dropping",detail:{type:typeof U.type==="string"?U.type:"unknown",issues:I.error.issues.map((b)=>({path:b.path,message:b.message}))}})}onClose($){if(this.log.info({action:"ws.close",message:`code=${$.code} reason=${$.reason||"none"}`,detail:{code:$.code,reason:$.reason}}),this.disarmIdleWatchdog(),this.ws=null,this.hasConnected)this.props.onDisconnected();if(!this.pendingResolved){let v=new Uv(`WebSocket closed before hello (code=${$.code})`,{code:$.code});this.completeConnect(v)}}onError(){let $=new Uv("WebSocket connection error");this.log.error({action:"ws.error",message:x({error:$}),error:$}),this.completeConnect($)}closeSocket($){if($===null)return;let v=p(()=>$.close());if(v instanceof Error)this.log.error({action:"ws.close.error",message:x({error:v}),error:v})}send($,v){if($.readyState!==i_){this.log.warn({action:"ws.send",message:`ws.send skipped: readyState=${$.readyState} (not OPEN)`,detail:{readyState:$.readyState}});return}let U=p(()=>$.send(v));if(U instanceof Error)this.log.error({action:"ws.send",message:`ws.send failed: ${x({error:U})}`,error:U})}safeSerialize($){let v=Ug($);if(v instanceof Error)return this.log.error({action:"ws.send.serialize.error",message:x({error:v}),error:v}),null;return v}},Dp=1024,up=300000,x_=class extends Nb{options;name="slack";socket=null;reconnector=null;internalController=null;seen=null;constructor($){super();this.options=$}async connect($){if(!this.hasWebSocket($))return new F4("Slack source: deps.WebSocket is null (no WebSocket runtime available)");if(this.seen=new sd({maxSize:Dp,ttlMs:up,deps:$.deps}),$.reconnect&&!this.reconnector)this.reconnector=new vg({...$.reconnect,log:$.log,deps:$.deps});let v=p(()=>new AbortController);if(v instanceof Error){let U=F$({value:v});$.log.error({action:"slack.abort-controller.new.error",message:x({error:U}),error:U}),this.internalController=null}else this.internalController=v;return await this.connectInternal($)}disconnect(){let $=this.context;if($&&this.reconnector&&!this.reconnector.aborted)$.log.debug({action:"reconnect.cancel",message:"aborting reconnector"});this.reconnector?.cancel(),this.internalController?.abort(),this.socket?.disconnect(),this.socket=null,this.internalController=null}hasWebSocket($){let v=p(()=>Boolean($.deps.WebSocket));if(v instanceof Error){let U=F$({value:v});return $.log.error({action:"deps.web-socket.read.error",message:x({error:U}),error:U}),!1}return v}async connectInternal($){this.setStatus("connecting"),this.socket=new Ip({appToken:this.options.appToken,idleTimeoutMs:this.options.idleTimeoutMs,onLog:$.log.handler,deps:$.deps,onMessage:(U)=>this.handleMessage($,U),onConnected:()=>{if(this.reconnector&&this.reconnector.attempt>0)$.log.info({action:"reconnect.reset",message:`cleared ${this.reconnector.attempt} attempts`});this.reconnector?.reset(),this.setStatus("connected")},onDisconnected:()=>{if(this.socket?.isStopped){this.setStatus("disconnected");return}this.scheduleReconnect($)}});let v=await this.socket.connect({signal:this.internalController?.signal});if(v instanceof Error){if($.log.error({action:"connect.failed",message:x({error:v}),error:v}),this.socket.isStopped||!this.reconnector||this.reconnector.aborted)return this.setStatus("disconnected"),v;this.scheduleReconnect($)}return null}handleMessage($,v){let U=this.seen;if(!U)return;if(U.has(v.envelope_id)){$.log.debug({action:"dedup.skip",message:`duplicate envelope_id=${v.envelope_id}`,detail:{envelope_id:v.envelope_id,retry_attempt:v.retry_attempt}});return}U.add(v.envelope_id),U.trim(),this.emit({source:"slack",type:v.type,data:v.payload,meta:this.safeExtractMeta($,v),receivedAt:ev({deps:$.deps})})}safeExtractMeta($,v){let U=p(()=>ed(v));if(U instanceof Error){let I=F$({value:U});return $.log.warn({action:"meta.extract.error",message:x({error:I}),error:I,detail:{envelopeType:v.type}}),{event_type:v.type}}return U}scheduleReconnect($){bg({reconnector:this.reconnector,log:$.log,setStatus:(v)=>this.setStatus(v),retry:()=>{this.connectInternal($).catch((v)=>{let U=F$({value:v});$.log.error({action:"reconnect.unhandled",message:x({error:U}),error:U}),this.setStatus("disconnected")})}})}};class M0 extends Error{constructor($,v){super($);if(this.name=new.target.name,v?.cause!==void 0)Object.defineProperty(this,"cause",{value:v.cause,enumerable:!1})}}class _0 extends M0{channel;code="channel-not-found";constructor($,v){super(`channel not found: ${$}`,v);this.channel=$}}class iJ extends M0{channel;code="channel-already-exists";constructor($,v){super(`channel already exists: ${$}`,v);this.channel=$}}class HI extends M0{channel;connector;code="connector-not-found";constructor($,v,U){super(`connector not found in ${$}: ${v}`,U);this.channel=$;this.connector=v}}class F0 extends M0{connector;detail;code="auth-failed";constructor($,v,U){super(`${$}: auth failed \u2014 ${v}`,U);this.connector=$;this.detail=v}}var wp=["type","subtype","user","bot_id","text","ts","thread_ts","channel","channel_type","files","attachments"],gp=["id","name","mimetype","filetype","size","url_private","permalink"],Jp=["title","text","fallback"],xJ=($)=>{return typeof $==="object"&&$!==null&&!Array.isArray($)},iL=($,v)=>{let U={};for(let I of v)if($[I]!==void 0)U[I]=$[I];return U},Xp=($)=>{return Object.keys($).some((v)=>v.startsWith("thumb")||v.startsWith("preview"))},Wp=($)=>{if(!xJ($))return $;let v=iL($,gp);if(Xp($))v._funnel_omitted=["thumb_*"];return v},xL=($)=>{if(!xJ($))return"";let v=$.text;if(typeof v==="string")return v;let U=$.elements;if(!Array.isArray(U))return"";return U.map(xL).join("")},Gp=($)=>{if(!Array.isArray($))return"";return $.map(xL).join("\t")},Op=($)=>{if(!xJ($))return"";if($.type==="table"&&Array.isArray($.rows))return $.rows.map(Gp).join(`
|
|
309
|
+
`);return xL($)},Hp=($)=>{return $.map(Op).filter((v)=>v.length>0).join(`
|
|
310
|
+
`)},zp=($)=>{if(!xJ($))return $;let v=iL($,Jp),U=$.blocks;if(Array.isArray(U)){let I=Hp(U),b=typeof v.text==="string"?v.text:"";v.text=b?`${b}
|
|
311
|
+
${I}`:I,v._funnel_omitted=["blocks"]}return v},l_=($)=>{let v=iL($,wp);if(Array.isArray(v.files))v.files=v.files.map(Wp);if(Array.isArray(v.attachments))v.attachments=v.attachments.map(zp);return v};var Qp=new Set(["message","app_mention"]),Yp=new Set([void 0,"thread_broadcast","bot_message","file_share"]),Vp=1e4,X4=($,v)=>{let U=$[v];return typeof U==="string"?U:void 0};class lL{ownBotUserId;ownBotId;minify;now;dedup=new Map;constructor($){this.ownBotUserId=$.ownBotUserId,this.ownBotId=$.ownBotId,this.minify=$.minify??!0,this.now=$.now??(()=>Date.now())}process($){let v=X4($,"type");if(!v||!Qp.has(v))return{skip:!0,reason:"skip:type"};let U=X4($,"subtype");if(!Yp.has(U))return{skip:!0,reason:"skip:subtype"};let I=X4($,"channel")??"",b=X4($,"event_ts")??X4($,"ts")??"",D=`${I}:${b}`,u=this.now();if(this.dedup.has(D))return{skip:!0,reason:"skip:dedup"};this.dedup.set(D,u);for(let Y of this.dedup.keys())if((this.dedup.get(Y)??0)<u-Vp)this.dedup.delete(Y);let w=X4($,"user"),g=X4($,"bot_id");if(w===this.ownBotUserId)return{skip:!0,reason:"skip:self-user"};if(g===this.ownBotId)return{skip:!0,reason:"skip:self-bot"};let J=X4($,"text")??"",X=J.includes(`<@${this.ownBotUserId}>`),W=X4($,"thread_ts")??X4($,"ts")??"",G=X4($,"ts")??"",O=v==="app_mention"?"app_mention":"message",z=this.minify?l_($):$;return{skip:!1,event:{kind:"message",channel:I,user:w??"",rawText:J,text:Lp(J,this.ownBotUserId),threadTs:W,ts:G,isThreadRoot:W===G,mentioned:X,source:O},content:JSON.stringify(z),meta:{event_type:"slack",channel_id:I,user_id:w??"",mentioned:String(X),thread_ts:W},shouldReact:X,channel:I,timestamp:G}}}var Lp=($,v)=>$.replace(new RegExp(`<@${v}>`,"g"),"").trim();var Kp=H.object({ok:H.boolean(),user_id:H.string().optional(),bot_id:H.string().optional(),error:H.string().optional()}),qp="https://slack.com/api/auth.test";class fL extends Cb{config;env;flumeDeps;http;signal;preprocessEvent;onInteractive;processor=null;botToken="";constructor($){super({type:"slack",connectorId:$.config.id,channelId:$.channelId??null,logger:$.logger,diagnosticLog:$.diagnosticLog});this.config=$.config,this.env=$.env??process.env,this.flumeDeps=$.flumeDeps??{},this.http=$.http??new g4,this.signal=$.signal,this.preprocessEvent=$.preprocessEvent,this.onInteractive=$.onInteractive}async start($){this.diagnostics.recordConnection("started","");let v,U;try{v=o4({literal:this.config.appToken,envVar:this.config.appTokenEnv,env:this.env,label:`${this.config.name}.appToken`}),U=o4({literal:this.config.botToken,envVar:this.config.botTokenEnv,env:this.env,label:`${this.config.name}.botToken`})}catch(D){throw this.diagnostics.recordConnection("auth-failed",T$(D)),D}this.botToken=U;let I=await this.callAuthTest();if(!I.ok){let D=I.error??"auth.test returned ok=false";throw this.diagnostics.recordConnection("auth-failed",D),new F0(this.config.name,D)}this.processor=new lL({ownBotUserId:I.user_id??"",ownBotId:I.bot_id??"",minify:this.config.minify});let b=new x_({appToken:v,botToken:this.botToken});await this.runStart({source:b,onLog:OI(this.logger),deps:GI(this.flumeDeps),signal:this.signal,onEvent:(D)=>{if(D.source!=="slack")return Promise.resolve();return this.handleEvent(D,$)}})}onStop(){this.processor=null}async handleInteractive($){let v=crypto.randomUUID(),U=JSON.stringify($);if(this.diagnostics.recordRaw(v,U),!this.onInteractive){this.diagnostics.recordProcessed(v,"skip:no-interactive-handler","");return}let I=typeof $.type==="string"?$.type:"unknown";try{await this.onInteractive($),this.diagnostics.recordProcessed(v,`interactive:${I}`,"")}catch(b){let D=T$(b);this.diagnostics.recordProcessed(v,`interactive-error:${I}`,D),this.logger?.error(`slack interactive handler error (${I})`,{error:D})}}async callAuthTest(){let $;try{$=await(await this.http.fetch({method:"POST",url:qp,headers:{Authorization:`Bearer ${this.botToken}`,"Content-Type":"application/x-www-form-urlencoded"}})).text()}catch(U){throw this.diagnostics.recordConnection("auth-failed",T$(U)),U}let v=Kp.safeParse(f_($));if(!v.success)return{ok:!1,error:`non-JSON auth.test response: ${$.slice(0,200)}`};return v.data}async handleEvent($,v){if(!this.processor)return;if($.type==="interactive"){await this.handleInteractive($.data);return}let U=$.data.event;if(!Bp(U)){let w=crypto.randomUUID();this.diagnostics.recordRaw(w,JSON.stringify($.data)),this.diagnostics.recordProcessed(w,"skip:non-object-event","");return}let I=crypto.randomUUID(),b=JSON.stringify(U);this.diagnostics.recordRaw(I,b);let D=U;if(this.preprocessEvent){let w=await this.preprocessEvent(U);if(w===null){this.diagnostics.recordProcessed(I,"skip:preprocess",b);return}D=w}let u=this.processor.process(D);if(u.skip){this.diagnostics.recordProcessed(I,u.reason,b);return}await this.deliver(v,I,b,u.content,u.meta,u.shouldReact)}async deliver($,v,U,I,b,D){try{await $(I,b)}catch(u){this.diagnostics.recordProcessed(v,"emitted:delivery-failed",I||U),this.logger?.error("slack notify error",{error:T$(u)});return}if(this.diagnostics.recordProcessed(v,"emitted",I),D)this.postReaction(b).catch((u)=>{this.diagnostics.recordProcessed(v,"emitted:reaction-failed",T$(u)),this.logger?.warn("slack reaction failed",{error:T$(u)})})}async postReaction($){let v=await this.http.fetch({method:"POST",url:"https://slack.com/api/reactions.add",headers:{Authorization:`Bearer ${this.botToken}`,"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({channel:$.channel_id??"",timestamp:$.thread_ts??"",name:"eyes"}).toString()}),U=await v.text(),I=Pp(U);if(!I.ok)throw Error(`slack reactions.add: ${I.error??`status=${v.status}`}`)}}var Bp=($)=>typeof $==="object"&&$!==null&&!Array.isArray($),f_=($)=>{try{return JSON.parse($)}catch{return null}},Ap=H.object({ok:H.boolean(),error:H.string().optional()}),Pp=($)=>{let v=Ap.safeParse(f_($));if(!v.success)return{ok:!1,error:`non-JSON response: ${$.slice(0,200)}`};return v.data};var y_=($={})=>({type:"slack",toolExposed:!0,createListener(v,U){let I=v6.parse(v);return new fL({config:I,channelId:U.channelId,logger:U.logger,diagnosticLog:U.diagnosticLog,http:U.http,signal:U.signal,preprocessEvent:$.preprocessEvent,onInteractive:$.onInteractive})},createAdapter(v,U){return new rL({config:v6.parse(v),http:U.http})},secretTokens(v){let U=v6.parse(v);return[U.botToken,U.appToken].filter((I)=>I!==void 0)},buildConfig(v,U){return v6.parse({id:U.id,type:"slack",name:v.name,...typeof v.botToken==="string"?{botToken:v.botToken}:{},...typeof v.appToken==="string"?{appToken:v.appToken}:{},...typeof v.botTokenEnv==="string"?{botTokenEnv:v.botTokenEnv}:{},...typeof v.appTokenEnv==="string"?{appTokenEnv:v.appTokenEnv}:{},minify:typeof v.minify==="boolean"?v.minify:!0,createdAt:U.now,updatedAt:U.now})},applyUpdate(v,U,I){let b=v6.parse(v);return v6.parse({id:b.id,name:b.name,type:"slack",minify:b.minify,createdAt:b.createdAt,updatedAt:I.now,...ib("botToken","botTokenEnv",U,b),...ib("appToken","appTokenEnv",U,b)})},operations:{}});var lJ=()=>[y_(),Z_(),S_(),C_()];import{existsSync as q9$,readFileSync as B9$}from"fs";import{homedir as A9$}from"os";import{join as Kx}from"path";var DA$=Object.freeze({status:"aborted"});function M($,v,U){function I(w,g){if(!w._zod)Object.defineProperty(w,"_zod",{value:{def:g,constr:u,traits:new Set},enumerable:!1});if(w._zod.traits.has($))return;w._zod.traits.add($),v(w,g);let J=u.prototype,X=Object.keys(J);for(let W=0;W<X.length;W++){let G=X[W];if(!(G in w))w[G]=J[G].bind(w)}}let b=U?.Parent??Object;class D extends b{}Object.defineProperty(D,"name",{value:$});function u(w){var g;let J=U?.Parent?new D:this;I(J,w),(g=J._zod).deferred??(g.deferred=[]);for(let X of J._zod.deferred)X();return J}return Object.defineProperty(u,"init",{value:I}),Object.defineProperty(u,Symbol.hasInstance,{value:(w)=>{if(U?.Parent&&w instanceof U.Parent)return!0;return w?._zod?.traits?.has($)}}),Object.defineProperty(u,"name",{value:$}),u}var uA$=Symbol("zod_brand");class b6 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Z0 extends Error{constructor($){super(`Encountered unidirectional transform during encode: ${$}`);this.name="ZodEncodeError"}}var fJ={};function $4($){if($)Object.assign(fJ,$);return fJ}var L$={};e$(L$,{unwrapMessage:()=>T0,uint8ArrayToHex:()=>dp,uint8ArrayToBase64url:()=>op,uint8ArrayToBase64:()=>p_,stringifyPrimitive:()=>cJ,slugify:()=>mL,shallowClone:()=>m_,safeExtend:()=>lp,required:()=>hp,randomString:()=>Ep,propertyKeyTypes:()=>oL,promiseAllObject:()=>kp,primitiveTypes:()=>c_,prefixIssues:()=>D6,pick:()=>Cp,partial:()=>yp,parsedType:()=>pL,optionalKeys:()=>tL,omit:()=>ip,objectClone:()=>Fp,numKeys:()=>Rp,nullish:()=>E0,normalizeParams:()=>a,mergeDefs:()=>U6,merge:()=>fp,jsonStringifyReplacer:()=>zI,joinValues:()=>yJ,issue:()=>YI,isPlainObject:()=>f6,isObject:()=>xb,hexToUint8Array:()=>tp,getSizableOrigin:()=>t_,getParsedType:()=>np,getLengthableOrigin:()=>n0,getEnumValues:()=>k0,getElementAtPath:()=>Tp,floatSafeRemainder:()=>hL,finalizeIssue:()=>G4,extend:()=>xp,escapeRegex:()=>I6,esc:()=>hJ,defineLazy:()=>K$,createTransparentProxy:()=>rp,cloneDef:()=>Zp,clone:()=>W4,cleanRegex:()=>R0,cleanEnum:()=>mp,captureStackTrace:()=>mJ,cached:()=>QI,base64urlToUint8Array:()=>cp,base64ToUint8Array:()=>d_,assignProp:()=>l6,assertNotEqual:()=>Np,assertNever:()=>Mp,assertIs:()=>Sp,assertEqual:()=>jp,assert:()=>_p,allowsEval:()=>cL,aborted:()=>y6,NUMBER_FORMAT_RANGES:()=>dL,Class:()=>a_,BIGINT_FORMAT_RANGES:()=>o_});function jp($){return $}function Np($){return $}function Sp($){}function Mp($){throw Error("Unexpected value in exhaustive check")}function _p($){}function k0($){let v=Object.values($).filter((I)=>typeof I==="number");return Object.entries($).filter(([I,b])=>v.indexOf(+I)===-1).map(([I,b])=>b)}function yJ($,v="|"){return $.map((U)=>cJ(U)).join(v)}function zI($,v){if(typeof v==="bigint")return v.toString();return v}function QI($){return{get value(){{let U=$();return Object.defineProperty(this,"value",{value:U}),U}throw Error("cached value already set")}}}function E0($){return $===null||$===void 0}function R0($){let v=$.startsWith("^")?1:0,U=$.endsWith("$")?$.length-1:$.length;return $.slice(v,U)}function hL($,v){let U=($.toString().split(".")[1]||"").length,I=v.toString(),b=(I.split(".")[1]||"").length;if(b===0&&/\d?e-\d?/.test(I)){let g=I.match(/\d?e-(\d?)/);if(g?.[1])b=Number.parseInt(g[1])}let D=U>b?U:b,u=Number.parseInt($.toFixed(D).replace(".","")),w=Number.parseInt(v.toFixed(D).replace(".",""));return u%w/10**D}var h_=Symbol("evaluating");function K$($,v,U){let I=void 0;Object.defineProperty($,v,{get(){if(I===h_)return;if(I===void 0)I=h_,I=U();return I},set(b){Object.defineProperty($,v,{value:b})},configurable:!0})}function Fp($){return Object.create(Object.getPrototypeOf($),Object.getOwnPropertyDescriptors($))}function l6($,v,U){Object.defineProperty($,v,{value:U,writable:!0,enumerable:!0,configurable:!0})}function U6(...$){let v={};for(let U of $){let I=Object.getOwnPropertyDescriptors(U);Object.assign(v,I)}return Object.defineProperties({},v)}function Zp($){return U6($._zod.def)}function Tp($,v){if(!v)return $;return v.reduce((U,I)=>U?.[I],$)}function kp($){let v=Object.keys($),U=v.map((I)=>$[I]);return Promise.all(U).then((I)=>{let b={};for(let D=0;D<v.length;D++)b[v[D]]=I[D];return b})}function Ep($=10){let U="";for(let I=0;I<$;I++)U+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return U}function hJ($){return JSON.stringify($)}function mL($){return $.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var mJ="captureStackTrace"in Error?Error.captureStackTrace:(...$)=>{};function xb($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var cL=QI(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch($){return!1}});function f6($){if(xb($)===!1)return!1;let v=$.constructor;if(v===void 0)return!0;if(typeof v!=="function")return!0;let U=v.prototype;if(xb(U)===!1)return!1;if(Object.prototype.hasOwnProperty.call(U,"isPrototypeOf")===!1)return!1;return!0}function m_($){if(f6($))return{...$};if(Array.isArray($))return[...$];return $}function Rp($){let v=0;for(let U in $)if(Object.prototype.hasOwnProperty.call($,U))v++;return v}var np=($)=>{let v=typeof $;switch(v){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN($)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray($))return"array";if($===null)return"null";if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return"promise";if(typeof Map<"u"&&$ instanceof Map)return"map";if(typeof Set<"u"&&$ instanceof Set)return"set";if(typeof Date<"u"&&$ instanceof Date)return"date";if(typeof File<"u"&&$ instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${v}`)}},oL=new Set(["string","number","symbol"]),c_=new Set(["string","number","bigint","boolean","symbol","undefined"]);function I6($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function W4($,v,U){let I=new $._zod.constr(v??$._zod.def);if(!v||U?.parent)I._zod.parent=$;return I}function a($){let v=$;if(!v)return{};if(typeof v==="string")return{error:()=>v};if(v?.message!==void 0){if(v?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");v.error=v.message}if(delete v.message,typeof v.error==="string")return{...v,error:()=>v.error};return v}function rp($){let v;return new Proxy({},{get(U,I,b){return v??(v=$()),Reflect.get(v,I,b)},set(U,I,b,D){return v??(v=$()),Reflect.set(v,I,b,D)},has(U,I){return v??(v=$()),Reflect.has(v,I)},deleteProperty(U,I){return v??(v=$()),Reflect.deleteProperty(v,I)},ownKeys(U){return v??(v=$()),Reflect.ownKeys(v)},getOwnPropertyDescriptor(U,I){return v??(v=$()),Reflect.getOwnPropertyDescriptor(v,I)},defineProperty(U,I,b){return v??(v=$()),Reflect.defineProperty(v,I,b)}})}function cJ($){if(typeof $==="bigint")return $.toString()+"n";if(typeof $==="string")return`"${$}"`;return`${$}`}function tL($){return Object.keys($).filter((v)=>{return $[v]._zod.optin==="optional"&&$[v]._zod.optout==="optional"})}var dL={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},o_={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Cp($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let D=U6($._zod.def,{get shape(){let u={};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;u[w]=U.shape[w]}return l6(this,"shape",u),u},checks:[]});return W4($,D)}function ip($,v){let U=$._zod.def,I=U.checks;if(I&&I.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let D=U6($._zod.def,{get shape(){let u={...$._zod.def.shape};for(let w in v){if(!(w in U.shape))throw Error(`Unrecognized key: "${w}"`);if(!v[w])continue;delete u[w]}return l6(this,"shape",u),u},checks:[]});return W4($,D)}function xp($,v){if(!f6(v))throw Error("Invalid input to extend: expected a plain object");let U=$._zod.def.checks;if(U&&U.length>0){let D=$._zod.def.shape;for(let u in v)if(Object.getOwnPropertyDescriptor(D,u)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let b=U6($._zod.def,{get shape(){let D={...$._zod.def.shape,...v};return l6(this,"shape",D),D}});return W4($,b)}function lp($,v){if(!f6(v))throw Error("Invalid input to safeExtend: expected a plain object");let U=U6($._zod.def,{get shape(){let I={...$._zod.def.shape,...v};return l6(this,"shape",I),I}});return W4($,U)}function fp($,v){let U=U6($._zod.def,{get shape(){let I={...$._zod.def.shape,...v._zod.def.shape};return l6(this,"shape",I),I},get catchall(){return v._zod.def.catchall},checks:[]});return W4($,U)}function yp($,v,U){let b=v._zod.def.checks;if(b&&b.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let u=U6(v._zod.def,{get shape(){let w=v._zod.def.shape,g={...w};if(U)for(let J in U){if(!(J in w))throw Error(`Unrecognized key: "${J}"`);if(!U[J])continue;g[J]=$?new $({type:"optional",innerType:w[J]}):w[J]}else for(let J in w)g[J]=$?new $({type:"optional",innerType:w[J]}):w[J];return l6(this,"shape",g),g},checks:[]});return W4(v,u)}function hp($,v,U){let I=U6(v._zod.def,{get shape(){let b=v._zod.def.shape,D={...b};if(U)for(let u in U){if(!(u in D))throw Error(`Unrecognized key: "${u}"`);if(!U[u])continue;D[u]=new $({type:"nonoptional",innerType:b[u]})}else for(let u in b)D[u]=new $({type:"nonoptional",innerType:b[u]});return l6(this,"shape",D),D}});return W4(v,I)}function y6($,v=0){if($.aborted===!0)return!0;for(let U=v;U<$.issues.length;U++)if($.issues[U]?.continue!==!0)return!0;return!1}function D6($,v){return v.map((U)=>{var I;return(I=U).path??(I.path=[]),U.path.unshift($),U})}function T0($){return typeof $==="string"?$:$?.message}function G4($,v,U){let I={...$,path:$.path??[]};if(!$.message){let b=T0($.inst?._zod.def?.error?.($))??T0(v?.error?.($))??T0(U.customError?.($))??T0(U.localeError?.($))??"Invalid input";I.message=b}if(delete I.inst,delete I.continue,!v?.reportInput)delete I.input;return I}function t_($){if($ instanceof Set)return"set";if($ instanceof Map)return"map";if($ instanceof File)return"file";return"unknown"}function n0($){if(Array.isArray($))return"array";if(typeof $==="string")return"string";return"unknown"}function pL($){let v=typeof $;switch(v){case"number":return Number.isNaN($)?"nan":"number";case"object":{if($===null)return"null";if(Array.isArray($))return"array";let U=$;if(U&&Object.getPrototypeOf(U)!==Object.prototype&&"constructor"in U&&U.constructor)return U.constructor.name}}return v}function YI(...$){let[v,U,I]=$;if(typeof v==="string")return{message:v,code:"custom",input:U,inst:I};return{...v}}function mp($){return Object.entries($).filter(([v,U])=>{return Number.isNaN(Number.parseInt(v,10))}).map((v)=>v[1])}function d_($){let v=atob($),U=new Uint8Array(v.length);for(let I=0;I<v.length;I++)U[I]=v.charCodeAt(I);return U}function p_($){let v="";for(let U=0;U<$.length;U++)v+=String.fromCharCode($[U]);return btoa(v)}function cp($){let v=$.replace(/-/g,"+").replace(/_/g,"/"),U="=".repeat((4-v.length%4)%4);return d_(v+U)}function op($){return p_($).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function tp($){let v=$.replace(/^0x/,"");if(v.length%2!==0)throw Error("Invalid hex string length");let U=new Uint8Array(v.length/2);for(let I=0;I<v.length;I+=2)U[I/2]=Number.parseInt(v.slice(I,I+2),16);return U}function dp($){return Array.from($).map((v)=>v.toString(16).padStart(2,"0")).join("")}class a_{constructor(...$){}}var e_=($,v)=>{$.name="$ZodError",Object.defineProperty($,"_zod",{value:$._zod,enumerable:!1}),Object.defineProperty($,"issues",{value:v,enumerable:!1}),$.message=JSON.stringify(v,zI,2),Object.defineProperty($,"toString",{value:()=>$.message,enumerable:!1})},oJ=M("$ZodError",e_),aL=M("$ZodError",e_,{Parent:Error});function s_($,v=(U)=>U.message){let U={},I=[];for(let b of $.issues)if(b.path.length>0)U[b.path[0]]=U[b.path[0]]||[],U[b.path[0]].push(v(b));else I.push(v(b));return{formErrors:I,fieldErrors:U}}function $F($,v=(U)=>U.message){let U={_errors:[]},I=(b)=>{for(let D of b.issues)if(D.code==="invalid_union"&&D.errors.length)D.errors.map((u)=>I({issues:u}));else if(D.code==="invalid_key")I({issues:D.issues});else if(D.code==="invalid_element")I({issues:D.issues});else if(D.path.length===0)U._errors.push(v(D));else{let u=U,w=0;while(w<D.path.length){let g=D.path[w];if(w!==D.path.length-1)u[g]=u[g]||{_errors:[]};else u[g]=u[g]||{_errors:[]},u[g]._errors.push(v(D));u=u[g],w++}}};return I($),U}var tJ=($)=>(v,U,I,b)=>{let D=I?Object.assign(I,{async:!1}):{async:!1},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)throw new b6;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>G4(g,D,$4())));throw mJ(w,b?.callee),w}return u.value};var dJ=($)=>async(v,U,I,b)=>{let D=I?Object.assign(I,{async:!0}):{async:!0},u=v._zod.run({value:U,issues:[]},D);if(u instanceof Promise)u=await u;if(u.issues.length){let w=new(b?.Err??$)(u.issues.map((g)=>G4(g,D,$4())));throw mJ(w,b?.callee),w}return u.value};var r0=($)=>(v,U,I)=>{let b=I?{...I,async:!1}:{async:!1},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)throw new b6;return D.issues.length?{success:!1,error:new($??oJ)(D.issues.map((u)=>G4(u,b,$4())))}:{success:!0,data:D.value}},C0=r0(aL),i0=($)=>async(v,U,I)=>{let b=I?Object.assign(I,{async:!0}):{async:!0},D=v._zod.run({value:U,issues:[]},b);if(D instanceof Promise)D=await D;return D.issues.length?{success:!1,error:new $(D.issues.map((u)=>G4(u,b,$4())))}:{success:!0,data:D.value}},pJ=i0(aL),vF=($)=>(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return tJ($)(v,U,b)};var bF=($)=>(v,U,I)=>{return tJ($)(v,U,I)};var UF=($)=>async(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return dJ($)(v,U,b)};var IF=($)=>async(v,U,I)=>{return dJ($)(v,U,I)};var DF=($)=>(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return r0($)(v,U,b)};var uF=($)=>(v,U,I)=>{return r0($)(v,U,I)};var wF=($)=>async(v,U,I)=>{let b=I?Object.assign(I,{direction:"backward"}):{direction:"backward"};return i0($)(v,U,b)};var gF=($)=>async(v,U,I)=>{return i0($)(v,U,I)};var JF=/^[cC][^\s-]{8,}$/,XF=/^[0-9a-z]+$/,WF=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,GF=/^[0-9a-vA-V]{20}$/,OF=/^[A-Za-z0-9]{27}$/,HF=/^[a-zA-Z0-9_-]{21}$/,zF=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var QF=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,eL=($)=>{if(!$)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${$}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var YF=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var ap="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function VF(){return new RegExp(ap,"u")}var LF=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,KF=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var qF=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,BF=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,AF=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,sL=/^[A-Za-z0-9_-]*$/;var PF=/^\+[1-9]\d{6,14}$/,jF="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",NF=new RegExp(`^${jF}$`);function SF($){return typeof $.precision==="number"?$.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":$.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${$.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function MF($){return new RegExp(`^${SF($)}$`)}function _F($){let v=SF({precision:$.precision}),U=["Z"];if($.local)U.push("");if($.offset)U.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let I=`${v}(?:${U.join("|")})`;return new RegExp(`^${jF}T(?:${I})$`)}var FF=($)=>{let v=$?`[\\s\\S]{${$?.minimum??0},${$?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${v}$`)};var ZF=/^-?\d+$/,aJ=/^-?\d+(?:\.\d+)?$/,TF=/^(?:true|false)$/i,kF=/^null$/i;var EF=/^[^A-Z]*$/,RF=/^[^a-z]*$/;var wv=M("$ZodCheck",($,v)=>{var U;$._zod??($._zod={}),$._zod.def=v,(U=$._zod).onattach??(U.onattach=[])}),nF={number:"number",bigint:"bigint",object:"date"},$K=M("$ZodCheckLessThan",($,v)=>{wv.init($,v);let U=nF[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.maximum:b.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(v.value<D)if(v.inclusive)b.maximum=v.value;else b.exclusiveMaximum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value<=v.value:I.value<v.value)return;I.issues.push({origin:U,code:"too_big",maximum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),vK=M("$ZodCheckGreaterThan",($,v)=>{wv.init($,v);let U=nF[typeof v.value];$._zod.onattach.push((I)=>{let b=I._zod.bag,D=(v.inclusive?b.minimum:b.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(v.value>D)if(v.inclusive)b.minimum=v.value;else b.exclusiveMinimum=v.value}),$._zod.check=(I)=>{if(v.inclusive?I.value>=v.value:I.value>v.value)return;I.issues.push({origin:U,code:"too_small",minimum:typeof v.value==="object"?v.value.getTime():v.value,input:I.value,inclusive:v.inclusive,inst:$,continue:!v.abort})}}),rF=M("$ZodCheckMultipleOf",($,v)=>{wv.init($,v),$._zod.onattach.push((U)=>{var I;(I=U._zod.bag).multipleOf??(I.multipleOf=v.value)}),$._zod.check=(U)=>{if(typeof U.value!==typeof v.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof U.value==="bigint"?U.value%v.value===BigInt(0):hL(U.value,v.value)===0)return;U.issues.push({origin:typeof U.value,code:"not_multiple_of",divisor:v.value,input:U.value,inst:$,continue:!v.abort})}}),CF=M("$ZodCheckNumberFormat",($,v)=>{wv.init($,v),v.format=v.format||"float64";let U=v.format?.includes("int"),I=U?"int":"number",[b,D]=dL[v.format];$._zod.onattach.push((u)=>{let w=u._zod.bag;if(w.format=v.format,w.minimum=b,w.maximum=D,U)w.pattern=ZF}),$._zod.check=(u)=>{let w=u.value;if(U){if(!Number.isInteger(w)){u.issues.push({expected:I,format:v.format,code:"invalid_type",continue:!1,input:w,inst:$});return}if(!Number.isSafeInteger(w)){if(w>0)u.issues.push({input:w,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});else u.issues.push({input:w,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:$,origin:I,inclusive:!0,continue:!v.abort});return}}if(w<b)u.issues.push({origin:"number",input:w,code:"too_small",minimum:b,inclusive:!0,inst:$,continue:!v.abort});if(w>D)u.issues.push({origin:"number",input:w,code:"too_big",maximum:D,inclusive:!0,inst:$,continue:!v.abort})}});var iF=M("$ZodCheckMaxLength",($,v)=>{var U;wv.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!E0(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.maximum??Number.POSITIVE_INFINITY;if(v.maximum<b)I._zod.bag.maximum=v.maximum}),$._zod.check=(I)=>{let b=I.value;if(b.length<=v.maximum)return;let u=n0(b);I.issues.push({origin:u,code:"too_big",maximum:v.maximum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),xF=M("$ZodCheckMinLength",($,v)=>{var U;wv.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!E0(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(v.minimum>b)I._zod.bag.minimum=v.minimum}),$._zod.check=(I)=>{let b=I.value;if(b.length>=v.minimum)return;let u=n0(b);I.issues.push({origin:u,code:"too_small",minimum:v.minimum,inclusive:!0,input:b,inst:$,continue:!v.abort})}}),lF=M("$ZodCheckLengthEquals",($,v)=>{var U;wv.init($,v),(U=$._zod.def).when??(U.when=(I)=>{let b=I.value;return!E0(b)&&b.length!==void 0}),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.minimum=v.length,b.maximum=v.length,b.length=v.length}),$._zod.check=(I)=>{let b=I.value,D=b.length;if(D===v.length)return;let u=n0(b),w=D>v.length;I.issues.push({origin:u,...w?{code:"too_big",maximum:v.length}:{code:"too_small",minimum:v.length},inclusive:!0,exact:!0,input:I.value,inst:$,continue:!v.abort})}}),x0=M("$ZodCheckStringFormat",($,v)=>{var U,I;if(wv.init($,v),$._zod.onattach.push((b)=>{let D=b._zod.bag;if(D.format=v.format,v.pattern)D.patterns??(D.patterns=new Set),D.patterns.add(v.pattern)}),v.pattern)(U=$._zod).check??(U.check=(b)=>{if(v.pattern.lastIndex=0,v.pattern.test(b.value))return;b.issues.push({origin:"string",code:"invalid_format",format:v.format,input:b.value,...v.pattern?{pattern:v.pattern.toString()}:{},inst:$,continue:!v.abort})});else(I=$._zod).check??(I.check=()=>{})}),fF=M("$ZodCheckRegex",($,v)=>{x0.init($,v),$._zod.check=(U)=>{if(v.pattern.lastIndex=0,v.pattern.test(U.value))return;U.issues.push({origin:"string",code:"invalid_format",format:"regex",input:U.value,pattern:v.pattern.toString(),inst:$,continue:!v.abort})}}),yF=M("$ZodCheckLowerCase",($,v)=>{v.pattern??(v.pattern=EF),x0.init($,v)}),hF=M("$ZodCheckUpperCase",($,v)=>{v.pattern??(v.pattern=RF),x0.init($,v)}),mF=M("$ZodCheckIncludes",($,v)=>{wv.init($,v);let U=I6(v.includes),I=new RegExp(typeof v.position==="number"?`^.{${v.position}}${U}`:U);v.pattern=I,$._zod.onattach.push((b)=>{let D=b._zod.bag;D.patterns??(D.patterns=new Set),D.patterns.add(I)}),$._zod.check=(b)=>{if(b.value.includes(v.includes,v.position))return;b.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:v.includes,input:b.value,inst:$,continue:!v.abort})}}),cF=M("$ZodCheckStartsWith",($,v)=>{wv.init($,v);let U=new RegExp(`^${I6(v.prefix)}.*`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.startsWith(v.prefix))return;I.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:v.prefix,input:I.value,inst:$,continue:!v.abort})}}),oF=M("$ZodCheckEndsWith",($,v)=>{wv.init($,v);let U=new RegExp(`.*${I6(v.suffix)}$`);v.pattern??(v.pattern=U),$._zod.onattach.push((I)=>{let b=I._zod.bag;b.patterns??(b.patterns=new Set),b.patterns.add(U)}),$._zod.check=(I)=>{if(I.value.endsWith(v.suffix))return;I.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:v.suffix,input:I.value,inst:$,continue:!v.abort})}});var tF=M("$ZodCheckOverwrite",($,v)=>{wv.init($,v),$._zod.check=(U)=>{U.value=v.tx(U.value)}});class bK{constructor($=[]){if(this.content=[],this.indent=0,this)this.args=$}indented($){this.indent+=1,$(this),this.indent-=1}write($){if(typeof $==="function"){$(this,{execution:"sync"}),$(this,{execution:"async"});return}let U=$.split(`
|
|
312
312
|
`).filter((D)=>D),I=Math.min(...U.map((D)=>D.length-D.trimStart().length)),b=U.map((D)=>D.slice(I)).map((D)=>" ".repeat(this.indent*2)+D);for(let D of b)this.content.push(D)}compile(){let $=Function,v=this?.args,I=[...(this?.content??[""]).map((b)=>` ${b}`)];return new $(...v,I.join(`
|
|
313
|
-
`))}}var pF={major:4,minor:3,patch:6};var n$=M("$ZodType",($,v)=>{var U;$??($={}),$._zod.def=v,$._zod.bag=$._zod.bag||{},$._zod.version=pF;let I=[...$._zod.def.checks??[]];if($._zod.traits.has("$ZodCheck"))I.unshift($);for(let b of I)for(let D of b._zod.onattach)D($);if(I.length===0)(U=$._zod).deferred??(U.deferred=[]),$._zod.deferred?.push(()=>{$._zod.run=$._zod.parse});else{let b=(u,w,g)=>{let J=y6(u),X;for(let W of w){if(W._zod.def.when){if(!W._zod.def.when(u))continue}else if(J)continue;let G=u.issues.length,O=W._zod.check(u);if(O instanceof Promise&&g?.async===!1)throw new b6;if(X||O instanceof Promise)X=(X??Promise.resolve()).then(async()=>{if(await O,u.issues.length===G)return;if(!J)J=y6(u,G)});else{if(u.issues.length===G)continue;if(!J)J=y6(u,G)}}if(X)return X.then(()=>{return u});return u},D=(u,w,g)=>{if(y6(u))return u.aborted=!0,u;let J=b(w,I,g);if(J instanceof Promise){if(g.async===!1)throw new b6;return J.then((X)=>$._zod.parse(X,g))}return $._zod.parse(J,g)};$._zod.run=(u,w)=>{if(w.skipChecks)return $._zod.parse(u,w);if(w.direction==="backward"){let J=$._zod.parse({value:u.value,issues:[]},{...w,skipChecks:!0});if(J instanceof Promise)return J.then((X)=>{return D(X,u,w)});return D(J,u,w)}let g=$._zod.parse(u,w);if(g instanceof Promise){if(w.async===!1)throw new b6;return g.then((J)=>b(J,I,w))}return b(g,I,w)}}K$($,"~standard",()=>({validate:(b)=>{try{let D=C0($,b);return D.success?{value:D.data}:{issues:D.error?.issues}}catch(D){return pJ($,b).then((u)=>u.success?{value:u.data}:{issues:u.error?.issues})}},vendor:"zod",version:1}))}),vX=M("$ZodString",($,v)=>{n$.init($,v),$._zod.pattern=[...$?._zod.bag?.patterns??[]].pop()??FF($._zod.bag),$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=String(U.value)}catch(b){}if(typeof U.value==="string")return U;return U.issues.push({expected:"string",code:"invalid_type",input:U.value,inst:$}),U}}),r$=M("$ZodStringFormat",($,v)=>{x0.init($,v),vX.init($,v)}),D2=M("$ZodGUID",($,v)=>{v.pattern??(v.pattern=QF),r$.init($,v)}),u2=M("$ZodUUID",($,v)=>{if(v.version){let I={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[v.version];if(I===void 0)throw Error(`Invalid UUID version: "${v.version}"`);v.pattern??(v.pattern=eL(I))}else v.pattern??(v.pattern=eL());r$.init($,v)}),w2=M("$ZodEmail",($,v)=>{v.pattern??(v.pattern=YF),r$.init($,v)}),g2=M("$ZodURL",($,v)=>{r$.init($,v),$._zod.check=(U)=>{try{let I=U.value.trim(),b=new URL(I);if(v.hostname){if(v.hostname.lastIndex=0,!v.hostname.test(b.hostname))U.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:v.hostname.source,input:U.value,inst:$,continue:!v.abort})}if(v.protocol){if(v.protocol.lastIndex=0,!v.protocol.test(b.protocol.endsWith(":")?b.protocol.slice(0,-1):b.protocol))U.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:v.protocol.source,input:U.value,inst:$,continue:!v.abort})}if(v.normalize)U.value=b.href;else U.value=I;return}catch(I){U.issues.push({code:"invalid_format",format:"url",input:U.value,inst:$,continue:!v.abort})}}}),J2=M("$ZodEmoji",($,v)=>{v.pattern??(v.pattern=VF()),r$.init($,v)}),X2=M("$ZodNanoID",($,v)=>{v.pattern??(v.pattern=HF),r$.init($,v)}),W2=M("$ZodCUID",($,v)=>{v.pattern??(v.pattern=JF),r$.init($,v)}),G2=M("$ZodCUID2",($,v)=>{v.pattern??(v.pattern=XF),r$.init($,v)}),O2=M("$ZodULID",($,v)=>{v.pattern??(v.pattern=WF),r$.init($,v)}),H2=M("$ZodXID",($,v)=>{v.pattern??(v.pattern=GF),r$.init($,v)}),z2=M("$ZodKSUID",($,v)=>{v.pattern??(v.pattern=OF),r$.init($,v)}),Q2=M("$ZodISODateTime",($,v)=>{v.pattern??(v.pattern=_F(v)),r$.init($,v)}),Y2=M("$ZodISODate",($,v)=>{v.pattern??(v.pattern=NF),r$.init($,v)}),V2=M("$ZodISOTime",($,v)=>{v.pattern??(v.pattern=MF(v)),r$.init($,v)}),L2=M("$ZodISODuration",($,v)=>{v.pattern??(v.pattern=zF),r$.init($,v)}),K2=M("$ZodIPv4",($,v)=>{v.pattern??(v.pattern=LF),r$.init($,v),$._zod.bag.format="ipv4"}),q2=M("$ZodIPv6",($,v)=>{v.pattern??(v.pattern=KF),r$.init($,v),$._zod.bag.format="ipv6",$._zod.check=(U)=>{try{new URL(`http://[${U.value}]`)}catch{U.issues.push({code:"invalid_format",format:"ipv6",input:U.value,inst:$,continue:!v.abort})}}});var B2=M("$ZodCIDRv4",($,v)=>{v.pattern??(v.pattern=qF),r$.init($,v)}),A2=M("$ZodCIDRv6",($,v)=>{v.pattern??(v.pattern=BF),r$.init($,v),$._zod.check=(U)=>{let I=U.value.split("/");try{if(I.length!==2)throw Error();let[b,D]=I;if(!D)throw Error();let u=Number(D);if(`${u}`!==D)throw Error();if(u<0||u>128)throw Error();new URL(`http://[${b}]`)}catch{U.issues.push({code:"invalid_format",format:"cidrv6",input:U.value,inst:$,continue:!v.abort})}}});function P2($){if($==="")return!0;if($.length%4!==0)return!1;try{return atob($),!0}catch{return!1}}var j2=M("$ZodBase64",($,v)=>{v.pattern??(v.pattern=AF),r$.init($,v),$._zod.bag.contentEncoding="base64",$._zod.check=(U)=>{if(P2(U.value))return;U.issues.push({code:"invalid_format",format:"base64",input:U.value,inst:$,continue:!v.abort})}});function
|
|
313
|
+
`))}}var pF={major:4,minor:3,patch:6};var n$=M("$ZodType",($,v)=>{var U;$??($={}),$._zod.def=v,$._zod.bag=$._zod.bag||{},$._zod.version=pF;let I=[...$._zod.def.checks??[]];if($._zod.traits.has("$ZodCheck"))I.unshift($);for(let b of I)for(let D of b._zod.onattach)D($);if(I.length===0)(U=$._zod).deferred??(U.deferred=[]),$._zod.deferred?.push(()=>{$._zod.run=$._zod.parse});else{let b=(u,w,g)=>{let J=y6(u),X;for(let W of w){if(W._zod.def.when){if(!W._zod.def.when(u))continue}else if(J)continue;let G=u.issues.length,O=W._zod.check(u);if(O instanceof Promise&&g?.async===!1)throw new b6;if(X||O instanceof Promise)X=(X??Promise.resolve()).then(async()=>{if(await O,u.issues.length===G)return;if(!J)J=y6(u,G)});else{if(u.issues.length===G)continue;if(!J)J=y6(u,G)}}if(X)return X.then(()=>{return u});return u},D=(u,w,g)=>{if(y6(u))return u.aborted=!0,u;let J=b(w,I,g);if(J instanceof Promise){if(g.async===!1)throw new b6;return J.then((X)=>$._zod.parse(X,g))}return $._zod.parse(J,g)};$._zod.run=(u,w)=>{if(w.skipChecks)return $._zod.parse(u,w);if(w.direction==="backward"){let J=$._zod.parse({value:u.value,issues:[]},{...w,skipChecks:!0});if(J instanceof Promise)return J.then((X)=>{return D(X,u,w)});return D(J,u,w)}let g=$._zod.parse(u,w);if(g instanceof Promise){if(w.async===!1)throw new b6;return g.then((J)=>b(J,I,w))}return b(g,I,w)}}K$($,"~standard",()=>({validate:(b)=>{try{let D=C0($,b);return D.success?{value:D.data}:{issues:D.error?.issues}}catch(D){return pJ($,b).then((u)=>u.success?{value:u.data}:{issues:u.error?.issues})}},vendor:"zod",version:1}))}),vX=M("$ZodString",($,v)=>{n$.init($,v),$._zod.pattern=[...$?._zod.bag?.patterns??[]].pop()??FF($._zod.bag),$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=String(U.value)}catch(b){}if(typeof U.value==="string")return U;return U.issues.push({expected:"string",code:"invalid_type",input:U.value,inst:$}),U}}),r$=M("$ZodStringFormat",($,v)=>{x0.init($,v),vX.init($,v)}),D2=M("$ZodGUID",($,v)=>{v.pattern??(v.pattern=QF),r$.init($,v)}),u2=M("$ZodUUID",($,v)=>{if(v.version){let I={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[v.version];if(I===void 0)throw Error(`Invalid UUID version: "${v.version}"`);v.pattern??(v.pattern=eL(I))}else v.pattern??(v.pattern=eL());r$.init($,v)}),w2=M("$ZodEmail",($,v)=>{v.pattern??(v.pattern=YF),r$.init($,v)}),g2=M("$ZodURL",($,v)=>{r$.init($,v),$._zod.check=(U)=>{try{let I=U.value.trim(),b=new URL(I);if(v.hostname){if(v.hostname.lastIndex=0,!v.hostname.test(b.hostname))U.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:v.hostname.source,input:U.value,inst:$,continue:!v.abort})}if(v.protocol){if(v.protocol.lastIndex=0,!v.protocol.test(b.protocol.endsWith(":")?b.protocol.slice(0,-1):b.protocol))U.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:v.protocol.source,input:U.value,inst:$,continue:!v.abort})}if(v.normalize)U.value=b.href;else U.value=I;return}catch(I){U.issues.push({code:"invalid_format",format:"url",input:U.value,inst:$,continue:!v.abort})}}}),J2=M("$ZodEmoji",($,v)=>{v.pattern??(v.pattern=VF()),r$.init($,v)}),X2=M("$ZodNanoID",($,v)=>{v.pattern??(v.pattern=HF),r$.init($,v)}),W2=M("$ZodCUID",($,v)=>{v.pattern??(v.pattern=JF),r$.init($,v)}),G2=M("$ZodCUID2",($,v)=>{v.pattern??(v.pattern=XF),r$.init($,v)}),O2=M("$ZodULID",($,v)=>{v.pattern??(v.pattern=WF),r$.init($,v)}),H2=M("$ZodXID",($,v)=>{v.pattern??(v.pattern=GF),r$.init($,v)}),z2=M("$ZodKSUID",($,v)=>{v.pattern??(v.pattern=OF),r$.init($,v)}),Q2=M("$ZodISODateTime",($,v)=>{v.pattern??(v.pattern=_F(v)),r$.init($,v)}),Y2=M("$ZodISODate",($,v)=>{v.pattern??(v.pattern=NF),r$.init($,v)}),V2=M("$ZodISOTime",($,v)=>{v.pattern??(v.pattern=MF(v)),r$.init($,v)}),L2=M("$ZodISODuration",($,v)=>{v.pattern??(v.pattern=zF),r$.init($,v)}),K2=M("$ZodIPv4",($,v)=>{v.pattern??(v.pattern=LF),r$.init($,v),$._zod.bag.format="ipv4"}),q2=M("$ZodIPv6",($,v)=>{v.pattern??(v.pattern=KF),r$.init($,v),$._zod.bag.format="ipv6",$._zod.check=(U)=>{try{new URL(`http://[${U.value}]`)}catch{U.issues.push({code:"invalid_format",format:"ipv6",input:U.value,inst:$,continue:!v.abort})}}});var B2=M("$ZodCIDRv4",($,v)=>{v.pattern??(v.pattern=qF),r$.init($,v)}),A2=M("$ZodCIDRv6",($,v)=>{v.pattern??(v.pattern=BF),r$.init($,v),$._zod.check=(U)=>{let I=U.value.split("/");try{if(I.length!==2)throw Error();let[b,D]=I;if(!D)throw Error();let u=Number(D);if(`${u}`!==D)throw Error();if(u<0||u>128)throw Error();new URL(`http://[${b}]`)}catch{U.issues.push({code:"invalid_format",format:"cidrv6",input:U.value,inst:$,continue:!v.abort})}}});function P2($){if($==="")return!0;if($.length%4!==0)return!1;try{return atob($),!0}catch{return!1}}var j2=M("$ZodBase64",($,v)=>{v.pattern??(v.pattern=AF),r$.init($,v),$._zod.bag.contentEncoding="base64",$._zod.check=(U)=>{if(P2(U.value))return;U.issues.push({code:"invalid_format",format:"base64",input:U.value,inst:$,continue:!v.abort})}});function $a($){if(!sL.test($))return!1;let v=$.replace(/[-_]/g,(I)=>I==="-"?"+":"/"),U=v.padEnd(Math.ceil(v.length/4)*4,"=");return P2(U)}var N2=M("$ZodBase64URL",($,v)=>{v.pattern??(v.pattern=sL),r$.init($,v),$._zod.bag.contentEncoding="base64url",$._zod.check=(U)=>{if($a(U.value))return;U.issues.push({code:"invalid_format",format:"base64url",input:U.value,inst:$,continue:!v.abort})}}),S2=M("$ZodE164",($,v)=>{v.pattern??(v.pattern=PF),r$.init($,v)});function va($,v=null){try{let U=$.split(".");if(U.length!==3)return!1;let[I]=U;if(!I)return!1;let b=JSON.parse(atob(I));if("typ"in b&&b?.typ!=="JWT")return!1;if(!b.alg)return!1;if(v&&(!("alg"in b)||b.alg!==v))return!1;return!0}catch{return!1}}var M2=M("$ZodJWT",($,v)=>{r$.init($,v),$._zod.check=(U)=>{if(va(U.value,v.alg))return;U.issues.push({code:"invalid_format",format:"jwt",input:U.value,inst:$,continue:!v.abort})}});var IK=M("$ZodNumber",($,v)=>{n$.init($,v),$._zod.pattern=$._zod.bag.pattern??aJ,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=Number(U.value)}catch(u){}let b=U.value;if(typeof b==="number"&&!Number.isNaN(b)&&Number.isFinite(b))return U;let D=typeof b==="number"?Number.isNaN(b)?"NaN":!Number.isFinite(b)?"Infinity":void 0:void 0;return U.issues.push({expected:"number",code:"invalid_type",input:b,inst:$,...D?{received:D}:{}}),U}}),_2=M("$ZodNumberFormat",($,v)=>{CF.init($,v),IK.init($,v)}),F2=M("$ZodBoolean",($,v)=>{n$.init($,v),$._zod.pattern=TF,$._zod.parse=(U,I)=>{if(v.coerce)try{U.value=Boolean(U.value)}catch(D){}let b=U.value;if(typeof b==="boolean")return U;return U.issues.push({expected:"boolean",code:"invalid_type",input:b,inst:$}),U}});var Z2=M("$ZodNull",($,v)=>{n$.init($,v),$._zod.pattern=kF,$._zod.values=new Set([null]),$._zod.parse=(U,I)=>{let b=U.value;if(b===null)return U;return U.issues.push({expected:"null",code:"invalid_type",input:b,inst:$}),U}});var T2=M("$ZodUnknown",($,v)=>{n$.init($,v),$._zod.parse=(U)=>U}),k2=M("$ZodNever",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{return U.issues.push({expected:"never",code:"invalid_type",input:U.value,inst:$}),U}});function aF($,v,U){if($.issues.length)v.issues.push(...D6(U,$.issues));v.value[U]=$.value}var E2=M("$ZodArray",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(!Array.isArray(b))return U.issues.push({expected:"array",code:"invalid_type",input:b,inst:$}),U;U.value=Array(b.length);let D=[];for(let u=0;u<b.length;u++){let w=b[u],g=v.element._zod.run({value:w,issues:[]},I);if(g instanceof Promise)D.push(g.then((J)=>aF(J,U,u)));else aF(g,U,u)}if(D.length)return Promise.all(D).then(()=>U);return U}});function $X($,v,U,I,b){if($.issues.length){if(b&&!(U in I))return;v.issues.push(...D6(U,$.issues))}if($.value===void 0){if(U in I)v.value[U]=void 0}else v.value[U]=$.value}function R2($){let v=Object.keys($.shape);for(let I of v)if(!$.shape?.[I]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${I}": expected a Zod schema`);let U=tL($.shape);return{...$,keys:v,keySet:new Set(v),numKeys:v.length,optionalKeys:new Set(U)}}function n2($,v,U,I,b,D){let u=[],w=b.keySet,g=b.catchall._zod,J=g.def.type,X=g.optout==="optional";for(let W in v){if(w.has(W))continue;if(J==="never"){u.push(W);continue}let G=g.run({value:v[W],issues:[]},I);if(G instanceof Promise)$.push(G.then((O)=>$X(O,U,W,v,X)));else $X(G,U,W,v,X)}if(u.length)U.issues.push({code:"unrecognized_keys",keys:u,input:v,inst:D});if(!$.length)return U;return Promise.all($).then(()=>{return U})}var ba=M("$ZodObject",($,v)=>{if(n$.init($,v),!Object.getOwnPropertyDescriptor(v,"shape")?.get){let w=v.shape;Object.defineProperty(v,"shape",{get:()=>{let g={...w};return Object.defineProperty(v,"shape",{value:g}),g}})}let I=QI(()=>R2(v));K$($._zod,"propValues",()=>{let w=v.shape,g={};for(let J in w){let X=w[J]._zod;if(X.values){g[J]??(g[J]=new Set);for(let W of X.values)g[J].add(W)}}return g});let b=xb,D=v.catchall,u;$._zod.parse=(w,g)=>{u??(u=I.value);let J=w.value;if(!b(J))return w.issues.push({expected:"object",code:"invalid_type",input:J,inst:$}),w;w.value={};let X=[],W=u.shape;for(let G of u.keys){let O=W[G],z=O._zod.optout==="optional",Q=O._zod.run({value:J[G],issues:[]},g);if(Q instanceof Promise)X.push(Q.then((Y)=>$X(Y,w,G,J,z)));else $X(Q,w,G,J,z)}if(!D)return X.length?Promise.all(X).then(()=>w):w;return n2(X,J,w,g,I.value,$)}}),r2=M("$ZodObjectJIT",($,v)=>{ba.init($,v);let U=$._zod.parse,I=QI(()=>R2(v)),b=(G)=>{let O=new bK(["shape","payload","ctx"]),z=I.value,Q=(S)=>{let j=hJ(S);return`shape[${j}]._zod.run({ value: input[${j}], issues: [] }, ctx)`};O.write("const input = payload.value;");let Y=Object.create(null),K=0;for(let S of z.keys)Y[S]=`key_${K++}`;O.write("const newResult = {};");for(let S of z.keys){let j=Y[S],A=hJ(S),s=G[S]?._zod?.optout==="optional";if(O.write(`const ${j} = ${Q(S)};`),s)O.write(`
|
|
314
314
|
if (${j}.issues.length) {
|
|
315
315
|
if (${A} in input) {
|
|
316
316
|
payload.issues = payload.issues.concat(${j}.issues.map(iss => ({
|
|
@@ -344,11 +344,11 @@ ${I}`:I,v._funnel_omitted=["blocks"]}return v},l_=($)=>{let v=iL($,gp);if(Array.
|
|
|
344
344
|
newResult[${A}] = ${j}.value;
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
-
`)}O.write("payload.value = newResult;"),O.write("return payload;");let F=O.compile();return(S,j)=>F(G,S,j)},D,u=xb,w=!fJ.jitless,J=w&&cL.value,X=v.catchall,W;$._zod.parse=(G,O)=>{W??(W=I.value);let z=G.value;if(!u(z))return G.issues.push({expected:"object",code:"invalid_type",input:z,inst:$}),G;if(w&&J&&O?.async===!1&&O.jitless!==!0){if(!D)D=b(v.shape);if(G=D(G,O),!X)return G;return n2([],z,G,O,W,$)}return U(G,O)}});function eF($,v,U,I){for(let D of $)if(D.issues.length===0)return v.value=D.value,v;let b=$.filter((D)=>!y6(D));if(b.length===1)return v.value=b[0].value,b[0];return v.issues.push({code:"invalid_union",input:v.value,inst:U,errors:$.map((D)=>D.issues.map((u)=>G4(u,I,$4())))}),v}var DK=M("$ZodUnion",($,v)=>{n$.init($,v),K$($._zod,"optin",()=>v.options.some((b)=>b._zod.optin==="optional")?"optional":void 0),K$($._zod,"optout",()=>v.options.some((b)=>b._zod.optout==="optional")?"optional":void 0),K$($._zod,"values",()=>{if(v.options.every((b)=>b._zod.values))return new Set(v.options.flatMap((b)=>Array.from(b._zod.values)));return}),K$($._zod,"pattern",()=>{if(v.options.every((b)=>b._zod.pattern)){let b=v.options.map((D)=>D._zod.pattern);return new RegExp(`^(${b.map((D)=>R0(D.source)).join("|")})$`)}return});let U=v.options.length===1,I=v.options[0]._zod.run;$._zod.parse=(b,D)=>{if(U)return I(b,D);let u=!1,w=[];for(let g of v.options){let J=g._zod.run({value:b.value,issues:[]},D);if(J instanceof Promise)w.push(J),u=!0;else{if(J.issues.length===0)return J;w.push(J)}}if(!u)return eF(w,b,$,D);return Promise.all(w).then((g)=>{return eF(g,b,$,D)})}});var C2=M("$ZodDiscriminatedUnion",($,v)=>{v.inclusive=!1,DK.init($,v);let U=$._zod.parse;K$($._zod,"propValues",()=>{let b={};for(let D of v.options){let u=D._zod.propValues;if(!u||Object.keys(u).length===0)throw Error(`Invalid discriminated union option at index "${v.options.indexOf(D)}"`);for(let[w,g]of Object.entries(u)){if(!b[w])b[w]=new Set;for(let J of g)b[w].add(J)}}return b});let I=QI(()=>{let b=v.options,D=new Map;for(let u of b){let w=u._zod.propValues?.[v.discriminator];if(!w||w.size===0)throw Error(`Invalid discriminated union option at index "${v.options.indexOf(u)}"`);for(let g of w){if(D.has(g))throw Error(`Duplicate discriminator value "${String(g)}"`);D.set(g,u)}}return D});$._zod.parse=(b,D)=>{let u=b.value;if(!xb(u))return b.issues.push({code:"invalid_type",expected:"object",input:u,inst:$}),b;let w=I.value.get(u?.[v.discriminator]);if(w)return w._zod.run(b,D);if(v.unionFallback)return U(b,D);return b.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:v.discriminator,input:u,path:[v.discriminator],inst:$}),b}}),i2=M("$ZodIntersection",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{let b=U.value,D=v.left._zod.run({value:b,issues:[]},I),u=v.right._zod.run({value:b,issues:[]},I);if(D instanceof Promise||u instanceof Promise)return Promise.all([D,u]).then(([g,J])=>{return sF(U,g,J)});return sF(U,D,u)}});function UK($,v){if($===v)return{valid:!0,data:$};if($ instanceof Date&&v instanceof Date&&+$===+v)return{valid:!0,data:$};if(f6($)&&f6(v)){let U=Object.keys(v),I=Object.keys($).filter((D)=>U.indexOf(D)!==-1),b={...$,...v};for(let D of I){let u=UK($[D],v[D]);if(!u.valid)return{valid:!1,mergeErrorPath:[D,...u.mergeErrorPath]};b[D]=u.data}return{valid:!0,data:b}}if(Array.isArray($)&&Array.isArray(v)){if($.length!==v.length)return{valid:!1,mergeErrorPath:[]};let U=[];for(let I=0;I<$.length;I++){let b=$[I],D=v[I],u=UK(b,D);if(!u.valid)return{valid:!1,mergeErrorPath:[I,...u.mergeErrorPath]};U.push(u.data)}return{valid:!0,data:U}}return{valid:!1,mergeErrorPath:[]}}function sF($,v,U){let I=new Map,b;for(let w of v.issues)if(w.code==="unrecognized_keys"){b??(b=w);for(let g of w.keys){if(!I.has(g))I.set(g,{});I.get(g).l=!0}}else $.issues.push(w);for(let w of U.issues)if(w.code==="unrecognized_keys")for(let g of w.keys){if(!I.has(g))I.set(g,{});I.get(g).r=!0}else $.issues.push(w);let D=[...I].filter(([,w])=>w.l&&w.r).map(([w])=>w);if(D.length&&b)$.issues.push({...b,keys:D});if(y6($))return $;let u=UK(v.value,U.value);if(!u.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(u.mergeErrorPath)}`);return $.value=u.data,$}var x2=M("$ZodRecord",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(!f6(b))return U.issues.push({expected:"record",code:"invalid_type",input:b,inst:$}),U;let D=[],u=v.keyType._zod.values;if(u){U.value={};let w=new Set;for(let J of u)if(typeof J==="string"||typeof J==="number"||typeof J==="symbol"){w.add(typeof J==="number"?J.toString():J);let X=v.valueType._zod.run({value:b[J],issues:[]},I);if(X instanceof Promise)D.push(X.then((W)=>{if(W.issues.length)U.issues.push(...D6(J,W.issues));U.value[J]=W.value}));else{if(X.issues.length)U.issues.push(...D6(J,X.issues));U.value[J]=X.value}}let g;for(let J in b)if(!w.has(J))g=g??[],g.push(J);if(g&&g.length>0)U.issues.push({code:"unrecognized_keys",input:b,inst:$,keys:g})}else{U.value={};for(let w of Reflect.ownKeys(b)){if(w==="__proto__")continue;let g=v.keyType._zod.run({value:w,issues:[]},I);if(g instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof w==="string"&&aJ.test(w)&&g.issues.length){let W=v.keyType._zod.run({value:Number(w),issues:[]},I);if(W instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(W.issues.length===0)g=W}if(g.issues.length){if(v.mode==="loose")U.value[w]=b[w];else U.issues.push({code:"invalid_key",origin:"record",issues:g.issues.map((W)=>G4(W,I,$4())),input:w,path:[w],inst:$});continue}let X=v.valueType._zod.run({value:b[w],issues:[]},I);if(X instanceof Promise)D.push(X.then((W)=>{if(W.issues.length)U.issues.push(...D6(w,W.issues));U.value[g.value]=W.value}));else{if(X.issues.length)U.issues.push(...D6(w,X.issues));U.value[g.value]=X.value}}}if(D.length)return Promise.all(D).then(()=>U);return U}});var l2=M("$ZodEnum",($,v)=>{n$.init($,v);let U=k0(v.entries),I=new Set(U);$._zod.values=I,$._zod.pattern=new RegExp(`^(${U.filter((b)=>oL.has(typeof b)).map((b)=>typeof b==="string"?I6(b):b.toString()).join("|")})$`),$._zod.parse=(b,D)=>{let u=b.value;if(I.has(u))return b;return b.issues.push({code:"invalid_value",values:U,input:u,inst:$}),b}}),f2=M("$ZodLiteral",($,v)=>{if(n$.init($,v),v.values.length===0)throw Error("Cannot create literal schema with no valid values");let U=new Set(v.values);$._zod.values=U,$._zod.pattern=new RegExp(`^(${v.values.map((I)=>typeof I==="string"?I6(I):I?I6(I.toString()):String(I)).join("|")})$`),$._zod.parse=(I,b)=>{let D=I.value;if(U.has(D))return I;return I.issues.push({code:"invalid_value",values:v.values,input:D,inst:$}),I}});var y2=M("$ZodTransform",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{if(I.direction==="backward")throw new Z0($.constructor.name);let b=v.transform(U.value,U);if(I.async)return(b instanceof Promise?b:Promise.resolve(b)).then((u)=>{return U.value=u,U});if(b instanceof Promise)throw new b6;return U.value=b,U}});function $2($,v){if($.issues.length&&v===void 0)return{issues:[],value:void 0};return $}var uK=M("$ZodOptional",($,v)=>{n$.init($,v),$._zod.optin="optional",$._zod.optout="optional",K$($._zod,"values",()=>{return v.innerType._zod.values?new Set([...v.innerType._zod.values,void 0]):void 0}),K$($._zod,"pattern",()=>{let U=v.innerType._zod.pattern;return U?new RegExp(`^(${R0(U.source)})?$`):void 0}),$._zod.parse=(U,I)=>{if(v.innerType._zod.optin==="optional"){let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>$2(D,U.value));return $2(b,U.value)}if(U.value===void 0)return U;return v.innerType._zod.run(U,I)}}),h2=M("$ZodExactOptional",($,v)=>{uK.init($,v),K$($._zod,"values",()=>v.innerType._zod.values),K$($._zod,"pattern",()=>v.innerType._zod.pattern),$._zod.parse=(U,I)=>{return v.innerType._zod.run(U,I)}}),m2=M("$ZodNullable",($,v)=>{n$.init($,v),K$($._zod,"optin",()=>v.innerType._zod.optin),K$($._zod,"optout",()=>v.innerType._zod.optout),K$($._zod,"pattern",()=>{let U=v.innerType._zod.pattern;return U?new RegExp(`^(${R0(U.source)}|null)$`):void 0}),K$($._zod,"values",()=>{return v.innerType._zod.values?new Set([...v.innerType._zod.values,null]):void 0}),$._zod.parse=(U,I)=>{if(U.value===null)return U;return v.innerType._zod.run(U,I)}}),c2=M("$ZodDefault",($,v)=>{n$.init($,v),$._zod.optin="optional",K$($._zod,"values",()=>v.innerType._zod.values),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);if(U.value===void 0)return U.value=v.defaultValue,U;let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>v2(D,v));return v2(b,v)}});function v2($,v){if($.value===void 0)$.value=v.defaultValue;return $}var o2=M("$ZodPrefault",($,v)=>{n$.init($,v),$._zod.optin="optional",K$($._zod,"values",()=>v.innerType._zod.values),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);if(U.value===void 0)U.value=v.defaultValue;return v.innerType._zod.run(U,I)}}),t2=M("$ZodNonOptional",($,v)=>{n$.init($,v),K$($._zod,"values",()=>{let U=v.innerType._zod.values;return U?new Set([...U].filter((I)=>I!==void 0)):void 0}),$._zod.parse=(U,I)=>{let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>b2(D,$));return b2(b,$)}});function b2($,v){if(!$.issues.length&&$.value===void 0)$.issues.push({code:"invalid_type",expected:"nonoptional",input:$.value,inst:v});return $}var d2=M("$ZodCatch",($,v)=>{n$.init($,v),K$($._zod,"optin",()=>v.innerType._zod.optin),K$($._zod,"optout",()=>v.innerType._zod.optout),K$($._zod,"values",()=>v.innerType._zod.values),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>{if(U.value=D.value,D.issues.length)U.value=v.catchValue({...U,error:{issues:D.issues.map((u)=>G4(u,I,$4()))},input:U.value}),U.issues=[];return U});if(U.value=b.value,b.issues.length)U.value=v.catchValue({...U,error:{issues:b.issues.map((D)=>G4(D,I,$4()))},input:U.value}),U.issues=[];return U}});var p2=M("$ZodPipe",($,v)=>{n$.init($,v),K$($._zod,"values",()=>v.in._zod.values),K$($._zod,"optin",()=>v.in._zod.optin),K$($._zod,"optout",()=>v.out._zod.optout),K$($._zod,"propValues",()=>v.in._zod.propValues),$._zod.parse=(U,I)=>{if(I.direction==="backward"){let D=v.out._zod.run(U,I);if(D instanceof Promise)return D.then((u)=>sJ(u,v.in,I));return sJ(D,v.in,I)}let b=v.in._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>sJ(D,v.out,I));return sJ(b,v.out,I)}});function sJ($,v,U){if($.issues.length)return $.aborted=!0,$;return v._zod.run({value:$.value,issues:$.issues},U)}var a2=M("$ZodReadonly",($,v)=>{n$.init($,v),K$($._zod,"propValues",()=>v.innerType._zod.propValues),K$($._zod,"values",()=>v.innerType._zod.values),K$($._zod,"optin",()=>v.innerType?._zod?.optin),K$($._zod,"optout",()=>v.innerType?._zod?.optout),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then(U2);return U2(b)}});function U2($){return $.value=Object.freeze($.value),$}var e2=M("$ZodCustom",($,v)=>{wv.init($,v),n$.init($,v),$._zod.parse=(U,I)=>{return U},$._zod.check=(U)=>{let I=U.value,b=v.fn(I);if(b instanceof Promise)return b.then((D)=>I2(D,U,I,$));I2(b,U,I,$);return}});function I2($,v,U,I){if(!$){let b={code:"custom",input:U,inst:I,path:[...I._zod.def.path??[]],continue:!I._zod.def.abort};if(I._zod.def.params)b.params=I._zod.def.params;v.issues.push(YI(b))}}var Ia=()=>{let $={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function v(b){return $[b]??null}let U={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},I={nan:"NaN"};return(b)=>{switch(b.code){case"invalid_type":{let D=I[b.expected]??b.expected,u=pL(b.input),w=I[u]??u;return`Invalid input: expected ${D}, received ${w}`}case"invalid_value":if(b.values.length===1)return`Invalid input: expected ${cJ(b.values[0])}`;return`Invalid option: expected one of ${yJ(b.values,"|")}`;case"too_big":{let D=b.inclusive?"<=":"<",u=v(b.origin);if(u)return`Too big: expected ${b.origin??"value"} to have ${D}${b.maximum.toString()} ${u.unit??"elements"}`;return`Too big: expected ${b.origin??"value"} to be ${D}${b.maximum.toString()}`}case"too_small":{let D=b.inclusive?">=":">",u=v(b.origin);if(u)return`Too small: expected ${b.origin} to have ${D}${b.minimum.toString()} ${u.unit}`;return`Too small: expected ${b.origin} to be ${D}${b.minimum.toString()}`}case"invalid_format":{let D=b;if(D.format==="starts_with")return`Invalid string: must start with "${D.prefix}"`;if(D.format==="ends_with")return`Invalid string: must end with "${D.suffix}"`;if(D.format==="includes")return`Invalid string: must include "${D.includes}"`;if(D.format==="regex")return`Invalid string: must match pattern ${D.pattern}`;return`Invalid ${U[D.format]??b.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${b.divisor}`;case"unrecognized_keys":return`Unrecognized key${b.keys.length>1?"s":""}: ${yJ(b.keys,", ")}`;case"invalid_key":return`Invalid key in ${b.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${b.origin}`;default:return"Invalid input"}}};function wK(){return{localeError:Ia()}}var s2,BA$=Symbol("ZodOutput"),AA$=Symbol("ZodInput");class $Z{constructor(){this._map=new WeakMap,this._idmap=new Map}add($,...v){let U=v[0];if(this._map.set($,U),U&&typeof U==="object"&&"id"in U)this._idmap.set(U.id,$);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove($){let v=this._map.get($);if(v&&typeof v==="object"&&"id"in v)this._idmap.delete(v.id);return this._map.delete($),this}get($){let v=$._zod.parent;if(v){let U={...this.get(v)??{}};delete U.id;let I={...U,...this._map.get($)};return Object.keys(I).length?I:void 0}return this._map.get($)}has($){return this._map.has($)}}function Da(){return new $Z}(s2=globalThis).__zod_globalRegistry??(s2.__zod_globalRegistry=Da());var lb=globalThis.__zod_globalRegistry;function vZ($,v){return new $({type:"string",...a(v)})}function bZ($,v){return new $({type:"string",format:"email",check:"string_format",abort:!1,...a(v)})}function gK($,v){return new $({type:"string",format:"guid",check:"string_format",abort:!1,...a(v)})}function UZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,...a(v)})}function IZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...a(v)})}function DZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...a(v)})}function uZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...a(v)})}function wZ($,v){return new $({type:"string",format:"url",check:"string_format",abort:!1,...a(v)})}function gZ($,v){return new $({type:"string",format:"emoji",check:"string_format",abort:!1,...a(v)})}function JZ($,v){return new $({type:"string",format:"nanoid",check:"string_format",abort:!1,...a(v)})}function XZ($,v){return new $({type:"string",format:"cuid",check:"string_format",abort:!1,...a(v)})}function WZ($,v){return new $({type:"string",format:"cuid2",check:"string_format",abort:!1,...a(v)})}function GZ($,v){return new $({type:"string",format:"ulid",check:"string_format",abort:!1,...a(v)})}function OZ($,v){return new $({type:"string",format:"xid",check:"string_format",abort:!1,...a(v)})}function HZ($,v){return new $({type:"string",format:"ksuid",check:"string_format",abort:!1,...a(v)})}function zZ($,v){return new $({type:"string",format:"ipv4",check:"string_format",abort:!1,...a(v)})}function QZ($,v){return new $({type:"string",format:"ipv6",check:"string_format",abort:!1,...a(v)})}function YZ($,v){return new $({type:"string",format:"cidrv4",check:"string_format",abort:!1,...a(v)})}function VZ($,v){return new $({type:"string",format:"cidrv6",check:"string_format",abort:!1,...a(v)})}function LZ($,v){return new $({type:"string",format:"base64",check:"string_format",abort:!1,...a(v)})}function KZ($,v){return new $({type:"string",format:"base64url",check:"string_format",abort:!1,...a(v)})}function qZ($,v){return new $({type:"string",format:"e164",check:"string_format",abort:!1,...a(v)})}function BZ($,v){return new $({type:"string",format:"jwt",check:"string_format",abort:!1,...a(v)})}function AZ($,v){return new $({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...a(v)})}function PZ($,v){return new $({type:"string",format:"date",check:"string_format",...a(v)})}function jZ($,v){return new $({type:"string",format:"time",check:"string_format",precision:null,...a(v)})}function NZ($,v){return new $({type:"string",format:"duration",check:"string_format",...a(v)})}function SZ($,v){return new $({type:"number",checks:[],...a(v)})}function MZ($,v){return new $({type:"number",check:"number_format",abort:!1,format:"safeint",...a(v)})}function _Z($,v){return new $({type:"boolean",...a(v)})}function FZ($,v){return new $({type:"null",...a(v)})}function ZZ($){return new $({type:"unknown"})}function TZ($,v){return new $({type:"never",...a(v)})}function bX($,v){return new $K({check:"less_than",...a(v),value:$,inclusive:!1})}function l0($,v){return new $K({check:"less_than",...a(v),value:$,inclusive:!0})}function UX($,v){return new vK({check:"greater_than",...a(v),value:$,inclusive:!1})}function f0($,v){return new vK({check:"greater_than",...a(v),value:$,inclusive:!0})}function IX($,v){return new rF({check:"multiple_of",...a(v),value:$})}function DX($,v){return new iF({check:"max_length",...a(v),maximum:$})}function VI($,v){return new xF({check:"min_length",...a(v),minimum:$})}function uX($,v){return new lF({check:"length_equals",...a(v),length:$})}function JK($,v){return new fF({check:"string_format",format:"regex",...a(v),pattern:$})}function XK($){return new yF({check:"string_format",format:"lowercase",...a($)})}function WK($){return new hF({check:"string_format",format:"uppercase",...a($)})}function GK($,v){return new mF({check:"string_format",format:"includes",...a(v),includes:$})}function OK($,v){return new cF({check:"string_format",format:"starts_with",...a(v),prefix:$})}function HK($,v){return new oF({check:"string_format",format:"ends_with",...a(v),suffix:$})}function h6($){return new tF({check:"overwrite",tx:$})}function zK($){return h6((v)=>v.normalize($))}function QK(){return h6(($)=>$.trim())}function YK(){return h6(($)=>$.toLowerCase())}function VK(){return h6(($)=>$.toUpperCase())}function LK(){return h6(($)=>mL($))}function kZ($,v,U){return new $({type:"array",element:v,...a(U)})}function EZ($,v,U){let I=a(U);return I.abort??(I.abort=!0),new $({type:"custom",check:"custom",fn:v,...I})}function RZ($,v,U){return new $({type:"custom",check:"custom",fn:v,...a(U)})}function nZ($){let v=ua((U)=>{return U.addIssue=(I)=>{if(typeof I==="string")U.issues.push(YI(I,U.value,v._zod.def));else{let b=I;if(b.fatal)b.continue=!1;b.code??(b.code="custom"),b.input??(b.input=U.value),b.inst??(b.inst=v),b.continue??(b.continue=!v._zod.def.abort),U.issues.push(YI(b))}},$(U.value,U)});return v}function ua($,v){let U=new wv({check:"custom",...a(v)});return U._zod.check=$,U}function KK($){let v=$?.target??"draft-2020-12";if(v==="draft-4")v="draft-04";if(v==="draft-7")v="draft-07";return{processors:$.processors??{},metadataRegistry:$?.metadata??lb,target:v,unrepresentable:$?.unrepresentable??"throw",override:$?.override??(()=>{}),io:$?.io??"output",counter:0,seen:new Map,cycles:$?.cycles??"ref",reused:$?.reused??"inline",external:$?.external??void 0}}function p$($,v,U={path:[],schemaPath:[]}){var I;let b=$._zod.def,D=v.seen.get($);if(D){if(D.count++,U.schemaPath.includes($))D.cycle=U.path;return D.schema}let u={schema:{},count:1,cycle:void 0,path:U.path};v.seen.set($,u);let w=$._zod.toJSONSchema?.();if(w)u.schema=w;else{let X={...U,schemaPath:[...U.schemaPath,$],path:U.path};if($._zod.processJSONSchema)$._zod.processJSONSchema(v,u.schema,X);else{let G=u.schema,O=v.processors[b.type];if(!O)throw Error(`[toJSONSchema]: Non-representable type encountered: ${b.type}`);O($,v,G,X)}let W=$._zod.parent;if(W){if(!u.ref)u.ref=W;p$(W,v,X),v.seen.get(W).isParent=!0}}let g=v.metadataRegistry.get($);if(g)Object.assign(u.schema,g);if(v.io==="input"&&Sv($))delete u.schema.examples,delete u.schema.default;if(v.io==="input"&&u.schema._prefault)(I=u.schema).default??(I.default=u.schema._prefault);return delete u.schema._prefault,v.seen.get($).schema}function qK($,v){let U=$.seen.get(v);if(!U)throw Error("Unprocessed schema. This is a bug in Zod.");let I=new Map;for(let u of $.seen.entries()){let w=$.metadataRegistry.get(u[0])?.id;if(w){let g=I.get(w);if(g&&g!==u[0])throw Error(`Duplicate schema id "${w}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);I.set(w,u[0])}}let b=(u)=>{let w=$.target==="draft-2020-12"?"$defs":"definitions";if($.external){let W=$.external.registry.get(u[0])?.id,G=$.external.uri??((z)=>z);if(W)return{ref:G(W)};let O=u[1].defId??u[1].schema.id??`schema${$.counter++}`;return u[1].defId=O,{defId:O,ref:`${G("__shared")}#/${w}/${O}`}}if(u[1]===U)return{ref:"#"};let J=`${"#"}/${w}/`,X=u[1].schema.id??`__schema${$.counter++}`;return{defId:X,ref:J+X}},D=(u)=>{if(u[1].schema.$ref)return;let w=u[1],{ref:g,defId:J}=b(u);if(w.def={...w.schema},J)w.defId=J;let X=w.schema;for(let W in X)delete X[W];X.$ref=g};if($.cycles==="throw")for(let u of $.seen.entries()){let w=u[1];if(w.cycle)throw Error(`Cycle detected: #/${w.cycle?.join("/")}/<root>
|
|
347
|
+
`)}O.write("payload.value = newResult;"),O.write("return payload;");let F=O.compile();return(S,j)=>F(G,S,j)},D,u=xb,w=!fJ.jitless,J=w&&cL.value,X=v.catchall,W;$._zod.parse=(G,O)=>{W??(W=I.value);let z=G.value;if(!u(z))return G.issues.push({expected:"object",code:"invalid_type",input:z,inst:$}),G;if(w&&J&&O?.async===!1&&O.jitless!==!0){if(!D)D=b(v.shape);if(G=D(G,O),!X)return G;return n2([],z,G,O,W,$)}return U(G,O)}});function eF($,v,U,I){for(let D of $)if(D.issues.length===0)return v.value=D.value,v;let b=$.filter((D)=>!y6(D));if(b.length===1)return v.value=b[0].value,b[0];return v.issues.push({code:"invalid_union",input:v.value,inst:U,errors:$.map((D)=>D.issues.map((u)=>G4(u,I,$4())))}),v}var DK=M("$ZodUnion",($,v)=>{n$.init($,v),K$($._zod,"optin",()=>v.options.some((b)=>b._zod.optin==="optional")?"optional":void 0),K$($._zod,"optout",()=>v.options.some((b)=>b._zod.optout==="optional")?"optional":void 0),K$($._zod,"values",()=>{if(v.options.every((b)=>b._zod.values))return new Set(v.options.flatMap((b)=>Array.from(b._zod.values)));return}),K$($._zod,"pattern",()=>{if(v.options.every((b)=>b._zod.pattern)){let b=v.options.map((D)=>D._zod.pattern);return new RegExp(`^(${b.map((D)=>R0(D.source)).join("|")})$`)}return});let U=v.options.length===1,I=v.options[0]._zod.run;$._zod.parse=(b,D)=>{if(U)return I(b,D);let u=!1,w=[];for(let g of v.options){let J=g._zod.run({value:b.value,issues:[]},D);if(J instanceof Promise)w.push(J),u=!0;else{if(J.issues.length===0)return J;w.push(J)}}if(!u)return eF(w,b,$,D);return Promise.all(w).then((g)=>{return eF(g,b,$,D)})}});var C2=M("$ZodDiscriminatedUnion",($,v)=>{v.inclusive=!1,DK.init($,v);let U=$._zod.parse;K$($._zod,"propValues",()=>{let b={};for(let D of v.options){let u=D._zod.propValues;if(!u||Object.keys(u).length===0)throw Error(`Invalid discriminated union option at index "${v.options.indexOf(D)}"`);for(let[w,g]of Object.entries(u)){if(!b[w])b[w]=new Set;for(let J of g)b[w].add(J)}}return b});let I=QI(()=>{let b=v.options,D=new Map;for(let u of b){let w=u._zod.propValues?.[v.discriminator];if(!w||w.size===0)throw Error(`Invalid discriminated union option at index "${v.options.indexOf(u)}"`);for(let g of w){if(D.has(g))throw Error(`Duplicate discriminator value "${String(g)}"`);D.set(g,u)}}return D});$._zod.parse=(b,D)=>{let u=b.value;if(!xb(u))return b.issues.push({code:"invalid_type",expected:"object",input:u,inst:$}),b;let w=I.value.get(u?.[v.discriminator]);if(w)return w._zod.run(b,D);if(v.unionFallback)return U(b,D);return b.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:v.discriminator,input:u,path:[v.discriminator],inst:$}),b}}),i2=M("$ZodIntersection",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{let b=U.value,D=v.left._zod.run({value:b,issues:[]},I),u=v.right._zod.run({value:b,issues:[]},I);if(D instanceof Promise||u instanceof Promise)return Promise.all([D,u]).then(([g,J])=>{return sF(U,g,J)});return sF(U,D,u)}});function UK($,v){if($===v)return{valid:!0,data:$};if($ instanceof Date&&v instanceof Date&&+$===+v)return{valid:!0,data:$};if(f6($)&&f6(v)){let U=Object.keys(v),I=Object.keys($).filter((D)=>U.indexOf(D)!==-1),b={...$,...v};for(let D of I){let u=UK($[D],v[D]);if(!u.valid)return{valid:!1,mergeErrorPath:[D,...u.mergeErrorPath]};b[D]=u.data}return{valid:!0,data:b}}if(Array.isArray($)&&Array.isArray(v)){if($.length!==v.length)return{valid:!1,mergeErrorPath:[]};let U=[];for(let I=0;I<$.length;I++){let b=$[I],D=v[I],u=UK(b,D);if(!u.valid)return{valid:!1,mergeErrorPath:[I,...u.mergeErrorPath]};U.push(u.data)}return{valid:!0,data:U}}return{valid:!1,mergeErrorPath:[]}}function sF($,v,U){let I=new Map,b;for(let w of v.issues)if(w.code==="unrecognized_keys"){b??(b=w);for(let g of w.keys){if(!I.has(g))I.set(g,{});I.get(g).l=!0}}else $.issues.push(w);for(let w of U.issues)if(w.code==="unrecognized_keys")for(let g of w.keys){if(!I.has(g))I.set(g,{});I.get(g).r=!0}else $.issues.push(w);let D=[...I].filter(([,w])=>w.l&&w.r).map(([w])=>w);if(D.length&&b)$.issues.push({...b,keys:D});if(y6($))return $;let u=UK(v.value,U.value);if(!u.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(u.mergeErrorPath)}`);return $.value=u.data,$}var x2=M("$ZodRecord",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{let b=U.value;if(!f6(b))return U.issues.push({expected:"record",code:"invalid_type",input:b,inst:$}),U;let D=[],u=v.keyType._zod.values;if(u){U.value={};let w=new Set;for(let J of u)if(typeof J==="string"||typeof J==="number"||typeof J==="symbol"){w.add(typeof J==="number"?J.toString():J);let X=v.valueType._zod.run({value:b[J],issues:[]},I);if(X instanceof Promise)D.push(X.then((W)=>{if(W.issues.length)U.issues.push(...D6(J,W.issues));U.value[J]=W.value}));else{if(X.issues.length)U.issues.push(...D6(J,X.issues));U.value[J]=X.value}}let g;for(let J in b)if(!w.has(J))g=g??[],g.push(J);if(g&&g.length>0)U.issues.push({code:"unrecognized_keys",input:b,inst:$,keys:g})}else{U.value={};for(let w of Reflect.ownKeys(b)){if(w==="__proto__")continue;let g=v.keyType._zod.run({value:w,issues:[]},I);if(g instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof w==="string"&&aJ.test(w)&&g.issues.length){let W=v.keyType._zod.run({value:Number(w),issues:[]},I);if(W instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(W.issues.length===0)g=W}if(g.issues.length){if(v.mode==="loose")U.value[w]=b[w];else U.issues.push({code:"invalid_key",origin:"record",issues:g.issues.map((W)=>G4(W,I,$4())),input:w,path:[w],inst:$});continue}let X=v.valueType._zod.run({value:b[w],issues:[]},I);if(X instanceof Promise)D.push(X.then((W)=>{if(W.issues.length)U.issues.push(...D6(w,W.issues));U.value[g.value]=W.value}));else{if(X.issues.length)U.issues.push(...D6(w,X.issues));U.value[g.value]=X.value}}}if(D.length)return Promise.all(D).then(()=>U);return U}});var l2=M("$ZodEnum",($,v)=>{n$.init($,v);let U=k0(v.entries),I=new Set(U);$._zod.values=I,$._zod.pattern=new RegExp(`^(${U.filter((b)=>oL.has(typeof b)).map((b)=>typeof b==="string"?I6(b):b.toString()).join("|")})$`),$._zod.parse=(b,D)=>{let u=b.value;if(I.has(u))return b;return b.issues.push({code:"invalid_value",values:U,input:u,inst:$}),b}}),f2=M("$ZodLiteral",($,v)=>{if(n$.init($,v),v.values.length===0)throw Error("Cannot create literal schema with no valid values");let U=new Set(v.values);$._zod.values=U,$._zod.pattern=new RegExp(`^(${v.values.map((I)=>typeof I==="string"?I6(I):I?I6(I.toString()):String(I)).join("|")})$`),$._zod.parse=(I,b)=>{let D=I.value;if(U.has(D))return I;return I.issues.push({code:"invalid_value",values:v.values,input:D,inst:$}),I}});var y2=M("$ZodTransform",($,v)=>{n$.init($,v),$._zod.parse=(U,I)=>{if(I.direction==="backward")throw new Z0($.constructor.name);let b=v.transform(U.value,U);if(I.async)return(b instanceof Promise?b:Promise.resolve(b)).then((u)=>{return U.value=u,U});if(b instanceof Promise)throw new b6;return U.value=b,U}});function $2($,v){if($.issues.length&&v===void 0)return{issues:[],value:void 0};return $}var uK=M("$ZodOptional",($,v)=>{n$.init($,v),$._zod.optin="optional",$._zod.optout="optional",K$($._zod,"values",()=>{return v.innerType._zod.values?new Set([...v.innerType._zod.values,void 0]):void 0}),K$($._zod,"pattern",()=>{let U=v.innerType._zod.pattern;return U?new RegExp(`^(${R0(U.source)})?$`):void 0}),$._zod.parse=(U,I)=>{if(v.innerType._zod.optin==="optional"){let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>$2(D,U.value));return $2(b,U.value)}if(U.value===void 0)return U;return v.innerType._zod.run(U,I)}}),h2=M("$ZodExactOptional",($,v)=>{uK.init($,v),K$($._zod,"values",()=>v.innerType._zod.values),K$($._zod,"pattern",()=>v.innerType._zod.pattern),$._zod.parse=(U,I)=>{return v.innerType._zod.run(U,I)}}),m2=M("$ZodNullable",($,v)=>{n$.init($,v),K$($._zod,"optin",()=>v.innerType._zod.optin),K$($._zod,"optout",()=>v.innerType._zod.optout),K$($._zod,"pattern",()=>{let U=v.innerType._zod.pattern;return U?new RegExp(`^(${R0(U.source)}|null)$`):void 0}),K$($._zod,"values",()=>{return v.innerType._zod.values?new Set([...v.innerType._zod.values,null]):void 0}),$._zod.parse=(U,I)=>{if(U.value===null)return U;return v.innerType._zod.run(U,I)}}),c2=M("$ZodDefault",($,v)=>{n$.init($,v),$._zod.optin="optional",K$($._zod,"values",()=>v.innerType._zod.values),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);if(U.value===void 0)return U.value=v.defaultValue,U;let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>v2(D,v));return v2(b,v)}});function v2($,v){if($.value===void 0)$.value=v.defaultValue;return $}var o2=M("$ZodPrefault",($,v)=>{n$.init($,v),$._zod.optin="optional",K$($._zod,"values",()=>v.innerType._zod.values),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);if(U.value===void 0)U.value=v.defaultValue;return v.innerType._zod.run(U,I)}}),t2=M("$ZodNonOptional",($,v)=>{n$.init($,v),K$($._zod,"values",()=>{let U=v.innerType._zod.values;return U?new Set([...U].filter((I)=>I!==void 0)):void 0}),$._zod.parse=(U,I)=>{let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>b2(D,$));return b2(b,$)}});function b2($,v){if(!$.issues.length&&$.value===void 0)$.issues.push({code:"invalid_type",expected:"nonoptional",input:$.value,inst:v});return $}var d2=M("$ZodCatch",($,v)=>{n$.init($,v),K$($._zod,"optin",()=>v.innerType._zod.optin),K$($._zod,"optout",()=>v.innerType._zod.optout),K$($._zod,"values",()=>v.innerType._zod.values),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>{if(U.value=D.value,D.issues.length)U.value=v.catchValue({...U,error:{issues:D.issues.map((u)=>G4(u,I,$4()))},input:U.value}),U.issues=[];return U});if(U.value=b.value,b.issues.length)U.value=v.catchValue({...U,error:{issues:b.issues.map((D)=>G4(D,I,$4()))},input:U.value}),U.issues=[];return U}});var p2=M("$ZodPipe",($,v)=>{n$.init($,v),K$($._zod,"values",()=>v.in._zod.values),K$($._zod,"optin",()=>v.in._zod.optin),K$($._zod,"optout",()=>v.out._zod.optout),K$($._zod,"propValues",()=>v.in._zod.propValues),$._zod.parse=(U,I)=>{if(I.direction==="backward"){let D=v.out._zod.run(U,I);if(D instanceof Promise)return D.then((u)=>sJ(u,v.in,I));return sJ(D,v.in,I)}let b=v.in._zod.run(U,I);if(b instanceof Promise)return b.then((D)=>sJ(D,v.out,I));return sJ(b,v.out,I)}});function sJ($,v,U){if($.issues.length)return $.aborted=!0,$;return v._zod.run({value:$.value,issues:$.issues},U)}var a2=M("$ZodReadonly",($,v)=>{n$.init($,v),K$($._zod,"propValues",()=>v.innerType._zod.propValues),K$($._zod,"values",()=>v.innerType._zod.values),K$($._zod,"optin",()=>v.innerType?._zod?.optin),K$($._zod,"optout",()=>v.innerType?._zod?.optout),$._zod.parse=(U,I)=>{if(I.direction==="backward")return v.innerType._zod.run(U,I);let b=v.innerType._zod.run(U,I);if(b instanceof Promise)return b.then(U2);return U2(b)}});function U2($){return $.value=Object.freeze($.value),$}var e2=M("$ZodCustom",($,v)=>{wv.init($,v),n$.init($,v),$._zod.parse=(U,I)=>{return U},$._zod.check=(U)=>{let I=U.value,b=v.fn(I);if(b instanceof Promise)return b.then((D)=>I2(D,U,I,$));I2(b,U,I,$);return}});function I2($,v,U,I){if(!$){let b={code:"custom",input:U,inst:I,path:[...I._zod.def.path??[]],continue:!I._zod.def.abort};if(I._zod.def.params)b.params=I._zod.def.params;v.issues.push(YI(b))}}var Ua=()=>{let $={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function v(b){return $[b]??null}let U={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},I={nan:"NaN"};return(b)=>{switch(b.code){case"invalid_type":{let D=I[b.expected]??b.expected,u=pL(b.input),w=I[u]??u;return`Invalid input: expected ${D}, received ${w}`}case"invalid_value":if(b.values.length===1)return`Invalid input: expected ${cJ(b.values[0])}`;return`Invalid option: expected one of ${yJ(b.values,"|")}`;case"too_big":{let D=b.inclusive?"<=":"<",u=v(b.origin);if(u)return`Too big: expected ${b.origin??"value"} to have ${D}${b.maximum.toString()} ${u.unit??"elements"}`;return`Too big: expected ${b.origin??"value"} to be ${D}${b.maximum.toString()}`}case"too_small":{let D=b.inclusive?">=":">",u=v(b.origin);if(u)return`Too small: expected ${b.origin} to have ${D}${b.minimum.toString()} ${u.unit}`;return`Too small: expected ${b.origin} to be ${D}${b.minimum.toString()}`}case"invalid_format":{let D=b;if(D.format==="starts_with")return`Invalid string: must start with "${D.prefix}"`;if(D.format==="ends_with")return`Invalid string: must end with "${D.suffix}"`;if(D.format==="includes")return`Invalid string: must include "${D.includes}"`;if(D.format==="regex")return`Invalid string: must match pattern ${D.pattern}`;return`Invalid ${U[D.format]??b.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${b.divisor}`;case"unrecognized_keys":return`Unrecognized key${b.keys.length>1?"s":""}: ${yJ(b.keys,", ")}`;case"invalid_key":return`Invalid key in ${b.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${b.origin}`;default:return"Invalid input"}}};function wK(){return{localeError:Ua()}}var s2,qA$=Symbol("ZodOutput"),BA$=Symbol("ZodInput");class $Z{constructor(){this._map=new WeakMap,this._idmap=new Map}add($,...v){let U=v[0];if(this._map.set($,U),U&&typeof U==="object"&&"id"in U)this._idmap.set(U.id,$);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove($){let v=this._map.get($);if(v&&typeof v==="object"&&"id"in v)this._idmap.delete(v.id);return this._map.delete($),this}get($){let v=$._zod.parent;if(v){let U={...this.get(v)??{}};delete U.id;let I={...U,...this._map.get($)};return Object.keys(I).length?I:void 0}return this._map.get($)}has($){return this._map.has($)}}function Ia(){return new $Z}(s2=globalThis).__zod_globalRegistry??(s2.__zod_globalRegistry=Ia());var lb=globalThis.__zod_globalRegistry;function vZ($,v){return new $({type:"string",...a(v)})}function bZ($,v){return new $({type:"string",format:"email",check:"string_format",abort:!1,...a(v)})}function gK($,v){return new $({type:"string",format:"guid",check:"string_format",abort:!1,...a(v)})}function UZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,...a(v)})}function IZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...a(v)})}function DZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...a(v)})}function uZ($,v){return new $({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...a(v)})}function wZ($,v){return new $({type:"string",format:"url",check:"string_format",abort:!1,...a(v)})}function gZ($,v){return new $({type:"string",format:"emoji",check:"string_format",abort:!1,...a(v)})}function JZ($,v){return new $({type:"string",format:"nanoid",check:"string_format",abort:!1,...a(v)})}function XZ($,v){return new $({type:"string",format:"cuid",check:"string_format",abort:!1,...a(v)})}function WZ($,v){return new $({type:"string",format:"cuid2",check:"string_format",abort:!1,...a(v)})}function GZ($,v){return new $({type:"string",format:"ulid",check:"string_format",abort:!1,...a(v)})}function OZ($,v){return new $({type:"string",format:"xid",check:"string_format",abort:!1,...a(v)})}function HZ($,v){return new $({type:"string",format:"ksuid",check:"string_format",abort:!1,...a(v)})}function zZ($,v){return new $({type:"string",format:"ipv4",check:"string_format",abort:!1,...a(v)})}function QZ($,v){return new $({type:"string",format:"ipv6",check:"string_format",abort:!1,...a(v)})}function YZ($,v){return new $({type:"string",format:"cidrv4",check:"string_format",abort:!1,...a(v)})}function VZ($,v){return new $({type:"string",format:"cidrv6",check:"string_format",abort:!1,...a(v)})}function LZ($,v){return new $({type:"string",format:"base64",check:"string_format",abort:!1,...a(v)})}function KZ($,v){return new $({type:"string",format:"base64url",check:"string_format",abort:!1,...a(v)})}function qZ($,v){return new $({type:"string",format:"e164",check:"string_format",abort:!1,...a(v)})}function BZ($,v){return new $({type:"string",format:"jwt",check:"string_format",abort:!1,...a(v)})}function AZ($,v){return new $({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...a(v)})}function PZ($,v){return new $({type:"string",format:"date",check:"string_format",...a(v)})}function jZ($,v){return new $({type:"string",format:"time",check:"string_format",precision:null,...a(v)})}function NZ($,v){return new $({type:"string",format:"duration",check:"string_format",...a(v)})}function SZ($,v){return new $({type:"number",checks:[],...a(v)})}function MZ($,v){return new $({type:"number",check:"number_format",abort:!1,format:"safeint",...a(v)})}function _Z($,v){return new $({type:"boolean",...a(v)})}function FZ($,v){return new $({type:"null",...a(v)})}function ZZ($){return new $({type:"unknown"})}function TZ($,v){return new $({type:"never",...a(v)})}function bX($,v){return new $K({check:"less_than",...a(v),value:$,inclusive:!1})}function l0($,v){return new $K({check:"less_than",...a(v),value:$,inclusive:!0})}function UX($,v){return new vK({check:"greater_than",...a(v),value:$,inclusive:!1})}function f0($,v){return new vK({check:"greater_than",...a(v),value:$,inclusive:!0})}function IX($,v){return new rF({check:"multiple_of",...a(v),value:$})}function DX($,v){return new iF({check:"max_length",...a(v),maximum:$})}function VI($,v){return new xF({check:"min_length",...a(v),minimum:$})}function uX($,v){return new lF({check:"length_equals",...a(v),length:$})}function JK($,v){return new fF({check:"string_format",format:"regex",...a(v),pattern:$})}function XK($){return new yF({check:"string_format",format:"lowercase",...a($)})}function WK($){return new hF({check:"string_format",format:"uppercase",...a($)})}function GK($,v){return new mF({check:"string_format",format:"includes",...a(v),includes:$})}function OK($,v){return new cF({check:"string_format",format:"starts_with",...a(v),prefix:$})}function HK($,v){return new oF({check:"string_format",format:"ends_with",...a(v),suffix:$})}function h6($){return new tF({check:"overwrite",tx:$})}function zK($){return h6((v)=>v.normalize($))}function QK(){return h6(($)=>$.trim())}function YK(){return h6(($)=>$.toLowerCase())}function VK(){return h6(($)=>$.toUpperCase())}function LK(){return h6(($)=>mL($))}function kZ($,v,U){return new $({type:"array",element:v,...a(U)})}function EZ($,v,U){let I=a(U);return I.abort??(I.abort=!0),new $({type:"custom",check:"custom",fn:v,...I})}function RZ($,v,U){return new $({type:"custom",check:"custom",fn:v,...a(U)})}function nZ($){let v=Da((U)=>{return U.addIssue=(I)=>{if(typeof I==="string")U.issues.push(YI(I,U.value,v._zod.def));else{let b=I;if(b.fatal)b.continue=!1;b.code??(b.code="custom"),b.input??(b.input=U.value),b.inst??(b.inst=v),b.continue??(b.continue=!v._zod.def.abort),U.issues.push(YI(b))}},$(U.value,U)});return v}function Da($,v){let U=new wv({check:"custom",...a(v)});return U._zod.check=$,U}function KK($){let v=$?.target??"draft-2020-12";if(v==="draft-4")v="draft-04";if(v==="draft-7")v="draft-07";return{processors:$.processors??{},metadataRegistry:$?.metadata??lb,target:v,unrepresentable:$?.unrepresentable??"throw",override:$?.override??(()=>{}),io:$?.io??"output",counter:0,seen:new Map,cycles:$?.cycles??"ref",reused:$?.reused??"inline",external:$?.external??void 0}}function p$($,v,U={path:[],schemaPath:[]}){var I;let b=$._zod.def,D=v.seen.get($);if(D){if(D.count++,U.schemaPath.includes($))D.cycle=U.path;return D.schema}let u={schema:{},count:1,cycle:void 0,path:U.path};v.seen.set($,u);let w=$._zod.toJSONSchema?.();if(w)u.schema=w;else{let X={...U,schemaPath:[...U.schemaPath,$],path:U.path};if($._zod.processJSONSchema)$._zod.processJSONSchema(v,u.schema,X);else{let G=u.schema,O=v.processors[b.type];if(!O)throw Error(`[toJSONSchema]: Non-representable type encountered: ${b.type}`);O($,v,G,X)}let W=$._zod.parent;if(W){if(!u.ref)u.ref=W;p$(W,v,X),v.seen.get(W).isParent=!0}}let g=v.metadataRegistry.get($);if(g)Object.assign(u.schema,g);if(v.io==="input"&&Sv($))delete u.schema.examples,delete u.schema.default;if(v.io==="input"&&u.schema._prefault)(I=u.schema).default??(I.default=u.schema._prefault);return delete u.schema._prefault,v.seen.get($).schema}function qK($,v){let U=$.seen.get(v);if(!U)throw Error("Unprocessed schema. This is a bug in Zod.");let I=new Map;for(let u of $.seen.entries()){let w=$.metadataRegistry.get(u[0])?.id;if(w){let g=I.get(w);if(g&&g!==u[0])throw Error(`Duplicate schema id "${w}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);I.set(w,u[0])}}let b=(u)=>{let w=$.target==="draft-2020-12"?"$defs":"definitions";if($.external){let W=$.external.registry.get(u[0])?.id,G=$.external.uri??((z)=>z);if(W)return{ref:G(W)};let O=u[1].defId??u[1].schema.id??`schema${$.counter++}`;return u[1].defId=O,{defId:O,ref:`${G("__shared")}#/${w}/${O}`}}if(u[1]===U)return{ref:"#"};let J=`${"#"}/${w}/`,X=u[1].schema.id??`__schema${$.counter++}`;return{defId:X,ref:J+X}},D=(u)=>{if(u[1].schema.$ref)return;let w=u[1],{ref:g,defId:J}=b(u);if(w.def={...w.schema},J)w.defId=J;let X=w.schema;for(let W in X)delete X[W];X.$ref=g};if($.cycles==="throw")for(let u of $.seen.entries()){let w=u[1];if(w.cycle)throw Error(`Cycle detected: #/${w.cycle?.join("/")}/<root>
|
|
348
348
|
|
|
349
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let u of $.seen.entries()){let w=u[1];if(v===u[0]){D(u);continue}if($.external){let J=$.external.registry.get(u[0])?.id;if(v!==u[0]&&J){D(u);continue}}if($.metadataRegistry.get(u[0])?.id){D(u);continue}if(w.cycle){D(u);continue}if(w.count>1){if($.reused==="ref"){D(u);continue}}}}function BK($,v){let U=$.seen.get(v);if(!U)throw Error("Unprocessed schema. This is a bug in Zod.");let I=(u)=>{let w=$.seen.get(u);if(w.ref===null)return;let g=w.def??w.schema,J={...g},X=w.ref;if(w.ref=null,X){I(X);let G=$.seen.get(X),O=G.schema;if(O.$ref&&($.target==="draft-07"||$.target==="draft-04"||$.target==="openapi-3.0"))g.allOf=g.allOf??[],g.allOf.push(O);else Object.assign(g,O);if(Object.assign(g,J),u._zod.parent===X)for(let Q in g){if(Q==="$ref"||Q==="allOf")continue;if(!(Q in J))delete g[Q]}if(O.$ref&&G.def)for(let Q in g){if(Q==="$ref"||Q==="allOf")continue;if(Q in G.def&&JSON.stringify(g[Q])===JSON.stringify(G.def[Q]))delete g[Q]}}let W=u._zod.parent;if(W&&W!==X){I(W);let G=$.seen.get(W);if(G?.schema.$ref){if(g.$ref=G.schema.$ref,G.def)for(let O in g){if(O==="$ref"||O==="allOf")continue;if(O in G.def&&JSON.stringify(g[O])===JSON.stringify(G.def[O]))delete g[O]}}}$.override({zodSchema:u,jsonSchema:g,path:w.path??[]})};for(let u of[...$.seen.entries()].reverse())I(u[0]);let b={};if($.target==="draft-2020-12")b.$schema="https://json-schema.org/draft/2020-12/schema";else if($.target==="draft-07")b.$schema="http://json-schema.org/draft-07/schema#";else if($.target==="draft-04")b.$schema="http://json-schema.org/draft-04/schema#";else if($.target==="openapi-3.0");if($.external?.uri){let u=$.external.registry.get(v)?.id;if(!u)throw Error("Schema is missing an `id` property");b.$id=$.external.uri(u)}Object.assign(b,U.def??U.schema);let D=$.external?.defs??{};for(let u of $.seen.entries()){let w=u[1];if(w.def&&w.defId)D[w.defId]=w.def}if($.external);else if(Object.keys(D).length>0)if($.target==="draft-2020-12")b.$defs=D;else b.definitions=D;try{let u=JSON.parse(JSON.stringify(b));return Object.defineProperty(u,"~standard",{value:{...v["~standard"],jsonSchema:{input:y0(v,"input",$.processors),output:y0(v,"output",$.processors)}},enumerable:!1,writable:!1}),u}catch(u){throw Error("Error converting schema to JSON.")}}function Sv($,v){let U=v??{seen:new Set};if(U.seen.has($))return!1;U.seen.add($);let I=$._zod.def;if(I.type==="transform")return!0;if(I.type==="array")return Sv(I.element,U);if(I.type==="set")return Sv(I.valueType,U);if(I.type==="lazy")return Sv(I.getter(),U);if(I.type==="promise"||I.type==="optional"||I.type==="nonoptional"||I.type==="nullable"||I.type==="readonly"||I.type==="default"||I.type==="prefault")return Sv(I.innerType,U);if(I.type==="intersection")return Sv(I.left,U)||Sv(I.right,U);if(I.type==="record"||I.type==="map")return Sv(I.keyType,U)||Sv(I.valueType,U);if(I.type==="pipe")return Sv(I.in,U)||Sv(I.out,U);if(I.type==="object"){for(let b in I.shape)if(Sv(I.shape[b],U))return!0;return!1}if(I.type==="union"){for(let b of I.options)if(Sv(b,U))return!0;return!1}if(I.type==="tuple"){for(let b of I.items)if(Sv(b,U))return!0;if(I.rest&&Sv(I.rest,U))return!0;return!1}return!1}var rZ=($,v={})=>(U)=>{let I=KK({...U,processors:v});return p$($,I),qK(I,$),BK(I,$)},y0=($,v,U={})=>(I)=>{let{libraryOptions:b,target:D}=I??{},u=KK({...b??{},target:D,io:v,processors:U});return p$($,u),qK(u,$),BK(u,$)};var wa={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},CZ=($,v,U,I)=>{let b=U;b.type="string";let{minimum:D,maximum:u,format:w,patterns:g,contentEncoding:J}=$._zod.bag;if(typeof D==="number")b.minLength=D;if(typeof u==="number")b.maxLength=u;if(w){if(b.format=wa[w]??w,b.format==="")delete b.format;if(w==="time")delete b.format}if(J)b.contentEncoding=J;if(g&&g.size>0){let X=[...g];if(X.length===1)b.pattern=X[0].source;else if(X.length>1)b.allOf=[...X.map((W)=>({...v.target==="draft-07"||v.target==="draft-04"||v.target==="openapi-3.0"?{type:"string"}:{},pattern:W.source}))]}},iZ=($,v,U,I)=>{let b=U,{minimum:D,maximum:u,format:w,multipleOf:g,exclusiveMaximum:J,exclusiveMinimum:X}=$._zod.bag;if(typeof w==="string"&&w.includes("int"))b.type="integer";else b.type="number";if(typeof X==="number")if(v.target==="draft-04"||v.target==="openapi-3.0")b.minimum=X,b.exclusiveMinimum=!0;else b.exclusiveMinimum=X;if(typeof D==="number"){if(b.minimum=D,typeof X==="number"&&v.target!=="draft-04")if(X>=D)delete b.minimum;else delete b.exclusiveMinimum}if(typeof J==="number")if(v.target==="draft-04"||v.target==="openapi-3.0")b.maximum=J,b.exclusiveMaximum=!0;else b.exclusiveMaximum=J;if(typeof u==="number"){if(b.maximum=u,typeof J==="number"&&v.target!=="draft-04")if(J<=u)delete b.maximum;else delete b.exclusiveMaximum}if(typeof g==="number")b.multipleOf=g},xZ=($,v,U,I)=>{U.type="boolean"};var lZ=($,v,U,I)=>{if(v.target==="openapi-3.0")U.type="string",U.nullable=!0,U.enum=[null];else U.type="null"};var fZ=($,v,U,I)=>{U.not={}};var yZ=($,v,U,I)=>{};var hZ=($,v,U,I)=>{let b=$._zod.def,D=k0(b.entries);if(D.every((u)=>typeof u==="number"))U.type="number";if(D.every((u)=>typeof u==="string"))U.type="string";U.enum=D},mZ=($,v,U,I)=>{let b=$._zod.def,D=[];for(let u of b.values)if(u===void 0){if(v.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof u==="bigint")if(v.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else D.push(Number(u));else D.push(u);if(D.length===0);else if(D.length===1){let u=D[0];if(U.type=u===null?"null":typeof u,v.target==="draft-04"||v.target==="openapi-3.0")U.enum=[u];else U.const=u}else{if(D.every((u)=>typeof u==="number"))U.type="number";if(D.every((u)=>typeof u==="string"))U.type="string";if(D.every((u)=>typeof u==="boolean"))U.type="boolean";if(D.every((u)=>u===null))U.type="null";U.enum=D}};var cZ=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")};var oZ=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")};var tZ=($,v,U,I)=>{let b=U,D=$._zod.def,{minimum:u,maximum:w}=$._zod.bag;if(typeof u==="number")b.minItems=u;if(typeof w==="number")b.maxItems=w;b.type="array",b.items=p$(D.element,v,{...I,path:[...I.path,"items"]})},dZ=($,v,U,I)=>{let b=U,D=$._zod.def;b.type="object",b.properties={};let u=D.shape;for(let J in u)b.properties[J]=p$(u[J],v,{...I,path:[...I.path,"properties",J]});let w=new Set(Object.keys(u)),g=new Set([...w].filter((J)=>{let X=D.shape[J]._zod;if(v.io==="input")return X.optin===void 0;else return X.optout===void 0}));if(g.size>0)b.required=Array.from(g);if(D.catchall?._zod.def.type==="never")b.additionalProperties=!1;else if(!D.catchall){if(v.io==="output")b.additionalProperties=!1}else if(D.catchall)b.additionalProperties=p$(D.catchall,v,{...I,path:[...I.path,"additionalProperties"]})},pZ=($,v,U,I)=>{let b=$._zod.def,D=b.inclusive===!1,u=b.options.map((w,g)=>p$(w,v,{...I,path:[...I.path,D?"oneOf":"anyOf",g]}));if(D)U.oneOf=u;else U.anyOf=u},aZ=($,v,U,I)=>{let b=$._zod.def,D=p$(b.left,v,{...I,path:[...I.path,"allOf",0]}),u=p$(b.right,v,{...I,path:[...I.path,"allOf",1]}),w=(J)=>("allOf"in J)&&Object.keys(J).length===1,g=[...w(D)?D.allOf:[D],...w(u)?u.allOf:[u]];U.allOf=g};var eZ=($,v,U,I)=>{let b=U,D=$._zod.def;b.type="object";let u=D.keyType,g=u._zod.bag?.patterns;if(D.mode==="loose"&&g&&g.size>0){let X=p$(D.valueType,v,{...I,path:[...I.path,"patternProperties","*"]});b.patternProperties={};for(let W of g)b.patternProperties[W.source]=X}else{if(v.target==="draft-07"||v.target==="draft-2020-12")b.propertyNames=p$(D.keyType,v,{...I,path:[...I.path,"propertyNames"]});b.additionalProperties=p$(D.valueType,v,{...I,path:[...I.path,"additionalProperties"]})}let J=u._zod.values;if(J){let X=[...J].filter((W)=>typeof W==="string"||typeof W==="number");if(X.length>0)b.required=X}},sZ=($,v,U,I)=>{let b=$._zod.def,D=p$(b.innerType,v,I),u=v.seen.get($);if(v.target==="openapi-3.0")u.ref=b.innerType,U.nullable=!0;else U.anyOf=[D,{type:"null"}]},$T=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType},vT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType,U.default=JSON.parse(JSON.stringify(b.defaultValue))},bT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);if(D.ref=b.innerType,v.io==="input")U._prefault=JSON.parse(JSON.stringify(b.defaultValue))},UT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType;let u;try{u=b.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}U.default=u},IT=($,v,U,I)=>{let b=$._zod.def,D=v.io==="input"?b.in._zod.def.type==="transform"?b.out:b.in:b.out;p$(D,v,I);let u=v.seen.get($);u.ref=D},DT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType,U.readOnly=!0};var AK=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType};function LI($){return!!$._zod}function m6($,v){if(LI($))return C0($,v);return $.safeParse(v)}function wX($){if(!$)return;let v;if(LI($))v=$._zod?.def?.shape;else v=$.shape;if(!v)return;if(typeof v==="function")try{return v()}catch{return}return v}function uT($){if(LI($)){let D=$._zod?.def;if(D){if(D.value!==void 0)return D.value;if(Array.isArray(D.values)&&D.values.length>0)return D.values[0]}}let U=$._def;if(U){if(U.value!==void 0)return U.value;if(Array.isArray(U.values)&&U.values.length>0)return U.values[0]}let I=$.value;if(I!==void 0)return I;return}var m0={};e$(m0,{time:()=>NK,duration:()=>SK,datetime:()=>PK,date:()=>jK,ZodISOTime:()=>JT,ZodISODuration:()=>XT,ZodISODateTime:()=>wT,ZodISODate:()=>gT});var wT=M("ZodISODateTime",($,v)=>{Q2.init($,v),l$.init($,v)});function PK($){return AZ(wT,$)}var gT=M("ZodISODate",($,v)=>{Y2.init($,v),l$.init($,v)});function jK($){return PZ(gT,$)}var JT=M("ZodISOTime",($,v)=>{V2.init($,v),l$.init($,v)});function NK($){return jZ(JT,$)}var XT=M("ZodISODuration",($,v)=>{L2.init($,v),l$.init($,v)});function SK($){return NZ(XT,$)}var WT=($,v)=>{oJ.init($,v),$.name="ZodError",Object.defineProperties($,{format:{value:(U)=>$F($,U)},flatten:{value:(U)=>s_($,U)},addIssue:{value:(U)=>{$.issues.push(U),$.message=JSON.stringify($.issues,zI,2)}},addIssues:{value:(U)=>{$.issues.push(...U),$.message=JSON.stringify($.issues,zI,2)}},isEmpty:{get(){return $.issues.length===0}}})},GP$=M("ZodError",WT),dv=M("ZodError",WT,{Parent:Error});var GT=tJ(dv),OT=dJ(dv),HT=r0(dv),zT=i0(dv),QT=vF(dv),YT=bF(dv),VT=UF(dv),LT=IF(dv),KT=DF(dv),qT=uF(dv),BT=wF(dv),AT=gF(dv);var h$=M("ZodType",($,v)=>{return n$.init($,v),Object.assign($["~standard"],{jsonSchema:{input:y0($,"input"),output:y0($,"output")}}),$.toJSONSchema=rZ($,{}),$.def=v,$.type=v.type,Object.defineProperty($,"_def",{value:v}),$.check=(...U)=>{return $.clone(L$.mergeDefs(v,{checks:[...v.checks??[],...U.map((I)=>typeof I==="function"?{_zod:{check:I,def:{check:"custom"},onattach:[]}}:I)]}),{parent:!0})},$.with=$.check,$.clone=(U,I)=>W4($,U,I),$.brand=()=>$,$.register=(U,I)=>{return U.add($,I),$},$.parse=(U,I)=>GT($,U,I,{callee:$.parse}),$.safeParse=(U,I)=>HT($,U,I),$.parseAsync=async(U,I)=>OT($,U,I,{callee:$.parseAsync}),$.safeParseAsync=async(U,I)=>zT($,U,I),$.spa=$.safeParseAsync,$.encode=(U,I)=>QT($,U,I),$.decode=(U,I)=>YT($,U,I),$.encodeAsync=async(U,I)=>VT($,U,I),$.decodeAsync=async(U,I)=>LT($,U,I),$.safeEncode=(U,I)=>KT($,U,I),$.safeDecode=(U,I)=>qT($,U,I),$.safeEncodeAsync=async(U,I)=>BT($,U,I),$.safeDecodeAsync=async(U,I)=>AT($,U,I),$.refine=(U,I)=>$.check(ue(U,I)),$.superRefine=(U)=>$.check(we(U)),$.overwrite=(U)=>$.check(h6(U)),$.optional=()=>y$($),$.exactOptional=()=>ta($),$.nullable=()=>NT($),$.nullish=()=>y$(NT($)),$.nonoptional=(U)=>$e($,U),$.array=()=>O$($),$.or=(U)=>C$([$,U]),$.and=(U)=>JX($,U),$.transform=(U)=>_K($,TT(U)),$.default=(U)=>aa($,U),$.prefault=(U)=>sa($,U),$.catch=(U)=>be($,U),$.pipe=(U)=>_K($,U),$.readonly=()=>De($),$.describe=(U)=>{let I=$.clone();return lb.add(I,{description:U}),I},Object.defineProperty($,"description",{get(){return lb.get($)?.description},configurable:!0}),$.meta=(...U)=>{if(U.length===0)return lb.get($);let I=$.clone();return lb.add(I,U[0]),I},$.isOptional=()=>$.safeParse(void 0).success,$.isNullable=()=>$.safeParse(null).success,$.apply=(U)=>U($),$}),ST=M("_ZodString",($,v)=>{vX.init($,v),h$.init($,v),$._zod.processJSONSchema=(I,b,D)=>CZ($,I,b,D);let U=$._zod.bag;$.format=U.format??null,$.minLength=U.minimum??null,$.maxLength=U.maximum??null,$.regex=(...I)=>$.check(JK(...I)),$.includes=(...I)=>$.check(GK(...I)),$.startsWith=(...I)=>$.check(OK(...I)),$.endsWith=(...I)=>$.check(HK(...I)),$.min=(...I)=>$.check(VI(...I)),$.max=(...I)=>$.check(DX(...I)),$.length=(...I)=>$.check(uX(...I)),$.nonempty=(...I)=>$.check(VI(1,...I)),$.lowercase=(I)=>$.check(XK(I)),$.uppercase=(I)=>$.check(WK(I)),$.trim=()=>$.check(QK()),$.normalize=(...I)=>$.check(zK(...I)),$.toLowerCase=()=>$.check(YK()),$.toUpperCase=()=>$.check(VK()),$.slugify=()=>$.check(LK())}),Ya=M("ZodString",($,v)=>{vX.init($,v),ST.init($,v),$.email=(U)=>$.check(bZ(Va,U)),$.url=(U)=>$.check(wZ(La,U)),$.jwt=(U)=>$.check(BZ(Ea,U)),$.emoji=(U)=>$.check(gZ(Ka,U)),$.guid=(U)=>$.check(gK(PT,U)),$.uuid=(U)=>$.check(UZ(gX,U)),$.uuidv4=(U)=>$.check(IZ(gX,U)),$.uuidv6=(U)=>$.check(DZ(gX,U)),$.uuidv7=(U)=>$.check(uZ(gX,U)),$.nanoid=(U)=>$.check(JZ(qa,U)),$.guid=(U)=>$.check(gK(PT,U)),$.cuid=(U)=>$.check(XZ(Ba,U)),$.cuid2=(U)=>$.check(WZ(Aa,U)),$.ulid=(U)=>$.check(GZ(Pa,U)),$.base64=(U)=>$.check(LZ(Za,U)),$.base64url=(U)=>$.check(KZ(Ta,U)),$.xid=(U)=>$.check(OZ(ja,U)),$.ksuid=(U)=>$.check(HZ(Na,U)),$.ipv4=(U)=>$.check(zZ(Sa,U)),$.ipv6=(U)=>$.check(QZ(Ma,U)),$.cidrv4=(U)=>$.check(YZ(_a,U)),$.cidrv6=(U)=>$.check(VZ(Fa,U)),$.e164=(U)=>$.check(qZ(ka,U)),$.datetime=(U)=>$.check(PK(U)),$.date=(U)=>$.check(jK(U)),$.time=(U)=>$.check(NK(U)),$.duration=(U)=>$.check(SK(U))});function N($){return vZ(Ya,$)}var l$=M("ZodStringFormat",($,v)=>{r$.init($,v),ST.init($,v)}),Va=M("ZodEmail",($,v)=>{w2.init($,v),l$.init($,v)});var PT=M("ZodGUID",($,v)=>{D2.init($,v),l$.init($,v)});var gX=M("ZodUUID",($,v)=>{u2.init($,v),l$.init($,v)});var La=M("ZodURL",($,v)=>{g2.init($,v),l$.init($,v)});var Ka=M("ZodEmoji",($,v)=>{J2.init($,v),l$.init($,v)});var qa=M("ZodNanoID",($,v)=>{X2.init($,v),l$.init($,v)});var Ba=M("ZodCUID",($,v)=>{W2.init($,v),l$.init($,v)});var Aa=M("ZodCUID2",($,v)=>{G2.init($,v),l$.init($,v)});var Pa=M("ZodULID",($,v)=>{O2.init($,v),l$.init($,v)});var ja=M("ZodXID",($,v)=>{H2.init($,v),l$.init($,v)});var Na=M("ZodKSUID",($,v)=>{z2.init($,v),l$.init($,v)});var Sa=M("ZodIPv4",($,v)=>{K2.init($,v),l$.init($,v)});var Ma=M("ZodIPv6",($,v)=>{q2.init($,v),l$.init($,v)});var _a=M("ZodCIDRv4",($,v)=>{B2.init($,v),l$.init($,v)});var Fa=M("ZodCIDRv6",($,v)=>{A2.init($,v),l$.init($,v)});var Za=M("ZodBase64",($,v)=>{j2.init($,v),l$.init($,v)});var Ta=M("ZodBase64URL",($,v)=>{N2.init($,v),l$.init($,v)});var ka=M("ZodE164",($,v)=>{S2.init($,v),l$.init($,v)});var Ea=M("ZodJWT",($,v)=>{M2.init($,v),l$.init($,v)});var MT=M("ZodNumber",($,v)=>{IK.init($,v),h$.init($,v),$._zod.processJSONSchema=(I,b,D)=>iZ($,I,b,D),$.gt=(I,b)=>$.check(UX(I,b)),$.gte=(I,b)=>$.check(f0(I,b)),$.min=(I,b)=>$.check(f0(I,b)),$.lt=(I,b)=>$.check(bX(I,b)),$.lte=(I,b)=>$.check(l0(I,b)),$.max=(I,b)=>$.check(l0(I,b)),$.int=(I)=>$.check(jT(I)),$.safe=(I)=>$.check(jT(I)),$.positive=(I)=>$.check(UX(0,I)),$.nonnegative=(I)=>$.check(f0(0,I)),$.negative=(I)=>$.check(bX(0,I)),$.nonpositive=(I)=>$.check(l0(0,I)),$.multipleOf=(I,b)=>$.check(IX(I,b)),$.step=(I,b)=>$.check(IX(I,b)),$.finite=()=>$;let U=$._zod.bag;$.minValue=Math.max(U.minimum??Number.NEGATIVE_INFINITY,U.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,$.maxValue=Math.min(U.maximum??Number.POSITIVE_INFINITY,U.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,$.isInt=(U.format??"").includes("int")||Number.isSafeInteger(U.multipleOf??0.5),$.isFinite=!0,$.format=U.format??null});function A$($){return SZ(MT,$)}var Ra=M("ZodNumberFormat",($,v)=>{_2.init($,v),MT.init($,v)});function jT($){return MZ(Ra,$)}var na=M("ZodBoolean",($,v)=>{F2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>xZ($,U,I,b)});function Iv($){return _Z(na,$)}var ra=M("ZodNull",($,v)=>{Z2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>lZ($,U,I,b)});function _T($){return FZ(ra,$)}var Ca=M("ZodUnknown",($,v)=>{T2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>yZ($,U,I,b)});function f$(){return ZZ(Ca)}var ia=M("ZodNever",($,v)=>{k2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>fZ($,U,I,b)});function xa($){return TZ(ia,$)}var la=M("ZodArray",($,v)=>{E2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>tZ($,U,I,b),$.element=v.element,$.min=(U,I)=>$.check(VI(U,I)),$.nonempty=(U)=>$.check(VI(1,U)),$.max=(U,I)=>$.check(DX(U,I)),$.length=(U,I)=>$.check(uX(U,I)),$.unwrap=()=>$.element});function O$($,v){return kZ(la,$,v)}var FT=M("ZodObject",($,v)=>{r2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>dZ($,U,I,b),L$.defineLazy($,"shape",()=>{return v.shape}),$.keyof=()=>rv(Object.keys($._zod.def.shape)),$.catchall=(U)=>$.clone({...$._zod.def,catchall:U}),$.passthrough=()=>$.clone({...$._zod.def,catchall:f$()}),$.loose=()=>$.clone({...$._zod.def,catchall:f$()}),$.strict=()=>$.clone({...$._zod.def,catchall:xa()}),$.strip=()=>$.clone({...$._zod.def,catchall:void 0}),$.extend=(U)=>{return L$.extend($,U)},$.safeExtend=(U)=>{return L$.safeExtend($,U)},$.merge=(U)=>L$.merge($,U),$.pick=(U)=>L$.pick($,U),$.omit=(U)=>L$.omit($,U),$.partial=(...U)=>L$.partial(kT,$,U[0]),$.required=(...U)=>L$.required(ET,$,U[0])});function m($,v){let U={type:"object",shape:$??{},...L$.normalizeParams(v)};return new FT(U)}function Mv($,v){return new FT({type:"object",shape:$,catchall:f$(),...L$.normalizeParams(v)})}var ZT=M("ZodUnion",($,v)=>{DK.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>pZ($,U,I,b),$.options=v.options});function C$($,v){return new ZT({type:"union",options:$,...L$.normalizeParams(v)})}var fa=M("ZodDiscriminatedUnion",($,v)=>{ZT.init($,v),C2.init($,v)});function FK($,v,U){return new fa({type:"union",options:v,discriminator:$,...L$.normalizeParams(U)})}var ya=M("ZodIntersection",($,v)=>{i2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>aZ($,U,I,b)});function JX($,v){return new ya({type:"intersection",left:$,right:v})}var ha=M("ZodRecord",($,v)=>{x2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>eZ($,U,I,b),$.keyType=v.keyType,$.valueType=v.valueType});function R$($,v,U){return new ha({type:"record",keyType:$,valueType:v,...L$.normalizeParams(U)})}var MK=M("ZodEnum",($,v)=>{l2.init($,v),h$.init($,v),$._zod.processJSONSchema=(I,b,D)=>hZ($,I,b,D),$.enum=v.entries,$.options=Object.values(v.entries);let U=new Set(Object.keys(v.entries));$.extract=(I,b)=>{let D={};for(let u of I)if(U.has(u))D[u]=v.entries[u];else throw Error(`Key ${u} not found in enum`);return new MK({...v,checks:[],...L$.normalizeParams(b),entries:D})},$.exclude=(I,b)=>{let D={...v.entries};for(let u of I)if(U.has(u))delete D[u];else throw Error(`Key ${u} not found in enum`);return new MK({...v,checks:[],...L$.normalizeParams(b),entries:D})}});function rv($,v){let U=Array.isArray($)?Object.fromEntries($.map((I)=>[I,I])):$;return new MK({type:"enum",entries:U,...L$.normalizeParams(v)})}var ma=M("ZodLiteral",($,v)=>{f2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>mZ($,U,I,b),$.values=new Set(v.values),Object.defineProperty($,"value",{get(){if(v.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return v.values[0]}})});function o($,v){return new ma({type:"literal",values:Array.isArray($)?$:[$],...L$.normalizeParams(v)})}var ca=M("ZodTransform",($,v)=>{y2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>oZ($,U,I,b),$._zod.parse=(U,I)=>{if(I.direction==="backward")throw new Z0($.constructor.name);U.addIssue=(D)=>{if(typeof D==="string")U.issues.push(L$.issue(D,U.value,v));else{let u=D;if(u.fatal)u.continue=!1;u.code??(u.code="custom"),u.input??(u.input=U.value),u.inst??(u.inst=$),U.issues.push(L$.issue(u))}};let b=v.transform(U.value,U);if(b instanceof Promise)return b.then((D)=>{return U.value=D,U});return U.value=b,U}});function TT($){return new ca({type:"transform",transform:$})}var kT=M("ZodOptional",($,v)=>{uK.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>AK($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function y$($){return new kT({type:"optional",innerType:$})}var oa=M("ZodExactOptional",($,v)=>{h2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>AK($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function ta($){return new oa({type:"optional",innerType:$})}var da=M("ZodNullable",($,v)=>{m2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>sZ($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function NT($){return new da({type:"nullable",innerType:$})}var pa=M("ZodDefault",($,v)=>{c2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>vT($,U,I,b),$.unwrap=()=>$._zod.def.innerType,$.removeDefault=$.unwrap});function aa($,v){return new pa({type:"default",innerType:$,get defaultValue(){return typeof v==="function"?v():L$.shallowClone(v)}})}var ea=M("ZodPrefault",($,v)=>{o2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>bT($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function sa($,v){return new ea({type:"prefault",innerType:$,get defaultValue(){return typeof v==="function"?v():L$.shallowClone(v)}})}var ET=M("ZodNonOptional",($,v)=>{t2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>$T($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function $e($,v){return new ET({type:"nonoptional",innerType:$,...L$.normalizeParams(v)})}var ve=M("ZodCatch",($,v)=>{d2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>UT($,U,I,b),$.unwrap=()=>$._zod.def.innerType,$.removeCatch=$.unwrap});function be($,v){return new ve({type:"catch",innerType:$,catchValue:typeof v==="function"?v:()=>v})}var Ue=M("ZodPipe",($,v)=>{p2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>IT($,U,I,b),$.in=v.in,$.out=v.out});function _K($,v){return new Ue({type:"pipe",in:$,out:v})}var Ie=M("ZodReadonly",($,v)=>{a2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>DT($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function De($){return new Ie({type:"readonly",innerType:$})}var RT=M("ZodCustom",($,v)=>{e2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>cZ($,U,I,b)});function nT($,v){return EZ(RT,$??(()=>!0),v)}function ue($,v={}){return RZ(RT,$,v)}function we($){return nZ($)}function ZK($,v){return _K(TT($),v)}$4(wK());var TK="2025-11-25";var rT=[TK,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],c6="io.modelcontextprotocol/related-task",WX="2.0",vv=nT(($)=>$!==null&&(typeof $==="object"||typeof $==="function")),CT=C$([N(),A$().int()]),iT=N(),_j$=Mv({ttl:A$().optional(),pollInterval:A$().optional()}),ge=m({ttl:A$().optional()}),Je=m({taskId:N()}),kK=Mv({progressToken:CT.optional(),[c6]:Je.optional()}),pv=m({_meta:kK.optional()}),c0=pv.extend({task:ge.optional()}),xT=($)=>c0.safeParse($).success,gv=m({method:N(),params:pv.loose().optional()}),v4=m({_meta:kK.optional()}),b4=m({method:N(),params:v4.loose().optional()}),Jv=Mv({_meta:kK.optional()}),GX=C$([N(),A$().int()]),lT=m({jsonrpc:o(WX),id:GX,...gv.shape}).strict(),EK=($)=>lT.safeParse($).success,fT=m({jsonrpc:o(WX),...b4.shape}).strict(),yT=($)=>fT.safeParse($).success,RK=m({jsonrpc:o(WX),id:GX,result:Jv}).strict(),o0=($)=>RK.safeParse($).success;var G$;(function($){$[$.ConnectionClosed=-32000]="ConnectionClosed",$[$.RequestTimeout=-32001]="RequestTimeout",$[$.ParseError=-32700]="ParseError",$[$.InvalidRequest=-32600]="InvalidRequest",$[$.MethodNotFound=-32601]="MethodNotFound",$[$.InvalidParams=-32602]="InvalidParams",$[$.InternalError=-32603]="InternalError",$[$.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(G$||(G$={}));var nK=m({jsonrpc:o(WX),id:GX.optional(),error:m({code:A$().int(),message:N(),data:f$().optional()})}).strict();var hT=($)=>nK.safeParse($).success;var mT=C$([lT,fT,RK,nK]),Fj$=C$([RK,nK]),OX=Jv.strict(),Xe=v4.extend({requestId:GX.optional(),reason:N().optional()}),HX=b4.extend({method:o("notifications/cancelled"),params:Xe}),We=m({src:N(),mimeType:N().optional(),sizes:O$(N()).optional(),theme:rv(["light","dark"]).optional()}),t0=m({icons:O$(We).optional()}),KI=m({name:N(),title:N().optional()}),cT=KI.extend({...KI.shape,...t0.shape,version:N(),websiteUrl:N().optional(),description:N().optional()}),Ge=JX(m({applyDefaults:Iv().optional()}),R$(N(),f$())),Oe=ZK(($)=>{if($&&typeof $==="object"&&!Array.isArray($)){if(Object.keys($).length===0)return{form:{}}}return $},JX(m({form:Ge.optional(),url:vv.optional()}),R$(N(),f$()).optional())),He=Mv({list:vv.optional(),cancel:vv.optional(),requests:Mv({sampling:Mv({createMessage:vv.optional()}).optional(),elicitation:Mv({create:vv.optional()}).optional()}).optional()}),ze=Mv({list:vv.optional(),cancel:vv.optional(),requests:Mv({tools:Mv({call:vv.optional()}).optional()}).optional()}),Qe=m({experimental:R$(N(),vv).optional(),sampling:m({context:vv.optional(),tools:vv.optional()}).optional(),elicitation:Oe.optional(),roots:m({listChanged:Iv().optional()}).optional(),tasks:He.optional(),extensions:R$(N(),vv).optional()}),Ye=pv.extend({protocolVersion:N(),capabilities:Qe,clientInfo:cT}),rK=gv.extend({method:o("initialize"),params:Ye});var Ve=m({experimental:R$(N(),vv).optional(),logging:vv.optional(),completions:vv.optional(),prompts:m({listChanged:Iv().optional()}).optional(),resources:m({subscribe:Iv().optional(),listChanged:Iv().optional()}).optional(),tools:m({listChanged:Iv().optional()}).optional(),tasks:ze.optional(),extensions:R$(N(),vv).optional()}),Le=Jv.extend({protocolVersion:N(),capabilities:Ve,serverInfo:cT,instructions:N().optional()}),CK=b4.extend({method:o("notifications/initialized"),params:v4.optional()});var zX=gv.extend({method:o("ping"),params:pv.optional()}),Ke=m({progress:A$(),total:y$(A$()),message:y$(N())}),qe=m({...v4.shape,...Ke.shape,progressToken:CT}),QX=b4.extend({method:o("notifications/progress"),params:qe}),Be=pv.extend({cursor:iT.optional()}),d0=gv.extend({params:Be.optional()}),p0=Jv.extend({nextCursor:iT.optional()}),Ae=rv(["working","input_required","completed","failed","cancelled"]),a0=m({taskId:N(),status:Ae,ttl:C$([A$(),_T()]),createdAt:N(),lastUpdatedAt:N(),pollInterval:y$(A$()),statusMessage:y$(N())}),qI=Jv.extend({task:a0}),Pe=v4.merge(a0),e0=b4.extend({method:o("notifications/tasks/status"),params:Pe}),YX=gv.extend({method:o("tasks/get"),params:pv.extend({taskId:N()})}),VX=Jv.merge(a0),LX=gv.extend({method:o("tasks/result"),params:pv.extend({taskId:N()})}),Zj$=Jv.loose(),KX=d0.extend({method:o("tasks/list")}),qX=p0.extend({tasks:O$(a0)}),BX=gv.extend({method:o("tasks/cancel"),params:pv.extend({taskId:N()})}),oT=Jv.merge(a0),tT=m({uri:N(),mimeType:y$(N()),_meta:R$(N(),f$()).optional()}),dT=tT.extend({text:N()}),iK=N().refine(($)=>{try{return atob($),!0}catch{return!1}},{message:"Invalid Base64 string"}),pT=tT.extend({blob:iK}),s0=rv(["user","assistant"]),BI=m({audience:O$(s0).optional(),priority:A$().min(0).max(1).optional(),lastModified:m0.datetime({offset:!0}).optional()}),aT=m({...KI.shape,...t0.shape,uri:N(),description:y$(N()),mimeType:y$(N()),size:y$(A$()),annotations:BI.optional(),_meta:y$(Mv({}))}),je=m({...KI.shape,...t0.shape,uriTemplate:N(),description:y$(N()),mimeType:y$(N()),annotations:BI.optional(),_meta:y$(Mv({}))}),Ne=d0.extend({method:o("resources/list")}),Se=p0.extend({resources:O$(aT)}),Me=d0.extend({method:o("resources/templates/list")}),_e=p0.extend({resourceTemplates:O$(je)}),xK=pv.extend({uri:N()}),Fe=xK,Ze=gv.extend({method:o("resources/read"),params:Fe}),Te=Jv.extend({contents:O$(C$([dT,pT]))}),ke=b4.extend({method:o("notifications/resources/list_changed"),params:v4.optional()}),Ee=xK,Re=gv.extend({method:o("resources/subscribe"),params:Ee}),ne=xK,re=gv.extend({method:o("resources/unsubscribe"),params:ne}),Ce=v4.extend({uri:N()}),ie=b4.extend({method:o("notifications/resources/updated"),params:Ce}),xe=m({name:N(),description:y$(N()),required:y$(Iv())}),le=m({...KI.shape,...t0.shape,description:y$(N()),arguments:y$(O$(xe)),_meta:y$(Mv({}))}),fe=d0.extend({method:o("prompts/list")}),ye=p0.extend({prompts:O$(le)}),he=pv.extend({name:N(),arguments:R$(N(),N()).optional()}),me=gv.extend({method:o("prompts/get"),params:he}),lK=m({type:o("text"),text:N(),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),fK=m({type:o("image"),data:iK,mimeType:N(),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),yK=m({type:o("audio"),data:iK,mimeType:N(),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),ce=m({type:o("tool_use"),name:N(),id:N(),input:R$(N(),f$()),_meta:R$(N(),f$()).optional()}),oe=m({type:o("resource"),resource:C$([dT,pT]),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),te=aT.extend({type:o("resource_link")}),hK=C$([lK,fK,yK,te,oe]),de=m({role:s0,content:hK}),pe=Jv.extend({description:N().optional(),messages:O$(de)}),ae=b4.extend({method:o("notifications/prompts/list_changed"),params:v4.optional()}),ee=m({title:N().optional(),readOnlyHint:Iv().optional(),destructiveHint:Iv().optional(),idempotentHint:Iv().optional(),openWorldHint:Iv().optional()}),se=m({taskSupport:rv(["required","optional","forbidden"]).optional()}),eT=m({...KI.shape,...t0.shape,description:N().optional(),inputSchema:m({type:o("object"),properties:R$(N(),vv).optional(),required:O$(N()).optional()}).catchall(f$()),outputSchema:m({type:o("object"),properties:R$(N(),vv).optional(),required:O$(N()).optional()}).catchall(f$()).optional(),annotations:ee.optional(),execution:se.optional(),_meta:R$(N(),f$()).optional()}),mK=d0.extend({method:o("tools/list")}),$s=p0.extend({tools:O$(eT)}),AX=Jv.extend({content:O$(hK).default([]),structuredContent:R$(N(),f$()).optional(),isError:Iv().optional()}),Tj$=AX.or(Jv.extend({toolResult:f$()})),vs=c0.extend({name:N(),arguments:R$(N(),f$()).optional()}),$D=gv.extend({method:o("tools/call"),params:vs}),bs=b4.extend({method:o("notifications/tools/list_changed"),params:v4.optional()}),kj$=m({autoRefresh:Iv().default(!0),debounceMs:A$().int().nonnegative().default(300)}),vD=rv(["debug","info","notice","warning","error","critical","alert","emergency"]),Us=pv.extend({level:vD}),cK=gv.extend({method:o("logging/setLevel"),params:Us}),Is=v4.extend({level:vD,logger:N().optional(),data:f$()}),Ds=b4.extend({method:o("notifications/message"),params:Is}),us=m({name:N().optional()}),ws=m({hints:O$(us).optional(),costPriority:A$().min(0).max(1).optional(),speedPriority:A$().min(0).max(1).optional(),intelligencePriority:A$().min(0).max(1).optional()}),gs=m({mode:rv(["auto","required","none"]).optional()}),Js=m({type:o("tool_result"),toolUseId:N().describe("The unique identifier for the corresponding tool call."),content:O$(hK).default([]),structuredContent:m({}).loose().optional(),isError:Iv().optional(),_meta:R$(N(),f$()).optional()}),Xs=FK("type",[lK,fK,yK]),XX=FK("type",[lK,fK,yK,ce,Js]),Ws=m({role:s0,content:C$([XX,O$(XX)]),_meta:R$(N(),f$()).optional()}),Gs=c0.extend({messages:O$(Ws),modelPreferences:ws.optional(),systemPrompt:N().optional(),includeContext:rv(["none","thisServer","allServers"]).optional(),temperature:A$().optional(),maxTokens:A$().int(),stopSequences:O$(N()).optional(),metadata:vv.optional(),tools:O$(eT).optional(),toolChoice:gs.optional()}),Os=gv.extend({method:o("sampling/createMessage"),params:Gs}),bD=Jv.extend({model:N(),stopReason:y$(rv(["endTurn","stopSequence","maxTokens"]).or(N())),role:s0,content:Xs}),oK=Jv.extend({model:N(),stopReason:y$(rv(["endTurn","stopSequence","maxTokens","toolUse"]).or(N())),role:s0,content:C$([XX,O$(XX)])}),Hs=m({type:o("boolean"),title:N().optional(),description:N().optional(),default:Iv().optional()}),zs=m({type:o("string"),title:N().optional(),description:N().optional(),minLength:A$().optional(),maxLength:A$().optional(),format:rv(["email","uri","date","date-time"]).optional(),default:N().optional()}),Qs=m({type:rv(["number","integer"]),title:N().optional(),description:N().optional(),minimum:A$().optional(),maximum:A$().optional(),default:A$().optional()}),Ys=m({type:o("string"),title:N().optional(),description:N().optional(),enum:O$(N()),default:N().optional()}),Vs=m({type:o("string"),title:N().optional(),description:N().optional(),oneOf:O$(m({const:N(),title:N()})),default:N().optional()}),Ls=m({type:o("string"),title:N().optional(),description:N().optional(),enum:O$(N()),enumNames:O$(N()).optional(),default:N().optional()}),Ks=C$([Ys,Vs]),qs=m({type:o("array"),title:N().optional(),description:N().optional(),minItems:A$().optional(),maxItems:A$().optional(),items:m({type:o("string"),enum:O$(N())}),default:O$(N()).optional()}),Bs=m({type:o("array"),title:N().optional(),description:N().optional(),minItems:A$().optional(),maxItems:A$().optional(),items:m({anyOf:O$(m({const:N(),title:N()}))}),default:O$(N()).optional()}),As=C$([qs,Bs]),Ps=C$([Ls,Ks,As]),js=C$([Ps,Hs,zs,Qs]),Ns=c0.extend({mode:o("form").optional(),message:N(),requestedSchema:m({type:o("object"),properties:R$(N(),js),required:O$(N()).optional()})}),Ss=c0.extend({mode:o("url"),message:N(),elicitationId:N(),url:N().url()}),Ms=C$([Ns,Ss]),_s=gv.extend({method:o("elicitation/create"),params:Ms}),Fs=v4.extend({elicitationId:N()}),Zs=b4.extend({method:o("notifications/elicitation/complete"),params:Fs}),AI=Jv.extend({action:rv(["accept","decline","cancel"]),content:ZK(($)=>$===null?void 0:$,R$(N(),C$([N(),A$(),Iv(),O$(N())])).optional())}),Ts=m({type:o("ref/resource"),uri:N()});var ks=m({type:o("ref/prompt"),name:N()}),Es=pv.extend({ref:C$([ks,Ts]),argument:m({name:N(),value:N()}),context:m({arguments:R$(N(),N()).optional()}).optional()}),Rs=gv.extend({method:o("completion/complete"),params:Es});var ns=Jv.extend({completion:Mv({values:O$(N()).max(100),total:y$(A$().int()),hasMore:y$(Iv())})}),rs=m({uri:N().startsWith("file://"),name:N().optional(),_meta:R$(N(),f$()).optional()}),Cs=gv.extend({method:o("roots/list"),params:pv.optional()}),tK=Jv.extend({roots:O$(rs)}),is=b4.extend({method:o("notifications/roots/list_changed"),params:v4.optional()}),Ej$=C$([zX,rK,Rs,cK,me,fe,Ne,Me,Ze,Re,re,$D,mK,YX,LX,KX,BX]),Rj$=C$([HX,QX,CK,is,e0]),nj$=C$([OX,bD,oK,AI,tK,VX,qX,qI]),rj$=C$([zX,Os,_s,Cs,YX,LX,KX,BX]),Cj$=C$([HX,QX,Ds,ie,ke,bs,ae,e0,Zs]),ij$=C$([OX,Le,ns,pe,ye,Se,_e,Te,AX,$s,VX,qX,qI]);class D$ extends Error{constructor($,v,U){super(`MCP error ${$}: ${v}`);this.code=$,this.data=U,this.name="McpError"}static fromError($,v,U){if($===G$.UrlElicitationRequired&&U){let I=U;if(I.elicitations)return new sT(I.elicitations,v)}return new D$($,v,U)}}class sT extends D${constructor($,v=`URL elicitation${$.length>1?"s":""} required`){super(G$.UrlElicitationRequired,v,{elicitations:$})}get elicitations(){return this.data?.elicitations??[]}}function o6($){return $==="completed"||$==="failed"||$==="cancelled"}var xs=Symbol("Let zodToJsonSchema decide on which parser to use");var VN$=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function dK($){let U=wX($)?.method;if(!U)throw Error("Schema is missing a method literal");let I=uT(U);if(typeof I!=="string")throw Error("Schema method literal must be a string");return I}function pK($,v){let U=m6($,v);if(!U.success)throw U.error;return U.data}var cs=60000;class aK{constructor($){if(this._options=$,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(HX,(v)=>{this._oncancel(v)}),this.setNotificationHandler(QX,(v)=>{this._onprogress(v)}),this.setRequestHandler(zX,(v)=>({})),this._taskStore=$?.taskStore,this._taskMessageQueue=$?.taskMessageQueue,this._taskStore)this.setRequestHandler(YX,async(v,U)=>{let I=await this._taskStore.getTask(v.params.taskId,U.sessionId);if(!I)throw new D$(G$.InvalidParams,"Failed to retrieve task: Task not found");return{...I}}),this.setRequestHandler(LX,async(v,U)=>{let I=async()=>{let b=v.params.taskId;if(this._taskMessageQueue){let u;while(u=await this._taskMessageQueue.dequeue(b,U.sessionId)){if(u.type==="response"||u.type==="error"){let w=u.message,g=w.id,J=this._requestResolvers.get(g);if(J)if(this._requestResolvers.delete(g),u.type==="response")J(w);else{let X=w,W=new D$(X.error.code,X.error.message,X.error.data);J(W)}else{let X=u.type==="response"?"Response":"Error";this._onerror(Error(`${X} handler missing for request ${g}`))}continue}await this._transport?.send(u.message,{relatedRequestId:U.requestId})}}let D=await this._taskStore.getTask(b,U.sessionId);if(!D)throw new D$(G$.InvalidParams,`Task not found: ${b}`);if(!o6(D.status))return await this._waitForTaskUpdate(b,U.signal),await I();if(o6(D.status)){let u=await this._taskStore.getTaskResult(b,U.sessionId);return this._clearTaskQueue(b),{...u,_meta:{...u._meta,[c6]:{taskId:b}}}}return await I()};return await I()}),this.setRequestHandler(KX,async(v,U)=>{try{let{tasks:I,nextCursor:b}=await this._taskStore.listTasks(v.params?.cursor,U.sessionId);return{tasks:I,nextCursor:b,_meta:{}}}catch(I){throw new D$(G$.InvalidParams,`Failed to list tasks: ${I instanceof Error?I.message:String(I)}`)}}),this.setRequestHandler(BX,async(v,U)=>{try{let I=await this._taskStore.getTask(v.params.taskId,U.sessionId);if(!I)throw new D$(G$.InvalidParams,`Task not found: ${v.params.taskId}`);if(o6(I.status))throw new D$(G$.InvalidParams,`Cannot cancel task in terminal status: ${I.status}`);await this._taskStore.updateTaskStatus(v.params.taskId,"cancelled","Client cancelled task execution.",U.sessionId),this._clearTaskQueue(v.params.taskId);let b=await this._taskStore.getTask(v.params.taskId,U.sessionId);if(!b)throw new D$(G$.InvalidParams,`Task not found after cancellation: ${v.params.taskId}`);return{_meta:{},...b}}catch(I){if(I instanceof D$)throw I;throw new D$(G$.InvalidRequest,`Failed to cancel task: ${I instanceof Error?I.message:String(I)}`)}})}async _oncancel($){if(!$.params.requestId)return;this._requestHandlerAbortControllers.get($.params.requestId)?.abort($.params.reason)}_setupTimeout($,v,U,I,b=!1){this._timeoutInfo.set($,{timeoutId:setTimeout(I,v),startTime:Date.now(),timeout:v,maxTotalTimeout:U,resetTimeoutOnProgress:b,onTimeout:I})}_resetTimeout($){let v=this._timeoutInfo.get($);if(!v)return!1;let U=Date.now()-v.startTime;if(v.maxTotalTimeout&&U>=v.maxTotalTimeout)throw this._timeoutInfo.delete($),D$.fromError(G$.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:v.maxTotalTimeout,totalElapsed:U});return clearTimeout(v.timeoutId),v.timeoutId=setTimeout(v.onTimeout,v.timeout),!0}_cleanupTimeout($){let v=this._timeoutInfo.get($);if(v)clearTimeout(v.timeoutId),this._timeoutInfo.delete($)}async connect($){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=$;let v=this.transport?.onclose;this._transport.onclose=()=>{v?.(),this._onclose()};let U=this.transport?.onerror;this._transport.onerror=(b)=>{U?.(b),this._onerror(b)};let I=this._transport?.onmessage;this._transport.onmessage=(b,D)=>{if(I?.(b,D),o0(b)||hT(b))this._onresponse(b);else if(EK(b))this._onrequest(b,D);else if(yT(b))this._onnotification(b);else this._onerror(Error(`Unknown message type: ${JSON.stringify(b)}`))},await this._transport.start()}_onclose(){let $=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let U of this._timeoutInfo.values())clearTimeout(U.timeoutId);this._timeoutInfo.clear();for(let U of this._requestHandlerAbortControllers.values())U.abort();this._requestHandlerAbortControllers.clear();let v=D$.fromError(G$.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let U of $.values())U(v)}_onerror($){this.onerror?.($)}_onnotification($){let v=this._notificationHandlers.get($.method)??this.fallbackNotificationHandler;if(v===void 0)return;Promise.resolve().then(()=>v($)).catch((U)=>this._onerror(Error(`Uncaught error in notification handler: ${U}`)))}_onrequest($,v){let U=this._requestHandlers.get($.method)??this.fallbackRequestHandler,I=this._transport,b=$.params?._meta?.[c6]?.taskId;if(U===void 0){let J={jsonrpc:"2.0",id:$.id,error:{code:G$.MethodNotFound,message:"Method not found"}};if(b&&this._taskMessageQueue)this._enqueueTaskMessage(b,{type:"error",message:J,timestamp:Date.now()},I?.sessionId).catch((X)=>this._onerror(Error(`Failed to enqueue error response: ${X}`)));else I?.send(J).catch((X)=>this._onerror(Error(`Failed to send an error response: ${X}`)));return}let D=new AbortController;this._requestHandlerAbortControllers.set($.id,D);let u=xT($.params)?$.params.task:void 0,w=this._taskStore?this.requestTaskStore($,I?.sessionId):void 0,g={signal:D.signal,sessionId:I?.sessionId,_meta:$.params?._meta,sendNotification:async(J)=>{if(D.signal.aborted)return;let X={relatedRequestId:$.id};if(b)X.relatedTask={taskId:b};await this.notification(J,X)},sendRequest:async(J,X,W)=>{if(D.signal.aborted)throw new D$(G$.ConnectionClosed,"Request was cancelled");let G={...W,relatedRequestId:$.id};if(b&&!G.relatedTask)G.relatedTask={taskId:b};let O=G.relatedTask?.taskId??b;if(O&&w)await w.updateTaskStatus(O,"input_required");return await this.request(J,X,G)},authInfo:v?.authInfo,requestId:$.id,requestInfo:v?.requestInfo,taskId:b,taskStore:w,taskRequestedTtl:u?.ttl,closeSSEStream:v?.closeSSEStream,closeStandaloneSSEStream:v?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(u)this.assertTaskHandlerCapability($.method)}).then(()=>U($,g)).then(async(J)=>{if(D.signal.aborted)return;let X={result:J,jsonrpc:"2.0",id:$.id};if(b&&this._taskMessageQueue)await this._enqueueTaskMessage(b,{type:"response",message:X,timestamp:Date.now()},I?.sessionId);else await I?.send(X)},async(J)=>{if(D.signal.aborted)return;let X={jsonrpc:"2.0",id:$.id,error:{code:Number.isSafeInteger(J.code)?J.code:G$.InternalError,message:J.message??"Internal error",...J.data!==void 0&&{data:J.data}}};if(b&&this._taskMessageQueue)await this._enqueueTaskMessage(b,{type:"error",message:X,timestamp:Date.now()},I?.sessionId);else await I?.send(X)}).catch((J)=>this._onerror(Error(`Failed to send response: ${J}`))).finally(()=>{if(this._requestHandlerAbortControllers.get($.id)===D)this._requestHandlerAbortControllers.delete($.id)})}_onprogress($){let{progressToken:v,...U}=$.params,I=Number(v),b=this._progressHandlers.get(I);if(!b){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify($)}`));return}let D=this._responseHandlers.get(I),u=this._timeoutInfo.get(I);if(u&&D&&u.resetTimeoutOnProgress)try{this._resetTimeout(I)}catch(w){this._responseHandlers.delete(I),this._progressHandlers.delete(I),this._cleanupTimeout(I),D(w);return}b(U)}_onresponse($){let v=Number($.id),U=this._requestResolvers.get(v);if(U){if(this._requestResolvers.delete(v),o0($))U($);else{let D=new D$($.error.code,$.error.message,$.error.data);U(D)}return}let I=this._responseHandlers.get(v);if(I===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify($)}`));return}this._responseHandlers.delete(v),this._cleanupTimeout(v);let b=!1;if(o0($)&&$.result&&typeof $.result==="object"){let D=$.result;if(D.task&&typeof D.task==="object"){let u=D.task;if(typeof u.taskId==="string")b=!0,this._taskProgressTokens.set(u.taskId,v)}}if(!b)this._progressHandlers.delete(v);if(o0($))I($);else{let D=D$.fromError($.error.code,$.error.message,$.error.data);I(D)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream($,v,U){let{task:I}=U??{};if(!I){try{yield{type:"result",result:await this.request($,v,U)}}catch(D){yield{type:"error",error:D instanceof D$?D:new D$(G$.InternalError,String(D))}}return}let b;try{let D=await this.request($,qI,U);if(D.task)b=D.task.taskId,yield{type:"taskCreated",task:D.task};else throw new D$(G$.InternalError,"Task creation did not return a task");while(!0){let u=await this.getTask({taskId:b},U);if(yield{type:"taskStatus",task:u},o6(u.status)){if(u.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:b},v,U)};else if(u.status==="failed")yield{type:"error",error:new D$(G$.InternalError,`Task ${b} failed`)};else if(u.status==="cancelled")yield{type:"error",error:new D$(G$.InternalError,`Task ${b} was cancelled`)};return}if(u.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:b},v,U)};return}let w=u.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((g)=>setTimeout(g,w)),U?.signal?.throwIfAborted()}}catch(D){yield{type:"error",error:D instanceof D$?D:new D$(G$.InternalError,String(D))}}}request($,v,U){let{relatedRequestId:I,resumptionToken:b,onresumptiontoken:D,task:u,relatedTask:w}=U??{};return new Promise((g,J)=>{let X=(K)=>{J(K)};if(!this._transport){X(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod($.method),u)this.assertTaskCapability($.method)}catch(K){X(K);return}U?.signal?.throwIfAborted();let W=this._requestMessageId++,G={...$,jsonrpc:"2.0",id:W};if(U?.onprogress)this._progressHandlers.set(W,U.onprogress),G.params={...$.params,_meta:{...$.params?._meta||{},progressToken:W}};if(u)G.params={...G.params,task:u};if(w)G.params={...G.params,_meta:{...G.params?._meta||{},[c6]:w}};let O=(K)=>{this._responseHandlers.delete(W),this._progressHandlers.delete(W),this._cleanupTimeout(W),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:W,reason:String(K)}},{relatedRequestId:I,resumptionToken:b,onresumptiontoken:D}).catch((S)=>this._onerror(Error(`Failed to send cancellation: ${S}`)));let F=K instanceof D$?K:new D$(G$.RequestTimeout,String(K));J(F)};this._responseHandlers.set(W,(K)=>{if(U?.signal?.aborted)return;if(K instanceof Error)return J(K);try{let F=m6(v,K.result);if(!F.success)J(F.error);else g(F.data)}catch(F){J(F)}}),U?.signal?.addEventListener("abort",()=>{O(U?.signal?.reason)});let z=U?.timeout??cs,Q=()=>O(D$.fromError(G$.RequestTimeout,"Request timed out",{timeout:z}));this._setupTimeout(W,z,U?.maxTotalTimeout,Q,U?.resetTimeoutOnProgress??!1);let Y=w?.taskId;if(Y){let K=(F)=>{let S=this._responseHandlers.get(W);if(S)S(F);else this._onerror(Error(`Response handler missing for side-channeled request ${W}`))};this._requestResolvers.set(W,K),this._enqueueTaskMessage(Y,{type:"request",message:G,timestamp:Date.now()}).catch((F)=>{this._cleanupTimeout(W),J(F)})}else this._transport.send(G,{relatedRequestId:I,resumptionToken:b,onresumptiontoken:D}).catch((K)=>{this._cleanupTimeout(W),J(K)})})}async getTask($,v){return this.request({method:"tasks/get",params:$},VX,v)}async getTaskResult($,v,U){return this.request({method:"tasks/result",params:$},v,U)}async listTasks($,v){return this.request({method:"tasks/list",params:$},qX,v)}async cancelTask($,v){return this.request({method:"tasks/cancel",params:$},oT,v)}async notification($,v){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability($.method);let U=v?.relatedTask?.taskId;if(U){let u={...$,jsonrpc:"2.0",params:{...$.params,_meta:{...$.params?._meta||{},[c6]:v.relatedTask}}};await this._enqueueTaskMessage(U,{type:"notification",message:u,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes($.method)&&!$.params&&!v?.relatedRequestId&&!v?.relatedTask){if(this._pendingDebouncedNotifications.has($.method))return;this._pendingDebouncedNotifications.add($.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete($.method),!this._transport)return;let u={...$,jsonrpc:"2.0"};if(v?.relatedTask)u={...u,params:{...u.params,_meta:{...u.params?._meta||{},[c6]:v.relatedTask}}};this._transport?.send(u,v).catch((w)=>this._onerror(w))});return}let D={...$,jsonrpc:"2.0"};if(v?.relatedTask)D={...D,params:{...D.params,_meta:{...D.params?._meta||{},[c6]:v.relatedTask}}};await this._transport.send(D,v)}setRequestHandler($,v){let U=dK($);this.assertRequestHandlerCapability(U),this._requestHandlers.set(U,(I,b)=>{let D=pK($,I);return Promise.resolve(v(D,b))})}removeRequestHandler($){this._requestHandlers.delete($)}assertCanSetRequestHandler($){if(this._requestHandlers.has($))throw Error(`A request handler for ${$} already exists, which would be overridden`)}setNotificationHandler($,v){let U=dK($);this._notificationHandlers.set(U,(I)=>{let b=pK($,I);return Promise.resolve(v(b))})}removeNotificationHandler($){this._notificationHandlers.delete($)}_cleanupTaskProgressHandler($){let v=this._taskProgressTokens.get($);if(v!==void 0)this._progressHandlers.delete(v),this._taskProgressTokens.delete($)}async _enqueueTaskMessage($,v,U){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let I=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue($,v,U,I)}async _clearTaskQueue($,v){if(this._taskMessageQueue){let U=await this._taskMessageQueue.dequeueAll($,v);for(let I of U)if(I.type==="request"&&EK(I.message)){let b=I.message.id,D=this._requestResolvers.get(b);if(D)D(new D$(G$.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(b);else this._onerror(Error(`Resolver missing for request ${b} during task ${$} cleanup`))}}}async _waitForTaskUpdate($,v){let U=this._options?.defaultTaskPollInterval??1000;try{let I=await this._taskStore?.getTask($);if(I?.pollInterval)U=I.pollInterval}catch{}return new Promise((I,b)=>{if(v.aborted){b(new D$(G$.InvalidRequest,"Request cancelled"));return}let D=setTimeout(I,U);v.addEventListener("abort",()=>{clearTimeout(D),b(new D$(G$.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore($,v){let U=this._taskStore;if(!U)throw Error("No task store configured");return{createTask:async(I)=>{if(!$)throw Error("No request provided");return await U.createTask(I,$.id,{method:$.method,params:$.params},v)},getTask:async(I)=>{let b=await U.getTask(I,v);if(!b)throw new D$(G$.InvalidParams,"Failed to retrieve task: Task not found");return b},storeTaskResult:async(I,b,D)=>{await U.storeTaskResult(I,b,D,v);let u=await U.getTask(I,v);if(u){let w=e0.parse({method:"notifications/tasks/status",params:u});if(await this.notification(w),o6(u.status))this._cleanupTaskProgressHandler(I)}},getTaskResult:(I)=>{return U.getTaskResult(I,v)},updateTaskStatus:async(I,b,D)=>{let u=await U.getTask(I,v);if(!u)throw new D$(G$.InvalidParams,`Task "${I}" not found - it may have been cleaned up`);if(o6(u.status))throw new D$(G$.InvalidParams,`Cannot update task "${I}" from terminal status "${u.status}" to "${b}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await U.updateTaskStatus(I,b,D,v);let w=await U.getTask(I,v);if(w){let g=e0.parse({method:"notifications/tasks/status",params:w});if(await this.notification(g),o6(w.status))this._cleanupTaskProgressHandler(I)}},listTasks:(I)=>{return U.listTasks(I,v)}}}}function $k($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function vk($,v){let U={...$};for(let I in v){let b=I,D=v[b];if(D===void 0)continue;let u=U[b];if($k(u)&&$k(D))U[b]={...u,...D};else U[b]=D}return U}var kr=jP(mq(),1),Er=jP(Tr(),1);function b0$(){let $=new kr.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return Er.default($),$}class vB{constructor($){this._ajv=$??b0$()}getValidator($){let v="$id"in $&&typeof $.$id==="string"?this._ajv.getSchema($.$id)??this._ajv.compile($):this._ajv.compile($);return(U)=>{if(v(U))return{valid:!0,data:U,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(v.errors)}}}}class bB{constructor($){this._server=$}requestStream($,v,U){return this._server.requestStream($,v,U)}createMessageStream($,v){let U=this._server.getClientCapabilities();if(($.tools||$.toolChoice)&&!U?.sampling?.tools)throw Error("Client does not support sampling tools capability.");if($.messages.length>0){let I=$.messages[$.messages.length-1],b=Array.isArray(I.content)?I.content:[I.content],D=b.some((J)=>J.type==="tool_result"),u=$.messages.length>1?$.messages[$.messages.length-2]:void 0,w=u?Array.isArray(u.content)?u.content:[u.content]:[],g=w.some((J)=>J.type==="tool_use");if(D){if(b.some((J)=>J.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!g)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(g){let J=new Set(w.filter((W)=>W.type==="tool_use").map((W)=>W.id)),X=new Set(b.filter((W)=>W.type==="tool_result").map((W)=>W.toolUseId));if(J.size!==X.size||![...J].every((W)=>X.has(W)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:$},bD,v)}elicitInputStream($,v){let U=this._server.getClientCapabilities(),I=$.mode??"form";switch(I){case"url":{if(!U?.elicitation?.url)throw Error("Client does not support url elicitation.");break}case"form":{if(!U?.elicitation?.form)throw Error("Client does not support form elicitation.");break}}let b=I==="form"&&$.mode===void 0?{...$,mode:"form"}:$;return this.requestStream({method:"elicitation/create",params:b},AI,v)}async getTask($,v){return this._server.getTask({taskId:$},v)}async getTaskResult($,v,U){return this._server.getTaskResult({taskId:$},v,U)}async listTasks($,v){return this._server.listTasks($?{cursor:$}:void 0,v)}async cancelTask($,v){return this._server.cancelTask({taskId:$},v)}}function Rr($,v,U){if(!$)throw Error(`${U} does not support task creation (required for ${v})`);switch(v){case"tools/call":if(!$.tools?.call)throw Error(`${U} does not support task creation for tools/call (required for ${v})`);break;default:break}}function nr($,v,U){if(!$)throw Error(`${U} does not support task creation (required for ${v})`);switch(v){case"sampling/createMessage":if(!$.sampling?.createMessage)throw Error(`${U} does not support task creation for sampling/createMessage (required for ${v})`);break;case"elicitation/create":if(!$.elicitation?.create)throw Error(`${U} does not support task creation for elicitation/create (required for ${v})`);break;default:break}}class UB extends aK{constructor($,v){super(v);if(this._serverInfo=$,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(vD.options.map((U,I)=>[U,I])),this.isMessageIgnored=(U,I)=>{let b=this._loggingLevels.get(I);return b?this.LOG_LEVEL_SEVERITY.get(U)<this.LOG_LEVEL_SEVERITY.get(b):!1},this._capabilities=v?.capabilities??{},this._instructions=v?.instructions,this._jsonSchemaValidator=v?.jsonSchemaValidator??new vB,this.setRequestHandler(rK,(U)=>this._oninitialize(U)),this.setNotificationHandler(CK,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler(cK,async(U,I)=>{let b=I.sessionId||I.requestInfo?.headers["mcp-session-id"]||void 0,{level:D}=U.params,u=vD.safeParse(D);if(u.success)this._loggingLevels.set(b,u.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new bB(this)};return this._experimental}registerCapabilities($){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=vk(this._capabilities,$)}setRequestHandler($,v){let I=wX($)?.method;if(!I)throw Error("Schema is missing a method literal");let b;if(LI(I)){let u=I;b=u._zod?.def?.value??u.value}else{let u=I;b=u._def?.value??u.value}if(typeof b!=="string")throw Error("Schema method literal must be a string");if(b==="tools/call"){let u=async(w,g)=>{let J=m6($D,w);if(!J.success){let O=J.error instanceof Error?J.error.message:String(J.error);throw new D$(G$.InvalidParams,`Invalid tools/call request: ${O}`)}let{params:X}=J.data,W=await Promise.resolve(v(w,g));if(X.task){let O=m6(qI,W);if(!O.success){let z=O.error instanceof Error?O.error.message:String(O.error);throw new D$(G$.InvalidParams,`Invalid task creation result: ${z}`)}return O.data}let G=m6(AX,W);if(!G.success){let O=G.error instanceof Error?G.error.message:String(G.error);throw new D$(G$.InvalidParams,`Invalid tools/call result: ${O}`)}return G.data};return super.setRequestHandler($,u)}return super.setRequestHandler($,v)}assertCapabilityForMethod($){switch($){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${$})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${$})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${$})`);break;case"ping":break}}assertNotificationCapability($){switch($){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${$})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${$})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${$})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${$})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability($){if(!this._capabilities)return;switch($){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${$})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${$})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${$})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${$})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${$})`);break;case"ping":case"initialize":break}}assertTaskCapability($){nr(this._clientCapabilities?.tasks?.requests,$,"Client")}assertTaskHandlerCapability($){if(!this._capabilities)return;Rr(this._capabilities.tasks?.requests,$,"Server")}async _oninitialize($){let v=$.params.protocolVersion;return this._clientCapabilities=$.params.capabilities,this._clientVersion=$.params.clientInfo,{protocolVersion:rT.includes(v)?v:TK,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},OX)}async createMessage($,v){if($.tools||$.toolChoice){if(!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.")}if($.messages.length>0){let U=$.messages[$.messages.length-1],I=Array.isArray(U.content)?U.content:[U.content],b=I.some((g)=>g.type==="tool_result"),D=$.messages.length>1?$.messages[$.messages.length-2]:void 0,u=D?Array.isArray(D.content)?D.content:[D.content]:[],w=u.some((g)=>g.type==="tool_use");if(b){if(I.some((g)=>g.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!w)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(w){let g=new Set(u.filter((X)=>X.type==="tool_use").map((X)=>X.id)),J=new Set(I.filter((X)=>X.type==="tool_result").map((X)=>X.toolUseId));if(g.size!==J.size||![...g].every((X)=>J.has(X)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}if($.tools)return this.request({method:"sampling/createMessage",params:$},oK,v);return this.request({method:"sampling/createMessage",params:$},bD,v)}async elicitInput($,v){switch($.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");let I=$;return this.request({method:"elicitation/create",params:I},AI,v)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let I=$.mode==="form"?$:{...$,mode:"form"},b=await this.request({method:"elicitation/create",params:I},AI,v);if(b.action==="accept"&&b.content&&I.requestedSchema)try{let u=this._jsonSchemaValidator.getValidator(I.requestedSchema)(b.content);if(!u.valid)throw new D$(G$.InvalidParams,`Elicitation response content does not match requested schema: ${u.errorMessage}`)}catch(D){if(D instanceof D$)throw D;throw new D$(G$.InternalError,`Error validating elicitation response: ${D instanceof Error?D.message:String(D)}`)}return b}}}createElicitationCompletionNotifier($,v){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:$}},v)}async listRoots($,v){return this.request({method:"roots/list",params:$},tK,v)}async sendLoggingMessage($,v){if(this._capabilities.logging){if(!this.isMessageIgnored($.level,v))return this.notification({method:"notifications/message",params:$})}}async sendResourceUpdated($){return this.notification({method:"notifications/resources/updated",params:$})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}import Cr from"process";class IB{append($){this._buffer=this._buffer?Buffer.concat([this._buffer,$]):$}readMessage(){if(!this._buffer)return null;let $=this._buffer.indexOf(`
|
|
350
|
-
`);if($===-1)return null;let v=this._buffer.toString("utf8",0,$).replace(/\r$/,"");return this._buffer=this._buffer.subarray($+1),
|
|
351
|
-
`}class DB{constructor($=Cr.stdin,v=Cr.stdout){this._stdin=$,this._stdout=v,this._readBuffer=new IB,this._started=!1,this._ondata=(U)=>{this._readBuffer.append(U),this.processReadBuffer()},this._onerror=(U)=>{this.onerror?.(U)}}async start(){if(this._started)throw Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){while(!0)try{let $=this._readBuffer.readMessage();if($===null)break;this.onmessage?.($)}catch($){this.onerror?.($)}}async close(){if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),this.onclose?.()}send($){return new Promise((v)=>{let U=rr($);if(this._stdout.write(U))v();else this._stdout.once("drain",v)})}}var
|
|
349
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let u of $.seen.entries()){let w=u[1];if(v===u[0]){D(u);continue}if($.external){let J=$.external.registry.get(u[0])?.id;if(v!==u[0]&&J){D(u);continue}}if($.metadataRegistry.get(u[0])?.id){D(u);continue}if(w.cycle){D(u);continue}if(w.count>1){if($.reused==="ref"){D(u);continue}}}}function BK($,v){let U=$.seen.get(v);if(!U)throw Error("Unprocessed schema. This is a bug in Zod.");let I=(u)=>{let w=$.seen.get(u);if(w.ref===null)return;let g=w.def??w.schema,J={...g},X=w.ref;if(w.ref=null,X){I(X);let G=$.seen.get(X),O=G.schema;if(O.$ref&&($.target==="draft-07"||$.target==="draft-04"||$.target==="openapi-3.0"))g.allOf=g.allOf??[],g.allOf.push(O);else Object.assign(g,O);if(Object.assign(g,J),u._zod.parent===X)for(let Q in g){if(Q==="$ref"||Q==="allOf")continue;if(!(Q in J))delete g[Q]}if(O.$ref&&G.def)for(let Q in g){if(Q==="$ref"||Q==="allOf")continue;if(Q in G.def&&JSON.stringify(g[Q])===JSON.stringify(G.def[Q]))delete g[Q]}}let W=u._zod.parent;if(W&&W!==X){I(W);let G=$.seen.get(W);if(G?.schema.$ref){if(g.$ref=G.schema.$ref,G.def)for(let O in g){if(O==="$ref"||O==="allOf")continue;if(O in G.def&&JSON.stringify(g[O])===JSON.stringify(G.def[O]))delete g[O]}}}$.override({zodSchema:u,jsonSchema:g,path:w.path??[]})};for(let u of[...$.seen.entries()].reverse())I(u[0]);let b={};if($.target==="draft-2020-12")b.$schema="https://json-schema.org/draft/2020-12/schema";else if($.target==="draft-07")b.$schema="http://json-schema.org/draft-07/schema#";else if($.target==="draft-04")b.$schema="http://json-schema.org/draft-04/schema#";else if($.target==="openapi-3.0");if($.external?.uri){let u=$.external.registry.get(v)?.id;if(!u)throw Error("Schema is missing an `id` property");b.$id=$.external.uri(u)}Object.assign(b,U.def??U.schema);let D=$.external?.defs??{};for(let u of $.seen.entries()){let w=u[1];if(w.def&&w.defId)D[w.defId]=w.def}if($.external);else if(Object.keys(D).length>0)if($.target==="draft-2020-12")b.$defs=D;else b.definitions=D;try{let u=JSON.parse(JSON.stringify(b));return Object.defineProperty(u,"~standard",{value:{...v["~standard"],jsonSchema:{input:y0(v,"input",$.processors),output:y0(v,"output",$.processors)}},enumerable:!1,writable:!1}),u}catch(u){throw Error("Error converting schema to JSON.")}}function Sv($,v){let U=v??{seen:new Set};if(U.seen.has($))return!1;U.seen.add($);let I=$._zod.def;if(I.type==="transform")return!0;if(I.type==="array")return Sv(I.element,U);if(I.type==="set")return Sv(I.valueType,U);if(I.type==="lazy")return Sv(I.getter(),U);if(I.type==="promise"||I.type==="optional"||I.type==="nonoptional"||I.type==="nullable"||I.type==="readonly"||I.type==="default"||I.type==="prefault")return Sv(I.innerType,U);if(I.type==="intersection")return Sv(I.left,U)||Sv(I.right,U);if(I.type==="record"||I.type==="map")return Sv(I.keyType,U)||Sv(I.valueType,U);if(I.type==="pipe")return Sv(I.in,U)||Sv(I.out,U);if(I.type==="object"){for(let b in I.shape)if(Sv(I.shape[b],U))return!0;return!1}if(I.type==="union"){for(let b of I.options)if(Sv(b,U))return!0;return!1}if(I.type==="tuple"){for(let b of I.items)if(Sv(b,U))return!0;if(I.rest&&Sv(I.rest,U))return!0;return!1}return!1}var rZ=($,v={})=>(U)=>{let I=KK({...U,processors:v});return p$($,I),qK(I,$),BK(I,$)},y0=($,v,U={})=>(I)=>{let{libraryOptions:b,target:D}=I??{},u=KK({...b??{},target:D,io:v,processors:U});return p$($,u),qK(u,$),BK(u,$)};var ua={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},CZ=($,v,U,I)=>{let b=U;b.type="string";let{minimum:D,maximum:u,format:w,patterns:g,contentEncoding:J}=$._zod.bag;if(typeof D==="number")b.minLength=D;if(typeof u==="number")b.maxLength=u;if(w){if(b.format=ua[w]??w,b.format==="")delete b.format;if(w==="time")delete b.format}if(J)b.contentEncoding=J;if(g&&g.size>0){let X=[...g];if(X.length===1)b.pattern=X[0].source;else if(X.length>1)b.allOf=[...X.map((W)=>({...v.target==="draft-07"||v.target==="draft-04"||v.target==="openapi-3.0"?{type:"string"}:{},pattern:W.source}))]}},iZ=($,v,U,I)=>{let b=U,{minimum:D,maximum:u,format:w,multipleOf:g,exclusiveMaximum:J,exclusiveMinimum:X}=$._zod.bag;if(typeof w==="string"&&w.includes("int"))b.type="integer";else b.type="number";if(typeof X==="number")if(v.target==="draft-04"||v.target==="openapi-3.0")b.minimum=X,b.exclusiveMinimum=!0;else b.exclusiveMinimum=X;if(typeof D==="number"){if(b.minimum=D,typeof X==="number"&&v.target!=="draft-04")if(X>=D)delete b.minimum;else delete b.exclusiveMinimum}if(typeof J==="number")if(v.target==="draft-04"||v.target==="openapi-3.0")b.maximum=J,b.exclusiveMaximum=!0;else b.exclusiveMaximum=J;if(typeof u==="number"){if(b.maximum=u,typeof J==="number"&&v.target!=="draft-04")if(J<=u)delete b.maximum;else delete b.exclusiveMaximum}if(typeof g==="number")b.multipleOf=g},xZ=($,v,U,I)=>{U.type="boolean"};var lZ=($,v,U,I)=>{if(v.target==="openapi-3.0")U.type="string",U.nullable=!0,U.enum=[null];else U.type="null"};var fZ=($,v,U,I)=>{U.not={}};var yZ=($,v,U,I)=>{};var hZ=($,v,U,I)=>{let b=$._zod.def,D=k0(b.entries);if(D.every((u)=>typeof u==="number"))U.type="number";if(D.every((u)=>typeof u==="string"))U.type="string";U.enum=D},mZ=($,v,U,I)=>{let b=$._zod.def,D=[];for(let u of b.values)if(u===void 0){if(v.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof u==="bigint")if(v.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else D.push(Number(u));else D.push(u);if(D.length===0);else if(D.length===1){let u=D[0];if(U.type=u===null?"null":typeof u,v.target==="draft-04"||v.target==="openapi-3.0")U.enum=[u];else U.const=u}else{if(D.every((u)=>typeof u==="number"))U.type="number";if(D.every((u)=>typeof u==="string"))U.type="string";if(D.every((u)=>typeof u==="boolean"))U.type="boolean";if(D.every((u)=>u===null))U.type="null";U.enum=D}};var cZ=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")};var oZ=($,v,U,I)=>{if(v.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")};var tZ=($,v,U,I)=>{let b=U,D=$._zod.def,{minimum:u,maximum:w}=$._zod.bag;if(typeof u==="number")b.minItems=u;if(typeof w==="number")b.maxItems=w;b.type="array",b.items=p$(D.element,v,{...I,path:[...I.path,"items"]})},dZ=($,v,U,I)=>{let b=U,D=$._zod.def;b.type="object",b.properties={};let u=D.shape;for(let J in u)b.properties[J]=p$(u[J],v,{...I,path:[...I.path,"properties",J]});let w=new Set(Object.keys(u)),g=new Set([...w].filter((J)=>{let X=D.shape[J]._zod;if(v.io==="input")return X.optin===void 0;else return X.optout===void 0}));if(g.size>0)b.required=Array.from(g);if(D.catchall?._zod.def.type==="never")b.additionalProperties=!1;else if(!D.catchall){if(v.io==="output")b.additionalProperties=!1}else if(D.catchall)b.additionalProperties=p$(D.catchall,v,{...I,path:[...I.path,"additionalProperties"]})},pZ=($,v,U,I)=>{let b=$._zod.def,D=b.inclusive===!1,u=b.options.map((w,g)=>p$(w,v,{...I,path:[...I.path,D?"oneOf":"anyOf",g]}));if(D)U.oneOf=u;else U.anyOf=u},aZ=($,v,U,I)=>{let b=$._zod.def,D=p$(b.left,v,{...I,path:[...I.path,"allOf",0]}),u=p$(b.right,v,{...I,path:[...I.path,"allOf",1]}),w=(J)=>("allOf"in J)&&Object.keys(J).length===1,g=[...w(D)?D.allOf:[D],...w(u)?u.allOf:[u]];U.allOf=g};var eZ=($,v,U,I)=>{let b=U,D=$._zod.def;b.type="object";let u=D.keyType,g=u._zod.bag?.patterns;if(D.mode==="loose"&&g&&g.size>0){let X=p$(D.valueType,v,{...I,path:[...I.path,"patternProperties","*"]});b.patternProperties={};for(let W of g)b.patternProperties[W.source]=X}else{if(v.target==="draft-07"||v.target==="draft-2020-12")b.propertyNames=p$(D.keyType,v,{...I,path:[...I.path,"propertyNames"]});b.additionalProperties=p$(D.valueType,v,{...I,path:[...I.path,"additionalProperties"]})}let J=u._zod.values;if(J){let X=[...J].filter((W)=>typeof W==="string"||typeof W==="number");if(X.length>0)b.required=X}},sZ=($,v,U,I)=>{let b=$._zod.def,D=p$(b.innerType,v,I),u=v.seen.get($);if(v.target==="openapi-3.0")u.ref=b.innerType,U.nullable=!0;else U.anyOf=[D,{type:"null"}]},$T=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType},vT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType,U.default=JSON.parse(JSON.stringify(b.defaultValue))},bT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);if(D.ref=b.innerType,v.io==="input")U._prefault=JSON.parse(JSON.stringify(b.defaultValue))},UT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType;let u;try{u=b.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}U.default=u},IT=($,v,U,I)=>{let b=$._zod.def,D=v.io==="input"?b.in._zod.def.type==="transform"?b.out:b.in:b.out;p$(D,v,I);let u=v.seen.get($);u.ref=D},DT=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType,U.readOnly=!0};var AK=($,v,U,I)=>{let b=$._zod.def;p$(b.innerType,v,I);let D=v.seen.get($);D.ref=b.innerType};function LI($){return!!$._zod}function m6($,v){if(LI($))return C0($,v);return $.safeParse(v)}function wX($){if(!$)return;let v;if(LI($))v=$._zod?.def?.shape;else v=$.shape;if(!v)return;if(typeof v==="function")try{return v()}catch{return}return v}function uT($){if(LI($)){let D=$._zod?.def;if(D){if(D.value!==void 0)return D.value;if(Array.isArray(D.values)&&D.values.length>0)return D.values[0]}}let U=$._def;if(U){if(U.value!==void 0)return U.value;if(Array.isArray(U.values)&&U.values.length>0)return U.values[0]}let I=$.value;if(I!==void 0)return I;return}var m0={};e$(m0,{time:()=>NK,duration:()=>SK,datetime:()=>PK,date:()=>jK,ZodISOTime:()=>JT,ZodISODuration:()=>XT,ZodISODateTime:()=>wT,ZodISODate:()=>gT});var wT=M("ZodISODateTime",($,v)=>{Q2.init($,v),l$.init($,v)});function PK($){return AZ(wT,$)}var gT=M("ZodISODate",($,v)=>{Y2.init($,v),l$.init($,v)});function jK($){return PZ(gT,$)}var JT=M("ZodISOTime",($,v)=>{V2.init($,v),l$.init($,v)});function NK($){return jZ(JT,$)}var XT=M("ZodISODuration",($,v)=>{L2.init($,v),l$.init($,v)});function SK($){return NZ(XT,$)}var WT=($,v)=>{oJ.init($,v),$.name="ZodError",Object.defineProperties($,{format:{value:(U)=>$F($,U)},flatten:{value:(U)=>s_($,U)},addIssue:{value:(U)=>{$.issues.push(U),$.message=JSON.stringify($.issues,zI,2)}},addIssues:{value:(U)=>{$.issues.push(...U),$.message=JSON.stringify($.issues,zI,2)}},isEmpty:{get(){return $.issues.length===0}}})},WP$=M("ZodError",WT),dv=M("ZodError",WT,{Parent:Error});var GT=tJ(dv),OT=dJ(dv),HT=r0(dv),zT=i0(dv),QT=vF(dv),YT=bF(dv),VT=UF(dv),LT=IF(dv),KT=DF(dv),qT=uF(dv),BT=wF(dv),AT=gF(dv);var h$=M("ZodType",($,v)=>{return n$.init($,v),Object.assign($["~standard"],{jsonSchema:{input:y0($,"input"),output:y0($,"output")}}),$.toJSONSchema=rZ($,{}),$.def=v,$.type=v.type,Object.defineProperty($,"_def",{value:v}),$.check=(...U)=>{return $.clone(L$.mergeDefs(v,{checks:[...v.checks??[],...U.map((I)=>typeof I==="function"?{_zod:{check:I,def:{check:"custom"},onattach:[]}}:I)]}),{parent:!0})},$.with=$.check,$.clone=(U,I)=>W4($,U,I),$.brand=()=>$,$.register=(U,I)=>{return U.add($,I),$},$.parse=(U,I)=>GT($,U,I,{callee:$.parse}),$.safeParse=(U,I)=>HT($,U,I),$.parseAsync=async(U,I)=>OT($,U,I,{callee:$.parseAsync}),$.safeParseAsync=async(U,I)=>zT($,U,I),$.spa=$.safeParseAsync,$.encode=(U,I)=>QT($,U,I),$.decode=(U,I)=>YT($,U,I),$.encodeAsync=async(U,I)=>VT($,U,I),$.decodeAsync=async(U,I)=>LT($,U,I),$.safeEncode=(U,I)=>KT($,U,I),$.safeDecode=(U,I)=>qT($,U,I),$.safeEncodeAsync=async(U,I)=>BT($,U,I),$.safeDecodeAsync=async(U,I)=>AT($,U,I),$.refine=(U,I)=>$.check(De(U,I)),$.superRefine=(U)=>$.check(ue(U)),$.overwrite=(U)=>$.check(h6(U)),$.optional=()=>y$($),$.exactOptional=()=>oa($),$.nullable=()=>NT($),$.nullish=()=>y$(NT($)),$.nonoptional=(U)=>sa($,U),$.array=()=>O$($),$.or=(U)=>C$([$,U]),$.and=(U)=>JX($,U),$.transform=(U)=>_K($,TT(U)),$.default=(U)=>pa($,U),$.prefault=(U)=>ea($,U),$.catch=(U)=>ve($,U),$.pipe=(U)=>_K($,U),$.readonly=()=>Ie($),$.describe=(U)=>{let I=$.clone();return lb.add(I,{description:U}),I},Object.defineProperty($,"description",{get(){return lb.get($)?.description},configurable:!0}),$.meta=(...U)=>{if(U.length===0)return lb.get($);let I=$.clone();return lb.add(I,U[0]),I},$.isOptional=()=>$.safeParse(void 0).success,$.isNullable=()=>$.safeParse(null).success,$.apply=(U)=>U($),$}),ST=M("_ZodString",($,v)=>{vX.init($,v),h$.init($,v),$._zod.processJSONSchema=(I,b,D)=>CZ($,I,b,D);let U=$._zod.bag;$.format=U.format??null,$.minLength=U.minimum??null,$.maxLength=U.maximum??null,$.regex=(...I)=>$.check(JK(...I)),$.includes=(...I)=>$.check(GK(...I)),$.startsWith=(...I)=>$.check(OK(...I)),$.endsWith=(...I)=>$.check(HK(...I)),$.min=(...I)=>$.check(VI(...I)),$.max=(...I)=>$.check(DX(...I)),$.length=(...I)=>$.check(uX(...I)),$.nonempty=(...I)=>$.check(VI(1,...I)),$.lowercase=(I)=>$.check(XK(I)),$.uppercase=(I)=>$.check(WK(I)),$.trim=()=>$.check(QK()),$.normalize=(...I)=>$.check(zK(...I)),$.toLowerCase=()=>$.check(YK()),$.toUpperCase=()=>$.check(VK()),$.slugify=()=>$.check(LK())}),Qa=M("ZodString",($,v)=>{vX.init($,v),ST.init($,v),$.email=(U)=>$.check(bZ(Ya,U)),$.url=(U)=>$.check(wZ(Va,U)),$.jwt=(U)=>$.check(BZ(ka,U)),$.emoji=(U)=>$.check(gZ(La,U)),$.guid=(U)=>$.check(gK(PT,U)),$.uuid=(U)=>$.check(UZ(gX,U)),$.uuidv4=(U)=>$.check(IZ(gX,U)),$.uuidv6=(U)=>$.check(DZ(gX,U)),$.uuidv7=(U)=>$.check(uZ(gX,U)),$.nanoid=(U)=>$.check(JZ(Ka,U)),$.guid=(U)=>$.check(gK(PT,U)),$.cuid=(U)=>$.check(XZ(qa,U)),$.cuid2=(U)=>$.check(WZ(Ba,U)),$.ulid=(U)=>$.check(GZ(Aa,U)),$.base64=(U)=>$.check(LZ(Fa,U)),$.base64url=(U)=>$.check(KZ(Za,U)),$.xid=(U)=>$.check(OZ(Pa,U)),$.ksuid=(U)=>$.check(HZ(ja,U)),$.ipv4=(U)=>$.check(zZ(Na,U)),$.ipv6=(U)=>$.check(QZ(Sa,U)),$.cidrv4=(U)=>$.check(YZ(Ma,U)),$.cidrv6=(U)=>$.check(VZ(_a,U)),$.e164=(U)=>$.check(qZ(Ta,U)),$.datetime=(U)=>$.check(PK(U)),$.date=(U)=>$.check(jK(U)),$.time=(U)=>$.check(NK(U)),$.duration=(U)=>$.check(SK(U))});function N($){return vZ(Qa,$)}var l$=M("ZodStringFormat",($,v)=>{r$.init($,v),ST.init($,v)}),Ya=M("ZodEmail",($,v)=>{w2.init($,v),l$.init($,v)});var PT=M("ZodGUID",($,v)=>{D2.init($,v),l$.init($,v)});var gX=M("ZodUUID",($,v)=>{u2.init($,v),l$.init($,v)});var Va=M("ZodURL",($,v)=>{g2.init($,v),l$.init($,v)});var La=M("ZodEmoji",($,v)=>{J2.init($,v),l$.init($,v)});var Ka=M("ZodNanoID",($,v)=>{X2.init($,v),l$.init($,v)});var qa=M("ZodCUID",($,v)=>{W2.init($,v),l$.init($,v)});var Ba=M("ZodCUID2",($,v)=>{G2.init($,v),l$.init($,v)});var Aa=M("ZodULID",($,v)=>{O2.init($,v),l$.init($,v)});var Pa=M("ZodXID",($,v)=>{H2.init($,v),l$.init($,v)});var ja=M("ZodKSUID",($,v)=>{z2.init($,v),l$.init($,v)});var Na=M("ZodIPv4",($,v)=>{K2.init($,v),l$.init($,v)});var Sa=M("ZodIPv6",($,v)=>{q2.init($,v),l$.init($,v)});var Ma=M("ZodCIDRv4",($,v)=>{B2.init($,v),l$.init($,v)});var _a=M("ZodCIDRv6",($,v)=>{A2.init($,v),l$.init($,v)});var Fa=M("ZodBase64",($,v)=>{j2.init($,v),l$.init($,v)});var Za=M("ZodBase64URL",($,v)=>{N2.init($,v),l$.init($,v)});var Ta=M("ZodE164",($,v)=>{S2.init($,v),l$.init($,v)});var ka=M("ZodJWT",($,v)=>{M2.init($,v),l$.init($,v)});var MT=M("ZodNumber",($,v)=>{IK.init($,v),h$.init($,v),$._zod.processJSONSchema=(I,b,D)=>iZ($,I,b,D),$.gt=(I,b)=>$.check(UX(I,b)),$.gte=(I,b)=>$.check(f0(I,b)),$.min=(I,b)=>$.check(f0(I,b)),$.lt=(I,b)=>$.check(bX(I,b)),$.lte=(I,b)=>$.check(l0(I,b)),$.max=(I,b)=>$.check(l0(I,b)),$.int=(I)=>$.check(jT(I)),$.safe=(I)=>$.check(jT(I)),$.positive=(I)=>$.check(UX(0,I)),$.nonnegative=(I)=>$.check(f0(0,I)),$.negative=(I)=>$.check(bX(0,I)),$.nonpositive=(I)=>$.check(l0(0,I)),$.multipleOf=(I,b)=>$.check(IX(I,b)),$.step=(I,b)=>$.check(IX(I,b)),$.finite=()=>$;let U=$._zod.bag;$.minValue=Math.max(U.minimum??Number.NEGATIVE_INFINITY,U.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,$.maxValue=Math.min(U.maximum??Number.POSITIVE_INFINITY,U.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,$.isInt=(U.format??"").includes("int")||Number.isSafeInteger(U.multipleOf??0.5),$.isFinite=!0,$.format=U.format??null});function A$($){return SZ(MT,$)}var Ea=M("ZodNumberFormat",($,v)=>{_2.init($,v),MT.init($,v)});function jT($){return MZ(Ea,$)}var Ra=M("ZodBoolean",($,v)=>{F2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>xZ($,U,I,b)});function Iv($){return _Z(Ra,$)}var na=M("ZodNull",($,v)=>{Z2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>lZ($,U,I,b)});function _T($){return FZ(na,$)}var ra=M("ZodUnknown",($,v)=>{T2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>yZ($,U,I,b)});function f$(){return ZZ(ra)}var Ca=M("ZodNever",($,v)=>{k2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>fZ($,U,I,b)});function ia($){return TZ(Ca,$)}var xa=M("ZodArray",($,v)=>{E2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>tZ($,U,I,b),$.element=v.element,$.min=(U,I)=>$.check(VI(U,I)),$.nonempty=(U)=>$.check(VI(1,U)),$.max=(U,I)=>$.check(DX(U,I)),$.length=(U,I)=>$.check(uX(U,I)),$.unwrap=()=>$.element});function O$($,v){return kZ(xa,$,v)}var FT=M("ZodObject",($,v)=>{r2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>dZ($,U,I,b),L$.defineLazy($,"shape",()=>{return v.shape}),$.keyof=()=>rv(Object.keys($._zod.def.shape)),$.catchall=(U)=>$.clone({...$._zod.def,catchall:U}),$.passthrough=()=>$.clone({...$._zod.def,catchall:f$()}),$.loose=()=>$.clone({...$._zod.def,catchall:f$()}),$.strict=()=>$.clone({...$._zod.def,catchall:ia()}),$.strip=()=>$.clone({...$._zod.def,catchall:void 0}),$.extend=(U)=>{return L$.extend($,U)},$.safeExtend=(U)=>{return L$.safeExtend($,U)},$.merge=(U)=>L$.merge($,U),$.pick=(U)=>L$.pick($,U),$.omit=(U)=>L$.omit($,U),$.partial=(...U)=>L$.partial(kT,$,U[0]),$.required=(...U)=>L$.required(ET,$,U[0])});function m($,v){let U={type:"object",shape:$??{},...L$.normalizeParams(v)};return new FT(U)}function Mv($,v){return new FT({type:"object",shape:$,catchall:f$(),...L$.normalizeParams(v)})}var ZT=M("ZodUnion",($,v)=>{DK.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>pZ($,U,I,b),$.options=v.options});function C$($,v){return new ZT({type:"union",options:$,...L$.normalizeParams(v)})}var la=M("ZodDiscriminatedUnion",($,v)=>{ZT.init($,v),C2.init($,v)});function FK($,v,U){return new la({type:"union",options:v,discriminator:$,...L$.normalizeParams(U)})}var fa=M("ZodIntersection",($,v)=>{i2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>aZ($,U,I,b)});function JX($,v){return new fa({type:"intersection",left:$,right:v})}var ya=M("ZodRecord",($,v)=>{x2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>eZ($,U,I,b),$.keyType=v.keyType,$.valueType=v.valueType});function R$($,v,U){return new ya({type:"record",keyType:$,valueType:v,...L$.normalizeParams(U)})}var MK=M("ZodEnum",($,v)=>{l2.init($,v),h$.init($,v),$._zod.processJSONSchema=(I,b,D)=>hZ($,I,b,D),$.enum=v.entries,$.options=Object.values(v.entries);let U=new Set(Object.keys(v.entries));$.extract=(I,b)=>{let D={};for(let u of I)if(U.has(u))D[u]=v.entries[u];else throw Error(`Key ${u} not found in enum`);return new MK({...v,checks:[],...L$.normalizeParams(b),entries:D})},$.exclude=(I,b)=>{let D={...v.entries};for(let u of I)if(U.has(u))delete D[u];else throw Error(`Key ${u} not found in enum`);return new MK({...v,checks:[],...L$.normalizeParams(b),entries:D})}});function rv($,v){let U=Array.isArray($)?Object.fromEntries($.map((I)=>[I,I])):$;return new MK({type:"enum",entries:U,...L$.normalizeParams(v)})}var ha=M("ZodLiteral",($,v)=>{f2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>mZ($,U,I,b),$.values=new Set(v.values),Object.defineProperty($,"value",{get(){if(v.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return v.values[0]}})});function o($,v){return new ha({type:"literal",values:Array.isArray($)?$:[$],...L$.normalizeParams(v)})}var ma=M("ZodTransform",($,v)=>{y2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>oZ($,U,I,b),$._zod.parse=(U,I)=>{if(I.direction==="backward")throw new Z0($.constructor.name);U.addIssue=(D)=>{if(typeof D==="string")U.issues.push(L$.issue(D,U.value,v));else{let u=D;if(u.fatal)u.continue=!1;u.code??(u.code="custom"),u.input??(u.input=U.value),u.inst??(u.inst=$),U.issues.push(L$.issue(u))}};let b=v.transform(U.value,U);if(b instanceof Promise)return b.then((D)=>{return U.value=D,U});return U.value=b,U}});function TT($){return new ma({type:"transform",transform:$})}var kT=M("ZodOptional",($,v)=>{uK.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>AK($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function y$($){return new kT({type:"optional",innerType:$})}var ca=M("ZodExactOptional",($,v)=>{h2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>AK($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function oa($){return new ca({type:"optional",innerType:$})}var ta=M("ZodNullable",($,v)=>{m2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>sZ($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function NT($){return new ta({type:"nullable",innerType:$})}var da=M("ZodDefault",($,v)=>{c2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>vT($,U,I,b),$.unwrap=()=>$._zod.def.innerType,$.removeDefault=$.unwrap});function pa($,v){return new da({type:"default",innerType:$,get defaultValue(){return typeof v==="function"?v():L$.shallowClone(v)}})}var aa=M("ZodPrefault",($,v)=>{o2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>bT($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function ea($,v){return new aa({type:"prefault",innerType:$,get defaultValue(){return typeof v==="function"?v():L$.shallowClone(v)}})}var ET=M("ZodNonOptional",($,v)=>{t2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>$T($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function sa($,v){return new ET({type:"nonoptional",innerType:$,...L$.normalizeParams(v)})}var $e=M("ZodCatch",($,v)=>{d2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>UT($,U,I,b),$.unwrap=()=>$._zod.def.innerType,$.removeCatch=$.unwrap});function ve($,v){return new $e({type:"catch",innerType:$,catchValue:typeof v==="function"?v:()=>v})}var be=M("ZodPipe",($,v)=>{p2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>IT($,U,I,b),$.in=v.in,$.out=v.out});function _K($,v){return new be({type:"pipe",in:$,out:v})}var Ue=M("ZodReadonly",($,v)=>{a2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>DT($,U,I,b),$.unwrap=()=>$._zod.def.innerType});function Ie($){return new Ue({type:"readonly",innerType:$})}var RT=M("ZodCustom",($,v)=>{e2.init($,v),h$.init($,v),$._zod.processJSONSchema=(U,I,b)=>cZ($,U,I,b)});function nT($,v){return EZ(RT,$??(()=>!0),v)}function De($,v={}){return RZ(RT,$,v)}function ue($){return nZ($)}function ZK($,v){return _K(TT($),v)}$4(wK());var TK="2025-11-25";var rT=[TK,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],c6="io.modelcontextprotocol/related-task",WX="2.0",vv=nT(($)=>$!==null&&(typeof $==="object"||typeof $==="function")),CT=C$([N(),A$().int()]),iT=N(),Mj$=Mv({ttl:A$().optional(),pollInterval:A$().optional()}),we=m({ttl:A$().optional()}),ge=m({taskId:N()}),kK=Mv({progressToken:CT.optional(),[c6]:ge.optional()}),pv=m({_meta:kK.optional()}),c0=pv.extend({task:we.optional()}),xT=($)=>c0.safeParse($).success,gv=m({method:N(),params:pv.loose().optional()}),v4=m({_meta:kK.optional()}),b4=m({method:N(),params:v4.loose().optional()}),Jv=Mv({_meta:kK.optional()}),GX=C$([N(),A$().int()]),lT=m({jsonrpc:o(WX),id:GX,...gv.shape}).strict(),EK=($)=>lT.safeParse($).success,fT=m({jsonrpc:o(WX),...b4.shape}).strict(),yT=($)=>fT.safeParse($).success,RK=m({jsonrpc:o(WX),id:GX,result:Jv}).strict(),o0=($)=>RK.safeParse($).success;var G$;(function($){$[$.ConnectionClosed=-32000]="ConnectionClosed",$[$.RequestTimeout=-32001]="RequestTimeout",$[$.ParseError=-32700]="ParseError",$[$.InvalidRequest=-32600]="InvalidRequest",$[$.MethodNotFound=-32601]="MethodNotFound",$[$.InvalidParams=-32602]="InvalidParams",$[$.InternalError=-32603]="InternalError",$[$.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(G$||(G$={}));var nK=m({jsonrpc:o(WX),id:GX.optional(),error:m({code:A$().int(),message:N(),data:f$().optional()})}).strict();var hT=($)=>nK.safeParse($).success;var mT=C$([lT,fT,RK,nK]),_j$=C$([RK,nK]),OX=Jv.strict(),Je=v4.extend({requestId:GX.optional(),reason:N().optional()}),HX=b4.extend({method:o("notifications/cancelled"),params:Je}),Xe=m({src:N(),mimeType:N().optional(),sizes:O$(N()).optional(),theme:rv(["light","dark"]).optional()}),t0=m({icons:O$(Xe).optional()}),KI=m({name:N(),title:N().optional()}),cT=KI.extend({...KI.shape,...t0.shape,version:N(),websiteUrl:N().optional(),description:N().optional()}),We=JX(m({applyDefaults:Iv().optional()}),R$(N(),f$())),Ge=ZK(($)=>{if($&&typeof $==="object"&&!Array.isArray($)){if(Object.keys($).length===0)return{form:{}}}return $},JX(m({form:We.optional(),url:vv.optional()}),R$(N(),f$()).optional())),Oe=Mv({list:vv.optional(),cancel:vv.optional(),requests:Mv({sampling:Mv({createMessage:vv.optional()}).optional(),elicitation:Mv({create:vv.optional()}).optional()}).optional()}),He=Mv({list:vv.optional(),cancel:vv.optional(),requests:Mv({tools:Mv({call:vv.optional()}).optional()}).optional()}),ze=m({experimental:R$(N(),vv).optional(),sampling:m({context:vv.optional(),tools:vv.optional()}).optional(),elicitation:Ge.optional(),roots:m({listChanged:Iv().optional()}).optional(),tasks:Oe.optional(),extensions:R$(N(),vv).optional()}),Qe=pv.extend({protocolVersion:N(),capabilities:ze,clientInfo:cT}),rK=gv.extend({method:o("initialize"),params:Qe});var Ye=m({experimental:R$(N(),vv).optional(),logging:vv.optional(),completions:vv.optional(),prompts:m({listChanged:Iv().optional()}).optional(),resources:m({subscribe:Iv().optional(),listChanged:Iv().optional()}).optional(),tools:m({listChanged:Iv().optional()}).optional(),tasks:He.optional(),extensions:R$(N(),vv).optional()}),Ve=Jv.extend({protocolVersion:N(),capabilities:Ye,serverInfo:cT,instructions:N().optional()}),CK=b4.extend({method:o("notifications/initialized"),params:v4.optional()});var zX=gv.extend({method:o("ping"),params:pv.optional()}),Le=m({progress:A$(),total:y$(A$()),message:y$(N())}),Ke=m({...v4.shape,...Le.shape,progressToken:CT}),QX=b4.extend({method:o("notifications/progress"),params:Ke}),qe=pv.extend({cursor:iT.optional()}),d0=gv.extend({params:qe.optional()}),p0=Jv.extend({nextCursor:iT.optional()}),Be=rv(["working","input_required","completed","failed","cancelled"]),a0=m({taskId:N(),status:Be,ttl:C$([A$(),_T()]),createdAt:N(),lastUpdatedAt:N(),pollInterval:y$(A$()),statusMessage:y$(N())}),qI=Jv.extend({task:a0}),Ae=v4.merge(a0),e0=b4.extend({method:o("notifications/tasks/status"),params:Ae}),YX=gv.extend({method:o("tasks/get"),params:pv.extend({taskId:N()})}),VX=Jv.merge(a0),LX=gv.extend({method:o("tasks/result"),params:pv.extend({taskId:N()})}),Fj$=Jv.loose(),KX=d0.extend({method:o("tasks/list")}),qX=p0.extend({tasks:O$(a0)}),BX=gv.extend({method:o("tasks/cancel"),params:pv.extend({taskId:N()})}),oT=Jv.merge(a0),tT=m({uri:N(),mimeType:y$(N()),_meta:R$(N(),f$()).optional()}),dT=tT.extend({text:N()}),iK=N().refine(($)=>{try{return atob($),!0}catch{return!1}},{message:"Invalid Base64 string"}),pT=tT.extend({blob:iK}),s0=rv(["user","assistant"]),BI=m({audience:O$(s0).optional(),priority:A$().min(0).max(1).optional(),lastModified:m0.datetime({offset:!0}).optional()}),aT=m({...KI.shape,...t0.shape,uri:N(),description:y$(N()),mimeType:y$(N()),size:y$(A$()),annotations:BI.optional(),_meta:y$(Mv({}))}),Pe=m({...KI.shape,...t0.shape,uriTemplate:N(),description:y$(N()),mimeType:y$(N()),annotations:BI.optional(),_meta:y$(Mv({}))}),je=d0.extend({method:o("resources/list")}),Ne=p0.extend({resources:O$(aT)}),Se=d0.extend({method:o("resources/templates/list")}),Me=p0.extend({resourceTemplates:O$(Pe)}),xK=pv.extend({uri:N()}),_e=xK,Fe=gv.extend({method:o("resources/read"),params:_e}),Ze=Jv.extend({contents:O$(C$([dT,pT]))}),Te=b4.extend({method:o("notifications/resources/list_changed"),params:v4.optional()}),ke=xK,Ee=gv.extend({method:o("resources/subscribe"),params:ke}),Re=xK,ne=gv.extend({method:o("resources/unsubscribe"),params:Re}),re=v4.extend({uri:N()}),Ce=b4.extend({method:o("notifications/resources/updated"),params:re}),ie=m({name:N(),description:y$(N()),required:y$(Iv())}),xe=m({...KI.shape,...t0.shape,description:y$(N()),arguments:y$(O$(ie)),_meta:y$(Mv({}))}),le=d0.extend({method:o("prompts/list")}),fe=p0.extend({prompts:O$(xe)}),ye=pv.extend({name:N(),arguments:R$(N(),N()).optional()}),he=gv.extend({method:o("prompts/get"),params:ye}),lK=m({type:o("text"),text:N(),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),fK=m({type:o("image"),data:iK,mimeType:N(),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),yK=m({type:o("audio"),data:iK,mimeType:N(),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),me=m({type:o("tool_use"),name:N(),id:N(),input:R$(N(),f$()),_meta:R$(N(),f$()).optional()}),ce=m({type:o("resource"),resource:C$([dT,pT]),annotations:BI.optional(),_meta:R$(N(),f$()).optional()}),oe=aT.extend({type:o("resource_link")}),hK=C$([lK,fK,yK,oe,ce]),te=m({role:s0,content:hK}),de=Jv.extend({description:N().optional(),messages:O$(te)}),pe=b4.extend({method:o("notifications/prompts/list_changed"),params:v4.optional()}),ae=m({title:N().optional(),readOnlyHint:Iv().optional(),destructiveHint:Iv().optional(),idempotentHint:Iv().optional(),openWorldHint:Iv().optional()}),ee=m({taskSupport:rv(["required","optional","forbidden"]).optional()}),eT=m({...KI.shape,...t0.shape,description:N().optional(),inputSchema:m({type:o("object"),properties:R$(N(),vv).optional(),required:O$(N()).optional()}).catchall(f$()),outputSchema:m({type:o("object"),properties:R$(N(),vv).optional(),required:O$(N()).optional()}).catchall(f$()).optional(),annotations:ae.optional(),execution:ee.optional(),_meta:R$(N(),f$()).optional()}),mK=d0.extend({method:o("tools/list")}),se=p0.extend({tools:O$(eT)}),AX=Jv.extend({content:O$(hK).default([]),structuredContent:R$(N(),f$()).optional(),isError:Iv().optional()}),Zj$=AX.or(Jv.extend({toolResult:f$()})),$s=c0.extend({name:N(),arguments:R$(N(),f$()).optional()}),$D=gv.extend({method:o("tools/call"),params:$s}),vs=b4.extend({method:o("notifications/tools/list_changed"),params:v4.optional()}),Tj$=m({autoRefresh:Iv().default(!0),debounceMs:A$().int().nonnegative().default(300)}),vD=rv(["debug","info","notice","warning","error","critical","alert","emergency"]),bs=pv.extend({level:vD}),cK=gv.extend({method:o("logging/setLevel"),params:bs}),Us=v4.extend({level:vD,logger:N().optional(),data:f$()}),Is=b4.extend({method:o("notifications/message"),params:Us}),Ds=m({name:N().optional()}),us=m({hints:O$(Ds).optional(),costPriority:A$().min(0).max(1).optional(),speedPriority:A$().min(0).max(1).optional(),intelligencePriority:A$().min(0).max(1).optional()}),ws=m({mode:rv(["auto","required","none"]).optional()}),gs=m({type:o("tool_result"),toolUseId:N().describe("The unique identifier for the corresponding tool call."),content:O$(hK).default([]),structuredContent:m({}).loose().optional(),isError:Iv().optional(),_meta:R$(N(),f$()).optional()}),Js=FK("type",[lK,fK,yK]),XX=FK("type",[lK,fK,yK,me,gs]),Xs=m({role:s0,content:C$([XX,O$(XX)]),_meta:R$(N(),f$()).optional()}),Ws=c0.extend({messages:O$(Xs),modelPreferences:us.optional(),systemPrompt:N().optional(),includeContext:rv(["none","thisServer","allServers"]).optional(),temperature:A$().optional(),maxTokens:A$().int(),stopSequences:O$(N()).optional(),metadata:vv.optional(),tools:O$(eT).optional(),toolChoice:ws.optional()}),Gs=gv.extend({method:o("sampling/createMessage"),params:Ws}),bD=Jv.extend({model:N(),stopReason:y$(rv(["endTurn","stopSequence","maxTokens"]).or(N())),role:s0,content:Js}),oK=Jv.extend({model:N(),stopReason:y$(rv(["endTurn","stopSequence","maxTokens","toolUse"]).or(N())),role:s0,content:C$([XX,O$(XX)])}),Os=m({type:o("boolean"),title:N().optional(),description:N().optional(),default:Iv().optional()}),Hs=m({type:o("string"),title:N().optional(),description:N().optional(),minLength:A$().optional(),maxLength:A$().optional(),format:rv(["email","uri","date","date-time"]).optional(),default:N().optional()}),zs=m({type:rv(["number","integer"]),title:N().optional(),description:N().optional(),minimum:A$().optional(),maximum:A$().optional(),default:A$().optional()}),Qs=m({type:o("string"),title:N().optional(),description:N().optional(),enum:O$(N()),default:N().optional()}),Ys=m({type:o("string"),title:N().optional(),description:N().optional(),oneOf:O$(m({const:N(),title:N()})),default:N().optional()}),Vs=m({type:o("string"),title:N().optional(),description:N().optional(),enum:O$(N()),enumNames:O$(N()).optional(),default:N().optional()}),Ls=C$([Qs,Ys]),Ks=m({type:o("array"),title:N().optional(),description:N().optional(),minItems:A$().optional(),maxItems:A$().optional(),items:m({type:o("string"),enum:O$(N())}),default:O$(N()).optional()}),qs=m({type:o("array"),title:N().optional(),description:N().optional(),minItems:A$().optional(),maxItems:A$().optional(),items:m({anyOf:O$(m({const:N(),title:N()}))}),default:O$(N()).optional()}),Bs=C$([Ks,qs]),As=C$([Vs,Ls,Bs]),Ps=C$([As,Os,Hs,zs]),js=c0.extend({mode:o("form").optional(),message:N(),requestedSchema:m({type:o("object"),properties:R$(N(),Ps),required:O$(N()).optional()})}),Ns=c0.extend({mode:o("url"),message:N(),elicitationId:N(),url:N().url()}),Ss=C$([js,Ns]),Ms=gv.extend({method:o("elicitation/create"),params:Ss}),_s=v4.extend({elicitationId:N()}),Fs=b4.extend({method:o("notifications/elicitation/complete"),params:_s}),AI=Jv.extend({action:rv(["accept","decline","cancel"]),content:ZK(($)=>$===null?void 0:$,R$(N(),C$([N(),A$(),Iv(),O$(N())])).optional())}),Zs=m({type:o("ref/resource"),uri:N()});var Ts=m({type:o("ref/prompt"),name:N()}),ks=pv.extend({ref:C$([Ts,Zs]),argument:m({name:N(),value:N()}),context:m({arguments:R$(N(),N()).optional()}).optional()}),Es=gv.extend({method:o("completion/complete"),params:ks});var Rs=Jv.extend({completion:Mv({values:O$(N()).max(100),total:y$(A$().int()),hasMore:y$(Iv())})}),ns=m({uri:N().startsWith("file://"),name:N().optional(),_meta:R$(N(),f$()).optional()}),rs=gv.extend({method:o("roots/list"),params:pv.optional()}),tK=Jv.extend({roots:O$(ns)}),Cs=b4.extend({method:o("notifications/roots/list_changed"),params:v4.optional()}),kj$=C$([zX,rK,Es,cK,he,le,je,Se,Fe,Ee,ne,$D,mK,YX,LX,KX,BX]),Ej$=C$([HX,QX,CK,Cs,e0]),Rj$=C$([OX,bD,oK,AI,tK,VX,qX,qI]),nj$=C$([zX,Gs,Ms,rs,YX,LX,KX,BX]),rj$=C$([HX,QX,Is,Ce,Te,vs,pe,e0,Fs]),Cj$=C$([OX,Ve,Rs,de,fe,Ne,Me,Ze,AX,se,VX,qX,qI]);class D$ extends Error{constructor($,v,U){super(`MCP error ${$}: ${v}`);this.code=$,this.data=U,this.name="McpError"}static fromError($,v,U){if($===G$.UrlElicitationRequired&&U){let I=U;if(I.elicitations)return new sT(I.elicitations,v)}return new D$($,v,U)}}class sT extends D${constructor($,v=`URL elicitation${$.length>1?"s":""} required`){super(G$.UrlElicitationRequired,v,{elicitations:$})}get elicitations(){return this.data?.elicitations??[]}}function o6($){return $==="completed"||$==="failed"||$==="cancelled"}var is=Symbol("Let zodToJsonSchema decide on which parser to use");var YN$=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function dK($){let U=wX($)?.method;if(!U)throw Error("Schema is missing a method literal");let I=uT(U);if(typeof I!=="string")throw Error("Schema method literal must be a string");return I}function pK($,v){let U=m6($,v);if(!U.success)throw U.error;return U.data}var ms=60000;class aK{constructor($){if(this._options=$,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(HX,(v)=>{this._oncancel(v)}),this.setNotificationHandler(QX,(v)=>{this._onprogress(v)}),this.setRequestHandler(zX,(v)=>({})),this._taskStore=$?.taskStore,this._taskMessageQueue=$?.taskMessageQueue,this._taskStore)this.setRequestHandler(YX,async(v,U)=>{let I=await this._taskStore.getTask(v.params.taskId,U.sessionId);if(!I)throw new D$(G$.InvalidParams,"Failed to retrieve task: Task not found");return{...I}}),this.setRequestHandler(LX,async(v,U)=>{let I=async()=>{let b=v.params.taskId;if(this._taskMessageQueue){let u;while(u=await this._taskMessageQueue.dequeue(b,U.sessionId)){if(u.type==="response"||u.type==="error"){let w=u.message,g=w.id,J=this._requestResolvers.get(g);if(J)if(this._requestResolvers.delete(g),u.type==="response")J(w);else{let X=w,W=new D$(X.error.code,X.error.message,X.error.data);J(W)}else{let X=u.type==="response"?"Response":"Error";this._onerror(Error(`${X} handler missing for request ${g}`))}continue}await this._transport?.send(u.message,{relatedRequestId:U.requestId})}}let D=await this._taskStore.getTask(b,U.sessionId);if(!D)throw new D$(G$.InvalidParams,`Task not found: ${b}`);if(!o6(D.status))return await this._waitForTaskUpdate(b,U.signal),await I();if(o6(D.status)){let u=await this._taskStore.getTaskResult(b,U.sessionId);return this._clearTaskQueue(b),{...u,_meta:{...u._meta,[c6]:{taskId:b}}}}return await I()};return await I()}),this.setRequestHandler(KX,async(v,U)=>{try{let{tasks:I,nextCursor:b}=await this._taskStore.listTasks(v.params?.cursor,U.sessionId);return{tasks:I,nextCursor:b,_meta:{}}}catch(I){throw new D$(G$.InvalidParams,`Failed to list tasks: ${I instanceof Error?I.message:String(I)}`)}}),this.setRequestHandler(BX,async(v,U)=>{try{let I=await this._taskStore.getTask(v.params.taskId,U.sessionId);if(!I)throw new D$(G$.InvalidParams,`Task not found: ${v.params.taskId}`);if(o6(I.status))throw new D$(G$.InvalidParams,`Cannot cancel task in terminal status: ${I.status}`);await this._taskStore.updateTaskStatus(v.params.taskId,"cancelled","Client cancelled task execution.",U.sessionId),this._clearTaskQueue(v.params.taskId);let b=await this._taskStore.getTask(v.params.taskId,U.sessionId);if(!b)throw new D$(G$.InvalidParams,`Task not found after cancellation: ${v.params.taskId}`);return{_meta:{},...b}}catch(I){if(I instanceof D$)throw I;throw new D$(G$.InvalidRequest,`Failed to cancel task: ${I instanceof Error?I.message:String(I)}`)}})}async _oncancel($){if(!$.params.requestId)return;this._requestHandlerAbortControllers.get($.params.requestId)?.abort($.params.reason)}_setupTimeout($,v,U,I,b=!1){this._timeoutInfo.set($,{timeoutId:setTimeout(I,v),startTime:Date.now(),timeout:v,maxTotalTimeout:U,resetTimeoutOnProgress:b,onTimeout:I})}_resetTimeout($){let v=this._timeoutInfo.get($);if(!v)return!1;let U=Date.now()-v.startTime;if(v.maxTotalTimeout&&U>=v.maxTotalTimeout)throw this._timeoutInfo.delete($),D$.fromError(G$.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:v.maxTotalTimeout,totalElapsed:U});return clearTimeout(v.timeoutId),v.timeoutId=setTimeout(v.onTimeout,v.timeout),!0}_cleanupTimeout($){let v=this._timeoutInfo.get($);if(v)clearTimeout(v.timeoutId),this._timeoutInfo.delete($)}async connect($){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=$;let v=this.transport?.onclose;this._transport.onclose=()=>{v?.(),this._onclose()};let U=this.transport?.onerror;this._transport.onerror=(b)=>{U?.(b),this._onerror(b)};let I=this._transport?.onmessage;this._transport.onmessage=(b,D)=>{if(I?.(b,D),o0(b)||hT(b))this._onresponse(b);else if(EK(b))this._onrequest(b,D);else if(yT(b))this._onnotification(b);else this._onerror(Error(`Unknown message type: ${JSON.stringify(b)}`))},await this._transport.start()}_onclose(){let $=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let U of this._timeoutInfo.values())clearTimeout(U.timeoutId);this._timeoutInfo.clear();for(let U of this._requestHandlerAbortControllers.values())U.abort();this._requestHandlerAbortControllers.clear();let v=D$.fromError(G$.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let U of $.values())U(v)}_onerror($){this.onerror?.($)}_onnotification($){let v=this._notificationHandlers.get($.method)??this.fallbackNotificationHandler;if(v===void 0)return;Promise.resolve().then(()=>v($)).catch((U)=>this._onerror(Error(`Uncaught error in notification handler: ${U}`)))}_onrequest($,v){let U=this._requestHandlers.get($.method)??this.fallbackRequestHandler,I=this._transport,b=$.params?._meta?.[c6]?.taskId;if(U===void 0){let J={jsonrpc:"2.0",id:$.id,error:{code:G$.MethodNotFound,message:"Method not found"}};if(b&&this._taskMessageQueue)this._enqueueTaskMessage(b,{type:"error",message:J,timestamp:Date.now()},I?.sessionId).catch((X)=>this._onerror(Error(`Failed to enqueue error response: ${X}`)));else I?.send(J).catch((X)=>this._onerror(Error(`Failed to send an error response: ${X}`)));return}let D=new AbortController;this._requestHandlerAbortControllers.set($.id,D);let u=xT($.params)?$.params.task:void 0,w=this._taskStore?this.requestTaskStore($,I?.sessionId):void 0,g={signal:D.signal,sessionId:I?.sessionId,_meta:$.params?._meta,sendNotification:async(J)=>{if(D.signal.aborted)return;let X={relatedRequestId:$.id};if(b)X.relatedTask={taskId:b};await this.notification(J,X)},sendRequest:async(J,X,W)=>{if(D.signal.aborted)throw new D$(G$.ConnectionClosed,"Request was cancelled");let G={...W,relatedRequestId:$.id};if(b&&!G.relatedTask)G.relatedTask={taskId:b};let O=G.relatedTask?.taskId??b;if(O&&w)await w.updateTaskStatus(O,"input_required");return await this.request(J,X,G)},authInfo:v?.authInfo,requestId:$.id,requestInfo:v?.requestInfo,taskId:b,taskStore:w,taskRequestedTtl:u?.ttl,closeSSEStream:v?.closeSSEStream,closeStandaloneSSEStream:v?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(u)this.assertTaskHandlerCapability($.method)}).then(()=>U($,g)).then(async(J)=>{if(D.signal.aborted)return;let X={result:J,jsonrpc:"2.0",id:$.id};if(b&&this._taskMessageQueue)await this._enqueueTaskMessage(b,{type:"response",message:X,timestamp:Date.now()},I?.sessionId);else await I?.send(X)},async(J)=>{if(D.signal.aborted)return;let X={jsonrpc:"2.0",id:$.id,error:{code:Number.isSafeInteger(J.code)?J.code:G$.InternalError,message:J.message??"Internal error",...J.data!==void 0&&{data:J.data}}};if(b&&this._taskMessageQueue)await this._enqueueTaskMessage(b,{type:"error",message:X,timestamp:Date.now()},I?.sessionId);else await I?.send(X)}).catch((J)=>this._onerror(Error(`Failed to send response: ${J}`))).finally(()=>{if(this._requestHandlerAbortControllers.get($.id)===D)this._requestHandlerAbortControllers.delete($.id)})}_onprogress($){let{progressToken:v,...U}=$.params,I=Number(v),b=this._progressHandlers.get(I);if(!b){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify($)}`));return}let D=this._responseHandlers.get(I),u=this._timeoutInfo.get(I);if(u&&D&&u.resetTimeoutOnProgress)try{this._resetTimeout(I)}catch(w){this._responseHandlers.delete(I),this._progressHandlers.delete(I),this._cleanupTimeout(I),D(w);return}b(U)}_onresponse($){let v=Number($.id),U=this._requestResolvers.get(v);if(U){if(this._requestResolvers.delete(v),o0($))U($);else{let D=new D$($.error.code,$.error.message,$.error.data);U(D)}return}let I=this._responseHandlers.get(v);if(I===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify($)}`));return}this._responseHandlers.delete(v),this._cleanupTimeout(v);let b=!1;if(o0($)&&$.result&&typeof $.result==="object"){let D=$.result;if(D.task&&typeof D.task==="object"){let u=D.task;if(typeof u.taskId==="string")b=!0,this._taskProgressTokens.set(u.taskId,v)}}if(!b)this._progressHandlers.delete(v);if(o0($))I($);else{let D=D$.fromError($.error.code,$.error.message,$.error.data);I(D)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream($,v,U){let{task:I}=U??{};if(!I){try{yield{type:"result",result:await this.request($,v,U)}}catch(D){yield{type:"error",error:D instanceof D$?D:new D$(G$.InternalError,String(D))}}return}let b;try{let D=await this.request($,qI,U);if(D.task)b=D.task.taskId,yield{type:"taskCreated",task:D.task};else throw new D$(G$.InternalError,"Task creation did not return a task");while(!0){let u=await this.getTask({taskId:b},U);if(yield{type:"taskStatus",task:u},o6(u.status)){if(u.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:b},v,U)};else if(u.status==="failed")yield{type:"error",error:new D$(G$.InternalError,`Task ${b} failed`)};else if(u.status==="cancelled")yield{type:"error",error:new D$(G$.InternalError,`Task ${b} was cancelled`)};return}if(u.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:b},v,U)};return}let w=u.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((g)=>setTimeout(g,w)),U?.signal?.throwIfAborted()}}catch(D){yield{type:"error",error:D instanceof D$?D:new D$(G$.InternalError,String(D))}}}request($,v,U){let{relatedRequestId:I,resumptionToken:b,onresumptiontoken:D,task:u,relatedTask:w}=U??{};return new Promise((g,J)=>{let X=(K)=>{J(K)};if(!this._transport){X(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod($.method),u)this.assertTaskCapability($.method)}catch(K){X(K);return}U?.signal?.throwIfAborted();let W=this._requestMessageId++,G={...$,jsonrpc:"2.0",id:W};if(U?.onprogress)this._progressHandlers.set(W,U.onprogress),G.params={...$.params,_meta:{...$.params?._meta||{},progressToken:W}};if(u)G.params={...G.params,task:u};if(w)G.params={...G.params,_meta:{...G.params?._meta||{},[c6]:w}};let O=(K)=>{this._responseHandlers.delete(W),this._progressHandlers.delete(W),this._cleanupTimeout(W),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:W,reason:String(K)}},{relatedRequestId:I,resumptionToken:b,onresumptiontoken:D}).catch((S)=>this._onerror(Error(`Failed to send cancellation: ${S}`)));let F=K instanceof D$?K:new D$(G$.RequestTimeout,String(K));J(F)};this._responseHandlers.set(W,(K)=>{if(U?.signal?.aborted)return;if(K instanceof Error)return J(K);try{let F=m6(v,K.result);if(!F.success)J(F.error);else g(F.data)}catch(F){J(F)}}),U?.signal?.addEventListener("abort",()=>{O(U?.signal?.reason)});let z=U?.timeout??ms,Q=()=>O(D$.fromError(G$.RequestTimeout,"Request timed out",{timeout:z}));this._setupTimeout(W,z,U?.maxTotalTimeout,Q,U?.resetTimeoutOnProgress??!1);let Y=w?.taskId;if(Y){let K=(F)=>{let S=this._responseHandlers.get(W);if(S)S(F);else this._onerror(Error(`Response handler missing for side-channeled request ${W}`))};this._requestResolvers.set(W,K),this._enqueueTaskMessage(Y,{type:"request",message:G,timestamp:Date.now()}).catch((F)=>{this._cleanupTimeout(W),J(F)})}else this._transport.send(G,{relatedRequestId:I,resumptionToken:b,onresumptiontoken:D}).catch((K)=>{this._cleanupTimeout(W),J(K)})})}async getTask($,v){return this.request({method:"tasks/get",params:$},VX,v)}async getTaskResult($,v,U){return this.request({method:"tasks/result",params:$},v,U)}async listTasks($,v){return this.request({method:"tasks/list",params:$},qX,v)}async cancelTask($,v){return this.request({method:"tasks/cancel",params:$},oT,v)}async notification($,v){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability($.method);let U=v?.relatedTask?.taskId;if(U){let u={...$,jsonrpc:"2.0",params:{...$.params,_meta:{...$.params?._meta||{},[c6]:v.relatedTask}}};await this._enqueueTaskMessage(U,{type:"notification",message:u,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes($.method)&&!$.params&&!v?.relatedRequestId&&!v?.relatedTask){if(this._pendingDebouncedNotifications.has($.method))return;this._pendingDebouncedNotifications.add($.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete($.method),!this._transport)return;let u={...$,jsonrpc:"2.0"};if(v?.relatedTask)u={...u,params:{...u.params,_meta:{...u.params?._meta||{},[c6]:v.relatedTask}}};this._transport?.send(u,v).catch((w)=>this._onerror(w))});return}let D={...$,jsonrpc:"2.0"};if(v?.relatedTask)D={...D,params:{...D.params,_meta:{...D.params?._meta||{},[c6]:v.relatedTask}}};await this._transport.send(D,v)}setRequestHandler($,v){let U=dK($);this.assertRequestHandlerCapability(U),this._requestHandlers.set(U,(I,b)=>{let D=pK($,I);return Promise.resolve(v(D,b))})}removeRequestHandler($){this._requestHandlers.delete($)}assertCanSetRequestHandler($){if(this._requestHandlers.has($))throw Error(`A request handler for ${$} already exists, which would be overridden`)}setNotificationHandler($,v){let U=dK($);this._notificationHandlers.set(U,(I)=>{let b=pK($,I);return Promise.resolve(v(b))})}removeNotificationHandler($){this._notificationHandlers.delete($)}_cleanupTaskProgressHandler($){let v=this._taskProgressTokens.get($);if(v!==void 0)this._progressHandlers.delete(v),this._taskProgressTokens.delete($)}async _enqueueTaskMessage($,v,U){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let I=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue($,v,U,I)}async _clearTaskQueue($,v){if(this._taskMessageQueue){let U=await this._taskMessageQueue.dequeueAll($,v);for(let I of U)if(I.type==="request"&&EK(I.message)){let b=I.message.id,D=this._requestResolvers.get(b);if(D)D(new D$(G$.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(b);else this._onerror(Error(`Resolver missing for request ${b} during task ${$} cleanup`))}}}async _waitForTaskUpdate($,v){let U=this._options?.defaultTaskPollInterval??1000;try{let I=await this._taskStore?.getTask($);if(I?.pollInterval)U=I.pollInterval}catch{}return new Promise((I,b)=>{if(v.aborted){b(new D$(G$.InvalidRequest,"Request cancelled"));return}let D=setTimeout(I,U);v.addEventListener("abort",()=>{clearTimeout(D),b(new D$(G$.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore($,v){let U=this._taskStore;if(!U)throw Error("No task store configured");return{createTask:async(I)=>{if(!$)throw Error("No request provided");return await U.createTask(I,$.id,{method:$.method,params:$.params},v)},getTask:async(I)=>{let b=await U.getTask(I,v);if(!b)throw new D$(G$.InvalidParams,"Failed to retrieve task: Task not found");return b},storeTaskResult:async(I,b,D)=>{await U.storeTaskResult(I,b,D,v);let u=await U.getTask(I,v);if(u){let w=e0.parse({method:"notifications/tasks/status",params:u});if(await this.notification(w),o6(u.status))this._cleanupTaskProgressHandler(I)}},getTaskResult:(I)=>{return U.getTaskResult(I,v)},updateTaskStatus:async(I,b,D)=>{let u=await U.getTask(I,v);if(!u)throw new D$(G$.InvalidParams,`Task "${I}" not found - it may have been cleaned up`);if(o6(u.status))throw new D$(G$.InvalidParams,`Cannot update task "${I}" from terminal status "${u.status}" to "${b}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await U.updateTaskStatus(I,b,D,v);let w=await U.getTask(I,v);if(w){let g=e0.parse({method:"notifications/tasks/status",params:w});if(await this.notification(g),o6(w.status))this._cleanupTaskProgressHandler(I)}},listTasks:(I)=>{return U.listTasks(I,v)}}}}function $k($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function vk($,v){let U={...$};for(let I in v){let b=I,D=v[b];if(D===void 0)continue;let u=U[b];if($k(u)&&$k(D))U[b]={...u,...D};else U[b]=D}return U}var kr=jP(mq(),1),Er=jP(Tr(),1);function v0$(){let $=new kr.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return Er.default($),$}class vB{constructor($){this._ajv=$??v0$()}getValidator($){let v="$id"in $&&typeof $.$id==="string"?this._ajv.getSchema($.$id)??this._ajv.compile($):this._ajv.compile($);return(U)=>{if(v(U))return{valid:!0,data:U,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(v.errors)}}}}class bB{constructor($){this._server=$}requestStream($,v,U){return this._server.requestStream($,v,U)}createMessageStream($,v){let U=this._server.getClientCapabilities();if(($.tools||$.toolChoice)&&!U?.sampling?.tools)throw Error("Client does not support sampling tools capability.");if($.messages.length>0){let I=$.messages[$.messages.length-1],b=Array.isArray(I.content)?I.content:[I.content],D=b.some((J)=>J.type==="tool_result"),u=$.messages.length>1?$.messages[$.messages.length-2]:void 0,w=u?Array.isArray(u.content)?u.content:[u.content]:[],g=w.some((J)=>J.type==="tool_use");if(D){if(b.some((J)=>J.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!g)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(g){let J=new Set(w.filter((W)=>W.type==="tool_use").map((W)=>W.id)),X=new Set(b.filter((W)=>W.type==="tool_result").map((W)=>W.toolUseId));if(J.size!==X.size||![...J].every((W)=>X.has(W)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:$},bD,v)}elicitInputStream($,v){let U=this._server.getClientCapabilities(),I=$.mode??"form";switch(I){case"url":{if(!U?.elicitation?.url)throw Error("Client does not support url elicitation.");break}case"form":{if(!U?.elicitation?.form)throw Error("Client does not support form elicitation.");break}}let b=I==="form"&&$.mode===void 0?{...$,mode:"form"}:$;return this.requestStream({method:"elicitation/create",params:b},AI,v)}async getTask($,v){return this._server.getTask({taskId:$},v)}async getTaskResult($,v,U){return this._server.getTaskResult({taskId:$},v,U)}async listTasks($,v){return this._server.listTasks($?{cursor:$}:void 0,v)}async cancelTask($,v){return this._server.cancelTask({taskId:$},v)}}function Rr($,v,U){if(!$)throw Error(`${U} does not support task creation (required for ${v})`);switch(v){case"tools/call":if(!$.tools?.call)throw Error(`${U} does not support task creation for tools/call (required for ${v})`);break;default:break}}function nr($,v,U){if(!$)throw Error(`${U} does not support task creation (required for ${v})`);switch(v){case"sampling/createMessage":if(!$.sampling?.createMessage)throw Error(`${U} does not support task creation for sampling/createMessage (required for ${v})`);break;case"elicitation/create":if(!$.elicitation?.create)throw Error(`${U} does not support task creation for elicitation/create (required for ${v})`);break;default:break}}class UB extends aK{constructor($,v){super(v);if(this._serverInfo=$,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(vD.options.map((U,I)=>[U,I])),this.isMessageIgnored=(U,I)=>{let b=this._loggingLevels.get(I);return b?this.LOG_LEVEL_SEVERITY.get(U)<this.LOG_LEVEL_SEVERITY.get(b):!1},this._capabilities=v?.capabilities??{},this._instructions=v?.instructions,this._jsonSchemaValidator=v?.jsonSchemaValidator??new vB,this.setRequestHandler(rK,(U)=>this._oninitialize(U)),this.setNotificationHandler(CK,()=>this.oninitialized?.()),this._capabilities.logging)this.setRequestHandler(cK,async(U,I)=>{let b=I.sessionId||I.requestInfo?.headers["mcp-session-id"]||void 0,{level:D}=U.params,u=vD.safeParse(D);if(u.success)this._loggingLevels.set(b,u.data);return{}})}get experimental(){if(!this._experimental)this._experimental={tasks:new bB(this)};return this._experimental}registerCapabilities($){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=vk(this._capabilities,$)}setRequestHandler($,v){let I=wX($)?.method;if(!I)throw Error("Schema is missing a method literal");let b;if(LI(I)){let u=I;b=u._zod?.def?.value??u.value}else{let u=I;b=u._def?.value??u.value}if(typeof b!=="string")throw Error("Schema method literal must be a string");if(b==="tools/call"){let u=async(w,g)=>{let J=m6($D,w);if(!J.success){let O=J.error instanceof Error?J.error.message:String(J.error);throw new D$(G$.InvalidParams,`Invalid tools/call request: ${O}`)}let{params:X}=J.data,W=await Promise.resolve(v(w,g));if(X.task){let O=m6(qI,W);if(!O.success){let z=O.error instanceof Error?O.error.message:String(O.error);throw new D$(G$.InvalidParams,`Invalid task creation result: ${z}`)}return O.data}let G=m6(AX,W);if(!G.success){let O=G.error instanceof Error?G.error.message:String(G.error);throw new D$(G$.InvalidParams,`Invalid tools/call result: ${O}`)}return G.data};return super.setRequestHandler($,u)}return super.setRequestHandler($,v)}assertCapabilityForMethod($){switch($){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw Error(`Client does not support sampling (required for ${$})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw Error(`Client does not support elicitation (required for ${$})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw Error(`Client does not support listing roots (required for ${$})`);break;case"ping":break}}assertNotificationCapability($){switch($){case"notifications/message":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw Error(`Server does not support notifying about resources (required for ${$})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw Error(`Server does not support notifying of tool list changes (required for ${$})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw Error(`Server does not support notifying of prompt list changes (required for ${$})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw Error(`Client does not support URL elicitation (required for ${$})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability($){if(!this._capabilities)return;switch($){case"completion/complete":if(!this._capabilities.completions)throw Error(`Server does not support completions (required for ${$})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw Error(`Server does not support logging (required for ${$})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw Error(`Server does not support prompts (required for ${$})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw Error(`Server does not support resources (required for ${$})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Server does not support tools (required for ${$})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Server does not support tasks capability (required for ${$})`);break;case"ping":case"initialize":break}}assertTaskCapability($){nr(this._clientCapabilities?.tasks?.requests,$,"Client")}assertTaskHandlerCapability($){if(!this._capabilities)return;Rr(this._capabilities.tasks?.requests,$,"Server")}async _oninitialize($){let v=$.params.protocolVersion;return this._clientCapabilities=$.params.capabilities,this._clientVersion=$.params.clientInfo,{protocolVersion:rT.includes(v)?v:TK,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},OX)}async createMessage($,v){if($.tools||$.toolChoice){if(!this._clientCapabilities?.sampling?.tools)throw Error("Client does not support sampling tools capability.")}if($.messages.length>0){let U=$.messages[$.messages.length-1],I=Array.isArray(U.content)?U.content:[U.content],b=I.some((g)=>g.type==="tool_result"),D=$.messages.length>1?$.messages[$.messages.length-2]:void 0,u=D?Array.isArray(D.content)?D.content:[D.content]:[],w=u.some((g)=>g.type==="tool_use");if(b){if(I.some((g)=>g.type!=="tool_result"))throw Error("The last message must contain only tool_result content if any is present");if(!w)throw Error("tool_result blocks are not matching any tool_use from the previous message")}if(w){let g=new Set(u.filter((X)=>X.type==="tool_use").map((X)=>X.id)),J=new Set(I.filter((X)=>X.type==="tool_result").map((X)=>X.toolUseId));if(g.size!==J.size||![...g].every((X)=>J.has(X)))throw Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}if($.tools)return this.request({method:"sampling/createMessage",params:$},oK,v);return this.request({method:"sampling/createMessage",params:$},bD,v)}async elicitInput($,v){switch($.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support url elicitation.");let I=$;return this.request({method:"elicitation/create",params:I},AI,v)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw Error("Client does not support form elicitation.");let I=$.mode==="form"?$:{...$,mode:"form"},b=await this.request({method:"elicitation/create",params:I},AI,v);if(b.action==="accept"&&b.content&&I.requestedSchema)try{let u=this._jsonSchemaValidator.getValidator(I.requestedSchema)(b.content);if(!u.valid)throw new D$(G$.InvalidParams,`Elicitation response content does not match requested schema: ${u.errorMessage}`)}catch(D){if(D instanceof D$)throw D;throw new D$(G$.InternalError,`Error validating elicitation response: ${D instanceof Error?D.message:String(D)}`)}return b}}}createElicitationCompletionNotifier($,v){if(!this._clientCapabilities?.elicitation?.url)throw Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:$}},v)}async listRoots($,v){return this.request({method:"roots/list",params:$},tK,v)}async sendLoggingMessage($,v){if(this._capabilities.logging){if(!this.isMessageIgnored($.level,v))return this.notification({method:"notifications/message",params:$})}}async sendResourceUpdated($){return this.notification({method:"notifications/resources/updated",params:$})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}}import Cr from"process";class IB{append($){this._buffer=this._buffer?Buffer.concat([this._buffer,$]):$}readMessage(){if(!this._buffer)return null;let $=this._buffer.indexOf(`
|
|
350
|
+
`);if($===-1)return null;let v=this._buffer.toString("utf8",0,$).replace(/\r$/,"");return this._buffer=this._buffer.subarray($+1),b0$(v)}clear(){this._buffer=void 0}}function b0$($){return mT.parse(JSON.parse($))}function rr($){return JSON.stringify($)+`
|
|
351
|
+
`}class DB{constructor($=Cr.stdin,v=Cr.stdout){this._stdin=$,this._stdout=v,this._readBuffer=new IB,this._started=!1,this._ondata=(U)=>{this._readBuffer.append(U),this.processReadBuffer()},this._onerror=(U)=>{this.onerror?.(U)}}async start(){if(this._started)throw Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){while(!0)try{let $=this._readBuffer.readMessage();if($===null)break;this.onmessage?.($)}catch($){this.onerror?.($)}}async close(){if(this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0)this._stdin.pause();this._readBuffer.clear(),this.onclose?.()}send($){return new Promise((v)=>{let U=rr($);if(this._stdout.write(U))v();else this._stdout.once("drain",v)})}}var HG$=IA(),zG$=yD(),QG$=fB(),QA=hD(),YG$=_D(),Jb=V$(),VG$=Ib(),LG$=s$(),KG$=ub(),qG$=wb(),RZ$=mW(),BG$=OA(),AG$=HA(),PG$=zA(),dW=ci(),oi=SD();var jG$=HG$.Composer,NG$=zG$.Document,SG$=QG$.Schema,MG$=QA.YAMLError,_G$=QA.YAMLParseError,FG$=QA.YAMLWarning,ZG$=YG$.Alias,TG$=Jb.isAlias,kG$=Jb.isCollection,EG$=Jb.isDocument,RG$=Jb.isMap,nG$=Jb.isNode,rG$=Jb.isPair,CG$=Jb.isScalar,iG$=Jb.isSeq,xG$=VG$.Pair,lG$=LG$.Scalar,fG$=KG$.YAMLMap,yG$=qG$.YAMLSeq;var hG$=BG$.Lexer,mG$=AG$.LineCounter,cG$=PG$.Parser,oG$=dW.parse,tG$=dW.parseAllDocuments,dG$=dW.parseDocument,YA=dW.stringify,pG$=oi.visit,aG$=oi.visitAsync;var d=($)=>{if(typeof $==="string")return $;return YA($,{indent:2,lineWidth:0,defaultStringType:"PLAIN"})};var Qv=async($,v={},U=5000)=>{let I=AbortSignal.timeout(U),b=v.signal?AbortSignal.any([v.signal,I]):I;return fetch($,{...v,signal:b})};var ti="Run `fnl gateway start` in a shell (MCP cannot start the daemon)",oI=($)=>({content:[{type:"text",text:d($)}]}),pD=($,v)=>({content:[{type:"text",text:d({error:$,nextAction:v})}],isError:!0}),di=async($)=>{let v=await $.text();try{let U=JSON.parse(v);return{content:[{type:"text",text:d(U)}]}}catch{return{content:[{type:"text",text:v}]}}},H6=async($,v,U={})=>{let I=null;try{I=await Qv($,{headers:v})}catch{I=null}if(!I){if(U.offlineFallback!==void 0)return oI(U.offlineFallback);return pD("gateway unreachable",ti)}return di(I)},VA=async($,v,U,I={})=>{let b=null;try{b=await Qv($,{method:"POST",headers:{...v,"content-type":"application/json"},body:JSON.stringify(U)},30000)}catch{b=null}if(!b){if(I.offlineFallback!==void 0)return oI(I.offlineFallback);return pD("gateway unreachable",ti)}return di(b)};var pi=`funnel docs architecture \u2014 how Funnel routes events
|
|
352
352
|
|
|
353
353
|
Funnel is a hub between external sources (Slack / GitHub / Discord / cron) and
|
|
354
354
|
Claude Code agents. Events flow one way; replies flow back via MCP tools.
|
|
@@ -1056,20 +1056,20 @@ related: fnl docs architecture, fnl docs debugging, fnl docs mcp`;var wx=`funnel
|
|
|
1056
1056
|
fnl gateway restart
|
|
1057
1057
|
fnl debug --all --json # verify everything came back up
|
|
1058
1058
|
|
|
1059
|
-
related: fnl docs debugging, fnl docs channels, fnl docs profiles`;var LA={architecture:pi,channels:ai,claude:ei,connectors:si,debugging:$x,gateway:vx,glossary:bx,"local-config":Ux,mcp:Ix,profiles:Dx,"programmable-api":ux,recipes:wx},
|
|
1059
|
+
related: fnl docs debugging, fnl docs channels, fnl docs profiles`;var LA={architecture:pi,channels:ai,claude:ei,connectors:si,debugging:$x,gateway:vx,glossary:bx,"local-config":Ux,mcp:Ix,profiles:Dx,"programmable-api":ux,recipes:wx},eG$={architecture:"how Funnel routes events end-to-end",channels:"what a channel is and how delivery modes work",connectors:"external service bindings nested in channels",profiles:"named Claude launch presets",claude:"fnl claude resolution order and argv assembly",mcp:"the MCP server, inbound notifications, outbound tools",gateway:"the WebSocket + HTTP daemon","local-config":"the per-repo funnel.json file",debugging:"ladder for diagnosing event delivery problems","programmable-api":"Funnel as an SDK; build your own CLI/UI on the engine",recipes:"common task playbooks",glossary:"vocabulary reference"};class aD{constructor(){Object.freeze(this)}list(){return Object.keys(LA).sort().map(($)=>({name:$,summary:eG$[$]??""}))}get($){return LA[$]??null}topics(){return Object.keys(LA).sort()}}var KA=new aD,gx=async($)=>{let v={};if($.token)v.authorization=`Bearer ${$.token}`;let U=$.args,I=typeof U?.channel==="string"?U.channel:null,b=typeof U?.connector==="string"?U.connector:null,D=typeof U?.limit==="number"?U.limit:void 0,u=typeof U?.grep==="string"?U.grep:null,w=typeof U?.seq==="number"?U.seq:void 0,g=U?.mode==="safe"||U?.mode==="aggressive"||U?.mode==="off"?U.mode:"off",J=typeof U?.topic==="string"?U.topic:null,X=$.gatewayBaseUrl;if($.name==="fnl_doctor")return VA(`${X}/doctor`,v,{mode:g},{offlineFallback:$9$($.allChannels)});if($.name==="fnl_status")return H6(`${X}/status`,v,{offlineFallback:{running:!1,error:"gateway unreachable",nextAction:"run `fnl gateway start` in a shell (cannot be started from MCP)",knownChannels:$.allChannels.map((W)=>W.name)}});if($.name==="fnl_debug"){let W=I?`${X}/diagnostics?channel=${encodeURIComponent(I)}`:`${X}/diagnostics?all=true`;return H6(W,v,{offlineFallback:{gateway:{running:!1},diagnosis:{status:"error",message:"gateway is not running",nextActions:["fnl gateway start"],rootCause:null},knownChannels:$.allChannels.map((G)=>G.name)}})}if($.name==="fnl_recent_events")return H6(`${X}/diagnostics/events?${eD(I,b,D)}`,v);if($.name==="fnl_dropped_events")return H6(`${X}/diagnostics/dropped?${eD(I,b,D)}`,v);if($.name==="fnl_raw_events")return H6(`${X}/diagnostics/raw?${eD(I,b,D)}`,v);if($.name==="fnl_connection_errors")return H6(`${X}/diagnostics/errors?${eD(I,b,D)}`,v);if($.name==="fnl_connection_timeline")return H6(`${X}/diagnostics/connection?${eD(I,b,D)}`,v);if($.name==="fnl_logs")return H6(`${X}/diagnostics/logs?${sG$(u,D)}`,v);if($.name==="fnl_replay_event"){if(!I)return pD("channel is required","Provide the channel name (see fnl_status)");return VA(`${X}/diagnostics/replay`,v,{channel:I,seq:w})}if($.name==="fnl_docs"){if(!J)return oI({topics:KA.list()});let W=KA.get(J);if(W===null)return oI({error:`unknown topic: ${J}`,availableTopics:KA.topics()});return oI({topic:J,text:W})}return pD(`unknown built-in tool: ${$.name}`,null)},eD=($,v,U)=>{let I=new URLSearchParams;if($)I.set("channel",$);if(v)I.set("connector",v);if(U!==void 0)I.set("limit",String(U));return I.toString()},sG$=($,v)=>{let U=new URLSearchParams;if($)U.set("grep",$);if(v!==void 0)U.set("limit",String(v));return U.toString()},$9$=($)=>({status:"error",message:"gateway is not running and cannot be started over HTTP from the MCP side. Run `fnl gateway start` in a shell, or relaunch Claude with `fnl claude` which auto-starts the gateway.",appliedActions:[],remainingIssues:$.map((v)=>({channel:v.name,diagnosis:{status:"error",message:"gateway is not running",nextActions:["fnl gateway start"],rootCause:null}})),before:null,after:null});var Jx=($,v)=>{return["Events arrive as notifications (method: notifications/claude/channel) with two fields:"," content \u2014 the event payload as a JSON string (parse it to read the message)"," meta \u2014 key/value strings describing the event","","meta fields by event_type:"," slack: event_type=slack channel_id=C\u2026 thread_ts=1234.5678 user_id=U\u2026 mentioned=true|false"," gh: event_type=gh repository=owner/repo subject_type=Issue|PullRequest subject_url=\u2026 reason=\u2026"," discord: event_type=discord channel_id=\u2026 user_id=\u2026 guild_id=\u2026 mentioned=true|false"," schedule: event_type=schedule entry_id=\u2026","","To reply to a Slack message in the same thread, call the connector tool with:"," method: POST"," path: chat.postMessage",' body: { channel: meta.channel_id, text: "your reply", thread_ts: meta.thread_ts }',"","To comment on a GitHub issue/PR (extract from subject_url in meta):"," method: POST"," path: repos/<meta.repository>/issues/<number>/comments",' body: { body: "your reply" }',"","When anything seems off (events stopped, a tool failed), call fnl_doctor first:"," fnl_doctor \u2192 diagnose all channels (read-only)",' fnl_doctor { mode: "safe" } \u2192 diagnose + safely fix what can be fixed',' fnl_doctor { mode: "aggressive" } \u2192 also restart the gateway if needed',"","fnl_doctor returns { status, message, appliedActions, remainingIssues } \u2014","if status is 'ok' you are done; otherwise read remainingIssues for what is left.","","Other diagnostic tools you can call freely:"," fnl_status gateway running state, listener health snapshot"," fnl_debug per-channel diagnosis (subset of fnl_doctor)"," fnl_recent_events last N processed events with outcome"," fnl_dropped_events events filtered out (skip:*) with reason"," fnl_raw_events raw inbound rows before any processing"," fnl_connection_errors listener auth-failed / error events"," fnl_connection_timeline full lifecycle (started/connected/disconnected/stopped)"," fnl_logs tail of funnel.log (flume internal + structured app logs)"," fnl_replay_event replay a past event to test a fix"," fnl_docs embedded docs (architecture / debugging / recipes / \u2026)","","Always prefer the built-in fnl_* tools over invoking the shell \u2014 they go directly to the","gateway over loopback HTTP and return structured JSON.",$.length>0?["","Configured channels (use as the `channel` argument to diagnostic tools):",...$.map((I)=>` ${I.name}${I.name===v?" \u2190 this session":""}`)].join(`
|
|
1060
1060
|
`):""].join(`
|
|
1061
|
-
`)};var Xx=($)=>{if($==="slack")return["Slack Web API.",'To reply in the same thread: method=POST path=chat.postMessage body={ channel: meta.channel_id, text: "...", thread_ts: meta.thread_ts }','To react: method=POST path=reactions.add body={ channel: meta.channel_id, timestamp: meta.thread_ts, name: "thumbsup" }',"Use meta fields from the incoming event: channel_id (Slack channel), thread_ts (thread anchor), user_id (sender)."].join(" ");if($==="discord")return["Discord REST API.",'To reply: method=POST path=/channels/<meta.channel_id>/messages body={ content: "..." }',"Use meta fields: channel_id (Discord channel), user_id (sender), guild_id."].join(" ");if($==="gh")return["GitHub REST via gh CLI.",'To comment: method=POST path=repos/<meta.repository>/issues/<number>/comments body={ body: "..." }',"Parse <number> from meta.subject_url. meta fields: repository (owner/repo), subject_type, subject_url, reason."].join(" ");return"Generic adapter call."};var
|
|
1061
|
+
`)};var Xx=($)=>{if($==="slack")return["Slack Web API.",'To reply in the same thread: method=POST path=chat.postMessage body={ channel: meta.channel_id, text: "...", thread_ts: meta.thread_ts }','To react: method=POST path=reactions.add body={ channel: meta.channel_id, timestamp: meta.thread_ts, name: "thumbsup" }',"Use meta fields from the incoming event: channel_id (Slack channel), thread_ts (thread anchor), user_id (sender)."].join(" ");if($==="discord")return["Discord REST API.",'To reply: method=POST path=/channels/<meta.channel_id>/messages body={ content: "..." }',"Use meta fields: channel_id (Discord channel), user_id (sender), guild_id."].join(" ");if($==="gh")return["GitHub REST via gh CLI.",'To comment: method=POST path=repos/<meta.repository>/issues/<number>/comments body={ body: "..." }',"Parse <number> from meta.subject_url. meta fields: repository (owner/repo), subject_type, subject_url, reason."].join(" ");return"Generic adapter call."};var v9$=["fnl_doctor","fnl_status","fnl_debug","fnl_recent_events","fnl_dropped_events","fnl_raw_events","fnl_connection_errors","fnl_connection_timeline","fnl_logs","fnl_replay_event","fnl_docs"],Wx=($)=>v9$.includes($),Gx=($)=>$.map((v)=>({name:v.name,description:`Call the "${v.name}" (${v.type}) connector. ${Xx(v.type)}`,inputSchema:{type:"object",properties:{method:{type:"string",description:"HTTP verb or API method (e.g. POST, chat.postMessage)"},path:{type:"string",description:"API path or method name (adapter-specific)"},body:{type:"object",description:"Request body / params (adapter-specific)"}},required:["method","path"]}})),Ox=($)=>{let v=$.length>0?$.map((I)=>I.name):void 0,U=v?{type:"string",description:`Channel name to inspect. One of: ${v.join(", ")}. Omit to use the first available.`,enum:v}:{type:"string",description:"Channel name. Omit to use the first available."};return[{name:"fnl_doctor",description:"Diagnose every channel and optionally apply safe self-healing fixes. Returns { status (ok|warn|error), message, appliedActions[], remainingIssues[], before, after }. When status is 'ok' you are done. Use this as the FIRST tool when anything seems off \u2014 it replaces the older diagnose \u2192 recover \u2192 verify loop with one call.",inputSchema:{type:"object",properties:{mode:{type:"string",enum:["off","safe","aggressive"],description:"off (default): read-only diagnosis. safe: also start gateway if down and restart dead listeners. aggressive: also restart the gateway when safe fixes are not enough."}}}},{name:"fnl_status",description:"Return the gateway status as JSON \u2014 gateway running state, every listener's alive/dead per channel, and connected Claude WS clients. Lightweight snapshot; use fnl_doctor when you want diagnosis with next actions.",inputSchema:{type:"object",properties:{}}},{name:"fnl_debug",description:"Return a full channel diagnosis as JSON \u2014 gateway health, listeners, Claude WS connection, last 5 inbound events, connection errors (when listener is dead), and `diagnosis` with `status` (ok|warn|error), `message`, `nextActions`, and `rootCause`. Call this whenever events seem missing or to verify a fix worked. Omit `channel` to diagnose all channels.",inputSchema:{type:"object",properties:{channel:{...U,description:`${U.description} Omit to diagnose all channels.`}}}},{name:"fnl_recent_events",description:"Return the last N processed events for a channel as JSON, with `outcome` (emitted | skip:type | skip:dedup | skip:subtype | skip:self-user | \u2026), payload preview, and seq. Use this when you need to confirm whether a specific event reached the broadcaster.",inputSchema:{type:"object",properties:{channel:U,connector:{type:"string",description:"Connector name to filter (optional)"},limit:{type:"number",description:"Max rows (default 20)"}}}},{name:"fnl_dropped_events",description:"Return events that were filtered out (outcome starts with `skip:`) for a channel. Use when fnl_debug says listeners look healthy but a particular message never reached Claude \u2014 the skip reason tells you why.",inputSchema:{type:"object",properties:{channel:U,connector:{type:"string",description:"Connector name to filter (optional)"},limit:{type:"number",description:"Max rows (default 20)"}}}},{name:"fnl_connection_errors",description:"Return listener connection lifecycle errors (auth-failed / error). Use when a listener never connects or keeps disconnecting \u2014 the detail field carries the upstream error message.",inputSchema:{type:"object",properties:{channel:U,connector:{type:"string",description:"Connector name to filter (optional)"},limit:{type:"number",description:"Max rows (default 20)"}}}},{name:"fnl_connection_timeline",description:"Full connection lifecycle (started / connected / disconnected / stopped + auth-failed / error). Use when fnl_connection_errors only shows the failure but you need to see how the listener got there \u2014 was it ever connected, is it flapping, how many reconnects.",inputSchema:{type:"object",properties:{channel:U,connector:{type:"string",description:"Connector name to filter (optional)"},limit:{type:"number",description:"Max rows (default 20)"}}}},{name:"fnl_raw_events",description:"Return raw inbound rows the connector recorded BEFORE any processing. Use when fnl_dropped_events and fnl_recent_events both come up empty \u2014 this is the table that captures every event the listener ever saw, including ones it dropped pre-processor (envelope shape change, pre-READY, malformed).",inputSchema:{type:"object",properties:{channel:U,connector:{type:"string",description:"Connector name to filter (optional)"},limit:{type:"number",description:"Max rows (default 20)"}}}},{name:"fnl_logs",description:"Return the tail of the gateway daemon log file (funnel.log) where structured FunnelLogger output and forwarded flume logs land. Use when fnl_connection_timeline shows a status change but you need the upstream reason (slack/auth.test failed, github http 401, discord gateway close 4014) \u2014 those messages only appear in the log file.",inputSchema:{type:"object",properties:{grep:{type:"string",description:"Case-insensitive substring filter (e.g. 'slack', 'auth')"},limit:{type:"number",description:"Max lines to return (default 200)"}}}},{name:"fnl_replay_event",description:"Re-publish a past event back into a channel so subscribers receive it again. Call after applying a fix to verify Claude handles the previously-failed event correctly. Without `seq`, replays the most recent emitted event for that channel.",inputSchema:{type:"object",properties:{channel:U,seq:{type:"number",description:"Processed-table seq to replay (optional)"}},required:["channel"]}},{name:"fnl_docs",description:"Return embedded funnel documentation. Without `topic`, returns the list of topics. With `topic`, returns the full text. Topics: architecture, channels, connectors, profiles, claude, mcp, gateway, local-config, debugging, recipes, glossary.",inputSchema:{type:"object",properties:{topic:{type:"string",description:"Topic name (omit to list available topics)"}}}}]};var Hx=1000,b9$=1e4;class qA{props;state={reconnectDelay:Hx,lastOffset:0,isStarted:!1,hasPendingReconnect:!1};constructor($){this.props=$;Object.freeze(this)}start(){if(this.state.isStarted)return;this.state.isStarted=!0,this.connect()}connect(){let $=this.state.lastOffset>0?`&since=${this.state.lastOffset}`:"",v=`${this.props.baseUrl}${$}`,U=new WebSocket(v,this.props.protocols);U.addEventListener("open",()=>{this.state.reconnectDelay=Hx,process.stderr.write(`funnel: connected (${v})
|
|
1062
1062
|
`)}),U.addEventListener("message",(I)=>this.handleMessage(I)),U.addEventListener("close",()=>{if(this.state.hasPendingReconnect)return;this.state.hasPendingReconnect=!0,process.stderr.write(`funnel: disconnected, reconnecting in ${this.state.reconnectDelay}ms
|
|
1063
|
-
`),setTimeout(()=>{this.state.hasPendingReconnect=!1,this.connect()},this.state.reconnectDelay),this.state.reconnectDelay=Math.min(this.state.reconnectDelay*2,
|
|
1063
|
+
`),setTimeout(()=>{this.state.hasPendingReconnect=!1,this.connect()},this.state.reconnectDelay),this.state.reconnectDelay=Math.min(this.state.reconnectDelay*2,b9$)}),U.addEventListener("error",(I)=>{let b=U9$(I);process.stderr.write(`funnel: ws error: ${b}
|
|
1064
1064
|
`)})}async handleMessage($){try{let v=JSON.parse(String($.data)),U=v.meta?.event_type??"unknown",I=typeof v.offset==="number"?v.offset:null;if(I!==null&&I>this.state.lastOffset)this.state.lastOffset=I;process.stderr.write(`funnel: received event (${U})
|
|
1065
1065
|
`),await this.props.server.notification({method:"notifications/claude/channel",params:{content:v.content,meta:v.meta}})}catch(v){process.stderr.write(`funnel: error handling ws message (offset=${this.state.lastOffset}): ${T$(v)}
|
|
1066
|
-
`)}}}var
|
|
1067
|
-
`)}}import{existsSync as
|
|
1066
|
+
`)}}}var U9$=($)=>{if($ instanceof Error)return $.message;if("message"in $&&typeof $.message==="string")return $.message;if("error"in $&&$.error instanceof Error)return $.error.message;return"unknown"};import{join as pW}from"path";var I9$="bun",D9$=["funnel","mcp"],BA="funnel",u9$=new d$,sD=($)=>{return typeof $==="object"&&$!==null&&!Array.isArray($)};class AA{fs;constructor($={}){this.fs=$.fs??u9$,Object.freeze(this)}install($){if(!this.fs.existsSync($))throw Error(`repository does not exist: ${$}`);this.fs.withFileLock(pW($,".mcp.json.lock"),()=>{let v=this.readConfig($),U=v.mcpServers,I=sD(U)?U:{},D=this.findServerName(I)??BA;I[D]={command:I9$,args:D9$},v.mcpServers=I,this.writeConfig($,v)})}uninstall($){if(!this.fs.existsSync($))return;this.fs.withFileLock(pW($,".mcp.json.lock"),()=>{let v=this.readConfig($),U=v.mcpServers;if(!sD(U))return;let I=this.findServerName(U);if(!I)return;delete U[I],this.writeConfig($,v)})}findInstalledName($){let U=this.readConfig($).mcpServers;return sD(U)?this.findServerName(U):null}findServerName($){for(let v of Object.entries($))if(this.isFunnelEntry(v[1]))return v[0];return null}isFunnelEntry($){if(!sD($))return!1;let{command:v,args:U}=$;if(v==="bun"&&Array.isArray(U)&&U[0]==="funnel")return!0;if(v==="funnel")return!0;return!1}readConfig($){let v=pW($,".mcp.json");if(!this.fs.existsSync(v))return{};let U=this.fs.readFileSync(v).trim();if(!U)return{};let I;try{I=JSON.parse(U)}catch(b){throw Error(`invalid .mcp.json (${v}): ${b instanceof Error?b.message:String(b)}`)}if(!sD(I))throw Error(`invalid .mcp.json (${v}): expected a JSON object`);return I}writeConfig($,v){let U=pW($,".mcp.json");this.fs.writeFileSync(U,`${JSON.stringify(v,null,2)}
|
|
1067
|
+
`)}}import{existsSync as X9$,readFileSync as W9$}from"fs";import{join as G9$}from"path";var zx=H.object({id:H.string(),name:H.string(),type:H.string(),createdAt:H.string().datetime().optional(),updatedAt:H.string().datetime().optional()});var w9$=zx.loose(),$u=H.enum(["fanout","exclusive"]),g9$=H.object({id:H.string(),name:H.string(),delivery:$u.default("fanout"),connectors:H.array(w9$).default([])}),J9$=H.object({id:H.string(),name:H.string(),path:H.string(),channelId:H.string(),options:H.array(H.string()).default([]),env:H.record(H.string(),H.string()).default({}),resume:H.boolean().default(!0),sessionId:H.string().optional()}),z6=1,tI=H.object({version:H.literal(z6).default(z6),channels:H.array(g9$).default([]),profiles:H.array(J9$).default([])});var Qx=($,v,U)=>{let I=G9$($,"settings.json");if(!X9$(I))return null;let b=JSON.parse(W9$(I,"utf-8")),D=tI.safeParse(b);if(!D.success)return null;let u=D.data.channels.find((g)=>g.id===v);if(!u)return null;let w=u.connectors.filter((g)=>U.has(g.type)).map((g)=>({name:g.name,type:g.type}));return{channelName:u.name,connectors:w}};import{existsSync as O9$,readFileSync as H9$}from"fs";import{join as z9$}from"path";var Yx=($)=>{let v=process.env.FUNNEL_GATEWAY_TOKEN;if(v&&v.length>0)return v;let U=z9$($,"gateway.token");if(!O9$(U))return null;let I=H9$(U,"utf-8").trim();return I.length>0?I:null};import{homedir as PA}from"os";import{dirname as Vx,join as jA}from"path";class vu{}class q4 extends vu{generate(){return crypto.randomUUID()}}class bu{}function Lx(){let $=process.env.FUNNEL_DIR;if($&&$.length>0)return Q9$($);return jA(PA(),".funnel")}function Q9$($){let v=PA(),U=$;if(U==="~")return v;if(U.startsWith("~/")||U.startsWith("~\\"))U=v+U.slice(1);return U=U.split("${HOME}").join(v),U=U.split("${USERPROFILE}").join(v),U.replace(/\\/g,"/")}var Y9$=9742;function Q6(){return Number(process.env.FUNNEL_PORT)||Y9$}var B4=jA(PA(),".funnel"),V9$=jA(B4,"settings.json"),L9$=new d$,K9$=new q4;class NA extends bu{path;fs;idGenerator;constructor($={}){super();this.path=$.path??V9$,this.fs=$.fs??L9$,this.idGenerator=$.idGenerator??K9$,Object.freeze(this)}read(){if(!this.fs.existsSync(this.path))return{version:z6,channels:[],profiles:[]};let $=this.fs.readFileSync(this.path),v=JSON.parse($);if(this.looksLikeLegacy(v))throw Error(`legacy settings.json detected at ${this.path}. The schema changed (channel.connectors are now nested objects with ids; profile fields renamed). Migration is intentionally not provided. Back up and remove the old file:
|
|
1068
1068
|
mv ${this.path} ${this.path}.bak`);if(v&&typeof v==="object"&&"version"in v&&v.version!==z6)throw Error(`unsupported settings.json version (${this.path}): expected ${z6}, got ${String(v.version)}`);let U=this.backfillProfileIds(v),I=tI.safeParse(v);if(!I.success)throw Error(`invalid settings.json (${this.path}): ${I.error.issues.map((b)=>`${b.path.join(".")}: ${b.message}`).join(", ")}`);if(U)this.write(I.data);return I.data}looksLikeLegacy($){if(!$||typeof $!=="object")return!1;let v=$;if(Array.isArray(v.channels))for(let U of v.channels){if(!U||typeof U!=="object")continue;let I=U;if(Array.isArray(I.connectors)&&I.connectors.some((b)=>typeof b==="string"))return!0;if(!("id"in I)&&"name"in I)return!0}if(Array.isArray(v.connectors))return!0;if(Array.isArray(v.repositories))return!0;if(Array.isArray(v.profiles))for(let U of v.profiles){if(!U||typeof U!=="object")continue;let I=U;if("repository"in I||"envFiles"in I||"channel"in I&&!("channelId"in I))return!0}return!1}backfillProfileIds($){if(!$||typeof $!=="object")return!1;let v=$;if(!Array.isArray(v.profiles))return!1;let U=!1;for(let I of v.profiles){if(!I||typeof I!=="object")continue;let b=I;if(typeof b.id!=="string")b.id=this.idGenerator.generate(),U=!0}return U}write($){this.fs.mkdirSync(Vx(this.path),{recursive:!0});let v={...$,version:z6};this.fs.writeSecretFileSync(this.path,`${JSON.stringify(v,null,2)}
|
|
1069
|
-
`)}update($){return this.fs.mkdirSync(Vx(this.path),{recursive:!0}),this.fs.withFileLock(`${this.path}.lock`,()=>{let v=this.read(),U=$(v);return this.write(v),U})}}function Gv($){return`http://127.0.0.1:${$}`}var
|
|
1069
|
+
`)}update($){return this.fs.mkdirSync(Vx(this.path),{recursive:!0}),this.fs.withFileLock(`${this.path}.lock`,()=>{let v=this.read(),U=$(v);return this.write(v),U})}}function Gv($){return`http://127.0.0.1:${$}`}var P9$=Kx(A9$(),".funnel"),j9$=($)=>{let v=new Set;for(let U of $)if(U.toolExposed)v.add(U.type);return v},N9$=($)=>{let v=Kx($,"settings.json");if(!q9$(v))return[];try{let U=JSON.parse(B9$(v,"utf-8")),I=tI.safeParse(U);if(!I.success)return process.stderr.write(`funnel: ${v} failed schema validation: ${I.error.message}
|
|
1070
1070
|
`),[];return I.data.channels.map((b)=>({id:b.id,name:b.name}))}catch(U){let I=U instanceof Error?U.message:String(U);return process.stderr.write(`funnel: failed to read ${v}: ${I}
|
|
1071
|
-
`),[]}},qx=async($={})=>{let v=$.dir??
|
|
1072
|
-
`),!b)return;new qA({server:X,baseUrl:`${I}?channel=${encodeURIComponent(b)}`,protocols:w?[`funnel.token.${w}`]:void 0}).start()},
|
|
1071
|
+
`),[]}},qx=async($={})=>{let v=$.dir??P9$,U=$.gatewayUrl??process.env.FUNNEL_GATEWAY_URL??Gv(Q6()),I=`${U.replace(/^http/,"ws")}/ws`,b=$.channelId??process.env.FUNNEL_CHANNEL_ID,D=j9$($.connectors??lJ()),u=b?Qx(v,b,D):null,w=$.token??Yx(v),g=N9$(v),J=u?.channelName??null,X=new UB({name:BA,version:"1.0.0"},{capabilities:{experimental:{"claude/channel":{}},tools:{}},instructions:Jx(g,J)});X.setRequestHandler(mK,async()=>({tools:[...Gx(u?.connectors??[]),...Ox(g)]})),X.setRequestHandler($D,async(O)=>{let z=O.params.name;if(Wx(z))return gx({name:z,args:O.params.arguments,gatewayBaseUrl:U,token:w,allChannels:g});if(!u)throw Error("FUNNEL_CHANNEL_ID is not set or channel not found in settings.json");return await S9$({channelName:u.channelName,toolName:z,args:O.params.arguments??{},gatewayBaseUrl:U,token:w})});let W=new DB;if(await X.connect(W),process.stderr.write(`funnel MCP ready (channel=${J??"?"}); if events stop, call fnl_doctor.
|
|
1072
|
+
`),!b)return;new qA({server:X,baseUrl:`${I}?channel=${encodeURIComponent(b)}`,protocols:w?[`funnel.token.${w}`]:void 0}).start()},S9$=async($)=>{let v=typeof $.args.method==="string"?$.args.method:"",U=typeof $.args.path==="string"?$.args.path:"",I=$.args.body;if(!v||!U)throw Error("`method` and `path` are required");let b=`${$.gatewayBaseUrl}/channels/${encodeURIComponent($.channelName)}/connectors/${encodeURIComponent($.toolName)}/call`,D={"content-type":"application/json"};if($.token)D.authorization=`Bearer ${$.token}`;let u=await fetch(b,{method:"POST",headers:D,body:JSON.stringify({method:v,path:U,body:I})}),w=await u.text();if(!u.ok)return{content:[{type:"text",text:d({error:`gateway call failed (${u.status}): ${w}`,nextAction:"Call fnl_doctor to diagnose the failure"})}],isError:!0};try{let g=JSON.parse(w);return{content:[{type:"text",text:d(g)}]}}catch{return{content:[{type:"text",text:w}]}}};var M9$={h:"help",n:"name",p:"profile"},_9$=new Set(["add","set","remove","rename","as-default","request","publish"]),F9$=new Set(["get","post","put","patch","delete","head","options"]),aW=($)=>{return typeof $==="string"&&!$.startsWith("-")},Z9$=($,v,U)=>{let I=$[v+1];if(!aW(I))return 1;U.set("path",I);let b=$[v+2];if(!aW(b))return 2;return U.set("body",b),3},Bx=($)=>{let v=[],U=new URLSearchParams,I="GET",b=0;while(b<$.length){let w=$[b];if(w.startsWith("--")){let g=w.slice(2),J=g.indexOf("=");if(J>=0){U.set(g.slice(0,J),g.slice(J+1)),b++;continue}let X=$[b+1];if(aW(X))U.set(g,X),b+=2;else U.set(g,"true"),b++;continue}if(w.startsWith("-")&&w.length===2){let g=M9$[w[1]];if(!g){b++;continue}let J=$[b+1];if(aW(J))U.set(g,J),b+=2;else U.set(g,"true"),b++;continue}if(_9$.has(w)){I="POST",v.push(w),b++;continue}if(F9$.has(w)&&!U.has("path")){v.push(w),b+=Z9$($,b,U);continue}if(w.includes("/")&&!U.has("path")){U.set("path",w),b++;continue}v.push(w),b++}let D=v.length>0?`/${v.join("/")}`:"/",u=U.size>0?`?${U}`:"";return{method:I,path:D,url:`http://localhost${D}${u}`}};var T9$=`funnel channels add \u2014 add a channel
|
|
1073
1073
|
|
|
1074
1074
|
usage: funnel channels add <name> [--delivery fanout|exclusive]
|
|
1075
1075
|
|
|
@@ -1086,7 +1086,7 @@ examples:
|
|
|
1086
1086
|
funnel channels add production
|
|
1087
1087
|
funnel channels add ci-events --delivery exclusive
|
|
1088
1088
|
|
|
1089
|
-
see also: funnel channels, funnel channels <name> connectors add`,Ax=_.createHandlers(($)=>$.text(
|
|
1089
|
+
see also: funnel channels, funnel channels <name> connectors add`,Ax=_.createHandlers(($)=>$.text(T9$));var Px=_.createHandlers(i("param",H.object({channel:H.string()})),i("query",H.object({delivery:$u.optional()})),($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),b=$.env.funnel.channels.add({name:v.channel,delivery:U.delivery});return $.text(`added channel "${b.name}" (id: ${b.id})`)});var k9$=`funnel channels <channel> connectors \u2014 manage connectors in a channel
|
|
1090
1090
|
|
|
1091
1091
|
usage: funnel channels <channel> connectors [subcommand]
|
|
1092
1092
|
|
|
@@ -1101,8 +1101,8 @@ subcommands:
|
|
|
1101
1101
|
<c> request --method=... / call connector outbound API
|
|
1102
1102
|
<c> schedules / list schedule entries (schedule type only)
|
|
1103
1103
|
<c> schedules add <id> --cron=... --prompt=... / add a schedule entry
|
|
1104
|
-
<c> schedules remove <id> / remove a schedule entry`,jx=_.createHandlers(i("param",H.object({channel:H.string()})),c(
|
|
1105
|
-
`))});var
|
|
1104
|
+
<c> schedules remove <id> / remove a schedule entry`,jx=_.createHandlers(i("param",H.object({channel:H.string()})),c(k9$),($)=>{let v=$.req.valid("param"),U=$.env.funnel,I=U.channels.get(v.channel);if(!I)throw new e(404,{message:x$({kind:"channel",name:v.channel,available:U.channels.list().map((b)=>b.name),nextAction:"fnl channels add <name>"})});if(I.connectors.length===0)return $.text(`no connectors in channel "${I.name}"`);return $.text(I.connectors.map((b)=>`${b.name} (${b.type}, id: ${b.id})`).join(`
|
|
1105
|
+
`))});var E9$=`funnel channels <channel> connectors add <name> \u2014 add a connector to a channel
|
|
1106
1106
|
|
|
1107
1107
|
usage:
|
|
1108
1108
|
funnel channels <channel> connectors add <name> --type=slack --bot-token=xoxb-... --app-token=xapp-...
|
|
@@ -1124,7 +1124,7 @@ examples:
|
|
|
1124
1124
|
funnel channels ci connectors add gh-events --type=gh --poll-interval=30
|
|
1125
1125
|
funnel channels alerts connectors add daily --type=schedule
|
|
1126
1126
|
|
|
1127
|
-
see also: funnel channels <channel> connectors, funnel channels <channel> connectors remove`,Nx=_.createHandlers(($)=>$.text(
|
|
1127
|
+
see also: funnel channels <channel> connectors, funnel channels <channel> connectors remove`,Nx=_.createHandlers(($)=>$.text(E9$));var R9$=H.object({type:H.literal("slack"),"bot-token":H.string().startsWith("xoxb-"),"app-token":H.string().startsWith("xapp-")}),n9$=H.object({type:H.literal("gh"),"poll-interval":H.coerce.number().int().positive().optional()}),r9$=H.object({type:H.literal("discord"),"bot-token":H.string().min(10)}),C9$=H.object({type:H.literal("schedule")}),i9$=H.discriminatedUnion("type",[R9$,n9$,r9$,C9$]),Sx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),i("query",i9$),async($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),I=$.env.funnel;if(U.type==="slack"){let D=I.channels.addConnector(v.channel,{type:"slack",name:v.connector,botToken:U["bot-token"],appToken:U["app-token"]});return await I.listeners.start(v.channel,D.name),$.text(`added slack connector "${D.name}" to channel "${v.channel}"`)}if(U.type==="gh"){let D=I.channels.addConnector(v.channel,{type:"gh",name:v.connector,...U["poll-interval"]!==void 0?{pollInterval:U["poll-interval"]}:{}});return await I.listeners.start(v.channel,D.name),$.text(`added gh connector "${D.name}" to channel "${v.channel}"`)}if(U.type==="discord"){let D=I.channels.addConnector(v.channel,{type:"discord",name:v.connector,botToken:U["bot-token"]});return await I.listeners.start(v.channel,D.name),$.text(`added discord connector "${D.name}" to channel "${v.channel}"`)}let b=I.channels.addConnector(v.channel,{type:"schedule",name:v.connector,entries:[]});return await I.listeners.start(v.channel,b.name),$.text(`added schedule connector "${b.name}" to channel "${v.channel}"`)});var x9$=`funnel channels <channel> connectors remove <connector> \u2014 remove a connector
|
|
1128
1128
|
|
|
1129
1129
|
usage: funnel channels <channel> connectors remove <connector>
|
|
1130
1130
|
|
|
@@ -1135,19 +1135,19 @@ GitHub webhooks) are touched.
|
|
|
1135
1135
|
examples:
|
|
1136
1136
|
funnel channels production connectors remove slack-main
|
|
1137
1137
|
|
|
1138
|
-
see also: funnel channels <channel> connectors, funnel channels <channel> connectors add`,Mx=_.createHandlers(($)=>$.text(
|
|
1138
|
+
see also: funnel channels <channel> connectors, funnel channels <channel> connectors add`,Mx=_.createHandlers(($)=>$.text(x9$));var _x=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),i("query",H.object({})),async($)=>{let v=$.req.valid("param"),U=$.env.funnel;return await U.listeners.stop(v.channel,v.connector),U.channels.removeConnector(v.channel,v.connector),$.text(`removed connector "${v.connector}" from channel "${v.channel}"`)});var l9$=`funnel channels <channel> connectors set <connector> \u2014 update connector fields
|
|
1139
1139
|
|
|
1140
1140
|
usage:
|
|
1141
1141
|
funnel channels <ch> connectors set <conn> [--bot-token=...] [--app-token=...] # slack
|
|
1142
1142
|
funnel channels <ch> connectors set <conn> [--bot-token=...] # discord
|
|
1143
|
-
funnel channels <ch> connectors set <conn> [--poll-interval=N] # gh`,Fx=_.createHandlers(($)=>$.text(
|
|
1143
|
+
funnel channels <ch> connectors set <conn> [--poll-interval=N] # gh`,Fx=_.createHandlers(($)=>$.text(l9$));var Zx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),i("query",H.object({"bot-token":H.string().optional(),"app-token":H.string().optional(),"poll-interval":H.coerce.number().int().positive().optional()}).loose()),async($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),I=$.env.funnel,b=I.channels.getConnector(v.channel,v.connector);if(!b)throw new e(404,{message:x$({kind:"connector",name:v.connector,available:(I.channels.get(v.channel)?.connectors??[]).map((D)=>D.name),nextAction:`fnl channels ${v.channel} connectors add <name> --type=slack|gh|discord|schedule ...`})});if(b.type==="slack")I.channels.updateSlackConnector(v.channel,v.connector,{...U["bot-token"]!==void 0?{botToken:U["bot-token"]}:{},...U["app-token"]!==void 0?{appToken:U["app-token"]}:{}});else if(b.type==="discord")I.channels.updateDiscordConnector(v.channel,v.connector,U["bot-token"]!==void 0?{botToken:U["bot-token"]}:{});else if(b.type==="gh")I.channels.updateGhConnector(v.channel,v.connector,U["poll-interval"]!==void 0?{pollInterval:U["poll-interval"]}:{});else throw new e(400,{message:"schedule connectors have no settable fields"});return await I.listeners.restart(v.channel,v.connector),$.text(`updated connector "${v.connector}" in channel "${v.channel}"`)});var f9$=`funnel channels <channel> connectors <connector> / show connector config
|
|
1144
1144
|
|
|
1145
1145
|
subcommands:
|
|
1146
1146
|
rename <new> / rename this connector
|
|
1147
1147
|
request --method=... / call outbound API
|
|
1148
1148
|
schedules / manage schedule entries (schedule type only)
|
|
1149
1149
|
|
|
1150
|
-
output / valid YAML`,Tx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),c(
|
|
1150
|
+
output / valid YAML`,Tx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),c(f9$),($)=>{let v=$.req.valid("param"),U=$.env.funnel,I=U.channels.getConnector(v.channel,v.connector);if(!I)throw new e(404,{message:x$({kind:"connector",name:v.connector,available:(U.channels.get(v.channel)?.connectors??[]).map((b)=>b.name),nextAction:`fnl channels ${v.channel} connectors add <name> --type=slack|gh|discord|schedule ...`})});return $.text(d(I))});var y9$=`funnel channels <channel> connectors rename <old-connector-name> <new-connector-name> \u2014 rename a connector
|
|
1151
1151
|
|
|
1152
1152
|
usage: funnel channels <channel> connectors rename <old-connector-name> <new-connector-name>
|
|
1153
1153
|
|
|
@@ -1158,9 +1158,9 @@ next reload.
|
|
|
1158
1158
|
examples:
|
|
1159
1159
|
funnel channels production connectors rename slack-1 slack-main
|
|
1160
1160
|
|
|
1161
|
-
see also: funnel channels <channel> connectors`,kx=_.createHandlers(($)=>$.text(
|
|
1161
|
+
see also: funnel channels <channel> connectors`,kx=_.createHandlers(($)=>$.text(y9$));var SA=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string(),newName:H.string()})),i("query",H.object({})),async($)=>{let v=$.req.valid("param"),U=$.env.funnel;return await U.listeners.stop(v.channel,v.connector),U.channels.renameConnector(v.channel,v.connector,v.newName),await U.listeners.start(v.channel,v.newName),$.text(`renamed connector "${v.connector}" to "${v.newName}"`)});var h9$=`funnel channels <channel> connectors rename <connector> <new-name>
|
|
1162
1162
|
|
|
1163
|
-
usage: funnel channels <channel> connectors rename <connector> <new-name>`,Ex=_.createHandlers(($)=>$.text(
|
|
1163
|
+
usage: funnel channels <channel> connectors rename <connector> <new-name>`,Ex=_.createHandlers(($)=>$.text(h9$));var m9$=`funnel channels <channel> connectors <connector> request / call a connector's outbound API
|
|
1164
1164
|
|
|
1165
1165
|
usage / funnel channels <channel> connectors <connector> request --method=<m> [--path=<p>] [--key=value ...]
|
|
1166
1166
|
|
|
@@ -1168,15 +1168,15 @@ options:
|
|
|
1168
1168
|
--method / slack: API method (e.g. chat.postMessage). gh/discord: HTTP verb (GET/POST/...).
|
|
1169
1169
|
--path / gh/discord: endpoint (e.g. repos/o/r/issues). Omit for slack (defaults to --method).
|
|
1170
1170
|
|
|
1171
|
-
output / valid YAML (or raw text when the adapter returns text)`,Rx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),c(
|
|
1171
|
+
output / valid YAML (or raw text when the adapter returns text)`,Rx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),c(m9$),i("query",H.object({method:H.string(),path:H.string().optional()}).loose()),async($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),I=$.env.funnel,b={};for(let[u,w]of new URL($.req.url).searchParams){if(u==="method"||u==="path")continue;b[u]=w}let D=await I.channels.call(v.channel,v.connector,{method:U.method,path:U.path??U.method,body:b});return $.text(typeof D==="string"?D:d(D))});var c9$=`funnel channels <ch> connectors <conn> schedules \u2014 manage schedule entries
|
|
1172
1172
|
|
|
1173
1173
|
usage: funnel channels <ch> connectors <conn> schedules [subcommand]
|
|
1174
1174
|
|
|
1175
1175
|
subcommands:
|
|
1176
1176
|
(none) / list schedule entries
|
|
1177
1177
|
add <id> --cron=... --prompt=... [--enabled=true] [--catchup-policy=latest|all|skip] / add entry
|
|
1178
|
-
remove <id> / remove entry`,nx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),c(
|
|
1179
|
-
`))});var
|
|
1178
|
+
remove <id> / remove entry`,nx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string()})),c(c9$),($)=>{let v=$.req.valid("param"),U=$.env.funnel,I=H.array(x6).parse(U.channels.connectorOp(v.channel,v.connector,"listEntries",void 0));if(I.length===0)return $.text("no schedule entries");return $.text(I.map((b)=>`${b.id} ${b.cron} ${b.enabled?"on":"off"} ${b.prompt}`).join(`
|
|
1179
|
+
`))});var o9$=`funnel channels <ch> connectors <conn> schedules add <id> \u2014 add a schedule entry
|
|
1180
1180
|
|
|
1181
1181
|
usage: funnel channels <ch> connectors <conn> schedules add <id> --cron="*/5 * * * *" --prompt="..." [--enabled|--enabled=false] [--catchup-policy=latest|all|skip]
|
|
1182
1182
|
|
|
@@ -1184,16 +1184,16 @@ options:
|
|
|
1184
1184
|
--cron <expr> / 5-field cron expression (required)
|
|
1185
1185
|
--prompt <text> / prompt delivered on each fire (required)
|
|
1186
1186
|
--enabled / fire on schedule (default: true; --enabled=false stores it disabled)
|
|
1187
|
-
--catchup-policy latest|all|skip / how missed fires are replayed after downtime (default: latest)`,rx=_.createHandlers(($)=>$.text(
|
|
1187
|
+
--catchup-policy latest|all|skip / how missed fires are replayed after downtime (default: latest)`,rx=_.createHandlers(($)=>$.text(o9$));var Y6=H.enum(["true","false",""]).optional().transform(($)=>{if($===void 0)return;return $!=="false"});var Cx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string(),id:H.string()})),i("query",H.object({cron:H.string(),prompt:H.string(),enabled:Y6,"catchup-policy":TL.optional()})),async($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),I=$.env.funnel,b=x6.parse(I.channels.connectorOp(v.channel,v.connector,"addEntry",{id:v.id,cron:U.cron,prompt:U.prompt,...U.enabled!==void 0?{enabled:U.enabled}:{},...U["catchup-policy"]!==void 0?{catchupPolicy:U["catchup-policy"]}:{}}));return await I.listeners.restart(v.channel,v.connector),$.text(`added schedule entry "${b.id}"`)});var t9$=`funnel channels <ch> connectors <conn> schedules remove <id>
|
|
1188
1188
|
|
|
1189
|
-
usage: funnel channels <ch> connectors <conn> schedules remove <id>`,ix=_.createHandlers(($)=>$.text(
|
|
1189
|
+
usage: funnel channels <ch> connectors <conn> schedules remove <id>`,ix=_.createHandlers(($)=>$.text(t9$));var xx=_.createHandlers(i("param",H.object({channel:H.string(),connector:H.string(),id:H.string()})),i("query",H.object({})),async($)=>{let v=$.req.valid("param"),U=$.env.funnel;return U.channels.connectorOp(v.channel,v.connector,"removeEntry",{id:v.id}),await U.listeners.restart(v.channel,v.connector),$.text(`removed schedule entry "${v.id}"`)});var d9$=`funnel channels <channel> publish \u2014 push arbitrary content into a channel
|
|
1190
1190
|
|
|
1191
1191
|
usage: funnel channels <channel> publish --content="<text>" [--connector=<name>] [--meta-<key>=<value> ...]
|
|
1192
1192
|
|
|
1193
1193
|
options:
|
|
1194
1194
|
--content Required. The event body delivered to subscribers.
|
|
1195
1195
|
--connector Optional. Stamp the event with a connector name (resolved to id when found).
|
|
1196
|
-
--meta-<key> Optional. Repeatable. Added to meta. Example: --meta-source=cron`,lx=_.createHandlers(($)=>$.text(
|
|
1196
|
+
--meta-<key> Optional. Repeatable. Added to meta. Example: --meta-source=cron`,lx=_.createHandlers(($)=>$.text(d9$));var p9$=H.object({content:H.string().min(1,{message:"--content is required"}),connector:H.string().min(1).optional()}).loose(),fx=_.createHandlers(i("param",H.object({channel:H.string()})),i("query",p9$),async($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),I=$.env.funnel,b={};for(let[u,w]of new URL($.req.url).searchParams)if(u.startsWith("meta-"))b[u.slice(5)]=w;let D=await I.publisher.publish(v.channel,{content:U.content,connector:U.connector,meta:Object.keys(b).length>0?b:void 0});if(D.state==="offline")throw new e(503,{message:"gateway daemon is not running \u2014 start it with `fnl gateway start`"});if(D.state==="error")throw new e(502,{message:D.reason});return $.text(`published (offset=${D.offset})`)});var a9$=`funnel channels remove \u2014 remove a channel and all its connectors
|
|
1197
1197
|
|
|
1198
1198
|
usage: funnel channels remove <name>
|
|
1199
1199
|
|
|
@@ -1204,7 +1204,7 @@ No external resources (Slack apps, Discord bots, etc.) are touched.
|
|
|
1204
1204
|
examples:
|
|
1205
1205
|
funnel channels remove staging
|
|
1206
1206
|
|
|
1207
|
-
see also: funnel channels, funnel channels add`,yx=_.createHandlers(($)=>$.text(
|
|
1207
|
+
see also: funnel channels, funnel channels add`,yx=_.createHandlers(($)=>$.text(a9$));var hx=_.createHandlers(i("param",H.object({channel:H.string()})),i("query",H.object({})),($)=>{let v=$.req.valid("param"),U=$.env.funnel;if(!U.channels.get(v.channel))throw new e(404,{message:x$({kind:"channel",name:v.channel,available:U.channels.list().map((I)=>I.name),nextAction:"fnl channels add <name>"})});return U.channels.remove(v.channel),$.text(`removed channel "${v.channel}"`)});var MA=`funnel channels rename \u2014 rename a channel
|
|
1208
1208
|
|
|
1209
1209
|
usage:
|
|
1210
1210
|
funnel channels rename <old-channel-name> <new-channel-name>
|
|
@@ -1218,7 +1218,7 @@ examples:
|
|
|
1218
1218
|
funnel channels rename staging production
|
|
1219
1219
|
funnel channels staging rename production
|
|
1220
1220
|
|
|
1221
|
-
see also: funnel channels, funnel channels <name>`,mx=_.createHandlers(($)=>$.text(MA));var cx=_.createHandlers(($)=>$.text(MA));var _A=_.createHandlers(i("param",H.object({channel:H.string(),newName:H.string()})),i("query",H.object({})),($)=>{let v=$.req.valid("param"),U=$.env.funnel;if(!U.channels.get(v.channel))throw new e(404,{message:x$({kind:"channel",name:v.channel,available:U.channels.list().map((I)=>I.name),nextAction:"fnl channels add <name>"})});return U.channels.rename(v.channel,v.newName),$.text(`renamed channel "${v.channel}" to "${v.newName}"`)});var
|
|
1221
|
+
see also: funnel channels, funnel channels <name>`,mx=_.createHandlers(($)=>$.text(MA));var cx=_.createHandlers(($)=>$.text(MA));var _A=_.createHandlers(i("param",H.object({channel:H.string(),newName:H.string()})),i("query",H.object({})),($)=>{let v=$.req.valid("param"),U=$.env.funnel;if(!U.channels.get(v.channel))throw new e(404,{message:x$({kind:"channel",name:v.channel,available:U.channels.list().map((I)=>I.name),nextAction:"fnl channels add <name>"})});return U.channels.rename(v.channel,v.newName),$.text(`renamed channel "${v.channel}" to "${v.newName}"`)});var e9$=`funnel channels <name> set delivery <mode> \u2014 change a channel's routing mode
|
|
1222
1222
|
|
|
1223
1223
|
usage: funnel channels <name> set delivery fanout | exclusive
|
|
1224
1224
|
|
|
@@ -1226,7 +1226,7 @@ modes:
|
|
|
1226
1226
|
fanout every connected WS client receives every event (default)
|
|
1227
1227
|
exclusive each event is delivered to exactly one connected client (round-robin)
|
|
1228
1228
|
|
|
1229
|
-
`,ox=_.createHandlers(c(
|
|
1229
|
+
`,ox=_.createHandlers(c(e9$),i("param",H.object({channel:H.string(),mode:$u})),($)=>{let v=$.req.valid("param");return $.env.funnel.channels.setDelivery(v.channel,v.mode),$.text(`channel "${v.channel}" delivery set to ${v.mode}`)});var s9$=`funnel channels <name> / show channel details
|
|
1230
1230
|
|
|
1231
1231
|
subcommands:
|
|
1232
1232
|
set delivery fanout|exclusive / change routing mode
|
|
@@ -1235,7 +1235,7 @@ subcommands:
|
|
|
1235
1235
|
rename <new> / rename this channel
|
|
1236
1236
|
connectors / manage connectors (add, remove, set, rename, request, schedules)
|
|
1237
1237
|
|
|
1238
|
-
output / valid YAML`,tx=_.createHandlers(i("param",H.object({channel:H.string()})),c($
|
|
1238
|
+
output / valid YAML`,tx=_.createHandlers(i("param",H.object({channel:H.string()})),c(s9$),($)=>{let v=$.req.valid("param"),U=$.env.funnel,I=U.channels.get(v.channel);if(!I)throw new e(404,{message:x$({kind:"channel",name:v.channel,available:U.channels.list().map((b)=>b.name),nextAction:"fnl channels add <name>"})});return $.text(d({id:I.id,name:I.name,delivery:I.delivery,connectors:I.connectors.map((b)=>({id:b.id,name:b.name,type:b.type}))}))});var $O$=`funnel channels / manage subscription boxes
|
|
1239
1239
|
|
|
1240
1240
|
usage / funnel channels [subcommand]
|
|
1241
1241
|
|
|
@@ -1266,7 +1266,7 @@ examples:
|
|
|
1266
1266
|
funnel channels
|
|
1267
1267
|
funnel channels add prod-inbox
|
|
1268
1268
|
funnel channels prod-inbox connectors add prod-slack --type=slack --bot-token=xoxb-... --app-token=xapp-...
|
|
1269
|
-
funnel channels prod-inbox`,dx=_.createHandlers(c(
|
|
1269
|
+
funnel channels prod-inbox`,dx=_.createHandlers(c($O$),($)=>{let U=$.env.funnel.channels.list();return $.text(d({channels:U.map((I)=>({id:I.id,name:I.name,delivery:I.delivery,connectors:I.connectors.map((b)=>({id:b.id,name:b.name,type:b.type}))}))}))});var vO$=`funnel channels <channel> validate \u2014 check connector configuration
|
|
1270
1270
|
|
|
1271
1271
|
usage: funnel channels <channel> validate [--json]
|
|
1272
1272
|
|
|
@@ -1278,7 +1278,7 @@ Does not make any network calls \u2014 static config check only.
|
|
|
1278
1278
|
|
|
1279
1279
|
examples:
|
|
1280
1280
|
funnel channels open-karte validate
|
|
1281
|
-
funnel channels open-karte validate --json`,px=_.createHandlers(($)=>$.text(
|
|
1281
|
+
funnel channels open-karte validate --json`,px=_.createHandlers(($)=>$.text(vO$));var bO$=($)=>{let v=[];if($.type==="slack"){if(!($.botToken||$.botTokenEnv))v.push({connector:$.name,field:"botToken",message:"missing botToken (xoxb-...) or botTokenEnv"});if(!($.appToken||$.appTokenEnv))v.push({connector:$.name,field:"appToken",message:"missing appToken (xapp-...) or appTokenEnv"});if($.botToken&&typeof $.botToken==="string"&&!$.botToken.startsWith("xoxb-"))v.push({connector:$.name,field:"botToken",message:`botToken must start with xoxb- (got: ${$.botToken.slice(0,8)}...)`});if($.appToken&&typeof $.appToken==="string"&&!$.appToken.startsWith("xapp-"))v.push({connector:$.name,field:"appToken",message:`appToken must start with xapp- (got: ${$.appToken.slice(0,8)}...)`})}if($.type==="gh"){if(!($.token||$.tokenEnv))v.push({connector:$.name,field:"token",message:"missing token or tokenEnv for GitHub connector"});if(!$.repo)v.push({connector:$.name,field:"repo",message:"missing repo (expected owner/repo format)"})}if($.type==="discord"){if(!($.botToken||$.botTokenEnv))v.push({connector:$.name,field:"botToken",message:"missing botToken or botTokenEnv for Discord connector"})}return v},ax=_.createHandlers(i("param",H.object({channel:H.string()})),i("query",H.object({})),($)=>{let v=$.req.valid("param"),U=$.env.funnel,I=U.channels.get(v.channel);if(!I)throw new e(404,{message:x$({kind:"channel",name:v.channel,available:U.channels.list().map((D)=>D.name),nextAction:"fnl channels add <name>"})});if(I.connectors.length===0)return $.text(d({channel:I.name,valid:!1,issues:[{connector:null,field:"connectors",message:"no connectors configured"}]}));let b=[];for(let D of I.connectors){let u=bO$(D);b.push(...u)}return $.text(d({channel:I.name,valid:b.length===0,issues:b}))});var UO$=`funnel debug / per-channel inspection (events, drops, connection lifecycle, logs, replay)
|
|
1282
1282
|
|
|
1283
1283
|
usage / funnel debug [subcommand] [--channel <name>] [--connector <name>] [--all] [--limit <N>]
|
|
1284
1284
|
|
|
@@ -1312,44 +1312,44 @@ examples:
|
|
|
1312
1312
|
funnel debug events --channel ops --limit 50
|
|
1313
1313
|
funnel debug dropped --channel ops
|
|
1314
1314
|
funnel debug connection --channel ops --connector slack-prod
|
|
1315
|
-
funnel debug logs --grep slack`,
|
|
1315
|
+
funnel debug logs --grep slack`,IO$=`funnel debug events / last N processed events
|
|
1316
1316
|
|
|
1317
1317
|
usage / funnel debug events [--channel <name>] [--limit <N>]
|
|
1318
1318
|
|
|
1319
|
-
programmable / funnel.diagnostics.recentEvents(channel, limit)`,
|
|
1319
|
+
programmable / funnel.diagnostics.recentEvents(channel, limit)`,DO$=`funnel debug dropped / events filtered out (skip:*)
|
|
1320
1320
|
|
|
1321
1321
|
usage / funnel debug dropped [--channel <name>] [--limit <N>]
|
|
1322
1322
|
|
|
1323
1323
|
shows skip reasons: skip:type / skip:subtype / skip:dedup / skip:self-user /
|
|
1324
1324
|
skip:self-bot / skip:preprocess
|
|
1325
1325
|
|
|
1326
|
-
programmable / funnel.diagnostics.droppedEvents(channel, limit)`,
|
|
1326
|
+
programmable / funnel.diagnostics.droppedEvents(channel, limit)`,uO$=`funnel debug errors / listener auth-failed and error events
|
|
1327
1327
|
|
|
1328
1328
|
usage / funnel debug errors [--channel <name>] [--limit <N>]
|
|
1329
1329
|
|
|
1330
|
-
programmable / funnel.diagnostics.connectionErrors(channel, limit)`,
|
|
1330
|
+
programmable / funnel.diagnostics.connectionErrors(channel, limit)`,wO$=`funnel debug replay / re-publish a past event into a channel
|
|
1331
1331
|
|
|
1332
1332
|
usage / funnel debug replay --channel <name> [--seq <N>]
|
|
1333
1333
|
|
|
1334
|
-
programmable / funnel.diagnostics.replay(channel, seq?)`,
|
|
1334
|
+
programmable / funnel.diagnostics.replay(channel, seq?)`,gO$=`funnel debug raw / raw inbound events before any processing
|
|
1335
1335
|
|
|
1336
1336
|
usage / funnel debug raw [--channel <name>] [--connector <name>] [--limit <N>]
|
|
1337
1337
|
|
|
1338
1338
|
shows every event the listener received, including those dropped pre-processor
|
|
1339
1339
|
(envelope shape changes, pre-READY, malformed payloads).
|
|
1340
1340
|
|
|
1341
|
-
programmable / funnel.diagnostics.rawEvents(channel, { connector, limit })`,
|
|
1341
|
+
programmable / funnel.diagnostics.rawEvents(channel, { connector, limit })`,JO$=`funnel debug connection / full lifecycle (started / connected / disconnected / stopped + auth-failed / error)
|
|
1342
1342
|
|
|
1343
1343
|
usage / funnel debug connection [--channel <name>] [--connector <name>] [--limit <N>]
|
|
1344
1344
|
|
|
1345
|
-
programmable / funnel.diagnostics.connectionTimeline(channel, { connector, limit })`,
|
|
1345
|
+
programmable / funnel.diagnostics.connectionTimeline(channel, { connector, limit })`,XO$=`funnel debug logs / tail of the gateway daemon log
|
|
1346
1346
|
|
|
1347
1347
|
usage / funnel debug logs [--grep <substr>] [--limit <N>]
|
|
1348
1348
|
|
|
1349
1349
|
shows funnel.log entries \u2014 structured FunnelLogger output and forwarded flume
|
|
1350
1350
|
logs. Use --grep to filter (case-insensitive substring).
|
|
1351
1351
|
|
|
1352
|
-
programmable / funnel.diagnostics.recentLogs({ grep, limit })`,Uu=H.object({channel:H.string().optional(),connector:H.string().optional(),limit:H.string().optional()}),dI=($,v)=>{let U=$.env.funnel.channels.list();if(v){let I=U.find((b)=>b.name===v);if(!I)return{kind:"error",payload:{error:`channel not found: ${v}`,availableChannels:U.map((b)=>b.name)}};return{kind:"ok",name:I.name}}if(U.length===0)return{kind:"ok",name:null};if(U.length===1)return{kind:"ok",name:U[0]?.name??null};return{kind:"error",payload:{error:"multiple channels \u2014 specify one with --channel",channels:U.map((I)=>I.name)}}},ex=_.createHandlers(c(
|
|
1352
|
+
programmable / funnel.diagnostics.recentLogs({ grep, limit })`,Uu=H.object({channel:H.string().optional(),connector:H.string().optional(),limit:H.string().optional()}),dI=($,v)=>{let U=$.env.funnel.channels.list();if(v){let I=U.find((b)=>b.name===v);if(!I)return{kind:"error",payload:{error:`channel not found: ${v}`,availableChannels:U.map((b)=>b.name)}};return{kind:"ok",name:I.name}}if(U.length===0)return{kind:"ok",name:null};if(U.length===1)return{kind:"ok",name:U[0]?.name??null};return{kind:"error",payload:{error:"multiple channels \u2014 specify one with --channel",channels:U.map((I)=>I.name)}}},ex=_.createHandlers(c(UO$),i("query",H.object({channel:H.string().optional(),all:Y6,limit:H.string().optional()})),async($)=>{let v=$.req.valid("query"),U=$.env.funnel;if(v.all===!0){let w=await U.diagnostics.diagnoseAll();return $.text(d(w))}let b=U.channels.list();if(b.length===0)return $.text(d({error:"no channels configured",nextAction:"fnl channels add <name>"}));let D=null;if(v.channel){let w=b.find((g)=>g.name===v.channel);if(!w)return $.text(d({error:`channel not found: ${v.channel}`,availableChannels:b.map((g)=>g.name)}));D=w.name}else if(b.length===1)D=b[0]?.name??null;else return $.text(d({error:"multiple channels \u2014 specify one with --channel or use --all",channels:b.map((w)=>w.name),hint:"use --all for all channels at once"}));let u=await U.diagnostics.diagnose(D??void 0);if(!u)return $.text(d({error:"channel not resolvable"}));return $.text(d(u))}),sx=_.createHandlers(c(IO$),i("query",Uu),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=v.limit?Math.max(1,Number(v.limit)):20,b=dI($,v.channel);if(b.kind==="error")return $.text(d(b.payload));let D=await U.diagnostics.recentEvents(b.name,{connector:v.connector,limit:I});return $.text(d({events:D}))}),$l=_.createHandlers(c(DO$),i("query",Uu),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=v.limit?Math.max(1,Number(v.limit)):20,b=dI($,v.channel);if(b.kind==="error")return $.text(d(b.payload));let D=await U.diagnostics.droppedEvents(b.name,{connector:v.connector,limit:I});return $.text(d({dropped:D}))}),vl=_.createHandlers(c(uO$),i("query",Uu),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=v.limit?Math.max(1,Number(v.limit)):20,b=dI($,v.channel);if(b.kind==="error")return $.text(d(b.payload));let D=await U.diagnostics.connectionErrors(b.name,{connector:v.connector,limit:I});return $.text(d({errors:D}))}),bl=_.createHandlers(c(wO$),i("query",H.object({channel:H.string().optional(),seq:H.string().optional()})),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=dI($,v.channel);if(I.kind==="error")return $.text(d(I.payload));if(!I.name)return $.text(d({error:"no channels configured"}));let b=v.seq?Number(v.seq):void 0,D=await U.diagnostics.replay(I.name,b);return $.text(d(D))}),Ul=_.createHandlers(c(gO$),i("query",Uu),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=v.limit?Math.max(1,Number(v.limit)):20,b=dI($,v.channel);if(b.kind==="error")return $.text(d(b.payload));let D=await U.diagnostics.rawEvents(b.name,{connector:v.connector,limit:I});return $.text(d({raw:D}))}),Il=_.createHandlers(c(JO$),i("query",Uu),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=v.limit?Math.max(1,Number(v.limit)):20,b=dI($,v.channel);if(b.kind==="error")return $.text(d(b.payload));let D=await U.diagnostics.connectionTimeline(b.name,{connector:v.connector,limit:I});return $.text(d({connection:D}))}),Dl=_.createHandlers(c(XO$),i("query",H.object({grep:H.string().optional(),limit:H.string().optional()})),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=v.limit?Math.max(1,Number(v.limit)):200,b=await U.diagnostics.recentLogs({grep:v.grep,limit:I});return $.text(d(b))});var WO$=`funnel docs / embedded documentation
|
|
1353
1353
|
|
|
1354
1354
|
usage / funnel docs [topic]
|
|
1355
1355
|
|
|
@@ -1362,7 +1362,7 @@ programmable / funnel.docs.list() / funnel.docs.get(topic)
|
|
|
1362
1362
|
examples:
|
|
1363
1363
|
funnel docs
|
|
1364
1364
|
funnel docs architecture
|
|
1365
|
-
funnel docs debugging`,ul=_.createHandlers(c(
|
|
1365
|
+
funnel docs debugging`,ul=_.createHandlers(c(WO$),async($)=>{let v=$.env.funnel.docs;return $.text(d({topics:v.list()}))}),wl=_.createHandlers(i("param",H.object({topic:H.string()})),async($)=>{let v=$.req.valid("param"),U=$.env.funnel.docs,I=U.get(v.topic);if(I===null)return $.text(d({error:`unknown topic: ${v.topic}`,availableTopics:U.topics()}));return $.text(I)});var GO$=`funnel doctor / diagnose every channel; --fix applies safe self-healing
|
|
1366
1366
|
|
|
1367
1367
|
usage / funnel doctor [--fix] [--aggressive]
|
|
1368
1368
|
|
|
@@ -1378,7 +1378,7 @@ programmable / await funnel.doctor.run() / await funnel.doctor.run("safe") / awa
|
|
|
1378
1378
|
examples:
|
|
1379
1379
|
funnel doctor
|
|
1380
1380
|
funnel doctor --fix
|
|
1381
|
-
funnel doctor --fix --aggressive`,gl=_.createHandlers(c(
|
|
1381
|
+
funnel doctor --fix --aggressive`,gl=_.createHandlers(c(GO$),i("query",H.object({fix:Y6,aggressive:Y6})),async($)=>{let v=$.req.valid("query"),U=v.fix===!0,I=v.aggressive===!0,b=U?I?"aggressive":"safe":"off",D=await $.env.funnel.doctor.run(b);return $.text(d(D))});var OO$=`funnel gateway / manage the funnel daemon
|
|
1382
1382
|
|
|
1383
1383
|
The gateway daemon hosts the WebSocket /ws (used by Claude MCP) and the
|
|
1384
1384
|
listener supervisor that runs every connector. One daemon, one port (9743
|
|
@@ -1406,14 +1406,14 @@ examples:
|
|
|
1406
1406
|
funnel gateway
|
|
1407
1407
|
funnel gateway restart
|
|
1408
1408
|
funnel gateway logs
|
|
1409
|
-
funnel gateway sql --preset recent`,FA=async($)=>{let v=$.env.funnel,U=v.gateway.getStatus();if(!U.running)return $.text(d({running:!1}),503);let I=v.gatewayToken.read(),b=null;try{b=await Qv(`${Gv(U.port)}/status`,{headers:I?{authorization:`Bearer ${I}`}:{}})}catch{b=null}if(!b||!b.ok)return $.text(d({running:!0,pid:U.pid,port:U.port,error:b?`status check failed (${b.status})`:"status check failed"}));let D=await b.json();return $.text(d({running:!0,pid:D.pid,port:U.port,uptimeMs:D.uptimeMs,events:D.broadcaster.eventsBroadcast,listeners:D.listeners.map((u)=>({channel:u.channelName,name:u.name,type:u.type,alive:u.alive,events:u.events,errors:u.errors,lastEventAt:u.lastEventAt})),clients:D.clients.map((u)=>({channel:u.channel,connectors:u.connectors}))}))},Jl=_.createHandlers(c(
|
|
1409
|
+
funnel gateway sql --preset recent`,FA=async($)=>{let v=$.env.funnel,U=v.gateway.getStatus();if(!U.running)return $.text(d({running:!1}),503);let I=v.gatewayToken.read(),b=null;try{b=await Qv(`${Gv(U.port)}/status`,{headers:I?{authorization:`Bearer ${I}`}:{}})}catch{b=null}if(!b||!b.ok)return $.text(d({running:!0,pid:U.pid,port:U.port,error:b?`status check failed (${b.status})`:"status check failed"}));let D=await b.json();return $.text(d({running:!0,pid:D.pid,port:U.port,uptimeMs:D.uptimeMs,events:D.broadcaster.eventsBroadcast,listeners:D.listeners.map((u)=>({channel:u.channelName,name:u.name,type:u.type,alive:u.alive,events:u.events,errors:u.errors,lastEventAt:u.lastEventAt})),clients:D.clients.map((u)=>({channel:u.channel,connectors:u.connectors}))}))},Jl=_.createHandlers(c(OO$),FA);var HO$=`funnel gateway listeners / show running connector listeners
|
|
1410
1410
|
|
|
1411
1411
|
usage / funnel gateway listeners
|
|
1412
1412
|
|
|
1413
1413
|
output / valid YAML
|
|
1414
1414
|
|
|
1415
|
-
programmable / funnel.listeners.list() / funnel.recovery.restartAllDeadListeners()`,Xl=_.createHandlers(c(
|
|
1416
|
-
`)}}var
|
|
1415
|
+
programmable / funnel.listeners.list() / funnel.recovery.restartAllDeadListeners()`,Xl=_.createHandlers(c(HO$),async($)=>{let U=await $.env.funnel.listeners.list();if(U.state==="offline")throw new e(503,{message:"funnel gateway: not running"});if(U.state==="error")throw new e(503,{message:`funnel gateway: ${U.reason}`});return $.text(d({listeners:U.listeners}))});import{existsSync as AO$}from"fs";import{join as PO$}from"path";import{appendFileSync as VO$,mkdirSync as LO$}from"fs";import{dirname as KO$,join as qO$}from"path";class Iu{}var zO$=[/xox[abprs]-[A-Za-z0-9-]{10,}/g,/xapp-[A-Za-z0-9-]{10,}/g,/gh[pousr]_[A-Za-z0-9]{20,}/g,/github_pat_[A-Za-z0-9_]{20,}/g,/Bot [A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{4,}\.[A-Za-z0-9_-]{20,}/g,/Bearer [A-Za-z0-9._~+/-]{16,}/g],Wl=($)=>{let v=$;for(let U of zO$)v=v.replace(U,"[redacted]");return v};import{tmpdir as QO$}from"os";import{join as YO$}from"path";function Yv(){let $=process.env.FUNNEL_TMP_DIR;if($&&$.length>0)return $;return YO$(QO$(),"funnel")}var BO$=()=>qO$(Yv(),"funnel.log");class Du extends Iu{file;now;constructor($={}){super();this.file=$.file??BO$(),this.now=$.now??(()=>new Date),Object.freeze(this)}info($,v){this.write("info",$,v)}warn($,v){this.write("warn",$,v)}error($,v){this.write("error",$,v)}write($,v,U){LO$(KO$(this.file),{recursive:!0});let I={time:this.now().toISOString(),level:$,message:v,...U?{meta:U}:{}};VO$(this.file,`${Wl(JSON.stringify(I))}
|
|
1416
|
+
`)}}var jO$=`funnel gateway logs \u2014 tail the daemon diagnostic log
|
|
1417
1417
|
|
|
1418
1418
|
usage: funnel gateway logs [-n <N>] [--format <plain|json>]
|
|
1419
1419
|
|
|
@@ -1421,7 +1421,7 @@ options:
|
|
|
1421
1421
|
-n <N> number of trailing lines to show (default: 20)
|
|
1422
1422
|
--format <plain|json> output format (default: plain)
|
|
1423
1423
|
|
|
1424
|
-
Streams ${
|
|
1424
|
+
Streams ${PO$(Yv(),"funnel.log")} \u2014 the daemon's diagnostic stream covering
|
|
1425
1425
|
gateway lifecycle, listener start/stop/error, and WebSocket connect/disconnect.
|
|
1426
1426
|
Exit with Ctrl-C.
|
|
1427
1427
|
|
|
@@ -1440,11 +1440,11 @@ examples:
|
|
|
1440
1440
|
see also: fnl debug, fnl gateway sql
|
|
1441
1441
|
|
|
1442
1442
|
programmable: this command tails a file directly. For structured introspection,
|
|
1443
|
-
prefer funnel.diagnostics.diagnoseAll() / .recentEvents() in code.`,
|
|
1444
|
-
`},Gl=_.createHandlers(c(
|
|
1445
|
-
`);J=W.pop()??"";for(let G of W){if(!G.trim())continue;let O=
|
|
1443
|
+
prefer funnel.diagnostics.diagnoseAll() / .recentEvents() in code.`,NO$=new Du,SO$=($)=>{try{return JSON.parse($)}catch{return null}},MO$=($)=>{if($===null||typeof $!=="object")return!1;if(!("time"in $)||typeof $.time!=="string")return!1;if(!("level"in $)||typeof $.level!=="string")return!1;if(!("message"in $)||typeof $.message!=="string")return!1;return!0},_O$=($)=>{let v=typeof $==="string"?$:JSON.stringify($);return v.includes(" ")?`"${v}"`:v},FO$=($)=>{if($===null||typeof $!=="object")return"";let v=Object.entries($).map(([U,I])=>`${U}=${_O$(I)}`).join(" ");return v?` ${v}`:""},ZO$=($)=>{let v=$.time.slice(11,19),U=$.level.toUpperCase().padEnd(5),I=$.message.padEnd(30),b=FO$($.meta);return`${v} ${U} ${I}${b}
|
|
1444
|
+
`},Gl=_.createHandlers(c(jO$),i("query",H.object({n:H.string().optional(),format:H.enum(["plain","json"]).optional()})),async($)=>{let v=$.req.valid("query"),U=NO$.file;if(!U||!AO$(U))return $.text("no logs");let I=v.n?Number(v.n):20,b=v.format??"plain",D=Bun.spawn(["tail","-f","-n",String(I),U],{stdout:"pipe",stderr:"inherit"}),u=(X)=>{D.kill(X)};process.on("SIGINT",()=>u("SIGINT")),process.on("SIGTERM",()=>u("SIGTERM"));let w=D.stdout.getReader(),g=new TextDecoder,J="";while(!0){let X=await w.read();if(X.done)break;J+=g.decode(X.value,{stream:!0});let W=J.split(`
|
|
1445
|
+
`);J=W.pop()??"";for(let G of W){if(!G.trim())continue;let O=SO$(G);if(!MO$(O)){process.stdout.write(`${G}
|
|
1446
1446
|
`);continue}if(b==="json")process.stdout.write(`${JSON.stringify(O)}
|
|
1447
|
-
`);else process.stdout.write(
|
|
1447
|
+
`);else process.stdout.write(ZO$(O))}}await D.exited,process.exit(0)});import{existsSync as ZA}from"fs";import{join as TA}from"path";import{Database as TO$}from"bun:sqlite";class Vv{db;constructor($){let v=new TO$($.rawPath,{readonly:!0});try{v.run("PRAGMA busy_timeout = 500"),v.prepare("ATTACH DATABASE ? AS processeddb").run($.processedPath),v.prepare("ATTACH DATABASE ? AS connectiondb").run($.connectionPath),v.run(kO$),v.run(EO$),v.run(RO$)}catch(U){throw v.close(),U}this.db=v,Object.freeze(this)}query($,v=[]){let U=$.trim().replace(/;$/,"").trim();if(!/^select\b/i.test(U))return Error("only a single SELECT statement is allowed");if(U.includes(";"))return Error("only a single statement is allowed (remove the ';')");try{return this.db.prepare(U).all(...v)}catch(I){return I instanceof Error?I:Error(String(I))}}close(){this.db.close()}}var kO$=`CREATE TEMP VIEW raw AS SELECT
|
|
1448
1448
|
seq,
|
|
1449
1449
|
ts,
|
|
1450
1450
|
json_extract(event, '$.event_id') AS event_id,
|
|
@@ -1452,7 +1452,7 @@ programmable: this command tails a file directly. For structured introspection,
|
|
|
1452
1452
|
json_extract(event, '$.connector_id') AS connector_id,
|
|
1453
1453
|
json_extract(event, '$.channel_id') AS channel_id,
|
|
1454
1454
|
json_extract(event, '$.payload') AS payload
|
|
1455
|
-
FROM main.logs`,
|
|
1455
|
+
FROM main.logs`,EO$=`CREATE TEMP VIEW processed AS SELECT
|
|
1456
1456
|
seq,
|
|
1457
1457
|
ts,
|
|
1458
1458
|
json_extract(event, '$.event_id') AS event_id,
|
|
@@ -1461,7 +1461,7 @@ FROM main.logs`,RO$=`CREATE TEMP VIEW processed AS SELECT
|
|
|
1461
1461
|
json_extract(event, '$.channel_id') AS channel_id,
|
|
1462
1462
|
json_extract(event, '$.outcome') AS outcome,
|
|
1463
1463
|
json_extract(event, '$.payload') AS payload
|
|
1464
|
-
FROM processeddb.logs`,
|
|
1464
|
+
FROM processeddb.logs`,RO$=`CREATE TEMP VIEW connection AS SELECT
|
|
1465
1465
|
seq,
|
|
1466
1466
|
ts,
|
|
1467
1467
|
json_extract(event, '$.type') AS type,
|
|
@@ -1469,7 +1469,7 @@ FROM processeddb.logs`,nO$=`CREATE TEMP VIEW connection AS SELECT
|
|
|
1469
1469
|
json_extract(event, '$.channel_id') AS channel_id,
|
|
1470
1470
|
json_extract(event, '$.status') AS status,
|
|
1471
1471
|
json_extract(event, '$.detail') AS detail
|
|
1472
|
-
FROM connectiondb.logs`;var Ol={recent:"SELECT seq, ts, type, outcome FROM processed ORDER BY seq DESC LIMIT 20",skipped:"SELECT seq, ts, type, outcome, payload FROM processed WHERE outcome LIKE 'skip:%' ORDER BY seq DESC LIMIT 20",errors:"SELECT ts, status, detail FROM connection WHERE status IN ('auth-failed','error') ORDER BY seq DESC LIMIT 20",summary:"SELECT outcome, COUNT(*) AS count FROM processed GROUP BY outcome ORDER BY count DESC","trace-dedup":"SELECT r.seq, r.ts, r.event_id, r.payload FROM raw r JOIN processed p USING(event_id) WHERE p.outcome='skip:dedup' ORDER BY r.seq DESC LIMIT 20"},
|
|
1472
|
+
FROM connectiondb.logs`;var Ol={recent:"SELECT seq, ts, type, outcome FROM processed ORDER BY seq DESC LIMIT 20",skipped:"SELECT seq, ts, type, outcome, payload FROM processed WHERE outcome LIKE 'skip:%' ORDER BY seq DESC LIMIT 20",errors:"SELECT ts, status, detail FROM connection WHERE status IN ('auth-failed','error') ORDER BY seq DESC LIMIT 20",summary:"SELECT outcome, COUNT(*) AS count FROM processed GROUP BY outcome ORDER BY count DESC","trace-dedup":"SELECT r.seq, r.ts, r.event_id, r.payload FROM raw r JOIN processed p USING(event_id) WHERE p.outcome='skip:dedup' ORDER BY r.seq DESC LIMIT 20"},nO$={recent:"SELECT seq, ts, type, outcome FROM processed WHERE channel_id = ? ORDER BY seq DESC LIMIT 20",skipped:"SELECT seq, ts, type, outcome, payload FROM processed WHERE channel_id = ? AND outcome LIKE 'skip:%' ORDER BY seq DESC LIMIT 20",errors:"SELECT ts, status, detail FROM connection WHERE channel_id = ? AND status IN ('auth-failed','error') ORDER BY seq DESC LIMIT 20",summary:"SELECT outcome, COUNT(*) AS count FROM processed WHERE channel_id = ? GROUP BY outcome ORDER BY count DESC","trace-dedup":"SELECT r.seq, r.ts, r.event_id, r.payload FROM raw r JOIN processed p USING(event_id) WHERE r.channel_id = ? AND p.outcome='skip:dedup' ORDER BY r.seq DESC LIMIT 20"},kA=`funnel gateway sql \u2014 query inbound connector traffic with SQL
|
|
1473
1473
|
|
|
1474
1474
|
usage: funnel gateway sql --preset <name> [--channel <name|id>] [--limit <N>]
|
|
1475
1475
|
funnel gateway sql --query "<SELECT ...>"
|
|
@@ -1513,7 +1513,7 @@ see also: fnl debug, fnl gateway logs
|
|
|
1513
1513
|
programmable: const reader = new ConnectorDiagnosticSqlReader({ rawPath, processedPath, connectionPath })
|
|
1514
1514
|
reader.query("SELECT \u2026")
|
|
1515
1515
|
\u2014 but for most cases, funnel.diagnostics.recentEvents() / .droppedEvents()
|
|
1516
|
-
/ .connectionErrors() are higher level and don't need SQL.`,Hl=_.createHandlers(c(kA),i("query",H.object({query:H.string().optional(),preset:H.enum(Object.keys(Ol)).optional(),channel:H.string().optional(),limit:H.string().optional()})),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=null,b=[],D=null;if(v.channel)D=U.channels.list().find((z)=>z.id===v.channel||z.name===v.channel)?.id??v.channel;if(v.preset){let G=D?
|
|
1516
|
+
/ .connectionErrors() are higher level and don't need SQL.`,Hl=_.createHandlers(c(kA),i("query",H.object({query:H.string().optional(),preset:H.enum(Object.keys(Ol)).optional(),channel:H.string().optional(),limit:H.string().optional()})),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=null,b=[],D=null;if(v.channel)D=U.channels.list().find((z)=>z.id===v.channel||z.name===v.channel)?.id??v.channel;if(v.preset){let G=D?nO$[v.preset]??null:Ol[v.preset]??null;if(!G)return $.text(kA);let O=G;if(v.limit){let z=Math.max(1,Number(v.limit));O=O.replace(/LIMIT \d+/,`LIMIT ${z}`)}I=O,b=D?[D]:[]}else if(v.query)I=v.query;if(!I)return $.text(kA);let u=Yv(),w=TA(u,"connector-raw.db"),g=TA(u,"connector-processed.db"),J=TA(u,"connector-connection.db");if(!ZA(w)||!ZA(g)||!ZA(J))return $.text("no diagnostic store yet (the gateway has not initialized it)");let X=new Vv({rawPath:w,processedPath:g,connectionPath:J}),W=(()=>{try{return X.query(I,b)}finally{X.close()}})();if(W instanceof Error)return $.text(d({error:W.message}));return $.text(d({rows:W}))});var rO$=`funnel gateway restart \u2014 restart the gateway
|
|
1517
1517
|
|
|
1518
1518
|
usage: funnel gateway restart [--no-caffeine]
|
|
1519
1519
|
|
|
@@ -1525,8 +1525,8 @@ examples:
|
|
|
1525
1525
|
funnel gateway restart --no-caffeine
|
|
1526
1526
|
|
|
1527
1527
|
programmable: funnel.gateway.restart({ caffeinate })
|
|
1528
|
-
funnel.recovery.restartGateway()`,zl=_.createHandlers(c(
|
|
1529
|
-
`);if(!I.ok)throw new e(500,{message:D});return $.text(D)});var
|
|
1528
|
+
funnel.recovery.restartGateway()`,zl=_.createHandlers(c(rO$),i("query",H.object({"no-caffeine":H.string().optional()})),async($)=>{let v=$.req.valid("query"),I=await $.env.funnel.gateway.restart({caffeinate:v["no-caffeine"]!=="true"}),b=[];if(I.wasRunning)b.push(I.stopped?"funnel gateway: stopped":"funnel gateway: failed to stop");if(I.stopped)b.push(I.started?"funnel gateway: started":"funnel gateway: failed to start");let D=b.join(`
|
|
1529
|
+
`);if(!I.ok)throw new e(500,{message:D});return $.text(D)});var CO$=`funnel gateway run \u2014 run the gateway in foreground
|
|
1530
1530
|
|
|
1531
1531
|
usage: funnel gateway run [--no-caffeine]
|
|
1532
1532
|
|
|
@@ -1539,7 +1539,7 @@ examples:
|
|
|
1539
1539
|
funnel gateway run
|
|
1540
1540
|
funnel gateway run --no-caffeine
|
|
1541
1541
|
|
|
1542
|
-
programmable: funnel.runGatewayForeground({ caffeinate })`,Ql=_.createHandlers(c(
|
|
1542
|
+
programmable: funnel.runGatewayForeground({ caffeinate })`,Ql=_.createHandlers(c(CO$),i("query",H.object({"no-caffeine":H.string().optional()})),async($)=>{let v=$.req.valid("query"),I=await $.env.funnel.runGatewayForeground({caffeinate:v["no-caffeine"]!=="true"});process.exit(I)});import{join as iO$}from"path";var xO$=`funnel gateway start \u2014 start the gateway in background
|
|
1543
1543
|
|
|
1544
1544
|
usage: funnel gateway start [--no-caffeine]
|
|
1545
1545
|
|
|
@@ -1549,26 +1549,26 @@ Use --no-caffeine to disable caffeinate.
|
|
|
1549
1549
|
|
|
1550
1550
|
port: 9743 (CLI default; override via FUNNEL_PORT)
|
|
1551
1551
|
pid: ~/.funnel/gateway.pid
|
|
1552
|
-
log: ${
|
|
1552
|
+
log: ${iO$(Yv(),"gateway.log")}
|
|
1553
1553
|
|
|
1554
1554
|
examples:
|
|
1555
1555
|
funnel gateway start
|
|
1556
1556
|
funnel gateway start --no-caffeine
|
|
1557
1557
|
|
|
1558
|
-
programmable: funnel.gateway.start({ caffeinate })`,Yl=5000,
|
|
1558
|
+
programmable: funnel.gateway.start({ caffeinate })`,Yl=5000,lO$=100,fO$=async($)=>{let v=Date.now()+Yl;while(Date.now()<v){let U=!1;try{U=(await Qv(`${Gv($)}/health`)).ok}catch{U=!1}if(U)return!0;await new Promise((I)=>setTimeout(I,lO$))}return!1},Vl=_.createHandlers(c(xO$),i("query",H.object({"no-caffeine":H.string().optional()})),async($)=>{let v=$.req.valid("query"),U=$.env.funnel;if(U.gateway.isRunning()){let u=U.gateway.getStatus();return $.text(`funnel gateway: already running (pid ${u.pid})`)}if(!await U.gateway.start({caffeinate:v["no-caffeine"]!=="true"}))throw new e(500,{message:"funnel gateway: failed to start \u2014 inspect the daemon log with `fnl gateway logs`"});let b=U.gateway.getStatus();if(!await fO$(b.port))return $.text(`funnel gateway: started (pid ${b.pid}, port ${b.port}) but /health did not respond within ${Yl/1000}s \u2014 check \`fnl gateway logs\``);return $.text(`funnel gateway: started (pid ${b.pid}, port ${b.port})`)});var yO$=`funnel gateway status / show gateway running status
|
|
1559
1559
|
|
|
1560
1560
|
usage / funnel gateway status
|
|
1561
1561
|
|
|
1562
1562
|
output / valid YAML
|
|
1563
1563
|
|
|
1564
|
-
programmable / funnel.gateway.getStatus()`,Ll=_.createHandlers(c(
|
|
1564
|
+
programmable / funnel.gateway.getStatus()`,Ll=_.createHandlers(c(yO$),async($)=>FA($));var hO$=`funnel gateway stop \u2014 stop the gateway
|
|
1565
1565
|
|
|
1566
1566
|
usage: funnel gateway stop
|
|
1567
1567
|
|
|
1568
1568
|
Terminates the process whose PID is stored in ~/.funnel/gateway.pid.
|
|
1569
1569
|
|
|
1570
1570
|
examples:
|
|
1571
|
-
funnel gateway stop`,Kl=_.createHandlers(c(
|
|
1571
|
+
funnel gateway stop`,Kl=_.createHandlers(c(hO$),async($)=>{let v=$.env.funnel;if(!v.gateway.isRunning())return $.text("funnel gateway: no running process");if(!await v.gateway.stop())throw new e(500,{message:"funnel gateway: failed to stop"});return $.text("funnel gateway: stopped")});var mO$=`funnel profiles add \u2014 add a profile
|
|
1572
1572
|
|
|
1573
1573
|
usage: funnel profiles add <name> --path <path> --channel <channel-name> [recipe]
|
|
1574
1574
|
|
|
@@ -1581,24 +1581,24 @@ options:
|
|
|
1581
1581
|
--no-resume start a fresh claude session every launch (default resumes)
|
|
1582
1582
|
|
|
1583
1583
|
The launch recipe (--agent / --options / --env / --resume) lives on the
|
|
1584
|
-
profile; the channel only declares transport (connectors / delivery).`,ql=_.createHandlers(($)=>$.text(
|
|
1584
|
+
profile; the channel only declares transport (connectors / delivery).`,ql=_.createHandlers(($)=>$.text(mO$));var eW=($)=>{let v={};if($.agent!==void 0||$.options!==void 0){let U=[];if($.agent!==void 0)U.push("--agent",$.agent);if($.options!==void 0){for(let I of $.options.split(/\s+/))if(I.length>0)U.push(I)}v.options=U}if($.env!==void 0){let U={};for(let I of $.env.split(",")){let b=I.trim();if(b.length===0)continue;let D=b.indexOf("=");if(D<0)continue;U[b.slice(0,D)]=b.slice(D+1)}v.env=U}if($["no-resume"]!==void 0)v.resume=!1;else if($.resume!==void 0)v.resume=$.resume!=="false";return v};var Bl=_.createHandlers(i("param",H.object({profile:H.string()})),i("query",H.object({path:H.string(),channel:H.string(),agent:H.string().optional(),options:H.string().optional(),env:H.string().optional(),resume:H.string().optional(),"no-resume":H.string().optional()})),($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),I=$.env.funnel,{profiles:b,claude:D}=$.env,u=I.channels.get(U.channel);if(!u)throw new e(400,{message:x$({kind:"channel",name:U.channel,available:I.channels.list().map((g)=>g.name),nextAction:"fnl channels add <name>"})});let w=eW(U);return b.add({name:v.profile,path:U.path,channelId:u.id,options:w.options,env:w.env,resume:w.resume}),$.text(`added profile "${v.profile}"`)});var cO$=`funnel profiles <name> as-default \u2014 move profile to the front of the list
|
|
1585
1585
|
|
|
1586
1586
|
usage: funnel profiles <name> as-default
|
|
1587
1587
|
|
|
1588
|
-
the first profile in the list is treated as the default for fnl claude.`,Al=_.createHandlers(i("param",H.object({profile:H.string()})),c(
|
|
1588
|
+
the first profile in the list is treated as the default for fnl claude.`,Al=_.createHandlers(i("param",H.object({profile:H.string()})),c(cO$),($)=>{let v=$.req.valid("param"),U=$.env.funnel,{profiles:I,claude:b}=$.env;return I.asDefault(v.profile),$.text(`profile "${v.profile}" is now the default`)});var oO$=`funnel profiles rename \u2014 rename a profile
|
|
1589
1589
|
|
|
1590
1590
|
usage:
|
|
1591
1591
|
funnel profiles rename <old> <new>
|
|
1592
|
-
funnel profiles <old> rename <new>`,Pl=_.createHandlers(($)=>$.text(
|
|
1592
|
+
funnel profiles <old> rename <new>`,Pl=_.createHandlers(($)=>$.text(oO$));var tO$=`funnel profiles rename \u2014 rename a profile
|
|
1593
1593
|
|
|
1594
1594
|
usage:
|
|
1595
1595
|
funnel profiles rename <old> <new>
|
|
1596
|
-
funnel profiles <old> rename <new>`,jl=_.createHandlers(($)=>$.text(
|
|
1596
|
+
funnel profiles <old> rename <new>`,jl=_.createHandlers(($)=>$.text(tO$));var EA=_.createHandlers(i("param",H.object({profile:H.string(),newName:H.string()})),i("query",H.object({})),($)=>{let v=$.req.valid("param"),U=$.env.funnel,{profiles:I,claude:b}=$.env;return I.rename(v.profile,v.newName),$.text(`renamed profile "${v.profile}" to "${v.newName}"`)});var dO$=`funnel profiles <name> run \u2014 launch a profile (sugar for fnl claude)
|
|
1597
1597
|
|
|
1598
1598
|
usage: funnel profiles <name> run [additional claude args...]
|
|
1599
|
-
funnel profiles <name> (alias)`,
|
|
1599
|
+
funnel profiles <name> (alias)`,pO$=[],RA=_.createHandlers(i("param",H.object({profile:H.string()})),c(dO$),i("query",H.object({}).loose()),async($)=>{let v=$.req.valid("param"),U=$.env.funnel,{profiles:I,claude:b}=$.env,D=I.get(v.profile);if(!D)throw new e(404,{message:x$({kind:"profile",name:v.profile,available:I.list().map((w)=>w.name),nextAction:"fnl profiles add <name> --path=<repo> --channel=<channel>"})});let u=await b.launch({channel:D.channelId,cwd:D.path,userArgs:sw($.req.url,pO$),profileId:D.id,options:D.options,env:D.env,resume:D.resume});process.exit(u)});var aO$=`funnel profiles remove \u2014 remove a profile
|
|
1600
1600
|
|
|
1601
|
-
usage: funnel profiles remove <name>`,Nl=_.createHandlers(($)=>$.text(
|
|
1601
|
+
usage: funnel profiles remove <name>`,Nl=_.createHandlers(($)=>$.text(aO$));var Sl=_.createHandlers(i("param",H.object({profile:H.string()})),i("query",H.object({})),($)=>{let v=$.req.valid("param"),U=$.env.funnel,{profiles:I,claude:b}=$.env;return I.remove(v.profile),$.text(`removed profile "${v.profile}"`)});var eO$=`funnel profiles <name> set \u2014 update a profile
|
|
1602
1602
|
|
|
1603
1603
|
usage: funnel profiles <name> set [--path <path>] [--channel <channel-name>] [recipe]
|
|
1604
1604
|
|
|
@@ -1611,7 +1611,7 @@ options:
|
|
|
1611
1611
|
--resume / --no-resume toggle claude session reuse
|
|
1612
1612
|
|
|
1613
1613
|
Only the flags you pass are changed; --agent and --options together replace
|
|
1614
|
-
the profile's whole options list.`,Ml=_.createHandlers(($)=>$.text(
|
|
1614
|
+
the profile's whole options list.`,Ml=_.createHandlers(($)=>$.text(eO$));var _l=_.createHandlers(i("param",H.object({profile:H.string()})),i("query",H.object({path:H.string().optional(),channel:H.string().optional(),agent:H.string().optional(),options:H.string().optional(),env:H.string().optional(),resume:H.string().optional(),"no-resume":H.string().optional()})),($)=>{let v=$.req.valid("param"),U=$.req.valid("query"),I=$.env.funnel,{profiles:b,claude:D}=$.env,u=U.channel!==void 0?I.channels.get(U.channel):null;if(U.channel!==void 0&&!u)throw new e(400,{message:x$({kind:"channel",name:U.channel,available:I.channels.list().map((g)=>g.name),nextAction:"fnl channels add <name>"})});let w=eW(U);return b.update(v.profile,{path:U.path,channelId:u?.id,options:w.options,env:w.env,resume:w.resume}),$.text(`updated profile "${v.profile}"`)});var sO$=`funnel profiles / manage launch profiles
|
|
1615
1615
|
|
|
1616
1616
|
usage / funnel profiles [subcommand]
|
|
1617
1617
|
|
|
@@ -1636,7 +1636,7 @@ programmable / funnel.profiles.list() / .add() / .remove() / .rename() / .setDef
|
|
|
1636
1636
|
examples:
|
|
1637
1637
|
funnel profiles add cto --path /repo/myapp --channel prod-inbox --agent pm --options "--brief"
|
|
1638
1638
|
funnel profiles cto as-default
|
|
1639
|
-
funnel profiles cto run`,Fl=_.createHandlers(c($
|
|
1639
|
+
funnel profiles cto run`,Fl=_.createHandlers(c(sO$),($)=>{let{profiles:v}=$.env,U=v.list();return $.text(d({profiles:U.map((I,b)=>({name:I.name,default:b===0,path:I.path,channelId:I.channelId,options:I.options,resume:I.resume}))}))});var $H$=H.object({type:H.literal("slack"),name:H.string(),minify:H.boolean().optional()}),vH$=H.object({type:H.literal("discord"),name:H.string()}),bH$=H.object({type:H.literal("gh"),name:H.string(),pollInterval:H.number().int().positive().optional()}),UH$=H.object({type:H.literal("schedule"),name:H.string()}),IH$=H.discriminatedUnion("type",[$H$,vH$,bH$,UH$]),DH$=H.object({name:H.string(),connectors:H.array(IH$).optional()}),uH$=H.object({name:H.string(),channel:H.string(),options:H.array(H.string()).optional(),env:H.record(H.string(),H.string()).optional(),resume:H.boolean().optional()}),sW=H.object({$schema:H.string().optional(),id:H.string().optional(),channels:H.array(DH$).min(1),profiles:H.array(uH$).optional()}),Xb="funnel.json";var Zl=()=>{return{...H.toJSONSchema(sW,{target:"draft-2020-12"}),title:"Funnel per-repo launch config",description:"Used by `fnl claude` to declare channels (transport: connectors to materialize into ~/.funnel/settings.json on launch) and profiles (launch recipe: options / env / resume) bound to those channels."}};var wH$=`funnel schema \u2014 print the JSON Schema for funnel.json
|
|
1640
1640
|
|
|
1641
1641
|
usage: funnel schema
|
|
1642
1642
|
|
|
@@ -1653,8 +1653,8 @@ can validate and autocomplete the config:
|
|
|
1653
1653
|
}
|
|
1654
1654
|
|
|
1655
1655
|
programmable: import { funnelJsonSchema } from "@interactive-inc/claude-funnel/local-config"
|
|
1656
|
-
funnelJsonSchema() // returns the same object as the CLI prints`,Tl=_.createHandlers(c(
|
|
1657
|
-
`)});var
|
|
1656
|
+
funnelJsonSchema() // returns the same object as the CLI prints`,Tl=_.createHandlers(c(wH$),async($)=>{let v=Zl();return $.text(`${JSON.stringify(v,null,2)}
|
|
1657
|
+
`)});var gH$=`funnel status / overall health snapshot
|
|
1658
1658
|
|
|
1659
1659
|
usage / funnel status [--watch] [--interval <N>]
|
|
1660
1660
|
|
|
@@ -1671,21 +1671,21 @@ programmable / funnel.gateway.getStatus() / funnel.doctor.run()
|
|
|
1671
1671
|
examples:
|
|
1672
1672
|
funnel status
|
|
1673
1673
|
funnel status --watch
|
|
1674
|
-
funnel status --watch --interval 5`,
|
|
1674
|
+
funnel status --watch --interval 5`,JH$=($)=>{if($===null||typeof $!=="object")return!1;if(!("clients"in $)||!Array.isArray($.clients))return!1;if(!("listeners"in $)||!Array.isArray($.listeners))return!1;return!0},kl=async($,v)=>{let U=$.channels.list(),I=v.list(),b=$.gateway.getStatus(),D=null;if(b.running){let g=$.gatewayToken.read(),J=null;try{J=await Qv(`${Gv(b.port)}/status`,{headers:g?{authorization:`Bearer ${g}`}:{}})}catch{J=null}if(J&&J.ok){let X=await J.json();if(JH$(X))D=X}}let u=new Map,w=new Map;if(D){for(let g of D.clients){let J=g.channelName??g.channel;u.set(J,(u.get(J)??0)+1)}for(let g of D.listeners){let J=w.get(g.channelName);w.set(g.channelName,J===void 0?g.alive:J&&g.alive)}}return{gateway:b.running?{running:!0,responsive:D!==null,pid:b.pid,port:b.port,uptimeMs:D?.uptimeMs??null}:{running:!1},channels:U.map((g)=>({name:g.name,connectors:g.connectors.map((J)=>({name:J.name,type:J.type})),listenerAlive:D===null?null:w.get(g.name)??null,claudeClients:u.get(g.name)??0})),profiles:I.map((g,J)=>{let X=$.channels.getById(g.channelId);return{name:g.name,default:J===0,path:g.path,channel:X?X.name:null,channelId:X?void 0:g.channelId}})}},El=_.createHandlers(c(gH$),i("query",H.object({watch:Y6,interval:H.string().optional()})),async($)=>{let v=$.req.valid("query"),U=$.env.funnel,I=v.watch===!0,b=Math.min(60,Math.max(1,v.interval?Number(v.interval):3));if(!I){let w=await kl(U,$.env.profiles);return $.text(d(w))}let D=async()=>{let w=await kl(U,$.env.profiles);process.stdout.write("\x1B[2J\x1B[H"),process.stdout.write(d(w)),process.stdout.write(`
|
|
1675
1675
|
# refreshing every ${b}s; Ctrl+C to stop
|
|
1676
1676
|
`)};process.on("SIGINT",()=>{process.stdout.write(`
|
|
1677
|
-
`),process.exit(0)}),await D();let u=setInterval(D,b*1000);return await new Promise(()=>{process.on("exit",()=>clearInterval(u))}),$.text("")});var
|
|
1677
|
+
`),process.exit(0)}),await D();let u=setInterval(D,b*1000);return await new Promise(()=>{process.on("exit",()=>clearInterval(u))}),$.text("")});var XH$=`funnel update \u2014 update funnel to the latest version
|
|
1678
1678
|
|
|
1679
1679
|
usage: funnel update
|
|
1680
1680
|
|
|
1681
1681
|
Runs "bun i -g @interactive-inc/claude-funnel".
|
|
1682
1682
|
|
|
1683
1683
|
This command has no programmable equivalent \u2014 package management belongs to
|
|
1684
|
-
the host (npm / bun / yarn install in the host's own way).`,Rl="@interactive-inc/claude-funnel",nl=_.createHandlers(c(
|
|
1685
|
-
`),v})}}import{join as e8$}from"path";var rl=($,v)=>{return $=$.replace(/\/+$/,""),$=$+"/",v=v.replace(/^\/+/,""),$+v},vG=($,v)=>{for(let[U,I]of Object.entries(v)){let b=new RegExp("/:"+U+"(?:{[^/]+})?\\??");$=$.replace(b,I?`/${I}`:"")}return $},Cl=($)=>{let v=new URLSearchParams;for(let[U,I]of Object.entries($)){if(I===void 0)continue;if(Array.isArray(I))for(let b of I)v.append(U,b);else v.set(U,I)}return v},il=($,v)=>{switch(v){case"ws":return $.replace(/^http/,"ws");case"http":return $.replace(/^ws/,"http")}},CA=($)=>{if(/^https?:\/\/[^\/]+?\/index(?=\?|$)/.test($))return $.replace(/\/index(?=\?|$)/,"/");return $.replace(/\/index(?=\?|$)/,"")};function $G($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function iA($,v){if(!$G($)&&!$G(v))return v;let U={...$};for(let I in v){let b=v[I];if($G(U[I])&&$G(b))U[I]=iA(U[I],b);else U[I]=b}return U}var xl=($,v)=>{return new Proxy(()=>{},{get(I,b){if(typeof b!=="string"||b==="then")return;return xl($,[...v,b])},apply(I,b,D){return $({path:v,args:D})}})},YH$=class{url;method;buildSearchParams;queryParams=void 0;pathParams={};rBody;cType=void 0;constructor($,v,U){this.url=$,this.method=v,this.buildSearchParams=U.buildSearchParams}fetch=async($,v)=>{if($){if($.query)this.queryParams=this.buildSearchParams($.query);if($.form){let w=new FormData;for(let[g,J]of Object.entries($.form)){if(J===void 0)continue;if(Array.isArray(J))for(let X of J)w.append(g,X);else w.append(g,J)}this.rBody=w}if($.json)this.rBody=JSON.stringify($.json),this.cType="application/json";if($.param)this.pathParams=$.param}let U=this.method.toUpperCase(),I={...$?.header,...typeof v?.headers==="function"?await v.headers():v?.headers};if($?.cookie){let w=[];for(let[g,J]of Object.entries($.cookie))w.push(qQ(g,J,{path:"/"}));I.Cookie=w.join(",")}if(this.cType)I["Content-Type"]=this.cType;let b=new Headers(I??void 0),D=this.url;if(D=CA(D),D=vG(D,this.pathParams),this.queryParams)D=D+"?"+this.queryParams.toString();U=this.method.toUpperCase();let u=!(U==="GET"||U==="HEAD");return(v?.fetch||fetch)(D,{body:u?this.rBody:void 0,method:U,headers:b,...v?.init})}},xA=($,v)=>xl(function U(I){let b=v?.buildSearchParams??Cl,D=[...I.path],u=D.slice(-3).reverse();if(u[0]==="toString"){if(u[1]==="name")return u[2]||"";return U.toString()}if(u[0]==="valueOf"){if(u[1]==="name")return u[2]||"";return U}let w="";if(/^\$/.test(u[0])){let W=D.pop();if(W)w=W.replace(/^\$/,"")}let g=D.join("/"),J=rl($,g);if(w==="url"||w==="path"){let W=J;if(I.args[0]){if(I.args[0].param)W=vG(J,I.args[0].param);if(I.args[0].query)W=W+"?"+b(I.args[0].query).toString()}if(W=CA(W),w==="url")return new URL(W);return W.slice($.replace(/\/+$/,"").length).replace(/^\/?/,"/")}if(w==="ws"){let W=il(I.args[0]&&I.args[0].param?vG(J,I.args[0].param):J,"ws"),G=new URL(W),O=I.args[0]?.query;if(O)Object.entries(O).forEach(([Q,Y])=>{if(Array.isArray(Y))Y.forEach((K)=>G.searchParams.append(Q,K));else G.searchParams.set(Q,Y)});return((...Q)=>{if(v?.webSocket!==void 0&&typeof v.webSocket==="function")return v.webSocket(...Q);return new WebSocket(...Q)})(G.toString())}let X=new YH$(J,w,{buildSearchParams:b});if(w){v??={};let W=iA(v,{...I.args[1]});return X.fetch(I.args[0],W)}return X},[]);import{join as ll}from"path";class wu{millis(){return this.now().getTime()}iso(){return this.now().toISOString()}}class V6 extends wu{now(){return new Date}}var VH$=new d$,LH$=new $v,KH$=new g4,qH$=new V6;class lA{descriptors;fs;process;http;clock;logger;diagnosticLog;signal;dir;constructor($){this.descriptors=new Map($.descriptors.map((v)=>[v.type,v])),this.fs=$.fs??VH$,this.process=$.process??LH$,this.http=$.http??KH$,this.clock=$.clock??qH$,this.logger=$.logger,this.diagnosticLog=$.diagnosticLog,this.signal=$.signal,this.dir=$.dir??B4,Object.freeze(this)}has($){return this.descriptors.has($)}types(){return[...this.descriptors.keys()]}createListener($,v){return this.require(v.type).createListener(v,this.listenerDeps($))}createAdapter($){let v=this.require($.type);if(!v.createAdapter)return null;return v.createAdapter($,this.adapterDeps())}secretTokens($){return this.require($.type).secretTokens($)}buildConfig($,v){let U=typeof $.type==="string"?$.type:"";return this.require(U).buildConfig($,v)}applyUpdate($,v,U){return this.require($.type).applyUpdate($,v,U)}runOperation($,v,U,I){let D=this.require($.type).operations[v];if(!D)throw Error(`connector type "${$.type}" has no operation "${v}"`);return D({config:$,args:U,context:I})}connectorDir($,v){return ll(this.dir,"channels",$,"connectors",v)}channelDir($){return ll(this.dir,"channels",$)}require($){let v=this.descriptors.get($);if(!v)throw Error(`unknown connector type "${$}". Pass its descriptor to new Funnel({ connectors: [...] }).`);return v}listenerDeps($){return{channelId:$,fs:this.fs,process:this.process,http:this.http,clock:this.clock,logger:this.logger,diagnosticLog:this.diagnosticLog,signal:this.signal,connectorDir:(v,U)=>this.connectorDir(v,U)}}adapterDeps(){return{fs:this.fs,process:this.process,http:this.http,logger:this.logger}}}var BH$=new V6,AH$=new q4;class fA{store;registry;profileChecker;clock;idGenerator;constructor($){this.store=$.store,this.registry=$.registry,this.profileChecker=$.profileChecker??null,this.clock=$.clock??BH$,this.idGenerator=$.idGenerator??AH$,Object.freeze(this)}list(){return this.store.read().channels}get($){return this.list().find((v)=>v.name===$)??null}getById($){return this.list().find((v)=>v.id===$)??null}add($){return this.store.update((v)=>{if(v.channels.some((I)=>I.name===$.name))throw new iJ($.name);let U={id:this.idGenerator.generate(),name:$.name,delivery:$.delivery??"fanout",connectors:[]};return v.channels.push(U),U})}setDelivery($,v){this.store.update((U)=>{let I=this.requireChannel(U,$);I.delivery=v})}remove($){this.store.update((v)=>{let U=v.channels.findIndex((b)=>b.name===$);if(U<0)throw new _0($);let I=v.channels[U];if(I&&this.profileChecker?.hasChannelRef(I.id))throw Error(`channel "${$}" is referenced by a profile`);v.channels.splice(U,1)})}rename($,v){this.store.update((U)=>{let I=U.channels.find((b)=>b.name===$);if(!I)throw new _0($);if(U.channels.some((b)=>b.name===v))throw new iJ(v);I.name=v})}listConnectors($){return this.requireChannel(this.store.read(),$).connectors}getConnector($,v){let U=this.get($);if(!U)return null;return U.connectors.find((I)=>I.name===v)??null}listAllConnectors(){let $=[];for(let v of this.list())for(let U of v.connectors)$.push({...U,channelId:v.id,channelName:v.name});return $}addConnector($,v){return this.store.update((U)=>{let I=this.requireChannel(U,$);if(I.connectors.some((D)=>D.name===v.name))throw Error(`connector "${v.name}" already exists in channel "${$}"`);let b=this.registry.buildConfig(v,{id:this.idGenerator.generate(),now:this.clock.iso()});return this.assertNoTokenCollision(U,b),I.connectors.push(b),b})}removeConnector($,v){this.store.update((U)=>{let I=this.requireChannel(U,$),b=I.connectors.findIndex((D)=>D.name===v);if(b<0)throw new HI($,v);I.connectors.splice(b,1)})}renameConnector($,v,U){this.store.update((I)=>{let b=this.requireChannel(I,$),D=b.connectors.find((u)=>u.name===v);if(!D)throw Error(`connector "${v}" not found in channel "${$}"`);if(b.connectors.some((u)=>u.name===U))throw Error(`connector "${U}" already exists in channel "${$}"`);D.name=U,D.updatedAt=this.clock.iso()})}updateConnector($,v,U){this.store.update((I)=>{let b=this.requireChannel(I,$),D=b.connectors.find((w)=>w.name===v);if(!D)throw new HI($,v);let u=this.registry.applyUpdate(D,U,{now:this.clock.iso()});this.assertNoTokenCollision(I,u),this.replaceConnector(b,D.name,u)})}updateSlackConnector($,v,U){this.updateConnector($,v,U)}updateGhConnector($,v,U){this.updateConnector($,v,U)}updateDiscordConnector($,v,U){this.updateConnector($,v,U)}connectorOp($,v,U,I){return this.store.update((b)=>{let D=this.requireChannel(b,$),u=D.connectors.find((g)=>g.name===v);if(!u)throw new HI($,v);let w=this.registry.runOperation(u,U,I,{generateId:()=>this.idGenerator.generate(),now:this.clock.iso()});if(w.config!==u)this.replaceConnector(D,u.name,w.config);return w.result})}async call($,v,U){let I=this.getConnector($,v);if(!I)throw new HI($,v);let b=this.registry.createAdapter(I);if(!b)throw Error(`connector type "${I.type}" does not support outbound calls`);return await b.call(U)}createListener($,v){let U=this.get($);if(!U)return null;let I=U.connectors.find((b)=>b.name===v);if(!I)return null;return{config:I,channelId:U.id,listener:this.registry.createListener(U.id,I)}}createAllListeners(){let $=[];for(let v of this.list())for(let U of v.connectors)$.push({config:U,channelId:v.id,channelName:v.name,listener:this.registry.createListener(v.id,U)});return $}requireChannel($,v){let U=$.channels.find((I)=>I.name===v);if(!U)throw new _0(v);return U}replaceConnector($,v,U){let I=$.connectors.findIndex((b)=>b.name===v);if(I<0)throw Error(`connector "${v}" not found in channel "${$.name}"`);$.connectors[I]=U}assertNoTokenCollision($,v){let U=this.registry.secretTokens(v);if(U.length===0)return;for(let I of $.channels)for(let b of I.connectors){if(b.id===v.id)continue;for(let D of this.registry.secretTokens(b))if(U.includes(D))throw Error(`token already in use by connector "${b.name}" in channel "${I.name}"`)}}}var PH$=new $v,jH$=new q4;class yA{channels;mcp;gateway;sessions;guard;process;idGenerator;logger;dir;constructor($){this.channels=$.channels,this.mcp=$.mcp,this.gateway=$.gateway,this.sessions=$.sessions,this.guard=$.guard,this.process=$.process??PH$,this.idGenerator=$.idGenerator??jH$,this.logger=$.logger,this.dir=$.dir,Object.freeze(this)}async launch($){let v=this.channels.get($.channel)??this.channels.getById($.channel);if(!v)throw Error(`channel "${$.channel}" not found`);if($.profileId&&this.guard.isRunning($.profileId))throw Error(`profile "${$.profileId}" is already running`);let U=$.cwd??globalThis.process.cwd();if(($.installMcp??!0)&&!this.mcp.findInstalledName(U))this.mcp.install(U),this.logger?.info("added funnel MCP to .mcp.json",{cwd:U});if(!this.gateway.isRunning()){if(this.logger?.info("starting gateway automatically"),!await this.gateway.start())throw Error(`gateway failed to start on port ${Q6()}; another funnel daemon (a different repo/scope) may already hold it. See 'fnl gateway logs' and 'ps -o pid,args= | grep funnel-gateway'.`)}if($.profileId)this.guard.acquire($.profileId);let D=($.resume??!1)&&$.profileId?this.resolveSession($.profileId,U,$.userArgs??[],$.env??{}):null,u=this.buildArgs($.options??[],$.userArgs??[],U,D),w=this.buildEnv(v.id,$.env??{});this.logger?.info("claude launch",{channel:$.channel,channelId:v.id,cwd:U});try{return await this.process.attach(["claude",...u],{cwd:U,env:w,onSpawned:$.onSpawned})}finally{if($.profileId)this.guard.release($.profileId)}}buildArgs($,v,U,I){let b=[...$,...v];if(I!==null)if(I.mode==="resume")b.push("--resume",I.id);else b.push("--session-id",I.id);let D=this.mcp.findInstalledName(U);if(D&&!b.includes("--dangerously-load-development-channels")&&!b.includes("--channels"))b.push("--dangerously-load-development-channels",`server:${D}`);return b}resolveSession($,v,U,I){for(let u of U){if(u==="-c"||u==="--continue")return null;if(u==="--resume"||u.startsWith("--resume="))return null;if(u==="--session-id"||u.startsWith("--session-id="))return null}let b=this.sessions.getSessionId($);if(b!==null&&this.sessions.sessionFileExists(v,b,I))return{id:b,mode:"resume"};let D=this.idGenerator.generate();return this.sessions.setSessionId($,D),{id:D,mode:"new"}}buildEnv($,v){let U={};for(let[I,b]of Object.entries(v))U[I]=b;for(let[I,b]of Object.entries(globalThis.process.env))if(typeof b==="string")U[I]=b;if(U.FUNNEL_CHANNEL_ID=$,U.FUNNEL_PORT=String(Q6()),this.dir!==void 0)U.FUNNEL_DIR=this.dir;return U}}import{join as fl}from"path";var NH$=new d$,SH$=new $v;class bG{fs;process;pidDir;constructor($={}){this.fs=$.fs??NH$,this.process=$.process??SH$,this.pidDir=fl($.dir??B4,"claude"),Object.freeze(this)}isRunning($){let v=this.readRecord($);if(!v)return!1;if(!this.process.isAlive(v.pid))return this.release($),!1;if(v.startTime!==null){let U=this.process.getStartTime(v.pid);if(U===null)return this.release($),!1;if(U!==v.startTime)return this.release($),!1}return!0}acquire($){this.fs.mkdirSync(this.pidDir,{recursive:!0});let v=globalThis.process.pid,U=this.process.getStartTime(v),I={pid:v,startTime:U};this.fs.writeFileSync(this.pidPath($),JSON.stringify(I)),globalThis.process.once("exit",()=>this.release($))}release($){let v=this.pidPath($);if(this.fs.existsSync(v))this.fs.unlink(v)}pidPath($){return fl(this.pidDir,`${$}.pid`)}readRecord($){let v=this.pidPath($);if(!this.fs.existsSync(v))return null;try{let U=this.fs.readFileSync(v).trim();if(!U)return null;if(U.startsWith("{")){let b=JSON.parse(U),D=typeof b.pid==="number"?b.pid:Number(b.pid);if(!Number.isInteger(D)||D<=0)return null;let u=typeof b.startTime==="string"?b.startTime:null;return{pid:D,startTime:u}}let I=Number(U);if(!I||I<=0)return null;return{pid:I,startTime:null}}catch{return null}}}import{existsSync as uG,readFileSync as FH$}from"fs";import{join as wG}from"path";var hA=($)=>typeof $==="string"&&$.length>0?$:null,UG=($)=>typeof $==="number"?$:null,IG=($,v)=>typeof $==="string"?$:v,MH$=($)=>$!==null&&typeof $==="object"&&!Array.isArray($),hl=($)=>{if($===null)return null;try{let v=JSON.parse($);if(MH$(v))return v}catch{return null}return null},yl=($,v)=>$.length<=v?$:`${$.slice(0,v)}\u2026`,_H$=($)=>{if(typeof $!=="string"||$.length===0)return null;let v=hl($);if(v!==null&&"text"in v)return yl(String(v.text),60);return yl($,60)},gu=($)=>{let v=hA($.payload);return{seq:UG($.seq),ts:UG($.ts),type:IG($.type,"?"),outcome:IG($.outcome,"?"),eventId:hA($.event_id),payload:v,payloadParsed:hl(v),preview:_H$($.payload)}},DG=($)=>({seq:UG($.seq),ts:UG($.ts),type:IG($.type,"?"),status:IG($.status,"?"),detail:hA($.detail)}),A4=($,v,U)=>{try{return $.query(v,U)}finally{$.close()}};var ZH$=($)=>{if($===null||typeof $!=="object")return!1;if(!("clients"in $)||!Array.isArray($.clients))return!1;if(!("listeners"in $)||!Array.isArray($.listeners))return!1;return!0},TH$=($,v)=>{if(v===null)return;return $.connectors?.find((U)=>U.id===v)?.name},ml=3,kH$=($)=>{let U=($.connectionErrors[$.connectionErrors.length-1]??null)?.detail??null,I=$.channel;if(!$.gateway.running)return{status:"error",message:"gateway is not running",nextActions:["fnl gateway start"],rootCause:null};if($.gateway.statusError!==null)return{status:"error",message:`gateway running but status probe failed: ${$.gateway.statusError}`,nextActions:["fnl gateway restart"],rootCause:$.gateway.statusError};if($.configuredConnectors>$.listeners.length)return{status:"error",message:`${$.configuredConnectors} connector(s) configured but ${$.listeners.length} registered with supervisor`,nextActions:["fnl gateway restart"],rootCause:"supervisor missing listeners declared in settings.json"};if($.configuredConnectors===0)return{status:"warn",message:"no connectors configured on this channel",nextActions:[`fnl channels ${I} connectors add <name> --type=slack ...`],rootCause:null};let b=$.connectionErrors.filter((X)=>X.status==="auth-failed");if(b.length>0){let X=b[b.length-1]?.detail??null;return{status:"error",message:"connector credentials rejected (auth-failed)",nextActions:[`fnl channels ${I} connectors set <connector> --bot-token=<new>`,"fnl gateway restart"],rootCause:X??"token rejected by upstream auth.test"}}let D=$.listeners.every((X)=>!X.alive),u=$.listeners.some((X)=>!X.alive);if(D)return{status:"error",message:"all listeners are dead",nextActions:["fnl doctor --fix","fnl doctor --fix --aggressive"],rootCause:U};if(u)return{status:"warn",message:"some listeners are dead",nextActions:["fnl doctor --fix"],rootCause:U};let w=$.listeners.filter((X)=>X.errors>=ml);if(w.length>0)return{status:"warn",message:`listener(s) flapping (\u2265${ml} errors): ${w.map((X)=>X.name).join(", ")}`,nextActions:["fnl gateway logs"],rootCause:U};if($.claudeClients===0)return{status:"warn",message:"no Claude connected to this channel",nextActions:[`fnl claude --channel ${I}`],rootCause:null};if($.listeners.some((X)=>X.errors>0))return{status:"warn",message:"listeners have errors",nextActions:["fnl gateway logs"],rootCause:U};let J=EH$($);if(J!==null)return J;return{status:"ok",message:"everything looks healthy",nextActions:[],rootCause:null}},EH$=($)=>{if(!$.listeners.some((D)=>D.type==="slack")||$.recentEvents.length===0)return null;let U=$.recentEvents.filter((D)=>D.type==="slack").map((D)=>D.payloadParsed?.type);if(U.length===0)return null;let I=U.includes("app_mention"),b=U.includes("message");if(!I||b)return null;return{status:"warn",message:"Slack is only delivering app_mention events; unmentioned thread replies may not arrive",nextActions:["Add Slack bot events: message.channels, message.groups, message.im, message.mpim; reinstall the app; then restart the gateway"],rootCause:"Slack Event Subscriptions likely omit message.* events"}};class mA{props;constructor($){this.props=$;Object.freeze(this)}async diagnose($){let v=this.props.channels.list(),U=$?v.find((D)=>D.name===$)??null:v[0]??null;if(!U)return null;let I=await this.fetchGatewayStatus(),b=this.resolveStore();return this.buildChannelDiagnosis(U,I,b,5)}async diagnoseAll(){let $=this.props.channels.list(),v=await this.fetchGatewayStatus(),U=this.resolveStore(),I=await Promise.all($.map((g)=>this.buildChannelDiagnosis(g,v,U,5))),b=I.filter((g)=>g.diagnosis.status==="error").map((g)=>g.channel),D=I.filter((g)=>g.diagnosis.status==="warn").map((g)=>g.channel),u=I.filter((g)=>g.diagnosis.status==="ok").map((g)=>g.channel),w=[...new Set(I.flatMap((g)=>g.diagnosis.nextActions))];return{summary:{total:I.length,ok:u.length,warn:D.length,error:b.length,criticalChannels:b,warnChannels:D,suggestedActions:w},channels:I}}async recentEvents($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=new Vv(I.store),D=`SELECT seq, ts, type, outcome, payload, event_id FROM processed ${I.whereClause} ORDER BY seq DESC LIMIT ?`,u=A4(b,D,[...I.params,U]);if(u instanceof Error)return[];return u.reverse().map(gu)}async droppedEvents($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=I.whereClause?`${I.whereClause} AND outcome LIKE 'skip:%'`:"WHERE outcome LIKE 'skip:%'",D=new Vv(I.store),u=`SELECT seq, ts, type, outcome, payload, event_id FROM processed ${b} ORDER BY seq DESC LIMIT ?`,w=A4(D,u,[...I.params,U]);if(w instanceof Error)return[];return w.reverse().map(gu)}async rawEvents($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=new Vv(I.store),D=`SELECT seq, ts, type, '' AS outcome, payload, event_id FROM raw ${I.whereClause} ORDER BY seq DESC LIMIT ?`,u=A4(b,D,[...I.params,U]);if(u instanceof Error)return[];return u.reverse().map(gu)}async connectionErrors($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=I.whereClause?`${I.whereClause} AND status IN ('auth-failed','error')`:"WHERE status IN ('auth-failed','error')",D=new Vv(I.store),u=`SELECT seq, ts, type, status, detail FROM connection ${b} ORDER BY seq DESC LIMIT ?`,w=A4(D,u,[...I.params,U]);if(w instanceof Error)return[];return w.reverse().map(DG)}async connectionTimeline($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=new Vv(I.store),D=`SELECT seq, ts, type, status, detail FROM connection ${I.whereClause} ORDER BY seq DESC LIMIT ?`,u=A4(b,D,[...I.params,U]);if(u instanceof Error)return[];return u.reverse().map(DG)}async recentLogs($={}){let v=$.limit??200,U=wG(this.props.tmpDir,"funnel.log");if(!uG(U))return{lines:[],path:null,truncated:!1};let I;try{I=FH$(U,"utf-8")}catch(J){return{lines:[`(read failed: ${T$(J)})`],path:U,truncated:!1}}let b=I.split(`
|
|
1686
|
-
`).filter((J)=>J.length>0),D=$.grep?.toLowerCase(),u=D?b.filter((J)=>J.toLowerCase().includes(D)):b,w=u.length>v;return{lines:w?u.slice(u.length-v):u,path:U,truncated:w}}async replay($,v){let I=this.props.channels.list().find((z)=>z.name===$);if(!I)return{state:"not-found"};let b=this.resolveStore();if(!b)return{state:"error",reason:"no diagnostic store yet"};let D=new Vv(b),u=v!==void 0?A4(D,"SELECT seq, event_id, type, payload, connector_id, channel_id FROM processed WHERE channel_id = ? AND seq = ? LIMIT 1",[I.id,v]):A4(D,"SELECT seq, event_id, type, payload, connector_id, channel_id FROM processed WHERE channel_id = ? AND outcome LIKE 'emitted%' ORDER BY seq DESC LIMIT 1",[I.id]);if(u instanceof Error)return{state:"error",reason:u.message};let w=u[0];if(!w)return{state:"not-found"};let g=typeof w.seq==="number"?w.seq:null,J=typeof w.event_id==="string"?w.event_id:null,X=typeof w.connector_id==="string"?w.connector_id:null,W=typeof w.payload==="string"?w.payload:null;if((!W||W.length===0)&&J){let z=A4(new Vv(b),"SELECT payload FROM raw WHERE event_id = ? LIMIT 1",[J]),Q=z instanceof Error?null:z[0];if(Q)W=typeof Q.payload==="string"?Q.payload:null}if(!W)return{state:"error",reason:"event has no payload to replay"};let G=TH$(I,X),O=await this.props.publisher.publish(I.name,{content:W,connector:G});if(O.state==="offline")return{state:"offline"};if(O.state==="error")return{state:"error",reason:O.reason};return{state:"ok",seq:g,offset:O.offset,preview:W.slice(0,60)}}resolveStore(){let $=this.props.tmpDir,v=wG($,"connector-raw.db"),U=wG($,"connector-processed.db"),I=wG($,"connector-connection.db");if(!uG(v)||!uG(U)||!uG(I))return null;return{rawPath:v,processedPath:U,connectionPath:I}}resolveChannelId($){if(!$)return null;return this.props.channels.list().find((U)=>U.name===$)?.id??null}resolveScope($,v){let U=this.resolveStore();if(!U)return null;if(!$)return{store:U,whereClause:"",params:[]};let b=this.props.channels.list().find((u)=>u.name===$)??null;if(!b)return null;if(!v)return{store:U,whereClause:"WHERE channel_id = ?",params:[b.id]};let D=b.connectors?.find((u)=>u.name===v)?.id??null;if(!D)return null;return{store:U,whereClause:"WHERE channel_id = ? AND connector_id = ?",params:[b.id,D]}}async fetchGatewayStatus(){let $=this.props.gateway.getStatus();if(!$.running)return{body:null,error:null};let v=this.props.gatewayToken.read(),U=v?{Authorization:`Bearer ${v}`}:{},I=null;try{I=await Qv(`${Gv($.port)}/status`,{headers:U})}catch(D){return{body:null,error:`fetch failed: ${T$(D)}`}}if(!I.ok)return{body:null,error:`gateway /status returned ${I.status}`};let b;try{b=await I.json()}catch(D){return{body:null,error:`gateway /status body parse failed: ${T$(D)}`}}if(!ZH$(b))return{body:null,error:"gateway /status returned an unrecognized shape"};return{body:b,error:null}}async buildChannelDiagnosis($,v,U,I){let b=this.props.gateway.getStatus(),D=$.name,u=v.body,w={channel:D,channelId:$.id,gateway:{running:b.running,pid:b.pid,port:b.running?b.port:null,uptimeMs:u?.uptimeMs??null,statusError:v.error},configuredConnectors:$.connectors?.length??0,listeners:[],claudeClients:0,recentEvents:[],connectionErrors:[]};if(u)w.listeners=u.listeners.filter((g)=>g.channelName===D).map((g)=>({name:g.name,type:g.type,alive:g.alive,events:g.events,errors:g.errors,lastEventAt:g.lastEventAt})),w.claudeClients=u.clients.filter((g)=>g.channelName===D).length;if(U){let g=A4(new Vv(U),"SELECT seq, ts, type, outcome, payload FROM processed WHERE channel_id = ? ORDER BY seq DESC LIMIT ?",[$.id,I]);if(!(g instanceof Error))w.recentEvents=g.reverse().map(gu);let J=A4(new Vv(U),"SELECT ts, type, status, detail FROM connection WHERE channel_id = ? AND status IN ('auth-failed','error') ORDER BY seq DESC LIMIT 3",[$.id]);if(!(J instanceof Error))w.connectionErrors=J.reverse().map(DG)}return{...w,diagnosis:kH$(w)}}}class cA{props;constructor($){this.props=$;Object.freeze(this)}async run($="off"){if($==="off"){let w=await this.props.diagnostics.diagnoseAll();return this.buildReport({before:null,after:w,appliedActions:[],fixFailed:!1})}let v=await this.props.diagnostics.diagnoseAll(),U=[],I=!1;if(v.channels.some((w)=>w.diagnosis.status==="error"&&!w.gateway.running)){let w=await this.props.recovery.ensureGatewayRunning();if(U.push(...w.actions),!w.ok)I=!0}if(v.channels.some((w)=>w.listeners.some((g)=>!g.alive))){let w=await this.props.recovery.restartAllDeadListeners();if(U.push(...w.actions),!w.ok&&w.actions.length===0)I=!0}if($==="aggressive"){if((await this.props.diagnostics.diagnoseAll()).channels.some((J)=>J.diagnosis.status==="error")){let J=await this.props.recovery.restartGateway();if(U.push(...J.actions),!J.ok)I=!0}}let u=await this.props.diagnostics.diagnoseAll();return this.buildReport({before:v,after:u,appliedActions:U,fixFailed:I})}buildReport($){let v=$.after.channels.filter((b)=>b.diagnosis.status!=="ok").map((b)=>({channel:b.channel,diagnosis:b.diagnosis})),U=$.fixFailed?"error":v.length===0?"ok":"warn",I=RH$({mode:$.before===null?"off":"fix",status:U,appliedCount:$.appliedActions.length,remainingCount:v.length});return{status:U,message:I,before:$.before,after:$.after,appliedActions:$.appliedActions,remainingIssues:v}}}var RH$=($)=>{if($.mode==="off"){if($.remainingCount===0)return"all channels healthy";return`${$.remainingCount} channel(s) need attention \u2014 run \`fnl doctor --fix\` to apply suggested fixes`}if($.status==="error")return"one or more fix steps failed \u2014 check fnl gateway logs";if($.status==="ok")return`applied ${$.appliedCount} fix(es), all channels healthy`;return`applied ${$.appliedCount} fix(es), ${$.remainingCount} channel(s) still need attention`};function oA($){if($.env!==void 0)return{botTokenEnv:$.env};if($.literal!==void 0)return{botToken:$.literal};return{}}function cl($){if($.env!==void 0)return{appTokenEnv:$.env};if($.literal!==void 0)return{appToken:$.literal};return{}}class tA{channels;prompter;constructor($){this.channels=$.channels,this.prompter=$.prompter,Object.freeze(this)}async ensure($){if(!this.channels.get($.name))this.channels.add({name:$.name});if($.connectors===void 0)return{touched:[],removed:[]};let U=[],I=new Set;for(let D of $.connectors){let u=await this.ensureConnector($.name,D);U.push({name:u.name,changed:u.changed}),I.add(u.id)}let b=this.removeExtras($.name,I);return{touched:U,removed:b}}async ensureConnector($,v){if(v.type==="slack")return await this.ensureSlack($,v);if(v.type==="discord")return await this.ensureDiscord($,v);if(v.type==="gh")return this.ensureGh($,v);return this.ensureSchedule($,v)}async ensureSlack($,v){let U=this.findExistingSlack($,v.name),I=await this.resolveSlot({label:`${v.name}.botToken`,existingLiteral:U?.botToken,existingEnv:U?.botTokenEnv}),b=await this.resolveSlot({label:`${v.name}.appToken`,existingLiteral:U?.appToken,existingEnv:U?.appTokenEnv}),D={botToken:I.token,botTokenEnv:I.tokenEnv,appToken:b.token,appTokenEnv:b.tokenEnv};if(U){if(!(U.botToken===I.token&&U.botTokenEnv===I.tokenEnv&&U.appToken===b.token&&U.appTokenEnv===b.tokenEnv))return this.channels.updateSlackConnector($,v.name,D),{id:U.id,name:v.name,changed:!0};return{id:U.id,name:v.name,changed:!1}}return{id:this.channels.addConnector($,{type:"slack",name:v.name,...oA({literal:I.token,env:I.tokenEnv}),...cl({literal:b.token,env:b.tokenEnv}),...v.minify!==void 0?{minify:v.minify}:{}}).id,name:v.name,changed:!0}}async ensureDiscord($,v){let U=this.findExistingDiscord($,v.name),I=await this.resolveSlot({label:`${v.name}.botToken`,existingLiteral:U?.botToken,existingEnv:U?.botTokenEnv}),b={botToken:I.token,botTokenEnv:I.tokenEnv};if(U){if(U.botToken!==I.token||U.botTokenEnv!==I.tokenEnv)return this.channels.updateDiscordConnector($,v.name,b),{id:U.id,name:v.name,changed:!0};return{id:U.id,name:v.name,changed:!1}}return{id:this.channels.addConnector($,{type:"discord",name:v.name,...oA({literal:I.token,env:I.tokenEnv})}).id,name:v.name,changed:!0}}ensureGh($,v){let U=this.channels.getConnector($,v.name);if(U&&U.type!=="gh")throw Error(`connector "${v.name}" exists in channel "${$}" with type "${U.type}", funnel.json declares "gh"`);if(U&&U.type==="gh"){let b=$6.parse(U);if(v.pollInterval!==void 0&&b.pollInterval!==v.pollInterval)return this.channels.updateGhConnector($,v.name,{pollInterval:v.pollInterval}),{id:b.id,name:v.name,changed:!0};return{id:b.id,name:v.name,changed:!1}}return{id:this.channels.addConnector($,{type:"gh",name:v.name,...v.pollInterval!==void 0?{pollInterval:v.pollInterval}:{}}).id,name:v.name,changed:!0}}ensureSchedule($,v){let U=this.channels.getConnector($,v.name);if(U&&U.type!=="schedule")throw Error(`connector "${v.name}" exists in channel "${$}" with type "${U.type}", funnel.json declares "schedule"`);if(U&&U.type==="schedule")return{id:U.id,name:v.name,changed:!1};return{id:this.channels.addConnector($,{type:"schedule",name:v.name}).id,name:v.name,changed:!0}}findExistingSlack($,v){let U=this.channels.getConnector($,v);if(!U)return null;if(U.type!=="slack")throw Error(`connector "${v}" exists in channel "${$}" with type "${U.type}", funnel.json declares "slack"`);return v6.parse(U)}findExistingDiscord($,v){let U=this.channels.getConnector($,v);if(!U)return null;if(U.type!=="discord")throw Error(`connector "${v}" exists in channel "${$}" with type "${U.type}", funnel.json declares "discord"`);return t4.parse(U)}removeExtras($,v){let U=this.channels.get($);if(!U)return[];let I=U.connectors.filter((b)=>!v.has(b.id));for(let b of I)this.channels.removeConnector($,b.name);return I.map((b)=>b.name)}async resolveSlot($){if($.existingEnv!==void 0)return{token:void 0,tokenEnv:$.existingEnv};if($.existingLiteral!==void 0)return{token:$.existingLiteral,tokenEnv:void 0};return{token:await this.prompter.promptSecret($.label),tokenEnv:void 0}}}import{homedir as nH$}from"os";import{join as ol}from"path";var rH$=new d$;class dA{store;idGenerator;fs;constructor($){this.store=$.store,this.idGenerator=$.idGenerator,this.fs=$.fs??rH$,Object.freeze(this)}list(){return this.store.read().profiles}get($){return this.list().find((v)=>v.name===$)??null}getById($){return this.list().find((v)=>v.id===$)??null}getDefault(){return this.list()[0]??null}add($){this.store.update((v)=>{if(v.profiles.some((U)=>U.name===$.name))throw Error(`profile "${$.name}" already exists`);if(!v.channels.some((U)=>U.id===$.channelId))throw Error(`channel id "${$.channelId}" not found`);v.profiles.push({id:this.idGenerator.generate(),name:$.name,path:$.path,channelId:$.channelId,options:$.options??[],env:$.env??{},resume:$.resume??!0})})}remove($){this.store.update((v)=>{let U=v.profiles.findIndex((I)=>I.name===$);if(U<0)throw Error(`profile "${$}" not found`);v.profiles.splice(U,1)})}rename($,v){this.store.update((U)=>{let I=U.profiles.find((b)=>b.name===$);if(!I)throw Error(`profile "${$}" not found`);if(U.profiles.some((b)=>b.name===v))throw Error(`profile "${v}" already exists`);I.name=v})}asDefault($){this.store.update((v)=>{let U=v.profiles.findIndex((b)=>b.name===$);if(U<0)throw Error(`profile "${$}" not found`);if(U===0)return;let[I]=v.profiles.splice(U,1);if(!I)return;v.profiles.unshift(I)})}hasChannelRef($){return this.store.read().profiles.some((v)=>v.channelId===$)}getSessionId($){return this.getById($)?.sessionId??null}setSessionId($,v){this.store.update((U)=>{let I=U.profiles.find((b)=>b.id===$);if(!I)throw Error(`profile id "${$}" not found`);I.sessionId=v})}sessionFileExists($,v,U){let I=U.CLAUDE_CONFIG_DIR??globalThis.process.env.CLAUDE_CONFIG_DIR??ol(nH$(),".claude"),b=$.replace(/\//g,"-"),D=ol(I,"projects",b,`${v}.jsonl`);if(!this.fs.existsSync(D))return!1;return this.fs.readFileSync(D).trim().length>0}update($,v){this.store.update((U)=>{let I=U.profiles.find((b)=>b.name===$);if(!I)throw Error(`profile "${$}" not found`);if(v.channelId!==void 0){if(!U.channels.some((b)=>b.id===v.channelId))throw Error(`channel id "${v.channelId}" not found`);I.channelId=v.channelId}if(v.path!==void 0)I.path=v.path;if(v.options!==void 0)I.options=v.options;if(v.env!==void 0)I.env=v.env;if(v.resume!==void 0)I.resume=v.resume})}}class pA{props;constructor($){this.props=$;Object.freeze(this)}async ensureGatewayRunning(){if(this.props.gateway.isRunning())return{ok:!0,actions:[{kind:"gateway:already-running"}],message:"gateway is already running"};if(!await this.props.gateway.start())return{ok:!1,actions:[],message:"gateway failed to start \u2014 check `fnl gateway logs`"};return{ok:!0,actions:[{kind:"gateway:started"}],message:"gateway started"}}async restartGateway(){if(!(await this.props.gateway.restart()).ok)return{ok:!1,actions:[],message:"gateway restart failed \u2014 check `fnl gateway logs`"};return{ok:!0,actions:[{kind:"gateway:restarted"}],message:"gateway restarted"}}async restartListener($,v){let U=await this.props.listeners.restart($,v);if(U.state==="offline")return{ok:!1,actions:[],message:"gateway is not running \u2014 call ensureGatewayRunning() first"};if(U.state==="not-found")return{ok:!1,actions:[{kind:"listener:skipped",channel:$,connector:v,reason:"not-found"}],message:`listener not found: ${$}/${v}`};if(U.state==="error")return{ok:!1,actions:[{kind:"listener:skipped",channel:$,connector:v,reason:U.reason}],message:`listener restart failed: ${U.reason}`};return{ok:!0,actions:[{kind:"listener:restarted",channel:$,connector:v}],message:`restarted ${$}/${v}`}}async restartAllDeadListeners(){let $=await this.props.listeners.list();if($.state==="offline")return{ok:!1,actions:[],message:"gateway is not running \u2014 call ensureGatewayRunning() first"};if($.state==="error")return{ok:!1,actions:[],message:`could not list listeners: ${$.reason}`};let v=$.listeners.filter((b)=>!b.alive);if(v.length===0)return{ok:!0,actions:[],message:"no dead listeners found"};let U=[];for(let b of v){let D=await this.props.listeners.restart(b.channelName,b.name);if(D.state==="ok")U.push({kind:"listener:restarted",channel:b.channelName,connector:b.name});else{let u=D.state==="error"?D.reason:D.state;U.push({kind:"listener:skipped",channel:b.channelName,connector:b.name,reason:u})}}let I=U.filter((b)=>b.kind==="listener:restarted").length;return{ok:I>0,actions:U,message:`restarted ${I}/${v.length} dead listener(s)`}}}import{stderr as gG,stdin as f4}from"process";class Ju{}var CH$="*",iH$="\r",tl=`
|
|
1687
|
-
`,xH$=String.fromCharCode(8),lH$=String.fromCharCode(127),fH$=String.fromCharCode(3),yH$=String.fromCharCode(4);class aA extends Ju{async promptSecret($){if(!f4.isTTY)throw Error(`cannot prompt for "${$}": stdin is not a TTY. Set the matching env var or run \`fnl channels <ch> connectors add ...\` first.`);gG.write(`${$}: `);let v=f4.isRaw;f4.setRawMode(!0),f4.resume();try{return await this.readSecret()}finally{f4.setRawMode(v),f4.pause(),gG.write(tl)}}readSecret(){return new Promise(($,v)=>{let U="",I=(b)=>{for(let D of b){let u=String.fromCharCode(D);if(u===tl||u===iH$){f4.off("data",I),$(U);return}if(u===fH$){f4.off("data",I),v(Error("prompt cancelled"));return}if(u===yH$){if(f4.off("data",I),U.length===0)v(Error("prompt cancelled"));else $(U);return}if(u===xH$||u===lH$){if(U.length>0)U=U.slice(0,-1),gG.write("\b \b");continue}U+=u,gG.write(CH$)}};f4.on("data",I)})}}var hH$=384;class eA extends N0{dirs;files;mtimes;modes;now;constructor($={}){super();this.dirs=new Set($.dirs??[]),this.files=new Map(Object.entries($.files??{})),this.mtimes=new Map(Object.entries($.mtimes??{})),this.modes=new Map(Object.entries($.modes??{})),this.now=$.now??(()=>Date.now())}existsSync($){return this.dirs.has($)||this.files.has($)}readFileSync($){return this.files.get($)??""}writeFileSync($,v){this.files.set($,v),this.touch($)}writeSecretFileSync($,v){this.files.set($,v),this.modes.set($,hH$),this.touch($)}appendFileSync($,v){let U=this.files.get($)??"";this.files.set($,U+v),this.touch($)}unlink($){this.files.delete($),this.mtimes.delete($),this.modes.delete($)}mkdirSync($,v){this.dirs.add($)}readdirSync($){let v=$.endsWith("/")?$:`${$}/`,U=[];for(let I of this.files.keys()){if(!I.startsWith(v))continue;let b=I.slice(v.length);if(!b.includes("/"))U.push(b)}return U}statSync($){let v=this.mtimes.get($);if(v===void 0)throw Error(`not found: ${$}`);return{mtimeMs:v,mode:this.modes.get($)??null}}withFileLock($,v){return v()}setMtime($,v){this.mtimes.set($,v)}setMode($,v){this.modes.set($,v)}touch($){if(!this.mtimes.has($))this.mtimes.set($,this.now());else this.mtimes.set($,this.now())}}class sA extends vu{counter=0;prefix;constructor($={}){super();this.prefix=$.prefix??"id"}generate(){return this.counter++,`${this.prefix}-${this.counter}`}}class $P extends Iu{file=null;entries=[];info($,v){this.entries.push({level:"info",message:$,meta:v})}warn($,v){this.entries.push({level:"warn",message:$,meta:v})}error($,v){this.entries.push({level:"error",message:$,meta:v})}clear(){this.entries.length=0}}var dl={exitCode:0,stdout:"",stderr:""};class vP extends P0{calls=[];killed=[];handler=()=>dl;syncHandler=()=>dl;aliveStub=null;listStub=null;startTimeStub=null;on($){return this.handler=$,this}onSync($){return this.syncHandler=$,this}onIsAlive($){return this.aliveStub=$,this}onListProcessesContaining($){return this.listStub=$,this}onGetStartTime($){return this.startTimeStub=$,this}async run($,v={}){this.calls.push({kind:"run",command:$,options:v});let U=await this.handler($);return{exitCode:U.exitCode??0,stdout:U.stdout??"",stderr:U.stderr??""}}runSync($){this.calls.push({kind:"runSync",command:$});let v=this.syncHandler($);return{exitCode:v.exitCode??0,stdout:v.stdout??"",stderr:v.stderr??""}}async attach($,v={}){if(this.calls.push({kind:"attach",command:$,options:v}),v.onSpawned)v.onSpawned(1);return(await this.handler($)).exitCode??0}detach($,v={}){this.calls.push({kind:"detach",command:$,options:v})}kill($,v="SIGTERM"){this.calls.push({kind:"kill",command:[String($),v]}),this.killed.push({pid:$,signal:v})}isAlive($){if(this.aliveStub)return this.aliveStub($);let v=this.syncHandler(["ps","-p",String($),"-o","state="]);if((v.exitCode??0)!==0)return!1;let U=(v.stdout??"").trim();if(!U)return!1;return!U.startsWith("Z")}listProcessesContaining($){if(this.listStub)return this.listStub($);return[]}getStartTime($){if(this.startTimeStub)return this.startTimeStub($);return null}}var mH$=($={})=>({version:z6,channels:[],profiles:[],...$});class bP extends bu{state;constructor($){super();this.state=mH$($)}read(){return this.state}write($){this.state=$}update($){return $(this.state)}}class UP extends wu{current;constructor($={}){super();this.current=$.start??new Date(0)}now(){return new Date(this.current.getTime())}set($){this.current=$}advance($){this.current=new Date(this.current.getTime()+$)}}class IP extends i1{calls=[];handler=()=>({status:200,body:""});on($){return this.handler=$,this}async fetch($){this.calls.push($);let v=await this.handler($),U=v.status??200,I=v.body??"";return{status:U,ok:U>=200&&U<300,text:async()=>I,json:async()=>JSON.parse(I)}}}class DP extends Ju{answers;asked=[];constructor($={}){super();this.answers=new Map(Object.entries($.answers??{}))}async promptSecret($){this.asked.push($);let v=this.answers.get($);if(v===void 0)throw Error(`no answer seeded for prompt "${$}"`);return v}}var cH$=["started","connected","disconnected","auth-failed","stopped","error"],Sl$=H.object({event_id:H.string(),type:H.string(),connector_id:H.string().nullable(),channel_id:H.string().nullable(),payload:H.string()}),Ml$=H.object({event_id:H.string(),type:H.string(),connector_id:H.string().nullable(),channel_id:H.string().nullable(),outcome:H.string(),payload:H.string()}),_l$=H.object({type:H.string(),connector_id:H.string().nullable(),channel_id:H.string().nullable(),status:H.enum(cH$),detail:H.string()});class uP{}class JP extends uP{now;raws=[];processeds=[];connections=[];constructor($=()=>Date.now()){super();this.now=$;Object.freeze(this)}recordRaw($){this.raws.push({...$,seq:this.raws.length+1,ts:this.now()})}recordProcessed($){this.processeds.push({...$,seq:this.processeds.length+1,ts:this.now()})}recordConnection($){this.connections.push({...$,seq:this.connections.length+1,ts:this.now()})}queryRaw($){let v=this.raws.filter((U)=>wP(U,$));return gP(v,$.limit)}queryProcessed($){let v=this.processeds.filter((U)=>{if(!wP(U,$))return!1;if($.outcome!==void 0&&U.outcome!==$.outcome)return!1;return!0});return gP(v,$.limit)}queryConnection($){let v=this.connections.filter((U)=>{if(!wP(U,$))return!1;if($.status!==void 0&&U.status!==$.status)return!1;return!0});return gP(v,$.limit)}clear(){this.raws.length=0,this.processeds.length=0,this.connections.length=0}close(){}}var wP=($,v)=>{if(v.type!==void 0&&$.type!==v.type)return!1;if(v.connectorId!==void 0&&$.connectorId!==v.connectorId)return!1;if(v.channelId!==void 0&&$.channelId!==v.channelId)return!1;return!0},gP=($,v)=>{if(v===void 0)return $;if(v<=0)return[];return $.slice(-v)};var pl=H.object({content:H.string().min(1),meta:H.record(H.string(),H.string()).optional(),connector:H.string().min(1).optional(),target:H.string().min(1).optional()}),al=H.object({ok:H.literal(!0),offset:H.number().int().nonnegative()});var oH$={state:"offline"};class XP{port;isDaemonRunning;getToken;constructor($){this.port=$.port,this.isDaemonRunning=$.isDaemonRunning,this.getToken=$.getToken??(()=>null),Object.freeze(this)}async publish($,v){if(!this.isDaemonRunning())return oH$;try{let U=`${Gv(this.port)}/channels/${encodeURIComponent($)}/publish`,I=await Qv(U,{method:"POST",headers:{...this.authHeaders(),"content-type":"application/json"},body:JSON.stringify(v)});if(!I.ok)return{state:"error",reason:await I.text()||`HTTP ${I.status}`};let b=al.safeParse(await I.json());if(!b.success)return{state:"error",reason:"malformed daemon response"};return{state:"ok",offset:b.data.offset}}catch(U){return{state:"error",reason:U instanceof Error?U.message:String(U)}}}authHeaders(){let $=this.getToken();return $?{authorization:`Bearer ${$}`}:{}}}import{join as el}from"path";import{existsSync as tH$}from"fs";import{dirname as dH$,resolve as WP}from"path";import{fileURLToPath as pH$}from"url";var JG=()=>{let $=dH$(pH$(import.meta.url)),v=[WP($,"./daemon.ts"),WP($,"./daemon.js"),WP($,"./gateway/daemon.js")];for(let U of v)if(tH$(U))return U;throw Error(`daemon script not found (looked in ${v.join(", ")})`)};var aH$=5000,eH$=2000,sl=100,sH$=200,$8$=new $v,v8$=new d$,b8$=new V6,U8$=($)=>new Promise((v)=>{setTimeout(v,$)});class GP{process;fs;clock;dir;pidFile;gatewayLog;tmpDir;port;sleep;constructor($={}){this.process=$.process??$8$,this.fs=$.fs??v8$,this.clock=$.clock??b8$,this.dir=$.dir??B4,this.tmpDir=$.tmpDir??Yv(),this.pidFile=el(this.dir,"gateway.pid"),this.gatewayLog=el(this.tmpDir,"gateway.log"),this.port=$.port??Q6(),this.sleep=$.sleep??U8$,Object.freeze(this)}isRunning(){let $=this.readPid();if(!$)return!1;return this.isProcessAlive($)}getStatus(){let $=this.readPid(),v=$!==null&&this.isProcessAlive($);return{running:v,pid:v?$:null,port:this.port}}async start($={}){if(this.isRunning())return!0;this.fs.mkdirSync(this.tmpDir,{recursive:!0});let v=JG(),U=this.buildStartCommand(v,$);this.process.detach(U,{env:{FUNNEL_DIR:this.dir},stdoutFile:this.gatewayLog,stderrFile:this.gatewayLog});let I=this.clock.millis()+aH$;while(this.clock.millis()<I){if(this.isRunning())return!0;await this.sleep(sl)}return this.isRunning()}buildStartCommand($,v={}){let U=`funnel-gateway[${this.dir}]`;if(v.caffeinate!==!1&&globalThis.process.platform==="darwin")return["caffeinate","-is","bun",$,U];return["bun",$,U]}async stop(){let $=this.readPid();if(!$)return!0;if(!this.isProcessAlive($))return this.removePid(),!0;try{this.process.kill($,"SIGTERM")}catch{return!1}let v=this.clock.millis()+eH$;while(this.clock.millis()<v){if(!this.isProcessAlive($))return this.removePid(),!0;await this.sleep(sl)}try{this.process.kill($,"SIGKILL")}catch{}return await this.sleep(sH$),this.removePid(),!this.isProcessAlive($)}async restart($={}){let v=this.isRunning();if($.onlyIfRunning&&!v)return{ok:!0,wasRunning:!1,stopped:!1,started:!1};let U=v?await this.stop():!0;if(!U)return{ok:!1,wasRunning:v,stopped:!1,started:!1};let I=await this.start({caffeinate:$.caffeinate});return{ok:I,wasRunning:v,stopped:U,started:I}}getGatewayLog(){return this.gatewayLog}getPort(){return this.port}readPid(){if(!this.fs.existsSync(this.pidFile))return null;try{let $=this.fs.readFileSync(this.pidFile).trim(),v=Number($);if(!v||v<=0)return null;return v}catch{return null}}removePid(){this.fs.unlink(this.pidFile)}isProcessAlive($){return this.process.isAlive($)}}import{existsSync as n8$,mkdirSync as r8$}from"fs";import{dirname as C8$,join as i8$}from"path";import{timingSafeEqual as I8$}from"crypto";var Xu=($)=>{return async(v,U)=>{let D=(v.req.header("authorization")??"").match(/^Bearer\s+(.+)$/i)?.[1]??"";if(!XG(D,$.expected))return v.text("unauthorized",401);return await U()}},XG=($,v)=>{let U=Buffer.from($,"utf-8"),I=Buffer.from(v,"utf-8"),b=Math.max(U.length,I.length,1),D=Buffer.alloc(b),u=Buffer.alloc(b);return U.copy(D),I.copy(u),I8$(D,u)&&U.length===I.length};var t$=ew();var $f=($)=>{let v=Buffer.byteLength($.content,"utf-8");if($.meta)for(let[U,I]of Object.entries($.meta))v+=Buffer.byteLength(U,"utf-8")+Buffer.byteLength(I,"utf-8");return v},D8$=1048576,u8$=200,w8$=4194304,g8$=()=>{};class OP{clients=new Map;subscribers=new Set;logger;onError;maxBufferedBytes;now;replayBufferSize;replayBufferMaxBytes;replayBuffer=[];persistentReplay;exclusiveCursor=new Map;replayBufferBytes=0;eventsBroadcast=0;droppedSlowClients=0;lastBroadcastAt=null;latestOffset=0;constructor($={}){this.logger=$.logger,this.onError=$.onError??g8$,this.maxBufferedBytes=$.maxBufferedBytes??D8$,this.now=$.now??(()=>Date.now()),this.replayBufferSize=Math.max(0,$.replayBufferSize??u8$),this.replayBufferMaxBytes=Math.max(0,$.replayBufferMaxBytes??w8$),this.persistentReplay=$.persistentReplay??null}getMetrics(){return{clients:this.clients.size,subscribers:this.subscribers.size,eventsBroadcast:this.eventsBroadcast,droppedSlowClients:this.droppedSlowClients,lastBroadcastAt:this.lastBroadcastAt?new Date(this.lastBroadcastAt).toISOString():null,latestOffset:this.latestOffset,oldestReplayableOffset:this.replayBuffer[0]?.offset??null}}replaySince($,v){let U=this.replayBuffer[0]?.offset,I=this.persistentReplay&&(U===void 0||$<U-1),b=this.replayBuffer.filter((g)=>g.offset>$&&this.matchesClient(g,v));if(!I)return b;let D=this.persistentReplay?this.persistentReplay.loadSince($).filter((g)=>this.matchesClient(g,v)):[],u=U??Number.POSITIVE_INFINITY;return[...D.filter((g)=>g.offset<u),...b]}matchesClient($,v){let U=$.meta?.target;if(U&&U!==v.subscriberId)return!1;let I=$.meta?.channelId;if(I&&I!==v.channel)return!1;let b=$.meta?.connector;if(!b)return!0;return v.connectors.includes(b)}pickRecipients($){let v=new Map,U=[];for(let[I,b]of this.clients){if(!this.matchesClient($,b))continue;if(b.delivery==="exclusive"){let D=v.get(b.channel)??[];D.push(I),v.set(b.channel,D);continue}U.push(I)}for(let[I,b]of v){if(b.length===0)continue;let D=this.exclusiveCursor.get(I)??0,u=b[D%b.length];if(u)U.push(u);this.exclusiveCursor.set(I,D+1)}return U}addClient($,v){this.clients.set($,v)}removeClient($){this.clients.delete($)}getClientCount(){return this.clients.size}listChannels(){return[...this.clients.values()].map(($)=>({...$}))}subscribe($){return this.subscribers.add($),()=>{this.subscribers.delete($)}}broadcast($,v){this.latestOffset+=1;let U={content:$,meta:v,offset:this.latestOffset},I=JSON.stringify(U),b=v?.connector;if(this.eventsBroadcast+=1,this.lastBroadcastAt=this.now(),this.replayBufferSize>0){let u=$f(U);this.replayBuffer.push(U),this.replayBufferBytes+=u;while((this.replayBuffer.length>this.replayBufferSize||this.replayBufferBytes>this.replayBufferMaxBytes)&&this.replayBuffer.length>0){let w=this.replayBuffer.shift();if(w)this.replayBufferBytes-=$f(w)}}let D=this.pickRecipients(U);for(let u of D){let w=u.getBufferedAmount();if(w>this.maxBufferedBytes){let g=this.clients.get(u);this.logger?.warn("dropping slow WS client (backpressure)",{channel:g?.channel,buffered:w,max:this.maxBufferedBytes});try{u.close(1009,"backpressure")}catch{}this.clients.delete(u),this.droppedSlowClients+=1;continue}try{u.send(I)}catch(g){let J=g instanceof Error?g:Error(String(g)),X=this.clients.get(u);this.logger?.warn("ws.send failed; dropping client",{channel:X?.channel,error:J.message}),this.clients.delete(u)}}for(let u of this.subscribers){let w=(g)=>{let J=g instanceof Error?g:Error(String(g));this.logger?.error("broadcast subscriber threw",{error:J.message}),this.onError(J,{component:"broadcaster.subscriber",offset:U.offset,connector:U.meta?.connector??null,channel:U.meta?.channel??null})};try{let g=u(U);if(g instanceof Promise)g.catch(w)}catch(g){w(g)}}return U}seedLatestOffset($){if($>this.latestOffset)this.latestOffset=$}}var Uf$=H.object({type:H.string(),content:H.string(),channel_id:H.string().nullable(),connector_id:H.string().nullable(),meta:H.record(H.string(),H.string()).nullable()});class HP{}import{Database as J8$}from"bun:sqlite";import{existsSync as X8$,mkdirSync as W8$}from"fs";import{dirname as G8$}from"path";var O8$=/^[a-z_][a-z0-9_]*$/,H8$=500,z8$=new Set(["seq","ts","type","event"]),vf=[["CREATE TABLE IF NOT EXISTS logs (seq INTEGER PRIMARY KEY, ts INTEGER NOT NULL, type TEXT, event TEXT NOT NULL)","CREATE INDEX IF NOT EXISTS idx_logs_ts ON logs (ts)","CREATE INDEX IF NOT EXISTS idx_logs_type ON logs (type)"],["DROP TABLE IF EXISTS leuco_log","CREATE TABLE IF NOT EXISTS logs (seq INTEGER PRIMARY KEY, ts INTEGER NOT NULL, type TEXT, event TEXT NOT NULL)","CREATE INDEX IF NOT EXISTS idx_logs_ts ON logs (ts)","CREATE INDEX IF NOT EXISTS idx_logs_type ON logs (type)"]];class zP{db;maxRows;maxAgeMs;maxBytes;targetBytes;now;indexes;extractIndexes;insertStmt;insertWithSeqStmt;maxSeqStmt;countStmt;trimRowsStmt;trimAgeStmt;trimOldestStmt;insertsSinceByteCheck=0;constructor($){if($.path!==":memory:"){let D=G8$($.path);if(!X8$(D))W8$(D,{recursive:!0})}if(this.db=new J8$($.path),this.db.run("PRAGMA journal_mode = WAL"),this.migrate(),this.maxRows=$.maxRows??null,this.maxAgeMs=$.maxAgeMs??null,this.maxBytes=$.maxBytes??null,this.targetBytes=$.targetBytes??($.maxBytes!==void 0?Math.floor($.maxBytes/4):null),this.now=$.now??(()=>Date.now()),this.indexes=$.indexes??[],this.indexes.length>0)Q8$(this.indexes),this.extractIndexes=$.extractIndexes??null,this.syncIndexColumns();else this.extractIndexes=null;let v=["ts","type","event",...this.indexes],U=v.map(()=>"?").join(", ");this.insertStmt=this.db.prepare(`INSERT INTO logs (${v.join(", ")}) VALUES (${U})`);let I=["seq",...v],b=I.map(()=>"?").join(", ");this.insertWithSeqStmt=this.db.prepare(`INSERT INTO logs (${I.join(", ")}) VALUES (${b})`),this.maxSeqStmt=this.db.prepare("SELECT COALESCE(MAX(seq), 0) AS max FROM logs"),this.countStmt=this.db.prepare("SELECT COUNT(*) AS n FROM logs"),this.trimRowsStmt=this.db.prepare("DELETE FROM logs WHERE seq <= (SELECT seq FROM logs ORDER BY seq DESC LIMIT 1 OFFSET ?)"),this.trimAgeStmt=this.db.prepare("DELETE FROM logs WHERE ts < ?"),this.trimOldestStmt=this.db.prepare("DELETE FROM logs WHERE seq IN (SELECT seq FROM logs ORDER BY seq ASC LIMIT ?)")}insert($){try{let v=this.buildInsertParams($.ts,$.event),U=this.insertStmt.run(...v),I=Number(U.lastInsertRowid);return this.trim(),{seq:I,ts:$.ts,event:$.event}}catch(v){return v instanceof Error?v:Error(String(v))}}insertMany($){if($.length===0)return[];try{let v=[];return this.db.transaction((I)=>{for(let b of I){let D=this.buildInsertParams(b.ts,b.event),u=this.insertStmt.run(...D);v.push({seq:Number(u.lastInsertRowid),ts:b.ts,event:b.event})}})($),this.trim(),v}catch(v){return v instanceof Error?v:Error(String(v))}}write($){try{let v=[$.seq,...this.buildInsertParams($.ts,$.event)];this.insertWithSeqStmt.run(...v),this.trim()}catch(v){return v instanceof Error?v:Error(String(v))}}getMaxSeq(){let $=this.maxSeqStmt.get();return $?$.max:0}query($={}){let v=["seq > ?"],U=[$.sinceSeq??0];if(typeof $.type==="string")v.push("type = ?"),U.push($.type);if($.where)this.appendWhereConditions($.where,v,U);let I=$.limit??1000;U.push(I);let b=$.order==="desc"?"DESC":"ASC",D=`SELECT seq, ts, type, event FROM logs WHERE ${v.join(" AND ")} ORDER BY seq ${b} LIMIT ?`,w=this.db.prepare(D).all(...U);if(b==="DESC")w.reverse();return w.map(V8$)}getSchemaVersion(){return this.db.prepare("PRAGMA user_version").get()?.user_version??0}close(){this.db.close()}buildInsertParams($,v){let U=Y8$(v),I=JSON.stringify(v);if(this.indexes.length===0)return[$,U,I];let b=this.extractIndexes?this.extractIndexes(v):null,D=this.indexes.map((u)=>b?.[u]??null);return[$,U,I,...D]}appendWhereConditions($,v,U){let I=$;for(let b of this.indexes){let D=I[b];if(D===void 0)continue;if(D===null)v.push(`${b} IS NULL`);else v.push(`${b} = ?`),U.push(D)}}trim(){if(this.maxRows!==null){let $=this.countStmt.get();if($&&$.n>this.maxRows)this.trimRowsStmt.run(this.maxRows)}if(this.maxAgeMs!==null)this.trimAgeStmt.run(this.now()-this.maxAgeMs);this.maybeTrimBytes()}maybeTrimBytes(){if(this.maxBytes===null||this.targetBytes===null)return;if(this.insertsSinceByteCheck+=1,this.insertsSinceByteCheck<H8$)return;this.insertsSinceByteCheck=0;let $=this.byteSize();if($<=this.maxBytes)return;let v=this.countStmt.get()?.n??0;if(v===0)return;let U=$-this.targetBytes,I=$/v,b=Math.min(v,Math.ceil(U/I));this.trimOldestStmt.run(b),this.db.run("VACUUM")}byteSize(){let $=this.db.prepare("PRAGMA page_count").get()?.n??0,v=this.db.prepare("PRAGMA page_size").get()?.n??0;return $*v}clear(){this.db.run("DELETE FROM logs"),this.db.run("VACUUM"),this.insertsSinceByteCheck=0}syncIndexColumns(){let $=new Set(this.db.prepare("PRAGMA table_info(logs)").all().map((v)=>v.name));for(let v of this.indexes){if(!$.has(v))this.db.run(`ALTER TABLE logs ADD COLUMN ${v} TEXT`);this.db.run(`CREATE INDEX IF NOT EXISTS idx_logs_${v} ON logs (${v})`)}}migrate(){let v=this.db.prepare("PRAGMA user_version").get()?.user_version??0;if(v>=vf.length)return;let U=vf.slice(v),I=v;for(let b of U)I+=1,this.db.transaction(()=>{for(let u of b)this.db.run(u);this.db.run(`PRAGMA user_version = ${I}`)})()}}function Q8$($){for(let v of $){if(!O8$.test(v))throw Error(`invalid index column name: ${v}`);if(z8$.has(v))throw Error(`reserved index column name: ${v}`)}}function Y8$($){if(typeof $!=="object"||$===null)return null;if(!("type"in $))return null;let v=$.type;return typeof v==="string"?v:null}function V8$($){return{seq:$.seq,ts:$.ts,event:JSON.parse($.event)}}var bf=2000;class QP extends HP{sink;now;logger;onError;constructor($){super();this.now=$.now??(()=>Date.now()),this.logger=$.logger,this.onError=$.onError,this.sink=new zP({path:$.path,indexes:["channel_id","connector_id"],extractIndexes:(v)=>({channel_id:v.channel_id,connector_id:v.connector_id}),now:this.now,...$.maxRows!==void 0?{maxRows:$.maxRows}:{},...$.maxAgeMs!==void 0?{maxAgeMs:$.maxAgeMs}:{},...$.maxBytes!==void 0?{maxBytes:$.maxBytes}:{},...$.targetBytes!==void 0?{targetBytes:$.targetBytes}:{}})}record($){let v={type:$.meta?.event_type??"unknown",content:L8$($.content),channel_id:$.channelId,connector_id:$.connectorId,meta:$.meta},U=this.sink.write({seq:$.offset,ts:this.now(),event:v});if(U instanceof Error)this.logger?.error("event log write failed",{offset:$.offset,error:U.message}),this.onError?.(U,{component:"sqlite-event-log",op:"record",offset:$.offset,channelId:$.channelId,connectorId:$.connectorId})}loadSince($){let v=this.sink.query({sinceSeq:$}),U=[];for(let I of v)U.push({content:I.event.content,meta:I.event.meta??void 0,offset:I.seq});return U}loadForChannel($){let v={channel_id:$.channelId};if($.connectorId!==void 0)v.connector_id=$.connectorId;let U=this.sink.query({where:v,...$.sinceSeq!==void 0?{sinceSeq:$.sinceSeq}:{},...$.limit!==void 0?{limit:$.limit}:{}}),I=[];for(let b of U)I.push({content:b.event.content,meta:b.event.meta??void 0,offset:b.seq});return I}findMaxOffset(){return this.sink.getMaxSeq()}clear(){this.sink.clear()}close(){this.sink.close()}}function L8$($){if($.length<=bf)return $;return`${$.slice(0,bf)}...`}var K8$=()=>{},q8$=30000,B8$=60000,A8$=30000,P8$=($)=>new Promise((v)=>{setTimeout(v,$)});class L6{channels;notify;logger;onError;running=new Map;failureCounts=new Map;starting=new Set;stats=new Map;healthCheckIntervalMs;maxBackoffMs;startTimeoutMs;sleep;now;healthCheckTimer=null;healthCheckInFlight=!1;pendingRetry=new Map;constructor($){this.channels=$.channels,this.notify=$.notify,this.logger=$.logger,this.onError=$.onError??K8$,this.healthCheckIntervalMs=$.healthCheckIntervalMs??q8$,this.maxBackoffMs=$.maxBackoffMs??B8$,this.startTimeoutMs=$.startTimeoutMs??A8$,this.sleep=$.sleep??P8$,this.now=$.now??(()=>Date.now())}static keyOf($,v){return`${$}/${v}`}isRunning($,v){return this.running.has(L6.keyOf($,v))}list(){return[...this.running.entries()].map(([$,v])=>{let U=this.stats.get($);return{channelName:v.channelName,channelId:v.channelId,name:v.config.name,type:v.config.type,alive:v.listener.isAlive(),events:U?.events??0,errors:U?.errors??0,failureCount:this.failureCounts.get($)??0,lastEventAt:U?.lastEventAt??null}})}async start($,v){let U=L6.keyOf($,v);if(this.running.has(U))return{ok:!0,reason:"already running"};if(this.starting.has(U))return{ok:!1,reason:"already starting",retriable:!0};this.starting.add(U);try{return await this.startLocked($,v,U)}finally{this.starting.delete(U)}}async startLocked($,v,U){let I=this.channels.createListener($,v);if(!I)return{ok:!1,reason:`connector "${v}" not found in channel "${$}"`};let b=async(D,u)=>{try{await this.notify($,v,D,u),this.recordEvent(U)}catch(w){throw this.recordError(U),w}};try{return await Promise.race([I.listener.start(b),this.sleep(this.startTimeoutMs).then(()=>{throw Error(`listener start timed out after ${this.startTimeoutMs}ms`)})]),this.running.set(U,{config:I.config,channelName:$,channelId:I.channelId,listener:I.listener}),this.pendingRetry.delete(U),this.ensureStats(U),this.logger?.info(`${I.config.type} listener started`,{channel:$,connector:v}),{ok:!0}}catch(D){let u=D instanceof Error?D:Error(String(D));try{await I.listener.stop()}catch{}this.logger?.error(`${I.config.type} listener failed to start`,{channel:$,connector:v,error:u.message}),this.onError(u,{component:"listener-registry.start",channel:$,connector:v,type:I.config.type});let w=!(u instanceof F0);return{ok:!1,reason:u.message,retriable:w}}}async stop($,v){let U=L6.keyOf($,v),I=this.running.get(U);if(!I)return{ok:!0,reason:"not running"};try{return await I.listener.stop(),this.logger?.info(`${I.config.type} listener stopped`,{channel:$,connector:v}),{ok:!0}}catch(b){let D=b instanceof Error?b:Error(String(b));return this.logger?.error(`${I.config.type} listener failed to stop`,{channel:$,connector:v,error:D.message}),this.onError(D,{component:"listener-registry.stop",channel:$,connector:v,type:I.config.type}),{ok:!1,reason:D.message}}finally{this.running.delete(U),this.failureCounts.delete(U)}}async restart($,v){let U=await this.stop($,v);if(!U.ok)return U;return await this.start($,v)}async startAll(){let $=this.channels.listAllConnectors(),v=await Promise.allSettled($.map((U)=>this.start(U.channelName,U.name)));for(let U=0;U<v.length;U++){let I=v[U],b=$[U];if(I.status==="rejected"){let D=L6.keyOf(b.channelName,b.name);this.pendingRetry.set(D,{channelName:b.channelName,connectorName:b.name});continue}if(I.status==="fulfilled"&&!I.value.ok){if(I.value.retriable===!1)continue;let D=L6.keyOf(b.channelName,b.name);this.pendingRetry.set(D,{channelName:b.channelName,connectorName:b.name})}}this.startHealthCheck()}async stopAll(){this.stopHealthCheck(),this.pendingRetry.clear();for(let[,$]of[...this.running.entries()])await this.stop($.channelName,$.config.name)}ensureStats($){let v=this.stats.get($);if(v)return v;let U={events:0,errors:0,failureCount:0,lastEventAt:null};return this.stats.set($,U),U}recordEvent($){let v=this.ensureStats($);v.events+=1,v.lastEventAt=new Date(this.now()).toISOString()}recordError($){this.ensureStats($).errors+=1}startHealthCheck(){if(this.healthCheckTimer)return;this.healthCheckTimer=setInterval(()=>{this.runHealthCheck().catch(($)=>{let v=$ instanceof Error?$:Error(String($));this.logger?.error("health check pass failed",{error:v.message}),this.onError(v,{component:"listener-registry.health-check"})})},this.healthCheckIntervalMs),this.healthCheckTimer.unref()}stopHealthCheck(){if(!this.healthCheckTimer)return;clearInterval(this.healthCheckTimer),this.healthCheckTimer=null}async runHealthCheckForTest(){await this.runHealthCheck()}async runHealthCheck(){if(this.healthCheckInFlight)return;this.healthCheckInFlight=!0;try{let $=[];for(let[U,I]of[...this.running.entries()]){if(I.listener.isAlive()){this.failureCounts.delete(U);continue}$.push({channelName:I.channelName,connectorName:I.config.name,type:I.config.type})}await Promise.all($.map((U)=>this.recoverDead(U.channelName,U.connectorName,U.type)));let v=[];for(let[U,I]of[...this.pendingRetry.entries()]){if(this.running.has(U)){this.pendingRetry.delete(U);continue}v.push({key:U,channelName:I.channelName,connectorName:I.connectorName})}await Promise.all(v.map((U)=>this.attemptRetry(U)))}finally{this.healthCheckInFlight=!1}}async attemptRetry($){this.logger?.info("retrying failed listener",{channel:$.channelName,connector:$.connectorName});let v=this.failureCounts.get($.key)??0,U=Math.min(1000*2**v,this.maxBackoffMs);await this.sleep(U);let I=await this.start($.channelName,$.connectorName);if(I.ok){this.pendingRetry.delete($.key),this.failureCounts.delete($.key);return}if(I.retriable===!1){this.pendingRetry.delete($.key),this.failureCounts.delete($.key),this.logger?.warn("dropping listener from retry queue (non-retriable)",{channel:$.channelName,connector:$.connectorName,reason:I.reason});return}this.failureCounts.set($.key,v+1)}async recoverDead($,v,U){let I=L6.keyOf($,v),b=this.failureCounts.get(I)??0,D=Math.min(1000*2**b,this.maxBackoffMs);this.logger?.warn(`${U} listener unhealthy, restarting`,{channel:$,connector:v,attempt:b+1,backoffMs:D}),await this.stop($,v),await this.sleep(D);let u=await this.start($,v);if(u.ok)this.failureCounts.delete(I),this.logger?.info(`${U} listener recovered`,{channel:$,connector:v});else if(u.retriable===!1)this.failureCounts.delete(I),this.logger?.warn(`${U} listener cannot recover (non-retriable)`,{channel:$,connector:v,reason:u.reason});else this.failureCounts.set(I,b+1)}}var j8$=new $v,N8$=3000,S8$=100,M8$=200,_8$=($)=>new Promise((v)=>{setTimeout(v,$)}),F8$=($)=>`funnel-gateway[${$}]`,Z8$=async($)=>{let v=$.now()+N8$;while($.now()<v){if($.pids.every((U)=>!$.runner.isAlive(U)))return;await $.sleep(S8$)}for(let U of $.pids){if(!$.runner.isAlive(U))continue;try{$.runner.kill(U,"SIGKILL")}catch{}}await $.sleep(M8$)},Uf=async($)=>{let v=$.process??j8$,U=$.logger,I=F8$($.dir),b=v.listProcessesContaining(I),D=[];for(let u of b){if(u.pid===$.selfPid)continue;v.kill(u.pid,"SIGTERM"),D.push(u.pid),U?.info("killed competing Slack gateway process",{pid:u.pid,args:u.command.slice(0,160)})}if(D.length===0)return D;return await Z8$({runner:v,pids:D,sleep:$.sleep??_8$,now:$.now??(()=>Date.now())}),D};var y4=($)=>EU("param",$,(v,U)=>{if(v.success)return;let I=v.error.issues[0],b=I?`${I.path.join(".")}: ${I.message}`:"invalid request";return U.json({ok:!1,reason:b},400)});var YP=H.lazy(()=>H.union([H.string(),H.number(),H.boolean(),H.null(),H.array(YP),H.record(H.string(),YP)])),T8$=H.object({method:H.string().min(1),path:H.string().min(1),body:YP.optional()}),If=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=null;try{U=await $.req.json()}catch{U=null}let I=T8$.safeParse(U);if(!I.success)throw new e(400,{message:I.error.issues[0]?.message??"invalid body"});let b=await $.var.deps.channels.call(v.channel,v.connector,{method:I.data.method,path:I.data.path,body:I.data.body});return $.json({ok:!0,result:b})});var Df=t$.createHandlers(y4(H.object({channel:H.string().min(1)})),EU("json",pl,($,v)=>{if($.success)return;let U=$.error.issues[0],I=U?`${U.path.join(".")}: ${U.message}`:"invalid body";return v.json({ok:!1,reason:I},400)}),($)=>{let v=$.req.valid("param"),U=$.req.valid("json"),I=U.target?{...U.meta,target:U.target}:U.meta,D={ok:!0,offset:$.var.deps.emit({channel:v.channel,connector:U.connector,content:U.content,meta:I}).offset};return $.json(D)});import{existsSync as VP}from"fs";import{join as LP}from"path";var k8$=($)=>{if(typeof $!=="string"||$.length===0)return null;try{let v=JSON.parse($);if(v!==null&&typeof v==="object"&&"text"in v){let U=String(v.text);return U.length>80?`${U.slice(0,80)}\u2026`:U}}catch{return $.length>80?`${$.slice(0,80)}\u2026`:$}return $.length>80?`${$.slice(0,80)}\u2026`:$},E8$=($)=>{let U=($.connectionErrors[$.connectionErrors.length-1]??null)?.detail??null;if($.connectors.length===0)return{status:"warn",message:"no connectors configured on this channel",nextActions:[`fnl channels ${$.name} connectors add <name> --type=slack ...`],rootCause:null};if(!$.listener)return{status:"error",message:"no listener running for this channel",nextActions:["fnl gateway restart"],rootCause:U};if(!$.listener.alive)return{status:"error",message:"listener is dead",nextActions:["fnl gateway logs","fnl gateway restart"],rootCause:U};if($.claudeClients===0)return{status:"warn",message:"no Claude connected to this channel",nextActions:[`fnl claude --channel ${$.name}`],rootCause:null};if($.listener.errors>0)return{status:"warn",message:"listener has errors",nextActions:["fnl gateway logs"],rootCause:U};return{status:"ok",message:"healthy",nextActions:[],rootCause:null}},uf=t$.createHandlers(async($)=>{let v=$.var.deps,U=$.req.query("channel")??null,I=v.channels.list(),b=U?I.filter((z)=>z.name===U||z.id===U):I,D=v.registry.list(),u=v.broadcaster.listChannels(),w=v.broadcaster.getMetrics(),g=Yv(),J=LP(g,"connector-raw.db"),X=LP(g,"connector-processed.db"),W=LP(g,"connector-connection.db"),G=VP(J)&&VP(X)&&VP(W),O=b.map((z)=>{let Q=D.find((A)=>A.channelName===z.name)??null,Y=Q?{alive:Q.alive,events:Q.events,errors:Q.errors,lastEventAt:Q.lastEventAt}:null,K=u.filter((A)=>A.channel===z.id||A.channel===z.name).length,F=[],S=[];if(G){let A=new Vv({rawPath:J,processedPath:X,connectionPath:W}),h=(()=>{try{return A.query("SELECT seq, ts, type, outcome, payload FROM processed WHERE channel_id = ? ORDER BY seq DESC LIMIT 10",[z.id])}finally{A.close()}})();if(!(h instanceof Error))for(let l of[...h].reverse()){let W$=typeof l.payload==="string"?l.payload:null,X$=null;if(W$)try{let m$=JSON.parse(W$);if(m$!==null&&typeof m$==="object"&&!Array.isArray(m$))X$=m$}catch{X$=null}F.push({seq:typeof l.seq==="number"?l.seq:null,ts:typeof l.ts==="number"?l.ts:null,type:typeof l.type==="string"?l.type:"?",outcome:typeof l.outcome==="string"?l.outcome:"?",payload:W$,payloadParsed:X$,preview:k8$(l.payload)})}if(Y&&(!Y.alive||Y.errors>0)||!Y){let l=new Vv({rawPath:J,processedPath:X,connectionPath:W}),W$=(()=>{try{return l.query("SELECT ts, type, status, detail FROM connection WHERE channel_id = ? AND status IN ('auth-failed','error') ORDER BY seq DESC LIMIT 3",[z.id])}finally{l.close()}})();if(!(W$ instanceof Error))for(let X$ of[...W$].reverse())S.push({ts:typeof X$.ts==="number"?X$.ts:null,type:typeof X$.type==="string"?X$.type:"?",status:typeof X$.status==="string"?X$.status:"?",detail:typeof X$.detail==="string"&&X$.detail.length>0?X$.detail:null})}}let j={id:z.id,name:z.name,connectors:z.connectors.map((A)=>A.name),listener:Y,claudeClients:K,recentEvents:F,connectionErrors:S};return{...j,diagnosis:E8$(j)}});return $.json({pid:v.selfPid,uptimeMs:v.uptimeMs(),eventsBroadcast:w.eventsBroadcast,channels:O})});var wf=t$.createHandlers(($)=>{let v=$.var.deps;return $.json({ok:!0,pid:v.selfPid,funnelDir:v.dir,clients:v.broadcaster.getClientCount(),listeners:v.registry.list()})});var gf=t$.createHandlers(($)=>{return $.json({listeners:$.var.deps.registry.list()})});var Jf=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=await $.var.deps.registry.restart(v.channel,v.connector);return $.json(U,U.ok?200:400)});var Xf=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=await $.var.deps.registry.start(v.channel,v.connector);return $.json(U,U.ok?200:400)});var Wf=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=await $.var.deps.registry.stop(v.channel,v.connector);return $.json(U,U.ok?200:400)});var Gf=t$.createHandlers(($)=>{let v=$.var.deps;return $.json({ok:!0,pid:v.selfPid,funnelDir:v.dir,uptimeMs:v.uptimeMs(),clients:v.broadcaster.listChannels(),listeners:v.registry.list(),broadcaster:v.broadcaster.getMetrics()})});function R8$(){return t$.createApp().onError(($,v)=>{if($ instanceof e)return $.getResponse();let U=$ instanceof Error?$.message:String($);return v.json({error:U},500)}).get("/health",...wf).get("/status",...Gf).get("/debug",...uf).get("/listeners",...gf).post("/listeners/:channel/:connector/start",...Xf).delete("/listeners/:channel/:connector",...Wf).post("/listeners/:channel/:connector/restart",...Jf).post("/channels/:channel/connectors/:connector/call",...If).post("/channels/:channel/publish",...Df)}var Of=R8$();var x8$="127.0.0.1",l8$=new Set(["127.0.0.1","localhost","::1","::ffff:127.0.0.1"]),f8$=()=>i8$(Yv(),"events.db"),y8$=()=>{};class KP{channels;configuredPort;configuredHostname;dbPath;process;logger;onError;selfPid;dir;killCompetingSlack;token;allowInsecureHost;broadcaster;eventLog;registry;nowMs;extraRoutes;ownsEventLog;startedAt=null;server=null;disposed=!1;constructor($){this.channels=$.channels,this.configuredPort=$.port??Q6(),this.configuredHostname=$.hostname??x8$,this.dbPath=$.dbPath??f8$(),this.process=$.process,this.logger=$.logger,this.onError=$.onError??y8$,this.selfPid=$.selfPid??globalThis.process.pid,this.dir=$.dir??B4,this.killCompetingSlack=$.killCompetingSlack??!0,this.token=$.token??"",this.allowInsecureHost=$.allowInsecureHost??!1,this.extraRoutes=$.extraRoutes??null;let v=$.clock;if(this.nowMs=v?()=>v.millis():()=>Date.now(),$.eventLog)this.eventLog=$.eventLog,this.ownsEventLog=!1;else{let U=C8$(this.dbPath);if(!n8$(U))r8$(U,{recursive:!0});this.eventLog=new QP({path:this.dbPath,now:this.nowMs,logger:this.logger,onError:this.onError}),this.ownsEventLog=!0}this.broadcaster=new OP({logger:this.logger,onError:this.onError,now:this.nowMs,persistentReplay:this.eventLog}),this.broadcaster.seedLatestOffset(this.eventLog.findMaxOffset()),this.registry=new L6({channels:this.channels,logger:this.logger,onError:this.onError,notify:async(U,I,b,D)=>{this.emit({channel:U,connector:I,content:b,meta:D})},now:this.nowMs})}get port(){return this.server?.port??this.configuredPort}get hostname(){return this.server?.hostname??this.configuredHostname}async start(){if(this.disposed)throw Error("FunnelGatewayServer is single-use: construct a new instance to start again");if(this.server)return;if(!this.token&&!l8$.has(this.configuredHostname)&&!this.allowInsecureHost)throw Error(`refusing to start gateway: hostname "${this.configuredHostname}" is reachable off-box but no token is set. Set a token, bind to loopback (127.0.0.1), or pass allowInsecureHost: true.`);let $=this.buildApp();await this.killCompetingSlackIfNeeded(),this.startedAt=this.nowMs(),this.server=Bun.serve({port:this.configuredPort,hostname:this.configuredHostname,development:!1,fetch:(v,U)=>this.handleFetch(v,U,$),websocket:{open:(v)=>this.handleWsOpen(v),close:(v)=>this.handleWsClose(v),message(){}}}),this.logServerStarted();try{await this.bootListeners()}catch(v){throw this.server.stop(),this.server=null,v}}async stop(){if(await this.registry.stopAll(),this.server)this.server.stop(),this.server=null;if(this.ownsEventLog)this.eventLog.close();this.disposed=!0}getStatus(){return{clients:this.broadcaster.getClientCount(),channels:this.broadcaster.listChannels()}}getBroadcaster(){return this.broadcaster}getRegistry(){return this.registry}getEventLog(){return this.eventLog}onEvent($){return this.broadcaster.subscribe($)}handleFetch($,v,U){let I=new URL($.url);if(I.pathname==="/ws"&&$.headers.get("upgrade")==="websocket"){if(this.token&&!this.tokenMatchesUpgrade($))return new Response("unauthorized",{status:401});let b=I.searchParams.get("channel")??"",D=b?this.resolveChannel(b):null;if(b&&!D)return new Response(`unknown channel "${b}"`,{status:404});let u=D?.id??b,w=D?.name??null,g=D?.connectors??[],J=D?.delivery??"fanout",X=I.searchParams.get("since"),W=X===null?Number.NaN:Number.parseInt(X,10),G=Number.isFinite(W)&&W>=0?W:void 0,O=I.searchParams.get("id")??void 0;if(v.upgrade($,{data:{channel:u,channelName:w,connectors:g,delivery:J,subscriberId:O,since:G}}))return;return new Response("WebSocket upgrade failed",{status:400})}return U.fetch($)}handleWsOpen($){if(typeof $.data.since==="number"){let v=this.broadcaster.replaySince($.data.since,$.data);try{for(let U of v)$.send(JSON.stringify(U))}catch(U){let I=U instanceof Error?U:Error(String(U));this.logger?.warn("replay send failed during ws.open",{error:I.message}),this.onError(I,{component:"gateway-server.replay"});return}}this.broadcaster.addClient($,$.data),this.logger?.info("channel connected",{event_type:"system",action:"channel_connect",channel:$.data.channelName??"",channelId:$.data.channel,connectors:$.data.connectors.join(","),total:String(this.broadcaster.getClientCount())})}handleWsClose($){this.broadcaster.removeClient($),this.logger?.info("channel disconnected",{event_type:"system",action:"channel_disconnect",channel:$.data.channelName??"",channelId:$.data.channel,total:String(this.broadcaster.getClientCount())})}logServerStarted(){this.logger?.info("gateway started",{event_type:"system",action:"gateway_start",port:String(this.port),pid:String(this.selfPid)}),this.logger?.info("funnel gateway listening",{url:`http://localhost:${this.port}`,websocket:`ws://localhost:${this.port}/ws`,health:`http://localhost:${this.port}/health`})}buildApp(){let $=t$.createApp();if($.use((U,I)=>{return U.set("deps",{selfPid:this.selfPid,dir:this.dir,broadcaster:this.broadcaster,registry:this.registry,channels:this.channels,uptimeMs:()=>this.startedAt?this.nowMs()-this.startedAt:0,emit:(b)=>this.emit(b)}),I()}),this.token)$.use("/listeners/*",Xu({expected:this.token})),$.use("/status",Xu({expected:this.token})),$.use("/debug",Xu({expected:this.token})),$.use("/channels/*",Xu({expected:this.token}));return(this.extraRoutes?$.route("/",this.extraRoutes):$).route("/",Of)}tokenMatchesUpgrade($){let v=($.headers.get("sec-websocket-protocol")??"").split(",").map((b)=>b.trim()).filter((b)=>b.length>0);for(let b of v)if(b.startsWith("funnel.token.")&&XG(b.slice(13),this.token))return!0;let I=($.headers.get("authorization")??"").match(/^Bearer\s+(.+)$/i);if(I&&XG(I[1]??"",this.token))return!0;return!1}resolveChannel($){let v=this.channels.get($)??this.channels.getById($);if(!v)return null;return{id:v.id,name:v.name,connectors:v.connectors.map((U)=>U.name),delivery:v.delivery}}async killCompetingSlackIfNeeded(){if(!this.killCompetingSlack)return;if(!this.channels.listAllConnectors().some((U)=>U.type==="slack"))return;let v=await Uf({selfPid:this.selfPid,dir:this.dir,process:this.process,logger:this.logger});if(v.length>0)this.logger?.info("killed competing Slack gateway processes",{event_type:"system",action:"kill_competing",pids:v.join(",")})}async bootListeners(){await this.registry.startAll();for(let $ of this.registry.list())this.logger?.info(`${$.type} listener started: ${$.name}`,{event_type:"system",action:`${$.type}_connect`,channel:$.channelName,connector:$.name});this.logger?.info(`event store: ${this.dbPath}`),this.logger?.info("funnel gateway running")}emit($){let v=this.lookupChannelId($.channel),U=v&&$.connector?this.lookupConnectorId(v,$.connector):null,I={...$.meta,channel:$.channel};if($.connector)I.connector=$.connector;if(v)I.channelId=v;if(U)I.connectorId=U;let b=this.broadcaster.broadcast($.content,I);return this.eventLog.record({content:$.content,channelId:v??null,connectorId:U??null,meta:I,offset:b.offset}),{offset:b.offset}}lookupChannelId($){return this.channels.get($)?.id??this.channels.getById($)?.id??null}lookupConnectorId($,v){return this.channels.getById($)?.connectors.find((I)=>I.name===v)?.id??null}}import{homedir as h8$}from"os";import{dirname as m8$,join as Hf}from"path";var zf="gateway.token",c8$=32,o8$=new d$,t8$=()=>{let $=new Uint8Array(c8$);return crypto.getRandomValues($),[...$].map((v)=>v.toString(16).padStart(2,"0")).join("")};class qP{fs;path;generate;constructor($={}){this.fs=$.fs??o8$,this.path=Hf($.dir??B4,zf),this.generate=$.generate??t8$,Object.freeze(this)}read(){if(!this.fs.existsSync(this.path))return null;let $=this.fs.readFileSync(this.path).trim();return $.length>0?$:null}ensure(){return this.fs.mkdirSync(m8$(this.path),{recursive:!0}),this.fs.withFileLock(`${this.path}.lock`,()=>{let $=this.read();if($)return $;let v=this.generate();return this.fs.writeSecretFileSync(this.path,`${v}
|
|
1688
|
-
`),v})}getPath(){return this.path}}var
|
|
1684
|
+
the host (npm / bun / yarn install in the host's own way).`,Rl="@interactive-inc/claude-funnel",nl=_.createHandlers(c(XH$),async($)=>{let U=await new $v().attach(["bun","i","-g",Rl]);if(U!==0)throw new e(500,{message:`update failed (exit ${U})`});return $.text(`updated ${Rl}`)});var nA=_.createApp().onError(($,v)=>{if($ instanceof e)return v.text($.message,$.status);return v.text(`error: ${$ instanceof Error?$.message:String($)}`,400)}).get("/claude",...US).get("/channels",...dx).post("/channels/add",...Ax).post("/channels/add/:channel",...Px).post("/channels/remove",...yx).post("/channels/remove/:channel",...hx).post("/channels/rename/:channel/:newName",..._A).post("/channels/:channel/rename/:newName",..._A).post("/channels/rename",...mx).post("/channels/:channel/rename",...cx).post("/channels/:channel/set/delivery/:mode",...ox).post("/channels/publish",...lx).post("/channels/:channel/publish",...fx).get("/channels/:channel/validate",...ax).get("/channels/validate",...px).get("/channels/:channel",...tx).get("/channels/:channel/connectors",...jx).post("/channels/:channel/connectors/add",...Nx).post("/channels/:channel/connectors/add/:connector",...Sx).post("/channels/:channel/connectors/remove",...Mx).post("/channels/:channel/connectors/remove/:connector",..._x).post("/channels/:channel/connectors/set",...Fx).post("/channels/:channel/connectors/set/:connector",...Zx).post("/channels/:channel/connectors/rename/:connector/:newName",...SA).post("/channels/:channel/connectors/:connector/rename/:newName",...SA).post("/channels/:channel/connectors/rename",...kx).post("/channels/:channel/connectors/:connector/rename",...Ex).post("/channels/:channel/connectors/:connector/request",...Rx).get("/channels/:channel/connectors/:connector",...Tx).get("/channels/:channel/connectors/:connector/schedules",...nx).post("/channels/:channel/connectors/:connector/schedules/add",...rx).post("/channels/:channel/connectors/:connector/schedules/add/:id",...Cx).post("/channels/:channel/connectors/:connector/schedules/remove",...ix).post("/channels/:channel/connectors/:connector/schedules/remove/:id",...xx).get("/profiles",...Fl).post("/profiles/add",...ql).post("/profiles/add/:profile",...Bl).post("/profiles/set",...Ml).post("/profiles/set/:profile",..._l).post("/profiles/remove",...Nl).post("/profiles/remove/:profile",...Sl).post("/profiles/rename/:profile/:newName",...EA).post("/profiles/:profile/rename/:newName",...EA).post("/profiles/rename",...Pl).post("/profiles/:profile/rename",...jl).post("/profiles/:profile/as-default",...Al).get("/profiles/:profile/run",...RA).get("/profiles/:profile",...RA).get("/gateway",...Jl).get("/gateway/status",...Ll).get("/gateway/start",...Vl).get("/gateway/stop",...Kl).get("/gateway/restart",...zl).get("/gateway/run",...Ql).get("/gateway/logs",...Gl).get("/gateway/sql",...Hl).get("/gateway/listeners",...Xl).get("/debug",...ex).get("/debug/events",...sx).get("/debug/dropped",...$l).get("/debug/errors",...vl).get("/debug/replay",...bl).get("/debug/raw",...Ul).get("/debug/connection",...Il).get("/debug/logs",...Dl).get("/docs",...ul).get("/docs/:topic",...wl).get("/doctor",...gl).get("/schema",...Tl).get("/status",...El).get("/update",...nl);import{join as WH$}from"path";class uu{fs;constructor($){this.fs=$.fs,Object.freeze(this)}read($){let v=WH$($,Xb);if(!this.fs.existsSync(v))return null;let U=this.fs.readFileSync(v),I=(()=>{try{return JSON.parse(U)}catch(D){let u=D instanceof Error?D.message:String(D);throw Error(`${Xb} is not valid JSON: ${u}`)}})(),b=sW.safeParse(I);if(!b.success)throw Error(`${Xb} is invalid: ${b.error.message}`);return this.assertProfilesValid(b.data),b.data}assertProfilesValid($){let v=$.profiles??[];if(v.length===0)return;let U=new Set($.channels.map((b)=>b.name)),I=new Set;for(let b of v){if(!U.has(b.channel))throw Error(`${Xb} is invalid: profile "${b.name}" binds channel "${b.channel}", which is not declared in channels[]`);if(I.has(b.name))throw Error(`${Xb} is invalid: more than one profile is named "${b.name}" \u2014 names must be unique`);I.add(b.name)}}}import{join as GH$}from"path";var OH$=($)=>{return typeof $==="object"&&$!==null&&!Array.isArray($)},HH$=($,v)=>{let U={};if($.$schema!==void 0)U.$schema=$.$schema;U.id=v;for(let I of Object.keys($)){if(I==="$schema"||I==="id")continue;U[I]=$[I]}return U};class rA{fs;constructor($){this.fs=$.fs,Object.freeze(this)}ensureId($,v){let U=GH$($,Xb);if(!this.fs.existsSync(U))return null;return this.fs.withFileLock(`${U}.lock`,()=>{let I=JSON.parse(this.fs.readFileSync(U));if(!OH$(I))return null;if(typeof I.id==="string"&&I.id!=="")return I.id;let b=HH$(I,v);return this.fs.writeFileSync(U,`${JSON.stringify(b,null,2)}
|
|
1685
|
+
`),v})}}import{join as a8$}from"path";var rl=($,v)=>{return $=$.replace(/\/+$/,""),$=$+"/",v=v.replace(/^\/+/,""),$+v},vG=($,v)=>{for(let[U,I]of Object.entries(v)){let b=new RegExp("/:"+U+"(?:{[^/]+})?\\??");$=$.replace(b,I?`/${I}`:"")}return $},Cl=($)=>{let v=new URLSearchParams;for(let[U,I]of Object.entries($)){if(I===void 0)continue;if(Array.isArray(I))for(let b of I)v.append(U,b);else v.set(U,I)}return v},il=($,v)=>{switch(v){case"ws":return $.replace(/^http/,"ws");case"http":return $.replace(/^ws/,"http")}},CA=($)=>{if(/^https?:\/\/[^\/]+?\/index(?=\?|$)/.test($))return $.replace(/\/index(?=\?|$)/,"/");return $.replace(/\/index(?=\?|$)/,"")};function $G($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function iA($,v){if(!$G($)&&!$G(v))return v;let U={...$};for(let I in v){let b=v[I];if($G(U[I])&&$G(b))U[I]=iA(U[I],b);else U[I]=b}return U}var xl=($,v)=>{return new Proxy(()=>{},{get(I,b){if(typeof b!=="string"||b==="then")return;return xl($,[...v,b])},apply(I,b,D){return $({path:v,args:D})}})},QH$=class{url;method;buildSearchParams;queryParams=void 0;pathParams={};rBody;cType=void 0;constructor($,v,U){this.url=$,this.method=v,this.buildSearchParams=U.buildSearchParams}fetch=async($,v)=>{if($){if($.query)this.queryParams=this.buildSearchParams($.query);if($.form){let w=new FormData;for(let[g,J]of Object.entries($.form)){if(J===void 0)continue;if(Array.isArray(J))for(let X of J)w.append(g,X);else w.append(g,J)}this.rBody=w}if($.json)this.rBody=JSON.stringify($.json),this.cType="application/json";if($.param)this.pathParams=$.param}let U=this.method.toUpperCase(),I={...$?.header,...typeof v?.headers==="function"?await v.headers():v?.headers};if($?.cookie){let w=[];for(let[g,J]of Object.entries($.cookie))w.push(qQ(g,J,{path:"/"}));I.Cookie=w.join(",")}if(this.cType)I["Content-Type"]=this.cType;let b=new Headers(I??void 0),D=this.url;if(D=CA(D),D=vG(D,this.pathParams),this.queryParams)D=D+"?"+this.queryParams.toString();U=this.method.toUpperCase();let u=!(U==="GET"||U==="HEAD");return(v?.fetch||fetch)(D,{body:u?this.rBody:void 0,method:U,headers:b,...v?.init})}},xA=($,v)=>xl(function U(I){let b=v?.buildSearchParams??Cl,D=[...I.path],u=D.slice(-3).reverse();if(u[0]==="toString"){if(u[1]==="name")return u[2]||"";return U.toString()}if(u[0]==="valueOf"){if(u[1]==="name")return u[2]||"";return U}let w="";if(/^\$/.test(u[0])){let W=D.pop();if(W)w=W.replace(/^\$/,"")}let g=D.join("/"),J=rl($,g);if(w==="url"||w==="path"){let W=J;if(I.args[0]){if(I.args[0].param)W=vG(J,I.args[0].param);if(I.args[0].query)W=W+"?"+b(I.args[0].query).toString()}if(W=CA(W),w==="url")return new URL(W);return W.slice($.replace(/\/+$/,"").length).replace(/^\/?/,"/")}if(w==="ws"){let W=il(I.args[0]&&I.args[0].param?vG(J,I.args[0].param):J,"ws"),G=new URL(W),O=I.args[0]?.query;if(O)Object.entries(O).forEach(([Q,Y])=>{if(Array.isArray(Y))Y.forEach((K)=>G.searchParams.append(Q,K));else G.searchParams.set(Q,Y)});return((...Q)=>{if(v?.webSocket!==void 0&&typeof v.webSocket==="function")return v.webSocket(...Q);return new WebSocket(...Q)})(G.toString())}let X=new QH$(J,w,{buildSearchParams:b});if(w){v??={};let W=iA(v,{...I.args[1]});return X.fetch(I.args[0],W)}return X},[]);import{join as ll}from"path";class wu{millis(){return this.now().getTime()}iso(){return this.now().toISOString()}}class V6 extends wu{now(){return new Date}}var YH$=new d$,VH$=new $v,LH$=new g4,KH$=new V6;class lA{descriptors;fs;process;http;clock;logger;diagnosticLog;signal;dir;constructor($){this.descriptors=new Map($.descriptors.map((v)=>[v.type,v])),this.fs=$.fs??YH$,this.process=$.process??VH$,this.http=$.http??LH$,this.clock=$.clock??KH$,this.logger=$.logger,this.diagnosticLog=$.diagnosticLog,this.signal=$.signal,this.dir=$.dir??B4,Object.freeze(this)}has($){return this.descriptors.has($)}types(){return[...this.descriptors.keys()]}createListener($,v){return this.require(v.type).createListener(v,this.listenerDeps($))}createAdapter($){let v=this.require($.type);if(!v.createAdapter)return null;return v.createAdapter($,this.adapterDeps())}secretTokens($){return this.require($.type).secretTokens($)}buildConfig($,v){let U=typeof $.type==="string"?$.type:"";return this.require(U).buildConfig($,v)}applyUpdate($,v,U){return this.require($.type).applyUpdate($,v,U)}runOperation($,v,U,I){let D=this.require($.type).operations[v];if(!D)throw Error(`connector type "${$.type}" has no operation "${v}"`);return D({config:$,args:U,context:I})}connectorDir($,v){return ll(this.dir,"channels",$,"connectors",v)}channelDir($){return ll(this.dir,"channels",$)}require($){let v=this.descriptors.get($);if(!v)throw Error(`unknown connector type "${$}". Pass its descriptor to new Funnel({ connectors: [...] }).`);return v}listenerDeps($){return{channelId:$,fs:this.fs,process:this.process,http:this.http,clock:this.clock,logger:this.logger,diagnosticLog:this.diagnosticLog,signal:this.signal,connectorDir:(v,U)=>this.connectorDir(v,U)}}adapterDeps(){return{fs:this.fs,process:this.process,http:this.http,logger:this.logger}}}var qH$=new V6,BH$=new q4;class fA{store;registry;profileChecker;clock;idGenerator;constructor($){this.store=$.store,this.registry=$.registry,this.profileChecker=$.profileChecker??null,this.clock=$.clock??qH$,this.idGenerator=$.idGenerator??BH$,Object.freeze(this)}list(){return this.store.read().channels}get($){return this.list().find((v)=>v.name===$)??null}getById($){return this.list().find((v)=>v.id===$)??null}add($){return this.store.update((v)=>{if(v.channels.some((I)=>I.name===$.name))throw new iJ($.name);let U={id:this.idGenerator.generate(),name:$.name,delivery:$.delivery??"fanout",connectors:[]};return v.channels.push(U),U})}setDelivery($,v){this.store.update((U)=>{let I=this.requireChannel(U,$);I.delivery=v})}remove($){this.store.update((v)=>{let U=v.channels.findIndex((b)=>b.name===$);if(U<0)throw new _0($);let I=v.channels[U];if(I&&this.profileChecker?.hasChannelRef(I.id))throw Error(`channel "${$}" is referenced by a profile`);v.channels.splice(U,1)})}rename($,v){this.store.update((U)=>{let I=U.channels.find((b)=>b.name===$);if(!I)throw new _0($);if(U.channels.some((b)=>b.name===v))throw new iJ(v);I.name=v})}listConnectors($){return this.requireChannel(this.store.read(),$).connectors}getConnector($,v){let U=this.get($);if(!U)return null;return U.connectors.find((I)=>I.name===v)??null}listAllConnectors(){let $=[];for(let v of this.list())for(let U of v.connectors)$.push({...U,channelId:v.id,channelName:v.name});return $}addConnector($,v){return this.store.update((U)=>{let I=this.requireChannel(U,$);if(I.connectors.some((D)=>D.name===v.name))throw Error(`connector "${v.name}" already exists in channel "${$}"`);let b=this.registry.buildConfig(v,{id:this.idGenerator.generate(),now:this.clock.iso()});return this.assertNoTokenCollision(U,b),I.connectors.push(b),b})}removeConnector($,v){this.store.update((U)=>{let I=this.requireChannel(U,$),b=I.connectors.findIndex((D)=>D.name===v);if(b<0)throw new HI($,v);I.connectors.splice(b,1)})}renameConnector($,v,U){this.store.update((I)=>{let b=this.requireChannel(I,$),D=b.connectors.find((u)=>u.name===v);if(!D)throw Error(`connector "${v}" not found in channel "${$}"`);if(b.connectors.some((u)=>u.name===U))throw Error(`connector "${U}" already exists in channel "${$}"`);D.name=U,D.updatedAt=this.clock.iso()})}updateConnector($,v,U){this.store.update((I)=>{let b=this.requireChannel(I,$),D=b.connectors.find((w)=>w.name===v);if(!D)throw new HI($,v);let u=this.registry.applyUpdate(D,U,{now:this.clock.iso()});this.assertNoTokenCollision(I,u),this.replaceConnector(b,D.name,u)})}updateSlackConnector($,v,U){this.updateConnector($,v,U)}updateGhConnector($,v,U){this.updateConnector($,v,U)}updateDiscordConnector($,v,U){this.updateConnector($,v,U)}connectorOp($,v,U,I){return this.store.update((b)=>{let D=this.requireChannel(b,$),u=D.connectors.find((g)=>g.name===v);if(!u)throw new HI($,v);let w=this.registry.runOperation(u,U,I,{generateId:()=>this.idGenerator.generate(),now:this.clock.iso()});if(w.config!==u)this.replaceConnector(D,u.name,w.config);return w.result})}async call($,v,U){let I=this.getConnector($,v);if(!I)throw new HI($,v);let b=this.registry.createAdapter(I);if(!b)throw Error(`connector type "${I.type}" does not support outbound calls`);return await b.call(U)}createListener($,v){let U=this.get($);if(!U)return null;let I=U.connectors.find((b)=>b.name===v);if(!I)return null;return{config:I,channelId:U.id,listener:this.registry.createListener(U.id,I)}}createAllListeners(){let $=[];for(let v of this.list())for(let U of v.connectors)$.push({config:U,channelId:v.id,channelName:v.name,listener:this.registry.createListener(v.id,U)});return $}requireChannel($,v){let U=$.channels.find((I)=>I.name===v);if(!U)throw new _0(v);return U}replaceConnector($,v,U){let I=$.connectors.findIndex((b)=>b.name===v);if(I<0)throw Error(`connector "${v}" not found in channel "${$.name}"`);$.connectors[I]=U}assertNoTokenCollision($,v){let U=this.registry.secretTokens(v);if(U.length===0)return;for(let I of $.channels)for(let b of I.connectors){if(b.id===v.id)continue;for(let D of this.registry.secretTokens(b))if(U.includes(D))throw Error(`token already in use by connector "${b.name}" in channel "${I.name}"`)}}}var AH$=new $v,PH$=new q4;class yA{channels;mcp;gateway;sessions;guard;process;idGenerator;logger;dir;constructor($){this.channels=$.channels,this.mcp=$.mcp,this.gateway=$.gateway,this.sessions=$.sessions,this.guard=$.guard,this.process=$.process??AH$,this.idGenerator=$.idGenerator??PH$,this.logger=$.logger,this.dir=$.dir,Object.freeze(this)}async launch($){let v=this.channels.get($.channel)??this.channels.getById($.channel);if(!v)throw Error(`channel "${$.channel}" not found`);if($.profileId&&this.guard.isRunning($.profileId))throw Error(`profile "${$.profileId}" is already running`);let U=$.cwd??globalThis.process.cwd();if(($.installMcp??!0)&&!this.mcp.findInstalledName(U))this.mcp.install(U),this.logger?.info("added funnel MCP to .mcp.json",{cwd:U});if(!this.gateway.isRunning()){if(this.logger?.info("starting gateway automatically"),!await this.gateway.start())throw Error(`gateway failed to start on port ${Q6()}; another funnel daemon (a different repo/scope) may already hold it. See 'fnl gateway logs' and 'ps -o pid,args= | grep funnel-gateway'.`)}if($.profileId)this.guard.acquire($.profileId);let D=($.resume??!1)&&$.profileId?this.resolveSession($.profileId,U,$.userArgs??[],$.env??{}):null,u=this.buildArgs($.options??[],$.userArgs??[],U,D),w=this.buildEnv(v.id,$.env??{});this.logger?.info("claude launch",{channel:$.channel,channelId:v.id,cwd:U});try{return await this.process.attach(["claude",...u],{cwd:U,env:w,onSpawned:$.onSpawned})}finally{if($.profileId)this.guard.release($.profileId)}}buildArgs($,v,U,I){let b=[...$,...v];if(I!==null)if(I.mode==="resume")b.push("--resume",I.id);else b.push("--session-id",I.id);let D=this.mcp.findInstalledName(U);if(D&&!b.includes("--dangerously-load-development-channels")&&!b.includes("--channels"))b.push("--dangerously-load-development-channels",`server:${D}`);return b}resolveSession($,v,U,I){for(let u of U){if(u==="-c"||u==="--continue")return null;if(u==="--resume"||u.startsWith("--resume="))return null;if(u==="--session-id"||u.startsWith("--session-id="))return null}let b=this.sessions.getSessionId($);if(b!==null&&this.sessions.sessionFileExists(v,b,I))return{id:b,mode:"resume"};let D=this.idGenerator.generate();return this.sessions.setSessionId($,D),{id:D,mode:"new"}}buildEnv($,v){let U={};for(let[I,b]of Object.entries(v))U[I]=b;for(let[I,b]of Object.entries(globalThis.process.env))if(typeof b==="string")U[I]=b;if(U.FUNNEL_CHANNEL_ID=$,U.FUNNEL_PORT=String(Q6()),this.dir!==void 0)U.FUNNEL_DIR=this.dir;return U}}import{join as fl}from"path";var jH$=new d$,NH$=new $v;class bG{fs;process;pidDir;constructor($={}){this.fs=$.fs??jH$,this.process=$.process??NH$,this.pidDir=fl($.dir??B4,"claude"),Object.freeze(this)}isRunning($){let v=this.readRecord($);if(!v)return!1;if(!this.process.isAlive(v.pid))return this.release($),!1;if(v.startTime!==null){let U=this.process.getStartTime(v.pid);if(U===null)return this.release($),!1;if(U!==v.startTime)return this.release($),!1}return!0}acquire($){this.fs.mkdirSync(this.pidDir,{recursive:!0});let v=globalThis.process.pid,U=this.process.getStartTime(v),I={pid:v,startTime:U};this.fs.writeFileSync(this.pidPath($),JSON.stringify(I)),globalThis.process.once("exit",()=>this.release($))}release($){let v=this.pidPath($);if(this.fs.existsSync(v))this.fs.unlink(v)}pidPath($){return fl(this.pidDir,`${$}.pid`)}readRecord($){let v=this.pidPath($);if(!this.fs.existsSync(v))return null;try{let U=this.fs.readFileSync(v).trim();if(!U)return null;if(U.startsWith("{")){let b=JSON.parse(U),D=typeof b.pid==="number"?b.pid:Number(b.pid);if(!Number.isInteger(D)||D<=0)return null;let u=typeof b.startTime==="string"?b.startTime:null;return{pid:D,startTime:u}}let I=Number(U);if(!I||I<=0)return null;return{pid:I,startTime:null}}catch{return null}}}import{existsSync as uG,readFileSync as _H$}from"fs";import{join as wG}from"path";var hA=($)=>typeof $==="string"&&$.length>0?$:null,UG=($)=>typeof $==="number"?$:null,IG=($,v)=>typeof $==="string"?$:v,SH$=($)=>$!==null&&typeof $==="object"&&!Array.isArray($),hl=($)=>{if($===null)return null;try{let v=JSON.parse($);if(SH$(v))return v}catch{return null}return null},yl=($,v)=>$.length<=v?$:`${$.slice(0,v)}\u2026`,MH$=($)=>{if(typeof $!=="string"||$.length===0)return null;let v=hl($);if(v!==null&&"text"in v)return yl(String(v.text),60);return yl($,60)},gu=($)=>{let v=hA($.payload);return{seq:UG($.seq),ts:UG($.ts),type:IG($.type,"?"),outcome:IG($.outcome,"?"),eventId:hA($.event_id),payload:v,payloadParsed:hl(v),preview:MH$($.payload)}},DG=($)=>({seq:UG($.seq),ts:UG($.ts),type:IG($.type,"?"),status:IG($.status,"?"),detail:hA($.detail)}),A4=($,v,U)=>{try{return $.query(v,U)}finally{$.close()}};var FH$=($)=>{if($===null||typeof $!=="object")return!1;if(!("clients"in $)||!Array.isArray($.clients))return!1;if(!("listeners"in $)||!Array.isArray($.listeners))return!1;return!0},ZH$=($,v)=>{if(v===null)return;return $.connectors?.find((U)=>U.id===v)?.name},ml=3,TH$=($)=>{let U=($.connectionErrors[$.connectionErrors.length-1]??null)?.detail??null,I=$.channel;if(!$.gateway.running)return{status:"error",message:"gateway is not running",nextActions:["fnl gateway start"],rootCause:null};if($.gateway.statusError!==null)return{status:"error",message:`gateway running but status probe failed: ${$.gateway.statusError}`,nextActions:["fnl gateway restart"],rootCause:$.gateway.statusError};if($.configuredConnectors>$.listeners.length)return{status:"error",message:`${$.configuredConnectors} connector(s) configured but ${$.listeners.length} registered with supervisor`,nextActions:["fnl gateway restart"],rootCause:"supervisor missing listeners declared in settings.json"};if($.configuredConnectors===0)return{status:"warn",message:"no connectors configured on this channel",nextActions:[`fnl channels ${I} connectors add <name> --type=slack ...`],rootCause:null};let b=$.connectionErrors.filter((X)=>X.status==="auth-failed");if(b.length>0){let X=b[b.length-1]?.detail??null;return{status:"error",message:"connector credentials rejected (auth-failed)",nextActions:[`fnl channels ${I} connectors set <connector> --bot-token=<new>`,"fnl gateway restart"],rootCause:X??"token rejected by upstream auth.test"}}let D=$.listeners.every((X)=>!X.alive),u=$.listeners.some((X)=>!X.alive);if(D)return{status:"error",message:"all listeners are dead",nextActions:["fnl doctor --fix","fnl doctor --fix --aggressive"],rootCause:U};if(u)return{status:"warn",message:"some listeners are dead",nextActions:["fnl doctor --fix"],rootCause:U};let w=$.listeners.filter((X)=>X.errors>=ml);if(w.length>0)return{status:"warn",message:`listener(s) flapping (\u2265${ml} errors): ${w.map((X)=>X.name).join(", ")}`,nextActions:["fnl gateway logs"],rootCause:U};if($.claudeClients===0)return{status:"warn",message:"no Claude connected to this channel",nextActions:[`fnl claude --channel ${I}`],rootCause:null};if($.listeners.some((X)=>X.errors>0))return{status:"warn",message:"listeners have errors",nextActions:["fnl gateway logs"],rootCause:U};let J=kH$($);if(J!==null)return J;return{status:"ok",message:"everything looks healthy",nextActions:[],rootCause:null}},kH$=($)=>{if(!$.listeners.some((D)=>D.type==="slack")||$.recentEvents.length===0)return null;let U=$.recentEvents.filter((D)=>D.type==="slack").map((D)=>D.payloadParsed?.type);if(U.length===0)return null;let I=U.includes("app_mention"),b=U.includes("message");if(!I||b)return null;return{status:"warn",message:"Slack is only delivering app_mention events; unmentioned thread replies may not arrive",nextActions:["Add Slack bot events: message.channels, message.groups, message.im, message.mpim; reinstall the app; then restart the gateway"],rootCause:"Slack Event Subscriptions likely omit message.* events"}};class mA{props;constructor($){this.props=$;Object.freeze(this)}async diagnose($){let v=this.props.channels.list(),U=$?v.find((D)=>D.name===$)??null:v[0]??null;if(!U)return null;let I=await this.fetchGatewayStatus(),b=this.resolveStore();return this.buildChannelDiagnosis(U,I,b,5)}async diagnoseAll(){let $=this.props.channels.list(),v=await this.fetchGatewayStatus(),U=this.resolveStore(),I=await Promise.all($.map((g)=>this.buildChannelDiagnosis(g,v,U,5))),b=I.filter((g)=>g.diagnosis.status==="error").map((g)=>g.channel),D=I.filter((g)=>g.diagnosis.status==="warn").map((g)=>g.channel),u=I.filter((g)=>g.diagnosis.status==="ok").map((g)=>g.channel),w=[...new Set(I.flatMap((g)=>g.diagnosis.nextActions))];return{summary:{total:I.length,ok:u.length,warn:D.length,error:b.length,criticalChannels:b,warnChannels:D,suggestedActions:w},channels:I}}async recentEvents($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=new Vv(I.store),D=`SELECT seq, ts, type, outcome, payload, event_id FROM processed ${I.whereClause} ORDER BY seq DESC LIMIT ?`,u=A4(b,D,[...I.params,U]);if(u instanceof Error)return[];return u.reverse().map(gu)}async droppedEvents($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=I.whereClause?`${I.whereClause} AND outcome LIKE 'skip:%'`:"WHERE outcome LIKE 'skip:%'",D=new Vv(I.store),u=`SELECT seq, ts, type, outcome, payload, event_id FROM processed ${b} ORDER BY seq DESC LIMIT ?`,w=A4(D,u,[...I.params,U]);if(w instanceof Error)return[];return w.reverse().map(gu)}async rawEvents($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=new Vv(I.store),D=`SELECT seq, ts, type, '' AS outcome, payload, event_id FROM raw ${I.whereClause} ORDER BY seq DESC LIMIT ?`,u=A4(b,D,[...I.params,U]);if(u instanceof Error)return[];return u.reverse().map(gu)}async connectionErrors($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=I.whereClause?`${I.whereClause} AND status IN ('auth-failed','error')`:"WHERE status IN ('auth-failed','error')",D=new Vv(I.store),u=`SELECT seq, ts, type, status, detail FROM connection ${b} ORDER BY seq DESC LIMIT ?`,w=A4(D,u,[...I.params,U]);if(w instanceof Error)return[];return w.reverse().map(DG)}async connectionTimeline($,v={}){let U=v.limit??20,I=this.resolveScope($,v.connector);if(I===null)return[];let b=new Vv(I.store),D=`SELECT seq, ts, type, status, detail FROM connection ${I.whereClause} ORDER BY seq DESC LIMIT ?`,u=A4(b,D,[...I.params,U]);if(u instanceof Error)return[];return u.reverse().map(DG)}async recentLogs($={}){let v=$.limit??200,U=wG(this.props.tmpDir,"funnel.log");if(!uG(U))return{lines:[],path:null,truncated:!1};let I;try{I=_H$(U,"utf-8")}catch(J){return{lines:[`(read failed: ${T$(J)})`],path:U,truncated:!1}}let b=I.split(`
|
|
1686
|
+
`).filter((J)=>J.length>0),D=$.grep?.toLowerCase(),u=D?b.filter((J)=>J.toLowerCase().includes(D)):b,w=u.length>v;return{lines:w?u.slice(u.length-v):u,path:U,truncated:w}}async replay($,v){let I=this.props.channels.list().find((z)=>z.name===$);if(!I)return{state:"not-found"};let b=this.resolveStore();if(!b)return{state:"error",reason:"no diagnostic store yet"};let D=new Vv(b),u=v!==void 0?A4(D,"SELECT seq, event_id, type, payload, connector_id, channel_id FROM processed WHERE channel_id = ? AND seq = ? LIMIT 1",[I.id,v]):A4(D,"SELECT seq, event_id, type, payload, connector_id, channel_id FROM processed WHERE channel_id = ? AND outcome LIKE 'emitted%' ORDER BY seq DESC LIMIT 1",[I.id]);if(u instanceof Error)return{state:"error",reason:u.message};let w=u[0];if(!w)return{state:"not-found"};let g=typeof w.seq==="number"?w.seq:null,J=typeof w.event_id==="string"?w.event_id:null,X=typeof w.connector_id==="string"?w.connector_id:null,W=typeof w.payload==="string"?w.payload:null;if((!W||W.length===0)&&J){let z=A4(new Vv(b),"SELECT payload FROM raw WHERE event_id = ? LIMIT 1",[J]),Q=z instanceof Error?null:z[0];if(Q)W=typeof Q.payload==="string"?Q.payload:null}if(!W)return{state:"error",reason:"event has no payload to replay"};let G=ZH$(I,X),O=await this.props.publisher.publish(I.name,{content:W,connector:G});if(O.state==="offline")return{state:"offline"};if(O.state==="error")return{state:"error",reason:O.reason};return{state:"ok",seq:g,offset:O.offset,preview:W.slice(0,60)}}resolveStore(){let $=this.props.tmpDir,v=wG($,"connector-raw.db"),U=wG($,"connector-processed.db"),I=wG($,"connector-connection.db");if(!uG(v)||!uG(U)||!uG(I))return null;return{rawPath:v,processedPath:U,connectionPath:I}}resolveChannelId($){if(!$)return null;return this.props.channels.list().find((U)=>U.name===$)?.id??null}resolveScope($,v){let U=this.resolveStore();if(!U)return null;if(!$)return{store:U,whereClause:"",params:[]};let b=this.props.channels.list().find((u)=>u.name===$)??null;if(!b)return null;if(!v)return{store:U,whereClause:"WHERE channel_id = ?",params:[b.id]};let D=b.connectors?.find((u)=>u.name===v)?.id??null;if(!D)return null;return{store:U,whereClause:"WHERE channel_id = ? AND connector_id = ?",params:[b.id,D]}}async fetchGatewayStatus(){let $=this.props.gateway.getStatus();if(!$.running)return{body:null,error:null};let v=this.props.gatewayToken.read(),U=v?{Authorization:`Bearer ${v}`}:{},I=null;try{I=await Qv(`${Gv($.port)}/status`,{headers:U})}catch(D){return{body:null,error:`fetch failed: ${T$(D)}`}}if(!I.ok)return{body:null,error:`gateway /status returned ${I.status}`};let b;try{b=await I.json()}catch(D){return{body:null,error:`gateway /status body parse failed: ${T$(D)}`}}if(!FH$(b))return{body:null,error:"gateway /status returned an unrecognized shape"};return{body:b,error:null}}async buildChannelDiagnosis($,v,U,I){let b=this.props.gateway.getStatus(),D=$.name,u=v.body,w={channel:D,channelId:$.id,gateway:{running:b.running,pid:b.pid,port:b.running?b.port:null,uptimeMs:u?.uptimeMs??null,statusError:v.error},configuredConnectors:$.connectors?.length??0,listeners:[],claudeClients:0,recentEvents:[],connectionErrors:[]};if(u)w.listeners=u.listeners.filter((g)=>g.channelName===D).map((g)=>({name:g.name,type:g.type,alive:g.alive,events:g.events,errors:g.errors,lastEventAt:g.lastEventAt})),w.claudeClients=u.clients.filter((g)=>g.channelName===D).length;if(U){let g=A4(new Vv(U),"SELECT seq, ts, type, outcome, payload FROM processed WHERE channel_id = ? ORDER BY seq DESC LIMIT ?",[$.id,I]);if(!(g instanceof Error))w.recentEvents=g.reverse().map(gu);let J=A4(new Vv(U),"SELECT ts, type, status, detail FROM connection WHERE channel_id = ? AND status IN ('auth-failed','error') ORDER BY seq DESC LIMIT 3",[$.id]);if(!(J instanceof Error))w.connectionErrors=J.reverse().map(DG)}return{...w,diagnosis:TH$(w)}}}class cA{props;constructor($){this.props=$;Object.freeze(this)}async run($="off"){if($==="off"){let w=await this.props.diagnostics.diagnoseAll();return this.buildReport({before:null,after:w,appliedActions:[],fixFailed:!1})}let v=await this.props.diagnostics.diagnoseAll(),U=[],I=!1;if(v.channels.some((w)=>w.diagnosis.status==="error"&&!w.gateway.running)){let w=await this.props.recovery.ensureGatewayRunning();if(U.push(...w.actions),!w.ok)I=!0}if(v.channels.some((w)=>w.listeners.some((g)=>!g.alive))){let w=await this.props.recovery.restartAllDeadListeners();if(U.push(...w.actions),!w.ok&&w.actions.length===0)I=!0}if($==="aggressive"){if((await this.props.diagnostics.diagnoseAll()).channels.some((J)=>J.diagnosis.status==="error")){let J=await this.props.recovery.restartGateway();if(U.push(...J.actions),!J.ok)I=!0}}let u=await this.props.diagnostics.diagnoseAll();return this.buildReport({before:v,after:u,appliedActions:U,fixFailed:I})}buildReport($){let v=$.after.channels.filter((b)=>b.diagnosis.status!=="ok").map((b)=>({channel:b.channel,diagnosis:b.diagnosis})),U=$.fixFailed?"error":v.length===0?"ok":"warn",I=EH$({mode:$.before===null?"off":"fix",status:U,appliedCount:$.appliedActions.length,remainingCount:v.length});return{status:U,message:I,before:$.before,after:$.after,appliedActions:$.appliedActions,remainingIssues:v}}}var EH$=($)=>{if($.mode==="off"){if($.remainingCount===0)return"all channels healthy";return`${$.remainingCount} channel(s) need attention \u2014 run \`fnl doctor --fix\` to apply suggested fixes`}if($.status==="error")return"one or more fix steps failed \u2014 check fnl gateway logs";if($.status==="ok")return`applied ${$.appliedCount} fix(es), all channels healthy`;return`applied ${$.appliedCount} fix(es), ${$.remainingCount} channel(s) still need attention`};function oA($){if($.env!==void 0)return{botTokenEnv:$.env};if($.literal!==void 0)return{botToken:$.literal};return{}}function cl($){if($.env!==void 0)return{appTokenEnv:$.env};if($.literal!==void 0)return{appToken:$.literal};return{}}class tA{channels;prompter;constructor($){this.channels=$.channels,this.prompter=$.prompter,Object.freeze(this)}async ensure($){if(!this.channels.get($.name))this.channels.add({name:$.name});if($.connectors===void 0)return{touched:[],removed:[]};let U=[],I=new Set;for(let D of $.connectors){let u=await this.ensureConnector($.name,D);U.push({name:u.name,changed:u.changed}),I.add(u.id)}let b=this.removeExtras($.name,I);return{touched:U,removed:b}}async ensureConnector($,v){if(v.type==="slack")return await this.ensureSlack($,v);if(v.type==="discord")return await this.ensureDiscord($,v);if(v.type==="gh")return this.ensureGh($,v);return this.ensureSchedule($,v)}async ensureSlack($,v){let U=this.findExistingSlack($,v.name),I=await this.resolveSlot({label:`${v.name}.botToken`,existingLiteral:U?.botToken,existingEnv:U?.botTokenEnv}),b=await this.resolveSlot({label:`${v.name}.appToken`,existingLiteral:U?.appToken,existingEnv:U?.appTokenEnv}),D={botToken:I.token,botTokenEnv:I.tokenEnv,appToken:b.token,appTokenEnv:b.tokenEnv};if(U){if(!(U.botToken===I.token&&U.botTokenEnv===I.tokenEnv&&U.appToken===b.token&&U.appTokenEnv===b.tokenEnv))return this.channels.updateSlackConnector($,v.name,D),{id:U.id,name:v.name,changed:!0};return{id:U.id,name:v.name,changed:!1}}return{id:this.channels.addConnector($,{type:"slack",name:v.name,...oA({literal:I.token,env:I.tokenEnv}),...cl({literal:b.token,env:b.tokenEnv}),...v.minify!==void 0?{minify:v.minify}:{}}).id,name:v.name,changed:!0}}async ensureDiscord($,v){let U=this.findExistingDiscord($,v.name),I=await this.resolveSlot({label:`${v.name}.botToken`,existingLiteral:U?.botToken,existingEnv:U?.botTokenEnv}),b={botToken:I.token,botTokenEnv:I.tokenEnv};if(U){if(U.botToken!==I.token||U.botTokenEnv!==I.tokenEnv)return this.channels.updateDiscordConnector($,v.name,b),{id:U.id,name:v.name,changed:!0};return{id:U.id,name:v.name,changed:!1}}return{id:this.channels.addConnector($,{type:"discord",name:v.name,...oA({literal:I.token,env:I.tokenEnv})}).id,name:v.name,changed:!0}}ensureGh($,v){let U=this.channels.getConnector($,v.name);if(U&&U.type!=="gh")throw Error(`connector "${v.name}" exists in channel "${$}" with type "${U.type}", funnel.json declares "gh"`);if(U&&U.type==="gh"){let b=$6.parse(U);if(v.pollInterval!==void 0&&b.pollInterval!==v.pollInterval)return this.channels.updateGhConnector($,v.name,{pollInterval:v.pollInterval}),{id:b.id,name:v.name,changed:!0};return{id:b.id,name:v.name,changed:!1}}return{id:this.channels.addConnector($,{type:"gh",name:v.name,...v.pollInterval!==void 0?{pollInterval:v.pollInterval}:{}}).id,name:v.name,changed:!0}}ensureSchedule($,v){let U=this.channels.getConnector($,v.name);if(U&&U.type!=="schedule")throw Error(`connector "${v.name}" exists in channel "${$}" with type "${U.type}", funnel.json declares "schedule"`);if(U&&U.type==="schedule")return{id:U.id,name:v.name,changed:!1};return{id:this.channels.addConnector($,{type:"schedule",name:v.name}).id,name:v.name,changed:!0}}findExistingSlack($,v){let U=this.channels.getConnector($,v);if(!U)return null;if(U.type!=="slack")throw Error(`connector "${v}" exists in channel "${$}" with type "${U.type}", funnel.json declares "slack"`);return v6.parse(U)}findExistingDiscord($,v){let U=this.channels.getConnector($,v);if(!U)return null;if(U.type!=="discord")throw Error(`connector "${v}" exists in channel "${$}" with type "${U.type}", funnel.json declares "discord"`);return t4.parse(U)}removeExtras($,v){let U=this.channels.get($);if(!U)return[];let I=U.connectors.filter((b)=>!v.has(b.id));for(let b of I)this.channels.removeConnector($,b.name);return I.map((b)=>b.name)}async resolveSlot($){if($.existingEnv!==void 0)return{token:void 0,tokenEnv:$.existingEnv};if($.existingLiteral!==void 0)return{token:$.existingLiteral,tokenEnv:void 0};return{token:await this.prompter.promptSecret($.label),tokenEnv:void 0}}}import{homedir as RH$}from"os";import{join as ol}from"path";var nH$=new d$;class dA{store;idGenerator;fs;constructor($){this.store=$.store,this.idGenerator=$.idGenerator,this.fs=$.fs??nH$,Object.freeze(this)}list(){return this.store.read().profiles}get($){return this.list().find((v)=>v.name===$)??null}getById($){return this.list().find((v)=>v.id===$)??null}getDefault(){return this.list()[0]??null}add($){this.store.update((v)=>{if(v.profiles.some((U)=>U.name===$.name))throw Error(`profile "${$.name}" already exists`);if(!v.channels.some((U)=>U.id===$.channelId))throw Error(`channel id "${$.channelId}" not found`);v.profiles.push({id:this.idGenerator.generate(),name:$.name,path:$.path,channelId:$.channelId,options:$.options??[],env:$.env??{},resume:$.resume??!0})})}remove($){this.store.update((v)=>{let U=v.profiles.findIndex((I)=>I.name===$);if(U<0)throw Error(`profile "${$}" not found`);v.profiles.splice(U,1)})}rename($,v){this.store.update((U)=>{let I=U.profiles.find((b)=>b.name===$);if(!I)throw Error(`profile "${$}" not found`);if(U.profiles.some((b)=>b.name===v))throw Error(`profile "${v}" already exists`);I.name=v})}asDefault($){this.store.update((v)=>{let U=v.profiles.findIndex((b)=>b.name===$);if(U<0)throw Error(`profile "${$}" not found`);if(U===0)return;let[I]=v.profiles.splice(U,1);if(!I)return;v.profiles.unshift(I)})}hasChannelRef($){return this.store.read().profiles.some((v)=>v.channelId===$)}getSessionId($){return this.getById($)?.sessionId??null}setSessionId($,v){this.store.update((U)=>{let I=U.profiles.find((b)=>b.id===$);if(!I)throw Error(`profile id "${$}" not found`);I.sessionId=v})}sessionFileExists($,v,U){let I=U.CLAUDE_CONFIG_DIR??globalThis.process.env.CLAUDE_CONFIG_DIR??ol(RH$(),".claude"),b=$.replace(/\//g,"-"),D=ol(I,"projects",b,`${v}.jsonl`);if(!this.fs.existsSync(D))return!1;return this.fs.readFileSync(D).trim().length>0}update($,v){this.store.update((U)=>{let I=U.profiles.find((b)=>b.name===$);if(!I)throw Error(`profile "${$}" not found`);if(v.channelId!==void 0){if(!U.channels.some((b)=>b.id===v.channelId))throw Error(`channel id "${v.channelId}" not found`);I.channelId=v.channelId}if(v.path!==void 0)I.path=v.path;if(v.options!==void 0)I.options=v.options;if(v.env!==void 0)I.env=v.env;if(v.resume!==void 0)I.resume=v.resume})}}class pA{props;constructor($){this.props=$;Object.freeze(this)}async ensureGatewayRunning(){if(this.props.gateway.isRunning())return{ok:!0,actions:[{kind:"gateway:already-running"}],message:"gateway is already running"};if(!await this.props.gateway.start())return{ok:!1,actions:[],message:"gateway failed to start \u2014 check `fnl gateway logs`"};return{ok:!0,actions:[{kind:"gateway:started"}],message:"gateway started"}}async restartGateway(){if(!(await this.props.gateway.restart()).ok)return{ok:!1,actions:[],message:"gateway restart failed \u2014 check `fnl gateway logs`"};return{ok:!0,actions:[{kind:"gateway:restarted"}],message:"gateway restarted"}}async restartListener($,v){let U=await this.props.listeners.restart($,v);if(U.state==="offline")return{ok:!1,actions:[],message:"gateway is not running \u2014 call ensureGatewayRunning() first"};if(U.state==="not-found")return{ok:!1,actions:[{kind:"listener:skipped",channel:$,connector:v,reason:"not-found"}],message:`listener not found: ${$}/${v}`};if(U.state==="error")return{ok:!1,actions:[{kind:"listener:skipped",channel:$,connector:v,reason:U.reason}],message:`listener restart failed: ${U.reason}`};return{ok:!0,actions:[{kind:"listener:restarted",channel:$,connector:v}],message:`restarted ${$}/${v}`}}async restartAllDeadListeners(){let $=await this.props.listeners.list();if($.state==="offline")return{ok:!1,actions:[],message:"gateway is not running \u2014 call ensureGatewayRunning() first"};if($.state==="error")return{ok:!1,actions:[],message:`could not list listeners: ${$.reason}`};let v=$.listeners.filter((b)=>!b.alive);if(v.length===0)return{ok:!0,actions:[],message:"no dead listeners found"};let U=[];for(let b of v){let D=await this.props.listeners.restart(b.channelName,b.name);if(D.state==="ok")U.push({kind:"listener:restarted",channel:b.channelName,connector:b.name});else{let u=D.state==="error"?D.reason:D.state;U.push({kind:"listener:skipped",channel:b.channelName,connector:b.name,reason:u})}}let I=U.filter((b)=>b.kind==="listener:restarted").length;return{ok:I>0,actions:U,message:`restarted ${I}/${v.length} dead listener(s)`}}}import{stderr as gG,stdin as f4}from"process";class Ju{}var rH$="*",CH$="\r",tl=`
|
|
1687
|
+
`,iH$=String.fromCharCode(8),xH$=String.fromCharCode(127),lH$=String.fromCharCode(3),fH$=String.fromCharCode(4);class aA extends Ju{async promptSecret($){if(!f4.isTTY)throw Error(`cannot prompt for "${$}": stdin is not a TTY. Set the matching env var or run \`fnl channels <ch> connectors add ...\` first.`);gG.write(`${$}: `);let v=f4.isRaw;f4.setRawMode(!0),f4.resume();try{return await this.readSecret()}finally{f4.setRawMode(v),f4.pause(),gG.write(tl)}}readSecret(){return new Promise(($,v)=>{let U="",I=(b)=>{for(let D of b){let u=String.fromCharCode(D);if(u===tl||u===CH$){f4.off("data",I),$(U);return}if(u===lH$){f4.off("data",I),v(Error("prompt cancelled"));return}if(u===fH$){if(f4.off("data",I),U.length===0)v(Error("prompt cancelled"));else $(U);return}if(u===iH$||u===xH$){if(U.length>0)U=U.slice(0,-1),gG.write("\b \b");continue}U+=u,gG.write(rH$)}};f4.on("data",I)})}}var yH$=384;class eA extends N0{dirs;files;mtimes;modes;now;constructor($={}){super();this.dirs=new Set($.dirs??[]),this.files=new Map(Object.entries($.files??{})),this.mtimes=new Map(Object.entries($.mtimes??{})),this.modes=new Map(Object.entries($.modes??{})),this.now=$.now??(()=>Date.now())}existsSync($){return this.dirs.has($)||this.files.has($)}readFileSync($){return this.files.get($)??""}writeFileSync($,v){this.files.set($,v),this.touch($)}writeSecretFileSync($,v){this.files.set($,v),this.modes.set($,yH$),this.touch($)}appendFileSync($,v){let U=this.files.get($)??"";this.files.set($,U+v),this.touch($)}unlink($){this.files.delete($),this.mtimes.delete($),this.modes.delete($)}mkdirSync($,v){this.dirs.add($)}readdirSync($){let v=$.endsWith("/")?$:`${$}/`,U=[];for(let I of this.files.keys()){if(!I.startsWith(v))continue;let b=I.slice(v.length);if(!b.includes("/"))U.push(b)}return U}statSync($){let v=this.mtimes.get($);if(v===void 0)throw Error(`not found: ${$}`);return{mtimeMs:v,mode:this.modes.get($)??null}}withFileLock($,v){return v()}setMtime($,v){this.mtimes.set($,v)}setMode($,v){this.modes.set($,v)}touch($){if(!this.mtimes.has($))this.mtimes.set($,this.now());else this.mtimes.set($,this.now())}}class sA extends vu{counter=0;prefix;constructor($={}){super();this.prefix=$.prefix??"id"}generate(){return this.counter++,`${this.prefix}-${this.counter}`}}class $P extends Iu{file=null;entries=[];info($,v){this.entries.push({level:"info",message:$,meta:v})}warn($,v){this.entries.push({level:"warn",message:$,meta:v})}error($,v){this.entries.push({level:"error",message:$,meta:v})}clear(){this.entries.length=0}}var dl={exitCode:0,stdout:"",stderr:""};class vP extends P0{calls=[];killed=[];handler=()=>dl;syncHandler=()=>dl;aliveStub=null;listStub=null;startTimeStub=null;on($){return this.handler=$,this}onSync($){return this.syncHandler=$,this}onIsAlive($){return this.aliveStub=$,this}onListProcessesContaining($){return this.listStub=$,this}onGetStartTime($){return this.startTimeStub=$,this}async run($,v={}){this.calls.push({kind:"run",command:$,options:v});let U=await this.handler($);return{exitCode:U.exitCode??0,stdout:U.stdout??"",stderr:U.stderr??""}}runSync($){this.calls.push({kind:"runSync",command:$});let v=this.syncHandler($);return{exitCode:v.exitCode??0,stdout:v.stdout??"",stderr:v.stderr??""}}async attach($,v={}){if(this.calls.push({kind:"attach",command:$,options:v}),v.onSpawned)v.onSpawned(1);return(await this.handler($)).exitCode??0}detach($,v={}){this.calls.push({kind:"detach",command:$,options:v})}kill($,v="SIGTERM"){this.calls.push({kind:"kill",command:[String($),v]}),this.killed.push({pid:$,signal:v})}isAlive($){if(this.aliveStub)return this.aliveStub($);let v=this.syncHandler(["ps","-p",String($),"-o","state="]);if((v.exitCode??0)!==0)return!1;let U=(v.stdout??"").trim();if(!U)return!1;return!U.startsWith("Z")}listProcessesContaining($){if(this.listStub)return this.listStub($);return[]}getStartTime($){if(this.startTimeStub)return this.startTimeStub($);return null}}var hH$=($={})=>({version:z6,channels:[],profiles:[],...$});class bP extends bu{state;constructor($){super();this.state=hH$($)}read(){return this.state}write($){this.state=$}update($){return $(this.state)}}class UP extends wu{current;constructor($={}){super();this.current=$.start??new Date(0)}now(){return new Date(this.current.getTime())}set($){this.current=$}advance($){this.current=new Date(this.current.getTime()+$)}}class IP extends i1{calls=[];handler=()=>({status:200,body:""});on($){return this.handler=$,this}async fetch($){this.calls.push($);let v=await this.handler($),U=v.status??200,I=v.body??"";return{status:U,ok:U>=200&&U<300,text:async()=>I,json:async()=>JSON.parse(I)}}}class DP extends Ju{answers;asked=[];constructor($={}){super();this.answers=new Map(Object.entries($.answers??{}))}async promptSecret($){this.asked.push($);let v=this.answers.get($);if(v===void 0)throw Error(`no answer seeded for prompt "${$}"`);return v}}var mH$=["started","connected","disconnected","auth-failed","stopped","error"],Nl$=H.object({event_id:H.string(),type:H.string(),connector_id:H.string().nullable(),channel_id:H.string().nullable(),payload:H.string()}),Sl$=H.object({event_id:H.string(),type:H.string(),connector_id:H.string().nullable(),channel_id:H.string().nullable(),outcome:H.string(),payload:H.string()}),Ml$=H.object({type:H.string(),connector_id:H.string().nullable(),channel_id:H.string().nullable(),status:H.enum(mH$),detail:H.string()});class uP{}class JP extends uP{now;raws=[];processeds=[];connections=[];constructor($=()=>Date.now()){super();this.now=$;Object.freeze(this)}recordRaw($){this.raws.push({...$,seq:this.raws.length+1,ts:this.now()})}recordProcessed($){this.processeds.push({...$,seq:this.processeds.length+1,ts:this.now()})}recordConnection($){this.connections.push({...$,seq:this.connections.length+1,ts:this.now()})}queryRaw($){let v=this.raws.filter((U)=>wP(U,$));return gP(v,$.limit)}queryProcessed($){let v=this.processeds.filter((U)=>{if(!wP(U,$))return!1;if($.outcome!==void 0&&U.outcome!==$.outcome)return!1;return!0});return gP(v,$.limit)}queryConnection($){let v=this.connections.filter((U)=>{if(!wP(U,$))return!1;if($.status!==void 0&&U.status!==$.status)return!1;return!0});return gP(v,$.limit)}clear(){this.raws.length=0,this.processeds.length=0,this.connections.length=0}close(){}}var wP=($,v)=>{if(v.type!==void 0&&$.type!==v.type)return!1;if(v.connectorId!==void 0&&$.connectorId!==v.connectorId)return!1;if(v.channelId!==void 0&&$.channelId!==v.channelId)return!1;return!0},gP=($,v)=>{if(v===void 0)return $;if(v<=0)return[];return $.slice(-v)};var pl=H.object({content:H.string().min(1),meta:H.record(H.string(),H.string()).optional(),connector:H.string().min(1).optional(),target:H.string().min(1).optional()}),al=H.object({ok:H.literal(!0),offset:H.number().int().nonnegative()});var cH$={state:"offline"};class XP{port;isDaemonRunning;getToken;constructor($){this.port=$.port,this.isDaemonRunning=$.isDaemonRunning,this.getToken=$.getToken??(()=>null),Object.freeze(this)}async publish($,v){if(!this.isDaemonRunning())return cH$;try{let U=`${Gv(this.port)}/channels/${encodeURIComponent($)}/publish`,I=await Qv(U,{method:"POST",headers:{...this.authHeaders(),"content-type":"application/json"},body:JSON.stringify(v)});if(!I.ok)return{state:"error",reason:await I.text()||`HTTP ${I.status}`};let b=al.safeParse(await I.json());if(!b.success)return{state:"error",reason:"malformed daemon response"};return{state:"ok",offset:b.data.offset}}catch(U){return{state:"error",reason:U instanceof Error?U.message:String(U)}}}authHeaders(){let $=this.getToken();return $?{authorization:`Bearer ${$}`}:{}}}import{join as el}from"path";import{existsSync as oH$}from"fs";import{dirname as tH$,resolve as WP}from"path";import{fileURLToPath as dH$}from"url";var JG=()=>{let $=tH$(dH$(import.meta.url)),v=[WP($,"./daemon.ts"),WP($,"./daemon.js"),WP($,"./gateway/daemon.js")];for(let U of v)if(oH$(U))return U;throw Error(`daemon script not found (looked in ${v.join(", ")})`)};var pH$=5000,aH$=2000,sl=100,eH$=200,sH$=new $v,$8$=new d$,v8$=new V6,b8$=($)=>new Promise((v)=>{setTimeout(v,$)});class GP{process;fs;clock;dir;pidFile;gatewayLog;tmpDir;port;sleep;constructor($={}){this.process=$.process??sH$,this.fs=$.fs??$8$,this.clock=$.clock??v8$,this.dir=$.dir??B4,this.tmpDir=$.tmpDir??Yv(),this.pidFile=el(this.dir,"gateway.pid"),this.gatewayLog=el(this.tmpDir,"gateway.log"),this.port=$.port??Q6(),this.sleep=$.sleep??b8$,Object.freeze(this)}isRunning(){let $=this.readPid();if(!$)return!1;return this.isProcessAlive($)}getStatus(){let $=this.readPid(),v=$!==null&&this.isProcessAlive($);return{running:v,pid:v?$:null,port:this.port}}async start($={}){if(this.isRunning())return!0;this.fs.mkdirSync(this.tmpDir,{recursive:!0});let v=JG(),U=this.buildStartCommand(v,$);this.process.detach(U,{env:{FUNNEL_DIR:this.dir},stdoutFile:this.gatewayLog,stderrFile:this.gatewayLog});let I=this.clock.millis()+pH$;while(this.clock.millis()<I){if(this.isRunning())return!0;await this.sleep(sl)}return this.isRunning()}buildStartCommand($,v={}){let U=`funnel-gateway[${this.dir}]`;if(v.caffeinate!==!1&&globalThis.process.platform==="darwin")return["caffeinate","-is","bun",$,U];return["bun",$,U]}async stop(){let $=this.readPid();if(!$)return!0;if(!this.isProcessAlive($))return this.removePid(),!0;try{this.process.kill($,"SIGTERM")}catch{return!1}let v=this.clock.millis()+aH$;while(this.clock.millis()<v){if(!this.isProcessAlive($))return this.removePid(),!0;await this.sleep(sl)}try{this.process.kill($,"SIGKILL")}catch{}return await this.sleep(eH$),this.removePid(),!this.isProcessAlive($)}async restart($={}){let v=this.isRunning();if($.onlyIfRunning&&!v)return{ok:!0,wasRunning:!1,stopped:!1,started:!1};let U=v?await this.stop():!0;if(!U)return{ok:!1,wasRunning:v,stopped:!1,started:!1};let I=await this.start({caffeinate:$.caffeinate});return{ok:I,wasRunning:v,stopped:U,started:I}}getGatewayLog(){return this.gatewayLog}getPort(){return this.port}readPid(){if(!this.fs.existsSync(this.pidFile))return null;try{let $=this.fs.readFileSync(this.pidFile).trim(),v=Number($);if(!v||v<=0)return null;return v}catch{return null}}removePid(){this.fs.unlink(this.pidFile)}isProcessAlive($){return this.process.isAlive($)}}import{existsSync as R8$,mkdirSync as n8$}from"fs";import{dirname as r8$,join as C8$}from"path";import{timingSafeEqual as U8$}from"crypto";var Xu=($)=>{return async(v,U)=>{let D=(v.req.header("authorization")??"").match(/^Bearer\s+(.+)$/i)?.[1]??"";if(!XG(D,$.expected))return v.text("unauthorized",401);return await U()}},XG=($,v)=>{let U=Buffer.from($,"utf-8"),I=Buffer.from(v,"utf-8"),b=Math.max(U.length,I.length,1),D=Buffer.alloc(b),u=Buffer.alloc(b);return U.copy(D),I.copy(u),U8$(D,u)&&U.length===I.length};var t$=ew();var $f=($)=>{let v=Buffer.byteLength($.content,"utf-8");if($.meta)for(let[U,I]of Object.entries($.meta))v+=Buffer.byteLength(U,"utf-8")+Buffer.byteLength(I,"utf-8");return v},I8$=1048576,D8$=200,u8$=4194304,w8$=()=>{};class OP{clients=new Map;subscribers=new Set;logger;onError;maxBufferedBytes;now;replayBufferSize;replayBufferMaxBytes;replayBuffer=[];persistentReplay;exclusiveCursor=new Map;replayBufferBytes=0;eventsBroadcast=0;droppedSlowClients=0;lastBroadcastAt=null;latestOffset=0;constructor($={}){this.logger=$.logger,this.onError=$.onError??w8$,this.maxBufferedBytes=$.maxBufferedBytes??I8$,this.now=$.now??(()=>Date.now()),this.replayBufferSize=Math.max(0,$.replayBufferSize??D8$),this.replayBufferMaxBytes=Math.max(0,$.replayBufferMaxBytes??u8$),this.persistentReplay=$.persistentReplay??null}getMetrics(){return{clients:this.clients.size,subscribers:this.subscribers.size,eventsBroadcast:this.eventsBroadcast,droppedSlowClients:this.droppedSlowClients,lastBroadcastAt:this.lastBroadcastAt?new Date(this.lastBroadcastAt).toISOString():null,latestOffset:this.latestOffset,oldestReplayableOffset:this.replayBuffer[0]?.offset??null}}replaySince($,v){let U=this.replayBuffer[0]?.offset,I=this.persistentReplay&&(U===void 0||$<U-1),b=this.replayBuffer.filter((g)=>g.offset>$&&this.matchesClient(g,v));if(!I)return b;let D=this.persistentReplay?this.persistentReplay.loadSince($).filter((g)=>this.matchesClient(g,v)):[],u=U??Number.POSITIVE_INFINITY;return[...D.filter((g)=>g.offset<u),...b]}matchesClient($,v){let U=$.meta?.target;if(U&&U!==v.subscriberId)return!1;let I=$.meta?.channelId;if(I&&I!==v.channel)return!1;let b=$.meta?.connector;if(!b)return!0;return v.connectors.includes(b)}pickRecipients($){let v=new Map,U=[];for(let[I,b]of this.clients){if(!this.matchesClient($,b))continue;if(b.delivery==="exclusive"){let D=v.get(b.channel)??[];D.push(I),v.set(b.channel,D);continue}U.push(I)}for(let[I,b]of v){if(b.length===0)continue;let D=this.exclusiveCursor.get(I)??0,u=b[D%b.length];if(u)U.push(u);this.exclusiveCursor.set(I,D+1)}return U}addClient($,v){this.clients.set($,v)}removeClient($){this.clients.delete($)}getClientCount(){return this.clients.size}listChannels(){return[...this.clients.values()].map(($)=>({...$}))}subscribe($){return this.subscribers.add($),()=>{this.subscribers.delete($)}}broadcast($,v){this.latestOffset+=1;let U={content:$,meta:v,offset:this.latestOffset},I=JSON.stringify(U),b=v?.connector;if(this.eventsBroadcast+=1,this.lastBroadcastAt=this.now(),this.replayBufferSize>0){let u=$f(U);this.replayBuffer.push(U),this.replayBufferBytes+=u;while((this.replayBuffer.length>this.replayBufferSize||this.replayBufferBytes>this.replayBufferMaxBytes)&&this.replayBuffer.length>0){let w=this.replayBuffer.shift();if(w)this.replayBufferBytes-=$f(w)}}let D=this.pickRecipients(U);for(let u of D){let w=u.getBufferedAmount();if(w>this.maxBufferedBytes){let g=this.clients.get(u);this.logger?.warn("dropping slow WS client (backpressure)",{channel:g?.channel,buffered:w,max:this.maxBufferedBytes});try{u.close(1009,"backpressure")}catch{}this.clients.delete(u),this.droppedSlowClients+=1;continue}try{u.send(I)}catch(g){let J=g instanceof Error?g:Error(String(g)),X=this.clients.get(u);this.logger?.warn("ws.send failed; dropping client",{channel:X?.channel,error:J.message}),this.clients.delete(u)}}for(let u of this.subscribers){let w=(g)=>{let J=g instanceof Error?g:Error(String(g));this.logger?.error("broadcast subscriber threw",{error:J.message}),this.onError(J,{component:"broadcaster.subscriber",offset:U.offset,connector:U.meta?.connector??null,channel:U.meta?.channel??null})};try{let g=u(U);if(g instanceof Promise)g.catch(w)}catch(g){w(g)}}return U}seedLatestOffset($){if($>this.latestOffset)this.latestOffset=$}}var bf$=H.object({type:H.string(),content:H.string(),channel_id:H.string().nullable(),connector_id:H.string().nullable(),meta:H.record(H.string(),H.string()).nullable()});class HP{}import{Database as g8$}from"bun:sqlite";import{existsSync as J8$,mkdirSync as X8$}from"fs";import{dirname as W8$}from"path";var G8$=/^[a-z_][a-z0-9_]*$/,O8$=500,H8$=new Set(["seq","ts","type","event"]),vf=[["CREATE TABLE IF NOT EXISTS logs (seq INTEGER PRIMARY KEY, ts INTEGER NOT NULL, type TEXT, event TEXT NOT NULL)","CREATE INDEX IF NOT EXISTS idx_logs_ts ON logs (ts)","CREATE INDEX IF NOT EXISTS idx_logs_type ON logs (type)"],["DROP TABLE IF EXISTS leuco_log","CREATE TABLE IF NOT EXISTS logs (seq INTEGER PRIMARY KEY, ts INTEGER NOT NULL, type TEXT, event TEXT NOT NULL)","CREATE INDEX IF NOT EXISTS idx_logs_ts ON logs (ts)","CREATE INDEX IF NOT EXISTS idx_logs_type ON logs (type)"]];class zP{db;maxRows;maxAgeMs;maxBytes;targetBytes;now;indexes;extractIndexes;insertStmt;insertWithSeqStmt;maxSeqStmt;countStmt;trimRowsStmt;trimAgeStmt;trimOldestStmt;insertsSinceByteCheck=0;constructor($){if($.path!==":memory:"){let D=W8$($.path);if(!J8$(D))X8$(D,{recursive:!0})}if(this.db=new g8$($.path),this.db.run("PRAGMA journal_mode = WAL"),this.migrate(),this.maxRows=$.maxRows??null,this.maxAgeMs=$.maxAgeMs??null,this.maxBytes=$.maxBytes??null,this.targetBytes=$.targetBytes??($.maxBytes!==void 0?Math.floor($.maxBytes/4):null),this.now=$.now??(()=>Date.now()),this.indexes=$.indexes??[],this.indexes.length>0)z8$(this.indexes),this.extractIndexes=$.extractIndexes??null,this.syncIndexColumns();else this.extractIndexes=null;let v=["ts","type","event",...this.indexes],U=v.map(()=>"?").join(", ");this.insertStmt=this.db.prepare(`INSERT INTO logs (${v.join(", ")}) VALUES (${U})`);let I=["seq",...v],b=I.map(()=>"?").join(", ");this.insertWithSeqStmt=this.db.prepare(`INSERT INTO logs (${I.join(", ")}) VALUES (${b})`),this.maxSeqStmt=this.db.prepare("SELECT COALESCE(MAX(seq), 0) AS max FROM logs"),this.countStmt=this.db.prepare("SELECT COUNT(*) AS n FROM logs"),this.trimRowsStmt=this.db.prepare("DELETE FROM logs WHERE seq <= (SELECT seq FROM logs ORDER BY seq DESC LIMIT 1 OFFSET ?)"),this.trimAgeStmt=this.db.prepare("DELETE FROM logs WHERE ts < ?"),this.trimOldestStmt=this.db.prepare("DELETE FROM logs WHERE seq IN (SELECT seq FROM logs ORDER BY seq ASC LIMIT ?)")}insert($){try{let v=this.buildInsertParams($.ts,$.event),U=this.insertStmt.run(...v),I=Number(U.lastInsertRowid);return this.trim(),{seq:I,ts:$.ts,event:$.event}}catch(v){return v instanceof Error?v:Error(String(v))}}insertMany($){if($.length===0)return[];try{let v=[];return this.db.transaction((I)=>{for(let b of I){let D=this.buildInsertParams(b.ts,b.event),u=this.insertStmt.run(...D);v.push({seq:Number(u.lastInsertRowid),ts:b.ts,event:b.event})}})($),this.trim(),v}catch(v){return v instanceof Error?v:Error(String(v))}}write($){try{let v=[$.seq,...this.buildInsertParams($.ts,$.event)];this.insertWithSeqStmt.run(...v),this.trim()}catch(v){return v instanceof Error?v:Error(String(v))}}getMaxSeq(){let $=this.maxSeqStmt.get();return $?$.max:0}query($={}){let v=["seq > ?"],U=[$.sinceSeq??0];if(typeof $.type==="string")v.push("type = ?"),U.push($.type);if($.where)this.appendWhereConditions($.where,v,U);let I=$.limit??1000;U.push(I);let b=$.order==="desc"?"DESC":"ASC",D=`SELECT seq, ts, type, event FROM logs WHERE ${v.join(" AND ")} ORDER BY seq ${b} LIMIT ?`,w=this.db.prepare(D).all(...U);if(b==="DESC")w.reverse();return w.map(Y8$)}getSchemaVersion(){return this.db.prepare("PRAGMA user_version").get()?.user_version??0}close(){this.db.close()}buildInsertParams($,v){let U=Q8$(v),I=JSON.stringify(v);if(this.indexes.length===0)return[$,U,I];let b=this.extractIndexes?this.extractIndexes(v):null,D=this.indexes.map((u)=>b?.[u]??null);return[$,U,I,...D]}appendWhereConditions($,v,U){let I=$;for(let b of this.indexes){let D=I[b];if(D===void 0)continue;if(D===null)v.push(`${b} IS NULL`);else v.push(`${b} = ?`),U.push(D)}}trim(){if(this.maxRows!==null){let $=this.countStmt.get();if($&&$.n>this.maxRows)this.trimRowsStmt.run(this.maxRows)}if(this.maxAgeMs!==null)this.trimAgeStmt.run(this.now()-this.maxAgeMs);this.maybeTrimBytes()}maybeTrimBytes(){if(this.maxBytes===null||this.targetBytes===null)return;if(this.insertsSinceByteCheck+=1,this.insertsSinceByteCheck<O8$)return;this.insertsSinceByteCheck=0;let $=this.byteSize();if($<=this.maxBytes)return;let v=this.countStmt.get()?.n??0;if(v===0)return;let U=$-this.targetBytes,I=$/v,b=Math.min(v,Math.ceil(U/I));this.trimOldestStmt.run(b),this.db.run("VACUUM")}byteSize(){let $=this.db.prepare("PRAGMA page_count").get()?.n??0,v=this.db.prepare("PRAGMA page_size").get()?.n??0;return $*v}clear(){this.db.run("DELETE FROM logs"),this.db.run("VACUUM"),this.insertsSinceByteCheck=0}syncIndexColumns(){let $=new Set(this.db.prepare("PRAGMA table_info(logs)").all().map((v)=>v.name));for(let v of this.indexes){if(!$.has(v))this.db.run(`ALTER TABLE logs ADD COLUMN ${v} TEXT`);this.db.run(`CREATE INDEX IF NOT EXISTS idx_logs_${v} ON logs (${v})`)}}migrate(){let v=this.db.prepare("PRAGMA user_version").get()?.user_version??0;if(v>=vf.length)return;let U=vf.slice(v),I=v;for(let b of U)I+=1,this.db.transaction(()=>{for(let u of b)this.db.run(u);this.db.run(`PRAGMA user_version = ${I}`)})()}}function z8$($){for(let v of $){if(!G8$.test(v))throw Error(`invalid index column name: ${v}`);if(H8$.has(v))throw Error(`reserved index column name: ${v}`)}}function Q8$($){if(typeof $!=="object"||$===null)return null;if(!("type"in $))return null;let v=$.type;return typeof v==="string"?v:null}function Y8$($){return{seq:$.seq,ts:$.ts,event:JSON.parse($.event)}}var bf=2000;class QP extends HP{sink;now;logger;onError;constructor($){super();this.now=$.now??(()=>Date.now()),this.logger=$.logger,this.onError=$.onError,this.sink=new zP({path:$.path,indexes:["channel_id","connector_id"],extractIndexes:(v)=>({channel_id:v.channel_id,connector_id:v.connector_id}),now:this.now,...$.maxRows!==void 0?{maxRows:$.maxRows}:{},...$.maxAgeMs!==void 0?{maxAgeMs:$.maxAgeMs}:{},...$.maxBytes!==void 0?{maxBytes:$.maxBytes}:{},...$.targetBytes!==void 0?{targetBytes:$.targetBytes}:{}})}record($){let v={type:$.meta?.event_type??"unknown",content:V8$($.content),channel_id:$.channelId,connector_id:$.connectorId,meta:$.meta},U=this.sink.write({seq:$.offset,ts:this.now(),event:v});if(U instanceof Error)this.logger?.error("event log write failed",{offset:$.offset,error:U.message}),this.onError?.(U,{component:"sqlite-event-log",op:"record",offset:$.offset,channelId:$.channelId,connectorId:$.connectorId})}loadSince($){let v=this.sink.query({sinceSeq:$}),U=[];for(let I of v)U.push({content:I.event.content,meta:I.event.meta??void 0,offset:I.seq});return U}loadForChannel($){let v={channel_id:$.channelId};if($.connectorId!==void 0)v.connector_id=$.connectorId;let U=this.sink.query({where:v,...$.sinceSeq!==void 0?{sinceSeq:$.sinceSeq}:{},...$.limit!==void 0?{limit:$.limit}:{}}),I=[];for(let b of U)I.push({content:b.event.content,meta:b.event.meta??void 0,offset:b.seq});return I}findMaxOffset(){return this.sink.getMaxSeq()}clear(){this.sink.clear()}close(){this.sink.close()}}function V8$($){if($.length<=bf)return $;return`${$.slice(0,bf)}...`}var L8$=()=>{},K8$=30000,q8$=60000,B8$=30000,A8$=($)=>new Promise((v)=>{setTimeout(v,$)});class L6{channels;notify;logger;onError;running=new Map;failureCounts=new Map;starting=new Set;stats=new Map;healthCheckIntervalMs;maxBackoffMs;startTimeoutMs;sleep;now;healthCheckTimer=null;healthCheckInFlight=!1;pendingRetry=new Map;constructor($){this.channels=$.channels,this.notify=$.notify,this.logger=$.logger,this.onError=$.onError??L8$,this.healthCheckIntervalMs=$.healthCheckIntervalMs??K8$,this.maxBackoffMs=$.maxBackoffMs??q8$,this.startTimeoutMs=$.startTimeoutMs??B8$,this.sleep=$.sleep??A8$,this.now=$.now??(()=>Date.now())}static keyOf($,v){return`${$}/${v}`}isRunning($,v){return this.running.has(L6.keyOf($,v))}list(){return[...this.running.entries()].map(([$,v])=>{let U=this.stats.get($);return{channelName:v.channelName,channelId:v.channelId,name:v.config.name,type:v.config.type,alive:v.listener.isAlive(),events:U?.events??0,errors:U?.errors??0,failureCount:this.failureCounts.get($)??0,lastEventAt:U?.lastEventAt??null}})}async start($,v){let U=L6.keyOf($,v);if(this.running.has(U))return{ok:!0,reason:"already running"};if(this.starting.has(U))return{ok:!1,reason:"already starting",retriable:!0};this.starting.add(U);try{return await this.startLocked($,v,U)}finally{this.starting.delete(U)}}async startLocked($,v,U){let I=this.channels.createListener($,v);if(!I)return{ok:!1,reason:`connector "${v}" not found in channel "${$}"`};let b=async(D,u)=>{try{await this.notify($,v,D,u),this.recordEvent(U)}catch(w){throw this.recordError(U),w}};try{return await Promise.race([I.listener.start(b),this.sleep(this.startTimeoutMs).then(()=>{throw Error(`listener start timed out after ${this.startTimeoutMs}ms`)})]),this.running.set(U,{config:I.config,channelName:$,channelId:I.channelId,listener:I.listener}),this.pendingRetry.delete(U),this.ensureStats(U),this.logger?.info(`${I.config.type} listener started`,{channel:$,connector:v}),{ok:!0}}catch(D){let u=D instanceof Error?D:Error(String(D));try{await I.listener.stop()}catch{}this.logger?.error(`${I.config.type} listener failed to start`,{channel:$,connector:v,error:u.message}),this.onError(u,{component:"listener-registry.start",channel:$,connector:v,type:I.config.type});let w=!(u instanceof F0);return{ok:!1,reason:u.message,retriable:w}}}async stop($,v){let U=L6.keyOf($,v),I=this.running.get(U);if(!I)return{ok:!0,reason:"not running"};try{return await I.listener.stop(),this.logger?.info(`${I.config.type} listener stopped`,{channel:$,connector:v}),{ok:!0}}catch(b){let D=b instanceof Error?b:Error(String(b));return this.logger?.error(`${I.config.type} listener failed to stop`,{channel:$,connector:v,error:D.message}),this.onError(D,{component:"listener-registry.stop",channel:$,connector:v,type:I.config.type}),{ok:!1,reason:D.message}}finally{this.running.delete(U),this.failureCounts.delete(U)}}async restart($,v){let U=await this.stop($,v);if(!U.ok)return U;return await this.start($,v)}async startAll(){let $=this.channels.listAllConnectors(),v=await Promise.allSettled($.map((U)=>this.start(U.channelName,U.name)));for(let U=0;U<v.length;U++){let I=v[U],b=$[U];if(I.status==="rejected"){let D=L6.keyOf(b.channelName,b.name);this.pendingRetry.set(D,{channelName:b.channelName,connectorName:b.name});continue}if(I.status==="fulfilled"&&!I.value.ok){if(I.value.retriable===!1)continue;let D=L6.keyOf(b.channelName,b.name);this.pendingRetry.set(D,{channelName:b.channelName,connectorName:b.name})}}this.startHealthCheck()}async stopAll(){this.stopHealthCheck(),this.pendingRetry.clear();for(let[,$]of[...this.running.entries()])await this.stop($.channelName,$.config.name)}ensureStats($){let v=this.stats.get($);if(v)return v;let U={events:0,errors:0,failureCount:0,lastEventAt:null};return this.stats.set($,U),U}recordEvent($){let v=this.ensureStats($);v.events+=1,v.lastEventAt=new Date(this.now()).toISOString()}recordError($){this.ensureStats($).errors+=1}startHealthCheck(){if(this.healthCheckTimer)return;this.healthCheckTimer=setInterval(()=>{this.runHealthCheck().catch(($)=>{let v=$ instanceof Error?$:Error(String($));this.logger?.error("health check pass failed",{error:v.message}),this.onError(v,{component:"listener-registry.health-check"})})},this.healthCheckIntervalMs),this.healthCheckTimer.unref()}stopHealthCheck(){if(!this.healthCheckTimer)return;clearInterval(this.healthCheckTimer),this.healthCheckTimer=null}async runHealthCheckForTest(){await this.runHealthCheck()}async runHealthCheck(){if(this.healthCheckInFlight)return;this.healthCheckInFlight=!0;try{let $=[];for(let[U,I]of[...this.running.entries()]){if(I.listener.isAlive()){this.failureCounts.delete(U);continue}$.push({channelName:I.channelName,connectorName:I.config.name,type:I.config.type})}await Promise.all($.map((U)=>this.recoverDead(U.channelName,U.connectorName,U.type)));let v=[];for(let[U,I]of[...this.pendingRetry.entries()]){if(this.running.has(U)){this.pendingRetry.delete(U);continue}v.push({key:U,channelName:I.channelName,connectorName:I.connectorName})}await Promise.all(v.map((U)=>this.attemptRetry(U)))}finally{this.healthCheckInFlight=!1}}async attemptRetry($){this.logger?.info("retrying failed listener",{channel:$.channelName,connector:$.connectorName});let v=this.failureCounts.get($.key)??0,U=Math.min(1000*2**v,this.maxBackoffMs);await this.sleep(U);let I=await this.start($.channelName,$.connectorName);if(I.ok){this.pendingRetry.delete($.key),this.failureCounts.delete($.key);return}if(I.retriable===!1){this.pendingRetry.delete($.key),this.failureCounts.delete($.key),this.logger?.warn("dropping listener from retry queue (non-retriable)",{channel:$.channelName,connector:$.connectorName,reason:I.reason});return}this.failureCounts.set($.key,v+1)}async recoverDead($,v,U){let I=L6.keyOf($,v),b=this.failureCounts.get(I)??0,D=Math.min(1000*2**b,this.maxBackoffMs);this.logger?.warn(`${U} listener unhealthy, restarting`,{channel:$,connector:v,attempt:b+1,backoffMs:D}),await this.stop($,v),await this.sleep(D);let u=await this.start($,v);if(u.ok)this.failureCounts.delete(I),this.logger?.info(`${U} listener recovered`,{channel:$,connector:v});else if(u.retriable===!1)this.failureCounts.delete(I),this.logger?.warn(`${U} listener cannot recover (non-retriable)`,{channel:$,connector:v,reason:u.reason});else this.failureCounts.set(I,b+1)}}var P8$=new $v,j8$=3000,N8$=100,S8$=200,M8$=($)=>new Promise((v)=>{setTimeout(v,$)}),_8$=($)=>`funnel-gateway[${$}]`,F8$=async($)=>{let v=$.now()+j8$;while($.now()<v){if($.pids.every((U)=>!$.runner.isAlive(U)))return;await $.sleep(N8$)}for(let U of $.pids){if(!$.runner.isAlive(U))continue;try{$.runner.kill(U,"SIGKILL")}catch{}}await $.sleep(S8$)},Uf=async($)=>{let v=$.process??P8$,U=$.logger,I=_8$($.dir),b=v.listProcessesContaining(I),D=[];for(let u of b){if(u.pid===$.selfPid)continue;v.kill(u.pid,"SIGTERM"),D.push(u.pid),U?.info("killed competing Slack gateway process",{pid:u.pid,args:u.command.slice(0,160)})}if(D.length===0)return D;return await F8$({runner:v,pids:D,sleep:$.sleep??M8$,now:$.now??(()=>Date.now())}),D};var y4=($)=>EU("param",$,(v,U)=>{if(v.success)return;let I=v.error.issues[0],b=I?`${I.path.join(".")}: ${I.message}`:"invalid request";return U.json({ok:!1,reason:b},400)});var YP=H.lazy(()=>H.union([H.string(),H.number(),H.boolean(),H.null(),H.array(YP),H.record(H.string(),YP)])),Z8$=H.object({method:H.string().min(1),path:H.string().min(1),body:YP.optional()}),If=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=null;try{U=await $.req.json()}catch{U=null}let I=Z8$.safeParse(U);if(!I.success)throw new e(400,{message:I.error.issues[0]?.message??"invalid body"});let b=await $.var.deps.channels.call(v.channel,v.connector,{method:I.data.method,path:I.data.path,body:I.data.body});return $.json({ok:!0,result:b})});var Df=t$.createHandlers(y4(H.object({channel:H.string().min(1)})),EU("json",pl,($,v)=>{if($.success)return;let U=$.error.issues[0],I=U?`${U.path.join(".")}: ${U.message}`:"invalid body";return v.json({ok:!1,reason:I},400)}),($)=>{let v=$.req.valid("param"),U=$.req.valid("json"),I=U.target?{...U.meta,target:U.target}:U.meta,D={ok:!0,offset:$.var.deps.emit({channel:v.channel,connector:U.connector,content:U.content,meta:I}).offset};return $.json(D)});import{existsSync as VP}from"fs";import{join as LP}from"path";var T8$=($)=>{if(typeof $!=="string"||$.length===0)return null;try{let v=JSON.parse($);if(v!==null&&typeof v==="object"&&"text"in v){let U=String(v.text);return U.length>80?`${U.slice(0,80)}\u2026`:U}}catch{return $.length>80?`${$.slice(0,80)}\u2026`:$}return $.length>80?`${$.slice(0,80)}\u2026`:$},k8$=($)=>{let U=($.connectionErrors[$.connectionErrors.length-1]??null)?.detail??null;if($.connectors.length===0)return{status:"warn",message:"no connectors configured on this channel",nextActions:[`fnl channels ${$.name} connectors add <name> --type=slack ...`],rootCause:null};if(!$.listener)return{status:"error",message:"no listener running for this channel",nextActions:["fnl gateway restart"],rootCause:U};if(!$.listener.alive)return{status:"error",message:"listener is dead",nextActions:["fnl gateway logs","fnl gateway restart"],rootCause:U};if($.claudeClients===0)return{status:"warn",message:"no Claude connected to this channel",nextActions:[`fnl claude --channel ${$.name}`],rootCause:null};if($.listener.errors>0)return{status:"warn",message:"listener has errors",nextActions:["fnl gateway logs"],rootCause:U};return{status:"ok",message:"healthy",nextActions:[],rootCause:null}},uf=t$.createHandlers(async($)=>{let v=$.var.deps,U=$.req.query("channel")??null,I=v.channels.list(),b=U?I.filter((z)=>z.name===U||z.id===U):I,D=v.registry.list(),u=v.broadcaster.listChannels(),w=v.broadcaster.getMetrics(),g=Yv(),J=LP(g,"connector-raw.db"),X=LP(g,"connector-processed.db"),W=LP(g,"connector-connection.db"),G=VP(J)&&VP(X)&&VP(W),O=b.map((z)=>{let Q=D.find((A)=>A.channelName===z.name)??null,Y=Q?{alive:Q.alive,events:Q.events,errors:Q.errors,lastEventAt:Q.lastEventAt}:null,K=u.filter((A)=>A.channel===z.id||A.channel===z.name).length,F=[],S=[];if(G){let A=new Vv({rawPath:J,processedPath:X,connectionPath:W}),h=(()=>{try{return A.query("SELECT seq, ts, type, outcome, payload FROM processed WHERE channel_id = ? ORDER BY seq DESC LIMIT 10",[z.id])}finally{A.close()}})();if(!(h instanceof Error))for(let l of[...h].reverse()){let W$=typeof l.payload==="string"?l.payload:null,X$=null;if(W$)try{let m$=JSON.parse(W$);if(m$!==null&&typeof m$==="object"&&!Array.isArray(m$))X$=m$}catch{X$=null}F.push({seq:typeof l.seq==="number"?l.seq:null,ts:typeof l.ts==="number"?l.ts:null,type:typeof l.type==="string"?l.type:"?",outcome:typeof l.outcome==="string"?l.outcome:"?",payload:W$,payloadParsed:X$,preview:T8$(l.payload)})}if(Y&&(!Y.alive||Y.errors>0)||!Y){let l=new Vv({rawPath:J,processedPath:X,connectionPath:W}),W$=(()=>{try{return l.query("SELECT ts, type, status, detail FROM connection WHERE channel_id = ? AND status IN ('auth-failed','error') ORDER BY seq DESC LIMIT 3",[z.id])}finally{l.close()}})();if(!(W$ instanceof Error))for(let X$ of[...W$].reverse())S.push({ts:typeof X$.ts==="number"?X$.ts:null,type:typeof X$.type==="string"?X$.type:"?",status:typeof X$.status==="string"?X$.status:"?",detail:typeof X$.detail==="string"&&X$.detail.length>0?X$.detail:null})}}let j={id:z.id,name:z.name,connectors:z.connectors.map((A)=>A.name),listener:Y,claudeClients:K,recentEvents:F,connectionErrors:S};return{...j,diagnosis:k8$(j)}});return $.json({pid:v.selfPid,uptimeMs:v.uptimeMs(),eventsBroadcast:w.eventsBroadcast,channels:O})});var wf=t$.createHandlers(($)=>{let v=$.var.deps;return $.json({ok:!0,pid:v.selfPid,funnelDir:v.dir,clients:v.broadcaster.getClientCount(),listeners:v.registry.list()})});var gf=t$.createHandlers(($)=>{return $.json({listeners:$.var.deps.registry.list()})});var Jf=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=await $.var.deps.registry.restart(v.channel,v.connector);return $.json(U,U.ok?200:400)});var Xf=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=await $.var.deps.registry.start(v.channel,v.connector);return $.json(U,U.ok?200:400)});var Wf=t$.createHandlers(y4(H.object({channel:H.string().min(1),connector:H.string().min(1)})),async($)=>{let v=$.req.valid("param"),U=await $.var.deps.registry.stop(v.channel,v.connector);return $.json(U,U.ok?200:400)});var Gf=t$.createHandlers(($)=>{let v=$.var.deps;return $.json({ok:!0,pid:v.selfPid,funnelDir:v.dir,uptimeMs:v.uptimeMs(),clients:v.broadcaster.listChannels(),listeners:v.registry.list(),broadcaster:v.broadcaster.getMetrics()})});function E8$(){return t$.createApp().onError(($,v)=>{if($ instanceof e)return $.getResponse();let U=$ instanceof Error?$.message:String($);return v.json({error:U},500)}).get("/health",...wf).get("/status",...Gf).get("/debug",...uf).get("/listeners",...gf).post("/listeners/:channel/:connector/start",...Xf).delete("/listeners/:channel/:connector",...Wf).post("/listeners/:channel/:connector/restart",...Jf).post("/channels/:channel/connectors/:connector/call",...If).post("/channels/:channel/publish",...Df)}var Of=E8$();var i8$="127.0.0.1",x8$=new Set(["127.0.0.1","localhost","::1","::ffff:127.0.0.1"]),l8$=()=>C8$(Yv(),"events.db"),f8$=()=>{};class KP{channels;configuredPort;configuredHostname;dbPath;process;logger;onError;selfPid;dir;killCompetingSlack;token;allowInsecureHost;broadcaster;eventLog;registry;nowMs;extraRoutes;ownsEventLog;startedAt=null;server=null;disposed=!1;constructor($){this.channels=$.channels,this.configuredPort=$.port??Q6(),this.configuredHostname=$.hostname??i8$,this.dbPath=$.dbPath??l8$(),this.process=$.process,this.logger=$.logger,this.onError=$.onError??f8$,this.selfPid=$.selfPid??globalThis.process.pid,this.dir=$.dir??B4,this.killCompetingSlack=$.killCompetingSlack??!0,this.token=$.token??"",this.allowInsecureHost=$.allowInsecureHost??!1,this.extraRoutes=$.extraRoutes??null;let v=$.clock;if(this.nowMs=v?()=>v.millis():()=>Date.now(),$.eventLog)this.eventLog=$.eventLog,this.ownsEventLog=!1;else{let U=r8$(this.dbPath);if(!R8$(U))n8$(U,{recursive:!0});this.eventLog=new QP({path:this.dbPath,now:this.nowMs,logger:this.logger,onError:this.onError}),this.ownsEventLog=!0}this.broadcaster=new OP({logger:this.logger,onError:this.onError,now:this.nowMs,persistentReplay:this.eventLog}),this.broadcaster.seedLatestOffset(this.eventLog.findMaxOffset()),this.registry=new L6({channels:this.channels,logger:this.logger,onError:this.onError,notify:async(U,I,b,D)=>{this.emit({channel:U,connector:I,content:b,meta:D})},now:this.nowMs})}get port(){return this.server?.port??this.configuredPort}get hostname(){return this.server?.hostname??this.configuredHostname}async start(){if(this.disposed)throw Error("FunnelGatewayServer is single-use: construct a new instance to start again");if(this.server)return;if(!this.token&&!x8$.has(this.configuredHostname)&&!this.allowInsecureHost)throw Error(`refusing to start gateway: hostname "${this.configuredHostname}" is reachable off-box but no token is set. Set a token, bind to loopback (127.0.0.1), or pass allowInsecureHost: true.`);let $=this.buildApp();await this.killCompetingSlackIfNeeded(),this.startedAt=this.nowMs(),this.server=Bun.serve({port:this.configuredPort,hostname:this.configuredHostname,development:!1,fetch:(v,U)=>this.handleFetch(v,U,$),websocket:{open:(v)=>this.handleWsOpen(v),close:(v)=>this.handleWsClose(v),message(){}}}),this.logServerStarted();try{await this.bootListeners()}catch(v){throw this.server.stop(),this.server=null,v}}async stop(){if(await this.registry.stopAll(),this.server)this.server.stop(),this.server=null;if(this.ownsEventLog)this.eventLog.close();this.disposed=!0}getStatus(){return{clients:this.broadcaster.getClientCount(),channels:this.broadcaster.listChannels()}}getBroadcaster(){return this.broadcaster}getRegistry(){return this.registry}getEventLog(){return this.eventLog}onEvent($){return this.broadcaster.subscribe($)}handleFetch($,v,U){let I=new URL($.url);if(I.pathname==="/ws"&&$.headers.get("upgrade")==="websocket"){if(this.token&&!this.tokenMatchesUpgrade($))return new Response("unauthorized",{status:401});let b=I.searchParams.get("channel")??"",D=b?this.resolveChannel(b):null;if(b&&!D)return new Response(`unknown channel "${b}"`,{status:404});let u=D?.id??b,w=D?.name??null,g=D?.connectors??[],J=D?.delivery??"fanout",X=I.searchParams.get("since"),W=X===null?Number.NaN:Number.parseInt(X,10),G=Number.isFinite(W)&&W>=0?W:void 0,O=I.searchParams.get("id")??void 0;if(v.upgrade($,{data:{channel:u,channelName:w,connectors:g,delivery:J,subscriberId:O,since:G}}))return;return new Response("WebSocket upgrade failed",{status:400})}return U.fetch($)}handleWsOpen($){if(typeof $.data.since==="number"){let v=this.broadcaster.replaySince($.data.since,$.data);try{for(let U of v)$.send(JSON.stringify(U))}catch(U){let I=U instanceof Error?U:Error(String(U));this.logger?.warn("replay send failed during ws.open",{error:I.message}),this.onError(I,{component:"gateway-server.replay"});return}}this.broadcaster.addClient($,$.data),this.logger?.info("channel connected",{event_type:"system",action:"channel_connect",channel:$.data.channelName??"",channelId:$.data.channel,connectors:$.data.connectors.join(","),total:String(this.broadcaster.getClientCount())})}handleWsClose($){this.broadcaster.removeClient($),this.logger?.info("channel disconnected",{event_type:"system",action:"channel_disconnect",channel:$.data.channelName??"",channelId:$.data.channel,total:String(this.broadcaster.getClientCount())})}logServerStarted(){this.logger?.info("gateway started",{event_type:"system",action:"gateway_start",port:String(this.port),pid:String(this.selfPid)}),this.logger?.info("funnel gateway listening",{url:`http://localhost:${this.port}`,websocket:`ws://localhost:${this.port}/ws`,health:`http://localhost:${this.port}/health`})}buildApp(){let $=t$.createApp();if($.use((U,I)=>{return U.set("deps",{selfPid:this.selfPid,dir:this.dir,broadcaster:this.broadcaster,registry:this.registry,channels:this.channels,uptimeMs:()=>this.startedAt?this.nowMs()-this.startedAt:0,emit:(b)=>this.emit(b)}),I()}),this.token)$.use("/listeners/*",Xu({expected:this.token})),$.use("/status",Xu({expected:this.token})),$.use("/debug",Xu({expected:this.token})),$.use("/channels/*",Xu({expected:this.token}));return(this.extraRoutes?$.route("/",this.extraRoutes):$).route("/",Of)}tokenMatchesUpgrade($){let v=($.headers.get("sec-websocket-protocol")??"").split(",").map((b)=>b.trim()).filter((b)=>b.length>0);for(let b of v)if(b.startsWith("funnel.token.")&&XG(b.slice(13),this.token))return!0;let I=($.headers.get("authorization")??"").match(/^Bearer\s+(.+)$/i);if(I&&XG(I[1]??"",this.token))return!0;return!1}resolveChannel($){let v=this.channels.get($)??this.channels.getById($);if(!v)return null;return{id:v.id,name:v.name,connectors:v.connectors.map((U)=>U.name),delivery:v.delivery}}async killCompetingSlackIfNeeded(){if(!this.killCompetingSlack)return;if(!this.channels.listAllConnectors().some((U)=>U.type==="slack"))return;let v=await Uf({selfPid:this.selfPid,dir:this.dir,process:this.process,logger:this.logger});if(v.length>0)this.logger?.info("killed competing Slack gateway processes",{event_type:"system",action:"kill_competing",pids:v.join(",")})}async bootListeners(){await this.registry.startAll();for(let $ of this.registry.list())this.logger?.info(`${$.type} listener started: ${$.name}`,{event_type:"system",action:`${$.type}_connect`,channel:$.channelName,connector:$.name});this.logger?.info(`event store: ${this.dbPath}`),this.logger?.info("funnel gateway running")}emit($){let v=this.lookupChannelId($.channel),U=v&&$.connector?this.lookupConnectorId(v,$.connector):null,I={...$.meta,channel:$.channel};if($.connector)I.connector=$.connector;if(v)I.channelId=v;if(U)I.connectorId=U;let b=this.broadcaster.broadcast($.content,I);return this.eventLog.record({content:$.content,channelId:v??null,connectorId:U??null,meta:I,offset:b.offset}),{offset:b.offset}}lookupChannelId($){return this.channels.get($)?.id??this.channels.getById($)?.id??null}lookupConnectorId($,v){return this.channels.getById($)?.connectors.find((I)=>I.name===v)?.id??null}}import{homedir as y8$}from"os";import{dirname as h8$,join as Hf}from"path";var zf="gateway.token",m8$=32,c8$=new d$,o8$=()=>{let $=new Uint8Array(m8$);return crypto.getRandomValues($),[...$].map((v)=>v.toString(16).padStart(2,"0")).join("")};class qP{fs;path;generate;constructor($={}){this.fs=$.fs??c8$,this.path=Hf($.dir??B4,zf),this.generate=$.generate??o8$,Object.freeze(this)}read(){if(!this.fs.existsSync(this.path))return null;let $=this.fs.readFileSync(this.path).trim();return $.length>0?$:null}ensure(){return this.fs.mkdirSync(h8$(this.path),{recursive:!0}),this.fs.withFileLock(`${this.path}.lock`,()=>{let $=this.read();if($)return $;let v=this.generate();return this.fs.writeSecretFileSync(this.path,`${v}
|
|
1688
|
+
`),v})}getPath(){return this.path}}var Ny$=Hf(y8$(),".funnel",zf);var t8$=H.object({channelName:H.string(),channelId:H.string(),name:H.string(),type:H.string(),alive:H.boolean()}),d8$=H.object({listeners:H.array(t8$)}),p8$=H.object({reason:H.string().optional()}),BP={state:"offline"};class AP{port;isDaemonRunning;getToken;constructor($){this.port=$.port,this.isDaemonRunning=$.isDaemonRunning,this.getToken=$.getToken??(()=>null),Object.freeze(this)}async list(){if(!this.isDaemonRunning())return{state:"offline"};try{let $=await Qv(`${Gv(this.port)}/listeners`,{headers:this.authHeaders()});if(!$.ok)return{state:"error",reason:`HTTP ${$.status}`};let v=d8$.safeParse(await $.json());if(!v.success)return{state:"error",reason:"malformed daemon response"};return{state:"ok",listeners:v.data.listeners}}catch($){return{state:"error",reason:$ instanceof Error?$.message:String($)}}}async start($,v){if(!this.isDaemonRunning())return BP;return await this.call("POST",`/listeners/${this.path($,v)}/start`)}async stop($,v){if(!this.isDaemonRunning())return BP;return await this.call("DELETE",`/listeners/${this.path($,v)}`)}async restart($,v){if(!this.isDaemonRunning())return BP;return await this.call("POST",`/listeners/${this.path($,v)}/restart`)}path($,v){return`${encodeURIComponent($)}/${encodeURIComponent(v)}`}authHeaders(){let $=this.getToken();return $?{authorization:`Bearer ${$}`}:{}}async call($,v){try{let U=await Qv(`${Gv(this.port)}${v}`,{method:$,headers:this.authHeaders()},30000);if(!U.ok){let I=null;try{I=await U.json()}catch{I=null}let b=p8$.safeParse(I);return{state:"error",reason:(b.success?b.data.reason:void 0)??`HTTP ${U.status}`}}return{state:"ok"}}catch(U){return{state:"error",reason:U instanceof Error?U.message:String(U)}}}}var e8$="/sandbox/.funnel",s8$="/sandbox/tmp",$z$=()=>{};class WG{paths;channels;gateway;gatewayToken;publisher;listeners;claude;profiles;localConfig;localConfigSync;diagnostics;recovery;doctor;docs;fs;process;logger;clock;http;onError;constructor($={}){let v=$.dir??Lx(),U=$.tmpDir??Yv(),I=$.fs??new d$,b=$.process??new $v,D=$.clock??new V6,u=$.idGenerator??new q4,w=$.http??new g4;this.paths={dir:v,tmpDir:U,settings:a8$(v,"settings.json")},this.fs=I,this.process=b,this.logger=$.logger,this.clock=D,this.http=w,this.onError=$.onError??$z$;let g=$.store??new NA({path:this.paths.settings,fs:I,idGenerator:u}),J=new lA({descriptors:$.connectors??[],fs:I,process:b,http:w,clock:D,logger:this.logger,diagnosticLog:$.diagnosticLog,signal:$.signal,dir:v});this.profiles=new dA({store:g,idGenerator:u,fs:I}),this.channels=new fA({store:g,registry:J,clock:D,idGenerator:u,profileChecker:this.profiles}),this.gateway=new GP({fs:I,process:b,clock:D,dir:v,tmpDir:U,port:$.port}),this.gatewayToken=new qP({fs:I,dir:v}),this.publisher=new XP({port:this.gateway.getPort(),isDaemonRunning:()=>this.gateway.isRunning(),getToken:()=>this.gatewayToken.read()}),this.listeners=new AP({port:this.gateway.getPort(),isDaemonRunning:()=>this.gateway.isRunning(),getToken:()=>this.gatewayToken.read()});let X=new AA({fs:I});this.localConfig=new uu({fs:I}),this.localConfigSync=new tA({channels:this.channels,prompter:$.tokenPrompter??new aA}),this.claude=new yA({channels:this.channels,mcp:X,gateway:this.gateway,sessions:this.profiles,guard:new bG({fs:I,process:b,dir:v}),process:b,logger:this.logger,dir:v}),this.diagnostics=new mA({gateway:this.gateway,gatewayToken:this.gatewayToken,channels:this.channels,publisher:this.publisher,tmpDir:U}),this.recovery=new pA({gateway:this.gateway,listeners:this.listeners,channels:this.channels}),this.doctor=new cA({diagnostics:this.diagnostics,recovery:this.recovery}),this.docs=new aD,Object.freeze(this)}static inMemory($={}){return new WG({...$,store:$.store??new bP,fs:$.fs??new eA,process:$.process??new vP,logger:$.logger??new $P,clock:$.clock??new UP,idGenerator:$.idGenerator??new sA,http:$.http??new IP,tokenPrompter:$.tokenPrompter??new DP,diagnosticLog:$.diagnosticLog??new JP,dir:$.dir??e8$,tmpDir:$.tmpDir??s8$})}gatewayServer($={}){return new KP({channels:this.channels,port:$.port,hostname:$.hostname,...$.eventLog?{eventLog:$.eventLog}:{dbPath:$.dbPath},process:this.process,clock:this.clock,logger:this.logger,onError:this.onError,dir:this.paths.dir,killCompetingSlack:$.killCompetingSlack,token:$.token??this.gatewayToken.ensure(),allowInsecureHost:$.allowInsecureHost,extraRoutes:$.extraRoutes})}createProcessGuard(){return new bG({fs:this.fs,process:this.process,dir:this.paths.dir})}async runGatewayForeground($={}){let v=JG(),I=$.caffeinate!==!1&&globalThis.process.platform==="darwin"?["caffeinate","-is","bun",v]:["bun",v];return this.process.attach(I)}gatewayClient(){let{port:$}=this.gateway.getStatus();return xA(Gv($))}}var bz$=9743;if(!process.env.FUNNEL_PORT)process.env.FUNNEL_PORT=String(bz$);var Qf=new d$,Yf=JS({localConfig:new uu({fs:Qf}),writer:new rA({fs:Qf}),idGenerator:new q4,home:vz$()},process.cwd());if(Yf)process.env.FUNNEL_DIR=Yf;var GG=new WG({logger:new Du,connectors:lJ()}),{claude:Lf,profiles:Kf,localConfig:qf,localConfigSync:Bf}=GG,Vf={funnel:GG,claude:Lf,profiles:Kf,localConfig:qf,localConfigSync:Bf},PP=`funnel / Open Claude Funnel
|
|
1689
1689
|
|
|
1690
1690
|
usage / funnel [command]
|
|
1691
1691
|
|