@yunkeai/yunke-cli 2.0.0-alpha.1 → 2.0.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/bundle.js +3 -3
- package/package.json +1 -1
package/dist/bundle.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as L3}from"node:module";var G3=Object.create;var{getPrototypeOf:M3,defineProperty:rm,getOwnPropertyNames:x3}=Object;var l3=Object.prototype.hasOwnProperty;function u3(n){return this[n]}var j3,v3,D3=(n,m,i)=>{var b=n!=null&&typeof n==="object";if(b){var $=m?j3??=new WeakMap:v3??=new WeakMap,o=$.get(n);if(o)return o}i=n!=null?G3(M3(n)):{};let _=m||!n||!n.__esModule?rm(i,"default",{value:n,enumerable:!0}):i;for(let J of x3(n))if(!l3.call(_,J))rm(_,J,{get:u3.bind(n,J),enumerable:!0});if(b)$.set(n,_);return _};var T=(n,m)=>()=>(m||n((m={exports:{}}).exports,m),m.exports);var N3=(n)=>n;function V3(n,m){this[n]=N3.bind(null,m)}var ai=(n,m)=>{for(var i in m)rm(n,i,{get:m[i],enumerable:!0,configurable:!0,set:V3.bind(m,i)})};var ri=(n,m)=>()=>(n&&(m=n(n=0)),m);var F=L3(import.meta.url);import{readFileSync as ww}from"node:fs";import{join as Wi,dirname as $w}from"node:path";import{fileURLToPath as ow}from"node:url";function _w(){try{return"2.0.0
|
|
2
|
+
import{createRequire as L3}from"node:module";var G3=Object.create;var{getPrototypeOf:M3,defineProperty:rm,getOwnPropertyNames:x3}=Object;var l3=Object.prototype.hasOwnProperty;function u3(n){return this[n]}var j3,v3,D3=(n,m,i)=>{var b=n!=null&&typeof n==="object";if(b){var $=m?j3??=new WeakMap:v3??=new WeakMap,o=$.get(n);if(o)return o}i=n!=null?G3(M3(n)):{};let _=m||!n||!n.__esModule?rm(i,"default",{value:n,enumerable:!0}):i;for(let J of x3(n))if(!l3.call(_,J))rm(_,J,{get:u3.bind(n,J),enumerable:!0});if(b)$.set(n,_);return _};var T=(n,m)=>()=>(m||n((m={exports:{}}).exports,m),m.exports);var N3=(n)=>n;function V3(n,m){this[n]=N3.bind(null,m)}var ai=(n,m)=>{for(var i in m)rm(n,i,{get:m[i],enumerable:!0,configurable:!0,set:V3.bind(m,i)})};var ri=(n,m)=>()=>(n&&(m=n(n=0)),m);var F=L3(import.meta.url);import{readFileSync as ww}from"node:fs";import{join as Wi,dirname as $w}from"node:path";import{fileURLToPath as ow}from"node:url";function _w(){try{return"2.0.0"}catch{}let n=[];try{let m=$w(ow(import.meta.url));n.push(Wi(m,"..","..","..","package.json"),Wi(m,"..","..","package.json"))}catch{}n.push(Wi(process.cwd(),"package.json"));for(let m of n)try{let i=ww(m,"utf-8"),b=JSON.parse(i);if(b.version)return b.version}catch{}return"unknown"}var E;var bn=ri(()=>{E=_w()});var C6=T((UY,B6)=>{var x0=1000,l0=x0*60,u0=l0*60,rn=u0*24,pw=rn*7,Fw=rn*365.25;B6.exports=function(n,m){m=m||{};var i=typeof n;if(i==="string"&&n.length>0)return hw(n);else if(i==="number"&&isFinite(n))return m.long?kw(n):Pw(n);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function hw(n){if(n=String(n),n.length>100)return;var m=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(!m)return;var i=parseFloat(m[1]),b=(m[2]||"ms").toLowerCase();switch(b){case"years":case"year":case"yrs":case"yr":case"y":return i*Fw;case"weeks":case"week":case"w":return i*pw;case"days":case"day":case"d":return i*rn;case"hours":case"hour":case"hrs":case"hr":case"h":return i*u0;case"minutes":case"minute":case"mins":case"min":case"m":return i*l0;case"seconds":case"second":case"secs":case"sec":case"s":return i*x0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:return}}function Pw(n){var m=Math.abs(n);if(m>=rn)return Math.round(n/rn)+"d";if(m>=u0)return Math.round(n/u0)+"h";if(m>=l0)return Math.round(n/l0)+"m";if(m>=x0)return Math.round(n/x0)+"s";return n+"ms"}function kw(n){var m=Math.abs(n);if(m>=rn)return vm(n,m,rn,"day");if(m>=u0)return vm(n,m,u0,"hour");if(m>=l0)return vm(n,m,l0,"minute");if(m>=x0)return vm(n,m,x0,"second");return n+" ms"}function vm(n,m,i,b){var $=m>=i*1.5;return Math.round(n/i)+" "+b+($?"s":"")}});var ui=T((SY,K6)=>{function Tw(n){i.debug=i,i.default=i,i.coerce=X,i.disable=_,i.enable=$,i.enabled=J,i.humanize=C6(),i.destroy=Y,Object.keys(n).forEach((H)=>{i[H]=n[H]}),i.names=[],i.skips=[],i.formatters={};function m(H){let q=0;for(let M=0;M<H.length;M++)q=(q<<5)-q+H.charCodeAt(M),q|=0;return i.colors[Math.abs(q)%i.colors.length]}i.selectColor=m;function i(H){let q,M=null,j,h;function B(...N){if(!B.enabled)return;let f=B,P=Number(new Date),c=P-(q||P);if(f.diff=c,f.prev=q,f.curr=P,q=P,N[0]=i.coerce(N[0]),typeof N[0]!=="string")N.unshift("%O");let Nn=0;N[0]=N[0].replace(/%([a-zA-Z%])/g,(K0,kn)=>{if(K0==="%%")return"%";Nn++;let A0=i.formatters[kn];if(typeof A0==="function"){let O3=N[Nn];K0=A0.call(f,O3),N.splice(Nn,1),Nn--}return K0}),i.formatArgs.call(f,N),(f.log||i.log).apply(f,N)}if(B.namespace=H,B.useColors=i.useColors(),B.color=i.selectColor(H),B.extend=b,B.destroy=i.destroy,Object.defineProperty(B,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(M!==null)return M;if(j!==i.namespaces)j=i.namespaces,h=i.enabled(H);return h},set:(N)=>{M=N}}),typeof i.init==="function")i.init(B);return B}function b(H,q){let M=i(this.namespace+(typeof q>"u"?":":q)+H);return M.log=this.log,M}function $(H){i.save(H),i.namespaces=H,i.names=[],i.skips=[];let q=(typeof H==="string"?H:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let M of q)if(M[0]==="-")i.skips.push(M.slice(1));else i.names.push(M)}function o(H,q){let M=0,j=0,h=-1,B=0;while(M<H.length)if(j<q.length&&(q[j]===H[M]||q[j]==="*"))if(q[j]==="*")h=j,B=M,j++;else M++,j++;else if(h!==-1)j=h+1,B++,M=B;else return!1;while(j<q.length&&q[j]==="*")j++;return j===q.length}function _(){let H=[...i.names,...i.skips.map((q)=>"-"+q)].join(",");return i.enable(""),H}function J(H){for(let q of i.skips)if(o(H,q))return!1;for(let q of i.names)if(o(H,q))return!0;return!1}function X(H){if(H instanceof Error)return H.stack||H.message;return H}function Y(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return i.enable(i.load()),i}K6.exports=Tw});var g6=T((A6,Dm)=>{A6.formatArgs=yw;A6.save=cw;A6.load=zw;A6.useColors=Iw;A6.storage=Zw();A6.destroy=(()=>{let n=!1;return()=>{if(!n)n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();A6.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Iw(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function yw(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+Dm.exports.humanize(this.diff),!this.useColors)return;let m="color: "+this.color;n.splice(1,0,m,"color: inherit");let i=0,b=0;n[0].replace(/%[a-zA-Z%]/g,($)=>{if($==="%%")return;if(i++,$==="%c")b=i}),n.splice(b,0,m)}A6.log=console.debug||console.log||(()=>{});function cw(n){try{if(n)A6.storage.setItem("debug",n);else A6.storage.removeItem("debug")}catch(m){}}function zw(){let n;try{n=A6.storage.getItem("debug")||A6.storage.getItem("DEBUG")}catch(m){}if(!n&&typeof process<"u"&&"env"in process)n=process.env.DEBUG;return n}function Zw(){try{return localStorage}catch(n){}}Dm.exports=ui()(A6);var{formatters:tw}=Dm.exports;tw.j=function(n){try{return JSON.stringify(n)}catch(m){return"[UnexpectedJSONParseError]: "+m.message}}});var S6=T((E6,Vm)=>{var i9=F("tty"),Nm=F("util");E6.init=X9;E6.log=o9;E6.formatArgs=w9;E6.save=_9;E6.load=J9;E6.useColors=b9;E6.destroy=Nm.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");E6.colors=[6,2,3,4,5,1];try{let n=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(n&&(n.stderr||n).level>=2)E6.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(n){}E6.inspectOpts=Object.keys(process.env).filter((n)=>{return/^debug_/i.test(n)}).reduce((n,m)=>{let i=m.substring(6).toLowerCase().replace(/_([a-z])/g,($,o)=>{return o.toUpperCase()}),b=process.env[m];if(/^(yes|on|true|enabled)$/i.test(b))b=!0;else if(/^(no|off|false|disabled)$/i.test(b))b=!1;else if(b==="null")b=null;else b=Number(b);return n[i]=b,n},{});function b9(){return"colors"in E6.inspectOpts?Boolean(E6.inspectOpts.colors):i9.isatty(process.stderr.fd)}function w9(n){let{namespace:m,useColors:i}=this;if(i){let b=this.color,$="\x1B[3"+(b<8?b:"8;5;"+b),o=` ${$};1m${m} \x1B[0m`;n[0]=o+n[0].split(`
|
|
3
3
|
`).join(`
|
|
4
4
|
`+o),n.push($+"m+"+Vm.exports.humanize(this.diff)+"\x1B[0m")}else n[0]=$9()+m+" "+n[0]}function $9(){if(E6.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function o9(...n){return process.stderr.write(Nm.formatWithOptions(E6.inspectOpts,...n)+`
|
|
5
5
|
`)}function _9(n){if(n)process.env.DEBUG=n;else delete process.env.DEBUG}function J9(){return process.env.DEBUG}function X9(n){n.inspectOpts={};let m=Object.keys(E6.inspectOpts);for(let i=0;i<m.length;i++)n.inspectOpts[m[i]]=E6.inspectOpts[m[i]]}Vm.exports=ui()(E6);var{formatters:R6}=Vm.exports;R6.o=function(n){return this.inspectOpts.colors=this.useColors,Nm.inspect(n,this.inspectOpts).split(`
|
|
6
|
-
`).map((m)=>m.trim()).join(" ")};R6.O=function(n){return this.inspectOpts.colors=this.useColors,Nm.inspect(n,this.inspectOpts)}});var f6=T((FY,ji)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)ji.exports=g6();else ji.exports=S6()});var h6=T((hY,F6)=>{F6.exports=p6;function p6(n,m){if(n&&m)return p6(n)(m);if(typeof n!=="function")throw TypeError("need wrapper function");return Object.keys(n).forEach(function(b){i[b]=n[b]}),i;function i(){var b=Array(arguments.length);for(var $=0;$<b.length;$++)b[$]=arguments[$];var o=n.apply(this,b),_=b[b.length-1];if(typeof o==="function"&&o!==_)Object.keys(_).forEach(function(J){o[J]=_[J]});return o}}});var Di=T((PY,vi)=>{var P6=h6();vi.exports=P6(Lm);vi.exports.strict=P6(k6);Lm.proto=Lm(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Lm(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return k6(this)},configurable:!0})});function Lm(n){var m=function(){if(m.called)return m.value;return m.called=!0,m.value=n.apply(this,arguments)};return m.called=!1,m}function k6(n){var m=function(){if(m.called)throw Error(m.onceError);return m.called=!0,m.value=n.apply(this,arguments)},i=n.name||"Function wrapped with `once`";return m.onceError=i+" shouldn't be called more than once",m.called=!1,m}});var y6=T((kY,I6)=>{var M9=Di(),x9=function(){},l9=global.Bare?queueMicrotask:process.nextTick.bind(process),u9=function(n){return n.setHeader&&typeof n.abort==="function"},j9=function(n){return n.stdio&&Array.isArray(n.stdio)&&n.stdio.length===3},T6=function(n,m,i){if(typeof m==="function")return T6(n,null,m);if(!m)m={};i=M9(i||x9);var{_writableState:b,_readableState:$}=n,o=m.readable||m.readable!==!1&&n.readable,_=m.writable||m.writable!==!1&&n.writable,J=!1,X=function(){if(!n.writable)Y()},Y=function(){if(_=!1,!o)i.call(n)},H=function(){if(o=!1,!_)i.call(n)},q=function(N){i.call(n,N?Error("exited with error code: "+N):null)},M=function(N){i.call(n,N)},j=function(){l9(h)},h=function(){if(J)return;if(o&&!($&&($.ended&&!$.destroyed)))return i.call(n,Error("premature close"));if(_&&!(b&&(b.ended&&!b.destroyed)))return i.call(n,Error("premature close"))},B=function(){n.req.on("finish",Y)};if(u9(n))if(n.on("complete",Y),n.on("abort",j),n.req)B();else n.on("request",B);else if(_&&!b)n.on("end",X),n.on("close",X);if(j9(n))n.on("exit",q);if(n.on("end",H),n.on("finish",Y),m.error!==!1)n.on("error",M);return n.on("close",j),function(){if(J=!0,n.removeListener("complete",Y),n.removeListener("abort",j),n.removeListener("request",B),n.req)n.req.removeListener("finish",Y);n.removeListener("end",X),n.removeListener("close",X),n.removeListener("finish",Y),n.removeListener("exit",q),n.removeListener("end",H),n.removeListener("error",M),n.removeListener("close",j)}};I6.exports=T6});var Z6=T((TY,z6)=>{var v9=Di(),D9=y6(),Bm;try{Bm=F("fs")}catch(n){}var y0=function(){},N9=typeof process>"u"?!1:/^v?\.0/.test(process.version),Cm=function(n){return typeof n==="function"},V9=function(n){if(!N9)return!1;if(!Bm)return!1;return(n instanceof(Bm.ReadStream||y0)||n instanceof(Bm.WriteStream||y0))&&Cm(n.close)},L9=function(n){return n.setHeader&&Cm(n.abort)},B9=function(n,m,i,b){b=v9(b);var $=!1;n.on("close",function(){$=!0}),D9(n,{readable:m,writable:i},function(_){if(_)return b(_);$=!0,b()});var o=!1;return function(_){if($)return;if(o)return;if(o=!0,V9(n))return n.close(y0);if(L9(n))return n.abort();if(Cm(n.destroy))return n.destroy();b(_||Error("stream was destroyed"))}},c6=function(n){n()},C9=function(n,m){return n.pipe(m)},K9=function(){var n=Array.prototype.slice.call(arguments),m=Cm(n[n.length-1]||y0)&&n.pop()||y0;if(Array.isArray(n[0]))n=n[0];if(n.length<2)throw Error("pump requires two streams per minimum");var i,b=n.map(function($,o){var _=o<n.length-1,J=o>0;return B9($,_,J,function(X){if(!i)i=X;if(X)b.forEach(c6);if(_)return;b.forEach(c6),m(i)})});return n.reduce(C9)};z6.exports=K9});var d6=T((IY,t6)=>{var{PassThrough:A9}=F("stream");t6.exports=(n)=>{n={...n};let{array:m}=n,{encoding:i}=n,b=i==="buffer",$=!1;if(m)$=!(i||b);else i=i||"utf8";if(b)i=null;let o=new A9({objectMode:$});if(i)o.setEncoding(i);let _=0,J=[];return o.on("data",(X)=>{if(J.push(X),$)_=J.length;else _+=X.length}),o.getBufferedValue=()=>{if(m)return J;return b?Buffer.concat(J,_):J.join("")},o.getBufferedLength=()=>_,o}});var a6=T((yY,j0)=>{var{constants:g9}=F("buffer"),R9=Z6(),E9=d6();class Ni extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}}async function Km(n,m){if(!n)return Promise.reject(Error("Expected a stream"));m={maxBuffer:1/0,...m};let{maxBuffer:i}=m,b;return await new Promise(($,o)=>{let _=(J)=>{if(J&&b.getBufferedLength()<=g9.MAX_LENGTH)J.bufferedData=b.getBufferedValue();o(J)};b=R9(n,E9(m),(J)=>{if(J){_(J);return}$()}),b.on("data",()=>{if(b.getBufferedLength()>i)_(new Ni)})}),b.getBufferedValue()}j0.exports=Km;j0.exports.default=Km;j0.exports.buffer=(n,m)=>Km(n,{...m,encoding:"buffer"});j0.exports.array=(n,m)=>Km(n,{...m,array:!0});j0.exports.MaxBufferError=Ni});var n2=T((cY,s6)=>{s6.exports=Am;function Am(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}Am.prototype.go=function(n){if(this.pending<this.max)e6(this,n);else this.waiting.push(n)};Am.prototype.wait=function(n){if(this.pending===0)n(this.error);else this.listeners.push(n)};Am.prototype.hold=function(){return r6(this)};function r6(n){n.pending+=1;var m=!1;return i;function i($){if(m)throw Error("callback called twice");if(m=!0,n.error=n.error||$,n.pending-=1,n.waiting.length>0&&n.pending<n.max)e6(n,n.waiting.shift());else if(n.pending===0){var o=n.listeners;n.listeners=[],o.forEach(b)}}function b($){$(n.error)}}function e6(n,m){m(r6(n))}});var i2=T((F9)=>{var c0=F("fs"),gm=F("util"),Vi=F("stream"),m2=Vi.Readable,Li=Vi.Writable,U9=Vi.PassThrough,S9=n2(),Rm=F("events").EventEmitter;F9.createFromBuffer=f9;F9.createFromFd=p9;F9.BufferSlicer=vn;F9.FdSlicer=jn;gm.inherits(jn,Rm);function jn(n,m){m=m||{},Rm.call(this),this.fd=n,this.pend=new S9,this.pend.max=1,this.refCount=0,this.autoClose=!!m.autoClose}jn.prototype.read=function(n,m,i,b,$){var o=this;o.pend.go(function(_){c0.read(o.fd,n,m,i,b,function(J,X,Y){_(),$(J,X,Y)})})};jn.prototype.write=function(n,m,i,b,$){var o=this;o.pend.go(function(_){c0.write(o.fd,n,m,i,b,function(J,X,Y){_(),$(J,X,Y)})})};jn.prototype.createReadStream=function(n){return new Em(this,n)};jn.prototype.createWriteStream=function(n){return new Um(this,n)};jn.prototype.ref=function(){this.refCount+=1};jn.prototype.unref=function(){var n=this;if(n.refCount-=1,n.refCount>0)return;if(n.refCount<0)throw Error("invalid unref");if(n.autoClose)c0.close(n.fd,m);function m(i){if(i)n.emit("error",i);else n.emit("close")}};gm.inherits(Em,m2);function Em(n,m){m=m||{},m2.call(this,m),this.context=n,this.context.ref(),this.start=m.start||0,this.endOffset=m.end,this.pos=this.start,this.destroyed=!1}Em.prototype._read=function(n){var m=this;if(m.destroyed)return;var i=Math.min(m._readableState.highWaterMark,n);if(m.endOffset!=null)i=Math.min(i,m.endOffset-m.pos);if(i<=0){m.destroyed=!0,m.push(null),m.context.unref();return}m.context.pend.go(function(b){if(m.destroyed)return b();var $=new Buffer(i);c0.read(m.context.fd,$,0,i,m.pos,function(o,_){if(o)m.destroy(o);else if(_===0)m.destroyed=!0,m.push(null),m.context.unref();else m.pos+=_,m.push($.slice(0,_));b()})})};Em.prototype.destroy=function(n){if(this.destroyed)return;n=n||Error("stream destroyed"),this.destroyed=!0,this.emit("error",n),this.context.unref()};gm.inherits(Um,Li);function Um(n,m){m=m||{},Li.call(this,m),this.context=n,this.context.ref(),this.start=m.start||0,this.endOffset=m.end==null?1/0:+m.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}Um.prototype._write=function(n,m,i){var b=this;if(b.destroyed)return;if(b.pos+n.length>b.endOffset){var $=Error("maximum file length exceeded");$.code="ETOOBIG",b.destroy(),i($);return}b.context.pend.go(function(o){if(b.destroyed)return o();c0.write(b.context.fd,n,0,n.length,b.pos,function(_,J){if(_)b.destroy(),o(),i(_);else b.bytesWritten+=J,b.pos+=J,b.emit("progress"),o(),i()})})};Um.prototype.destroy=function(){if(this.destroyed)return;this.destroyed=!0,this.context.unref()};gm.inherits(vn,Rm);function vn(n,m){Rm.call(this),m=m||{},this.refCount=0,this.buffer=n,this.maxChunkSize=m.maxChunkSize||Number.MAX_SAFE_INTEGER}vn.prototype.read=function(n,m,i,b,$){var o=b+i,_=o-this.buffer.length,J=_>0?_:i;this.buffer.copy(n,m,b,o),setImmediate(function(){$(null,J)})};vn.prototype.write=function(n,m,i,b,$){n.copy(this.buffer,b,m,m+i),setImmediate(function(){$(null,i,n)})};vn.prototype.createReadStream=function(n){n=n||{};var m=new U9(n);m.destroyed=!1,m.start=n.start||0,m.endOffset=n.end,m.pos=m.endOffset||this.buffer.length;var i=this.buffer.slice(m.start,m.pos),b=0;while(!0){var $=b+this.maxChunkSize;if($>=i.length){if(b<i.length)m.write(i.slice(b,i.length));break}m.write(i.slice(b,$)),b=$}return m.end(),m.destroy=function(){m.destroyed=!0},m};vn.prototype.createWriteStream=function(n){var m=this;n=n||{};var i=new Li(n);return i.start=n.start||0,i.endOffset=n.end==null?this.buffer.length:+n.end,i.bytesWritten=0,i.pos=i.start,i.destroyed=!1,i._write=function(b,$,o){if(i.destroyed)return;var _=i.pos+b.length;if(_>i.endOffset){var J=Error("maximum file length exceeded");J.code="ETOOBIG",i.destroyed=!0,o(J);return}b.copy(m.buffer,i.pos,0,b.length),i.bytesWritten+=b.length,i.pos=_,i.emit("progress"),o()},i.destroy=function(){i.destroyed=!0},i};vn.prototype.ref=function(){this.refCount+=1};vn.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw Error("invalid unref")};function f9(n,m){return new vn(n,m)}function p9(n,m){return new jn(n,m)}});var $2=T((ZY,w2)=>{var Sn=F("buffer").Buffer,Bi=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];if(typeof Int32Array<"u")Bi=new Int32Array(Bi);function b2(n){if(Sn.isBuffer(n))return n;var m=typeof Sn.alloc==="function"&&typeof Sn.from==="function";if(typeof n==="number")return m?Sn.alloc(n):new Sn(n);else if(typeof n==="string")return m?Sn.from(n):new Sn(n);else throw Error("input must be buffer, number, or string, received "+typeof n)}function I9(n){var m=b2(4);return m.writeInt32BE(n,0),m}function Ci(n,m){if(n=b2(n),Sn.isBuffer(m))m=m.readUInt32BE(0);var i=~~m^-1;for(var b=0;b<n.length;b++)i=Bi[(i^n[b])&255]^i>>>8;return i^-1}function Ki(){return I9(Ci.apply(null,arguments))}Ki.signed=function(){return Ci.apply(null,arguments)};Ki.unsigned=function(){return Ci.apply(null,arguments)>>>0};w2.exports=Ki});var Q2=T((a9)=>{var Ai=F("fs"),y9=F("zlib"),o2=i2(),c9=$2(),pm=F("util"),Fm=F("events").EventEmitter,_2=F("stream").Transform,gi=F("stream").PassThrough,z9=F("stream").Writable;a9.open=Z9;a9.fromFd=J2;a9.fromBuffer=t9;a9.fromRandomAccessReader=Ri;a9.dosDateTimeToDate=Y2;a9.validateFileName=H2;a9.ZipFile=fn;a9.Entry=z0;a9.RandomAccessReader=pn;function Z9(n,m,i){if(typeof m==="function")i=m,m=null;if(m==null)m={};if(m.autoClose==null)m.autoClose=!0;if(m.lazyEntries==null)m.lazyEntries=!1;if(m.decodeStrings==null)m.decodeStrings=!0;if(m.validateEntrySizes==null)m.validateEntrySizes=!0;if(m.strictFileNames==null)m.strictFileNames=!1;if(i==null)i=fm;Ai.open(n,"r",function(b,$){if(b)return i(b);J2($,m,function(o,_){if(o)Ai.close($,fm);i(o,_)})})}function J2(n,m,i){if(typeof m==="function")i=m,m=null;if(m==null)m={};if(m.autoClose==null)m.autoClose=!1;if(m.lazyEntries==null)m.lazyEntries=!1;if(m.decodeStrings==null)m.decodeStrings=!0;if(m.validateEntrySizes==null)m.validateEntrySizes=!0;if(m.strictFileNames==null)m.strictFileNames=!1;if(i==null)i=fm;Ai.fstat(n,function(b,$){if(b)return i(b);var o=o2.createFromFd(n,{autoClose:!0});Ri(o,$.size,m,i)})}function t9(n,m,i){if(typeof m==="function")i=m,m=null;if(m==null)m={};if(m.autoClose=!1,m.lazyEntries==null)m.lazyEntries=!1;if(m.decodeStrings==null)m.decodeStrings=!0;if(m.validateEntrySizes==null)m.validateEntrySizes=!0;if(m.strictFileNames==null)m.strictFileNames=!1;var b=o2.createFromBuffer(n,{maxChunkSize:65536});Ri(b,n.length,m,i)}function Ri(n,m,i,b){if(typeof i==="function")b=i,i=null;if(i==null)i={};if(i.autoClose==null)i.autoClose=!0;if(i.lazyEntries==null)i.lazyEntries=!1;if(i.decodeStrings==null)i.decodeStrings=!0;var $=!!i.decodeStrings;if(i.validateEntrySizes==null)i.validateEntrySizes=!0;if(i.strictFileNames==null)i.strictFileNames=!1;if(b==null)b=fm;if(typeof m!=="number")throw Error("expected totalSize parameter to be a number");if(m>Number.MAX_SAFE_INTEGER)throw Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");n.ref();var o=22,_=65535,J=Math.min(o+_,m),X=qn(J),Y=m-X.length;v0(n,X,0,J,Y,function(H){if(H)return b(H);for(var q=J-o;q>=0;q-=1){if(X.readUInt32LE(q)!==101010256)continue;var M=X.slice(q),j=M.readUInt16LE(4);if(j!==0)return b(Error("multi-disk zip files are not supported: found disk number: "+j));var h=M.readUInt16LE(10),B=M.readUInt32LE(16),N=M.readUInt16LE(20),f=M.length-o;if(N!==f)return b(Error("invalid comment length. expected: "+f+". found: "+N));var P=$?Sm(M,22,M.length,!1):M.slice(22);if(!(h===65535||B===4294967295))return b(null,new fn(n,B,m,h,P,i.autoClose,i.lazyEntries,$,i.validateEntrySizes,i.strictFileNames));var c=qn(20),Nn=Y+q-c.length;v0(n,c,0,c.length,Nn,function(i0){if(i0)return b(i0);if(c.readUInt32LE(0)!==117853008)return b(Error("invalid zip64 end of central directory locator signature"));var K0=D0(c,8),kn=qn(56);v0(n,kn,0,kn.length,K0,function(A0){if(A0)return b(A0);if(kn.readUInt32LE(0)!==101075792)return b(Error("invalid zip64 end of central directory record signature"));return h=D0(kn,32),B=D0(kn,48),b(null,new fn(n,B,m,h,P,i.autoClose,i.lazyEntries,$,i.validateEntrySizes,i.strictFileNames))})});return}b(Error("end of central directory record signature not found"))})}pm.inherits(fn,Fm);function fn(n,m,i,b,$,o,_,J,X,Y){var H=this;if(Fm.call(H),H.reader=n,H.reader.on("error",function(q){X2(H,q)}),H.reader.once("close",function(){H.emit("close")}),H.readEntryCursor=m,H.fileSize=i,H.entryCount=b,H.comment=$,H.entriesRead=0,H.autoClose=!!o,H.lazyEntries=!!_,H.decodeStrings=!!J,H.validateEntrySizes=!!X,H.strictFileNames=!!Y,H.isOpen=!0,H.emittedError=!1,!H.lazyEntries)H._readEntry()}fn.prototype.close=function(){if(!this.isOpen)return;this.isOpen=!1,this.reader.unref()};function wn(n,m){if(n.autoClose)n.close();X2(n,m)}function X2(n,m){if(n.emittedError)return;n.emittedError=!0,n.emit("error",m)}fn.prototype.readEntry=function(){if(!this.lazyEntries)throw Error("readEntry() called without lazyEntries:true");this._readEntry()};fn.prototype._readEntry=function(){var n=this;if(n.entryCount===n.entriesRead){setImmediate(function(){if(n.autoClose)n.close();if(n.emittedError)return;n.emit("end")});return}if(n.emittedError)return;var m=qn(46);v0(n.reader,m,0,m.length,n.readEntryCursor,function(i){if(i)return wn(n,i);if(n.emittedError)return;var b=new z0,$=m.readUInt32LE(0);if($!==33639248)return wn(n,Error("invalid central directory file header signature: 0x"+$.toString(16)));if(b.versionMadeBy=m.readUInt16LE(4),b.versionNeededToExtract=m.readUInt16LE(6),b.generalPurposeBitFlag=m.readUInt16LE(8),b.compressionMethod=m.readUInt16LE(10),b.lastModFileTime=m.readUInt16LE(12),b.lastModFileDate=m.readUInt16LE(14),b.crc32=m.readUInt32LE(16),b.compressedSize=m.readUInt32LE(20),b.uncompressedSize=m.readUInt32LE(24),b.fileNameLength=m.readUInt16LE(28),b.extraFieldLength=m.readUInt16LE(30),b.fileCommentLength=m.readUInt16LE(32),b.internalFileAttributes=m.readUInt16LE(36),b.externalFileAttributes=m.readUInt32LE(38),b.relativeOffsetOfLocalHeader=m.readUInt32LE(42),b.generalPurposeBitFlag&64)return wn(n,Error("strong encryption is not supported"));n.readEntryCursor+=46,m=qn(b.fileNameLength+b.extraFieldLength+b.fileCommentLength),v0(n.reader,m,0,m.length,n.readEntryCursor,function(o){if(o)return wn(n,o);if(n.emittedError)return;var _=(b.generalPurposeBitFlag&2048)!==0;b.fileName=n.decodeStrings?Sm(m,0,b.fileNameLength,_):m.slice(0,b.fileNameLength);var J=b.fileNameLength+b.extraFieldLength,X=m.slice(b.fileNameLength,J);b.extraFields=[];var Y=0;while(Y<X.length-3){var H=X.readUInt16LE(Y+0),q=X.readUInt16LE(Y+2),M=Y+4,j=M+q;if(j>X.length)return wn(n,Error("extra field length exceeds extra field buffer size"));var h=qn(q);X.copy(h,0,M,j),b.extraFields.push({id:H,data:h}),Y=j}if(b.fileComment=n.decodeStrings?Sm(m,J,J+b.fileCommentLength,_):m.slice(J,J+b.fileCommentLength),b.comment=b.fileComment,n.readEntryCursor+=m.length,n.entriesRead+=1,b.uncompressedSize===4294967295||b.compressedSize===4294967295||b.relativeOffsetOfLocalHeader===4294967295){var B=null;for(var Y=0;Y<b.extraFields.length;Y++){var N=b.extraFields[Y];if(N.id===1){B=N.data;break}}if(B==null)return wn(n,Error("expected zip64 extended information extra field"));var f=0;if(b.uncompressedSize===4294967295){if(f+8>B.length)return wn(n,Error("zip64 extended information extra field does not include uncompressed size"));b.uncompressedSize=D0(B,f),f+=8}if(b.compressedSize===4294967295){if(f+8>B.length)return wn(n,Error("zip64 extended information extra field does not include compressed size"));b.compressedSize=D0(B,f),f+=8}if(b.relativeOffsetOfLocalHeader===4294967295){if(f+8>B.length)return wn(n,Error("zip64 extended information extra field does not include relative header offset"));b.relativeOffsetOfLocalHeader=D0(B,f),f+=8}}if(n.decodeStrings)for(var Y=0;Y<b.extraFields.length;Y++){var N=b.extraFields[Y];if(N.id===28789){if(N.data.length<6)continue;if(N.data.readUInt8(0)!==1)continue;var P=N.data.readUInt32LE(1);if(c9.unsigned(m.slice(0,b.fileNameLength))!==P)continue;b.fileName=Sm(N.data,5,N.data.length,!0);break}}if(n.validateEntrySizes&&b.compressionMethod===0){var c=b.uncompressedSize;if(b.isEncrypted())c+=12;if(b.compressedSize!==c){var Nn="compressed/uncompressed size mismatch for stored file: "+b.compressedSize+" != "+b.uncompressedSize;return wn(n,Error(Nn))}}if(n.decodeStrings){if(!n.strictFileNames)b.fileName=b.fileName.replace(/\\/g,"/");var i0=H2(b.fileName,n.validateFileNameOptions);if(i0!=null)return wn(n,Error(i0))}if(n.emit("entry",b),!n.lazyEntries)n._readEntry()})})};fn.prototype.openReadStream=function(n,m,i){var b=this,$=0,o=n.compressedSize;if(i==null)i=m,m={};else{if(m.decrypt!=null){if(!n.isEncrypted())throw Error("options.decrypt can only be specified for encrypted entries");if(m.decrypt!==!1)throw Error("invalid options.decrypt value: "+m.decrypt);if(n.isCompressed()){if(m.decompress!==!1)throw Error("entry is encrypted and compressed, and options.decompress !== false")}}if(m.decompress!=null){if(!n.isCompressed())throw Error("options.decompress can only be specified for compressed entries");if(!(m.decompress===!1||m.decompress===!0))throw Error("invalid options.decompress value: "+m.decompress)}if(m.start!=null||m.end!=null){if(n.isCompressed()&&m.decompress!==!1)throw Error("start/end range not allowed for compressed entry without options.decompress === false");if(n.isEncrypted()&&m.decrypt!==!1)throw Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(m.start!=null){if($=m.start,$<0)throw Error("options.start < 0");if($>n.compressedSize)throw Error("options.start > entry.compressedSize")}if(m.end!=null){if(o=m.end,o<0)throw Error("options.end < 0");if(o>n.compressedSize)throw Error("options.end > entry.compressedSize");if(o<$)throw Error("options.end < options.start")}}if(!b.isOpen)return i(Error("closed"));if(n.isEncrypted()){if(m.decrypt!==!1)return i(Error("entry is encrypted, and options.decrypt !== false"))}b.reader.ref();var _=qn(30);v0(b.reader,_,0,_.length,n.relativeOffsetOfLocalHeader,function(J){try{if(J)return i(J);var X=_.readUInt32LE(0);if(X!==67324752)return i(Error("invalid local file header signature: 0x"+X.toString(16)));var Y=_.readUInt16LE(26),H=_.readUInt16LE(28),q=n.relativeOffsetOfLocalHeader+_.length+Y+H,M;if(n.compressionMethod===0)M=!1;else if(n.compressionMethod===8)M=m.decompress!=null?m.decompress:!0;else return i(Error("unsupported compression method: "+n.compressionMethod));var j=q,h=j+n.compressedSize;if(n.compressedSize!==0){if(h>b.fileSize)return i(Error("file data overflows file bounds: "+j+" + "+n.compressedSize+" > "+b.fileSize))}var B=b.reader.createReadStream({start:j+$,end:j+o}),N=B;if(M){var f=!1,P=y9.createInflateRaw();if(B.on("error",function(c){setImmediate(function(){if(!f)P.emit("error",c)})}),B.pipe(P),b.validateEntrySizes)N=new Z0(n.uncompressedSize),P.on("error",function(c){setImmediate(function(){if(!f)N.emit("error",c)})}),P.pipe(N);else N=P;N.destroy=function(){if(f=!0,P!==N)P.unpipe(N);B.unpipe(P),B.destroy()}}i(null,N)}finally{b.reader.unref()}})};function z0(){}z0.prototype.getLastModDate=function(){return Y2(this.lastModFileDate,this.lastModFileTime)};z0.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};z0.prototype.isCompressed=function(){return this.compressionMethod===8};function Y2(n,m){var i=n&31,b=(n>>5&15)-1,$=(n>>9&127)+1980,o=0,_=(m&31)*2,J=m>>5&63,X=m>>11&31;return new Date($,b,i,X,J,_,o)}function H2(n){if(n.indexOf("\\")!==-1)return"invalid characters in fileName: "+n;if(/^[a-zA-Z]:/.test(n)||/^\//.test(n))return"absolute path: "+n;if(n.split("/").indexOf("..")!==-1)return"invalid relative path: "+n;return null}function v0(n,m,i,b,$,o){if(b===0)return setImmediate(function(){o(null,qn(0))});n.read(m,i,b,$,function(_,J){if(_)return o(_);if(J<b)return o(Error("unexpected EOF"));o()})}pm.inherits(Z0,_2);function Z0(n){_2.call(this),this.actualByteCount=0,this.expectedByteCount=n}Z0.prototype._transform=function(n,m,i){if(this.actualByteCount+=n.length,this.actualByteCount>this.expectedByteCount){var b="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return i(Error(b))}i(null,n)};Z0.prototype._flush=function(n){if(this.actualByteCount<this.expectedByteCount){var m="not enough bytes in the stream. expected "+this.expectedByteCount+". got only "+this.actualByteCount;return n(Error(m))}n()};pm.inherits(pn,Fm);function pn(){Fm.call(this),this.refCount=0}pn.prototype.ref=function(){this.refCount+=1};pn.prototype.unref=function(){var n=this;if(n.refCount-=1,n.refCount>0)return;if(n.refCount<0)throw Error("invalid unref");n.close(m);function m(i){if(i)return n.emit("error",i);n.emit("close")}};pn.prototype.createReadStream=function(n){var{start:m,end:i}=n;if(m===i){var b=new gi;return setImmediate(function(){b.end()}),b}var $=this._readStreamForRange(m,i),o=!1,_=new hm(this);$.on("error",function(X){setImmediate(function(){if(!o)_.emit("error",X)})}),_.destroy=function(){$.unpipe(_),_.unref(),$.destroy()};var J=new Z0(i-m);return _.on("error",function(X){setImmediate(function(){if(!o)J.emit("error",X)})}),J.destroy=function(){o=!0,_.unpipe(J),_.destroy()},$.pipe(_).pipe(J)};pn.prototype._readStreamForRange=function(n,m){throw Error("not implemented")};pn.prototype.read=function(n,m,i,b,$){var o=this.createReadStream({start:b,end:b+i}),_=new z9,J=0;_._write=function(X,Y,H){X.copy(n,m+J,0,X.length),J+=X.length,H()},_.on("finish",$),o.on("error",function(X){$(X)}),o.pipe(_)};pn.prototype.close=function(n){setImmediate(n)};pm.inherits(hm,gi);function hm(n){gi.call(this),this.context=n,this.context.ref(),this.unreffedYet=!1}hm.prototype._flush=function(n){this.unref(),n()};hm.prototype.unref=function(n){if(this.unreffedYet)return;this.unreffedYet=!0,this.context.unref()};var d9="\x00☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ";function Sm(n,m,i,b){if(b)return n.toString("utf8",m,i);else{var $="";for(var o=m;o<i;o++)$+=d9[n[o]];return $}}function D0(n,m){var i=n.readUInt32LE(m),b=n.readUInt32LE(m+4);return b*4294967296+i}var qn;if(typeof Buffer.allocUnsafe==="function")qn=function(n){return Buffer.allocUnsafe(n)};else qn=function(n){return new Buffer(n)};function fm(n){if(n)throw n}});var O2=T((dY,q2)=>{var $n=f6()("extract-zip"),{createWriteStream:o$,promises:N0}=F("fs"),_$=a6(),sn=F("path"),{promisify:Ei}=F("util"),J$=F("stream"),X$=Q2(),Y$=Ei(X$.open),H$=Ei(J$.pipeline);class W2{constructor(n,m){this.zipPath=n,this.opts=m}async extract(){return $n("opening",this.zipPath,"with opts",this.opts),this.zipfile=await Y$(this.zipPath,{lazyEntries:!0}),this.canceled=!1,new Promise((n,m)=>{this.zipfile.on("error",(i)=>{this.canceled=!0,m(i)}),this.zipfile.readEntry(),this.zipfile.on("close",()=>{if(!this.canceled)$n("zip extraction complete"),n()}),this.zipfile.on("entry",async(i)=>{if(this.canceled){$n("skipping entry",i.fileName,{cancelled:this.canceled});return}if($n("zipfile entry",i.fileName),i.fileName.startsWith("__MACOSX/")){this.zipfile.readEntry();return}let b=sn.dirname(sn.join(this.opts.dir,i.fileName));try{await N0.mkdir(b,{recursive:!0});let $=await N0.realpath(b);if(sn.relative(this.opts.dir,$).split(sn.sep).includes(".."))throw Error(`Out of bound path "${$}" found while processing file ${i.fileName}`);await this.extractEntry(i),$n("finished processing",i.fileName),this.zipfile.readEntry()}catch($){this.canceled=!0,this.zipfile.close(),m($)}})})}async extractEntry(n){if(this.canceled){$n("skipping entry extraction",n.fileName,{cancelled:this.canceled});return}if(this.opts.onEntry)this.opts.onEntry(n,this.zipfile);let m=sn.join(this.opts.dir,n.fileName),i=n.externalFileAttributes>>16&65535,b=61440,$=16384,o=40960,_=(i&b)===o,J=(i&b)===$;if(!J&&n.fileName.endsWith("/"))J=!0;let X=n.versionMadeBy>>8;if(!J)J=X===0&&n.externalFileAttributes===16;$n("extracting entry",{filename:n.fileName,isDir:J,isSymlink:_});let Y=this.getExtractedMode(i,J)&511,H=J?m:sn.dirname(m),q={recursive:!0};if(J)q.mode=Y;if($n("mkdir",{dir:H,...q}),await N0.mkdir(H,q),J)return;$n("opening read stream",m);let M=await Ei(this.zipfile.openReadStream.bind(this.zipfile))(n);if(_){let j=await _$(M);$n("creating symlink",j,m),await N0.symlink(j,m)}else await H$(M,o$(m,{mode:Y}))}getExtractedMode(n,m){let i=n;if(i===0)if(m){if(this.opts.defaultDirMode)i=parseInt(this.opts.defaultDirMode,10);if(!i)i=493}else{if(this.opts.defaultFileMode)i=parseInt(this.opts.defaultFileMode,10);if(!i)i=420}return i}}q2.exports=async function(n,m){if($n("creating target directory",m.dir),!sn.isAbsolute(m.dir))throw Error("Target directory is expected to be absolute");return await N0.mkdir(m.dir,{recursive:!0}),m.dir=await N0.realpath(m.dir),new W2(n,m).extract()}});var n3={};ai(n3,{rollbackFromLatestBackup:()=>Zi,listBackups:()=>C0,backupCurrentBinary:()=>zi,BACKUP_DIR:()=>Pn});import{copyFile as e8,readdir as L5,unlink as B5,mkdir as C5,rename as K5}from"node:fs/promises";import{existsSync as A5}from"node:fs";import{homedir as g5}from"node:os";import{join as tm,basename as R5}from"node:path";async function s8(){if(!A5(Pn))await C5(Pn,{recursive:!0})}async function zi(){await s8();let n=process.execPath,m=new Date().toISOString().replace(/[:.]/g,"-"),i=`${R5(n)}-${E}-${m}`,b=tm(Pn,i);return await e8(n,b),await U5(),b}async function C0(){return await s8(),(await L5(Pn)).filter((i)=>i.startsWith("yunke")).map((i)=>tm(Pn,i)).sort().reverse()}async function Zi(){let n=await C0();if(n.length===0)return null;let m=n[0],i=process.execPath,b=`${i}.rollback`;return await e8(m,b),await K5(b,i),m}async function U5(){let m=(await C0()).slice(E5);for(let i of m)try{await B5(i)}catch{}}var Pn,E5=3;var dm=ri(()=>{bn();Pn=tm(process.env.YUNKE_CONFIG_DIR??tm(g5(),".yunke"),"backups")});class l extends Error{code;details;constructor(n,m,i){super(m);this.code=n;this.details=i;this.name="YunkeError"}}class g0 extends l{constructor(n){super("COMMAND_NOT_FOUND",`Command '${n}' not found. Use 'yunke schema' to list available commands.`);this.name="CommandNotFoundError"}}class em extends l{constructor(n,m){super("VALIDATION_FAILED",n,m);this.name="ValidationError"}}class wm extends l{constructor(n,m){super("EXECUTION_FAILED",n,m);this.name="ExecutionError"}}class $m extends l{constructor(n,m,i){super("PLUGIN_LOAD_FAILED",`Failed to load plugin '${n}': ${m}`,i);this.name="PluginLoadError"}}class sm extends l{constructor(n,m,i){super("PLUGIN_CONFLICT",`Command '${n}' already registered by plugin '${m}', cannot register from '${i}'`);this.name="PluginConflictError"}}class om extends l{constructor(n,m){super("TIMEOUT",`Command '${n}' timed out after ${m}ms`);this.name="TimeoutError"}}class Tn{commands;constructor(n=new Map){this.commands=n}register(n){if(this.commands.has(n.name)){let i=this.commands.get(n.name);throw new sm(n.name,i.pluginName,n.pluginName)}let m=new Map(this.commands);return m.set(n.name,n),new Tn(m)}unregister(n){if(!this.commands.has(n))return this;let m=new Map(this.commands);return m.delete(n),new Tn(m)}get(n){return this.commands.get(n)}getAll(){return Array.from(this.commands.values())}getAllVisible(){return this.getAll().filter((n)=>!n.hidden)}getByPlugin(n){return this.getAll().filter((m)=>m.pluginName===n)}has(n){return this.commands.has(n)}get size(){return this.commands.size}}function ei(n,m,i){return{command:n,duration_ms:i,timestamp:new Date().toISOString(),plugin:m}}function si(n,m,i,b){let $={success:!0,data:i,error:null,metadata:ei(n,m,b)};return JSON.stringify($)}function Vn(n,m,i,b){let $={success:!1,data:null,error:{code:i instanceof l?i.code:"EXECUTION_FAILED",message:i instanceof Error?i.message:String(i),details:i instanceof l?i.details:void 0},metadata:ei(n,m,b)};return JSON.stringify($)}var w={};ai(w,{void:()=>Y4,util:()=>A,unknown:()=>J4,union:()=>q4,undefined:()=>$4,tuple:()=>M4,transformer:()=>B4,symbol:()=>w4,string:()=>J1,strictObject:()=>W4,setErrorMap:()=>K3,set:()=>u4,record:()=>x4,quotelessJson:()=>B3,promise:()=>L4,preprocess:()=>A4,pipeline:()=>g4,ostring:()=>R4,optional:()=>C4,onumber:()=>E4,oboolean:()=>U4,objectUtil:()=>ni,object:()=>Q4,number:()=>X1,nullable:()=>K4,null:()=>o4,never:()=>X4,nativeEnum:()=>V4,nan:()=>m4,map:()=>l4,makeIssue:()=>R0,literal:()=>D4,lazy:()=>v4,late:()=>s3,isValid:()=>Ln,isDirty:()=>Jm,isAsync:()=>w0,isAborted:()=>_m,intersection:()=>G4,instanceof:()=>n4,getParsedType:()=>Jn,getErrorMap:()=>b0,function:()=>j4,enum:()=>N4,effect:()=>B4,discriminatedUnion:()=>O4,defaultErrorMap:()=>Gn,datetimeRegex:()=>$1,date:()=>b4,custom:()=>_1,coerce:()=>S4,boolean:()=>Y1,bigint:()=>i4,array:()=>H4,any:()=>_4,addIssueToContext:()=>G,ZodVoid:()=>U0,ZodUnknown:()=>Bn,ZodUnion:()=>Y0,ZodUndefined:()=>J0,ZodType:()=>K,ZodTuple:()=>Yn,ZodTransformer:()=>s,ZodSymbol:()=>E0,ZodString:()=>d,ZodSet:()=>zn,ZodSchema:()=>K,ZodRecord:()=>S0,ZodReadonly:()=>G0,ZodPromise:()=>Zn,ZodPipeline:()=>F0,ZodParsedType:()=>O,ZodOptional:()=>a,ZodObject:()=>U,ZodNumber:()=>Cn,ZodNullable:()=>xn,ZodNull:()=>X0,ZodNever:()=>Xn,ZodNativeEnum:()=>q0,ZodNaN:()=>p0,ZodMap:()=>f0,ZodLiteral:()=>W0,ZodLazy:()=>Q0,ZodIssueCode:()=>Q,ZodIntersection:()=>H0,ZodFunction:()=>o0,ZodFirstPartyTypeKind:()=>W,ZodError:()=>z,ZodEnum:()=>An,ZodEffects:()=>s,ZodDiscriminatedUnion:()=>Xm,ZodDefault:()=>gn,ZodDate:()=>yn,ZodCatch:()=>O0,ZodBranded:()=>Ym,ZodBoolean:()=>_0,ZodBigInt:()=>Kn,ZodArray:()=>r,ZodAny:()=>cn,Schema:()=>K,ParseStatus:()=>k,OK:()=>I,NEVER:()=>f4,INVALID:()=>v,EMPTY_PATH:()=>A3,DIRTY:()=>In,BRAND:()=>e3});var A;(function(n){n.assertEqual=($)=>{};function m($){}n.assertIs=m;function i($){throw Error()}n.assertNever=i,n.arrayToEnum=($)=>{let o={};for(let _ of $)o[_]=_;return o},n.getValidEnumValues=($)=>{let o=n.objectKeys($).filter((J)=>typeof $[$[J]]!=="number"),_={};for(let J of o)_[J]=$[J];return n.objectValues(_)},n.objectValues=($)=>{return n.objectKeys($).map(function(o){return $[o]})},n.objectKeys=typeof Object.keys==="function"?($)=>Object.keys($):($)=>{let o=[];for(let _ in $)if(Object.prototype.hasOwnProperty.call($,_))o.push(_);return o},n.find=($,o)=>{for(let _ of $)if(o(_))return _;return},n.isInteger=typeof Number.isInteger==="function"?($)=>Number.isInteger($):($)=>typeof $==="number"&&Number.isFinite($)&&Math.floor($)===$;function b($,o=" | "){return $.map((_)=>typeof _==="string"?`'${_}'`:_).join(o)}n.joinValues=b,n.jsonStringifyReplacer=($,o)=>{if(typeof o==="bigint")return o.toString();return o}})(A||(A={}));var ni;(function(n){n.mergeShapes=(m,i)=>{return{...m,...i}}})(ni||(ni={}));var O=A.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Jn=(n)=>{switch(typeof n){case"undefined":return O.undefined;case"string":return O.string;case"number":return Number.isNaN(n)?O.nan:O.number;case"boolean":return O.boolean;case"function":return O.function;case"bigint":return O.bigint;case"symbol":return O.symbol;case"object":if(Array.isArray(n))return O.array;if(n===null)return O.null;if(n.then&&typeof n.then==="function"&&n.catch&&typeof n.catch==="function")return O.promise;if(typeof Map<"u"&&n instanceof Map)return O.map;if(typeof Set<"u"&&n instanceof Set)return O.set;if(typeof Date<"u"&&n instanceof Date)return O.date;return O.object;default:return O.unknown}};var Q=A.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),B3=(n)=>{return JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:")};class z extends Error{get errors(){return this.issues}constructor(n){super();this.issues=[],this.addIssue=(i)=>{this.issues=[...this.issues,i]},this.addIssues=(i=[])=>{this.issues=[...this.issues,...i]};let m=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,m);else this.__proto__=m;this.name="ZodError",this.issues=n}format(n){let m=n||function($){return $.message},i={_errors:[]},b=($)=>{for(let o of $.issues)if(o.code==="invalid_union")o.unionErrors.map(b);else if(o.code==="invalid_return_type")b(o.returnTypeError);else if(o.code==="invalid_arguments")b(o.argumentsError);else if(o.path.length===0)i._errors.push(m(o));else{let _=i,J=0;while(J<o.path.length){let X=o.path[J];if(J!==o.path.length-1)_[X]=_[X]||{_errors:[]};else _[X]=_[X]||{_errors:[]},_[X]._errors.push(m(o));_=_[X],J++}}};return b(this),i}static assert(n){if(!(n instanceof z))throw Error(`Not a ZodError: ${n}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,A.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(n=(m)=>m.message){let m={},i=[];for(let b of this.issues)if(b.path.length>0){let $=b.path[0];m[$]=m[$]||[],m[$].push(n(b))}else i.push(n(b));return{formErrors:i,fieldErrors:m}}get formErrors(){return this.flatten()}}z.create=(n)=>{return new z(n)};var C3=(n,m)=>{let i;switch(n.code){case Q.invalid_type:if(n.received===O.undefined)i="Required";else i=`Expected ${n.expected}, received ${n.received}`;break;case Q.invalid_literal:i=`Invalid literal value, expected ${JSON.stringify(n.expected,A.jsonStringifyReplacer)}`;break;case Q.unrecognized_keys:i=`Unrecognized key(s) in object: ${A.joinValues(n.keys,", ")}`;break;case Q.invalid_union:i="Invalid input";break;case Q.invalid_union_discriminator:i=`Invalid discriminator value. Expected ${A.joinValues(n.options)}`;break;case Q.invalid_enum_value:i=`Invalid enum value. Expected ${A.joinValues(n.options)}, received '${n.received}'`;break;case Q.invalid_arguments:i="Invalid function arguments";break;case Q.invalid_return_type:i="Invalid function return type";break;case Q.invalid_date:i="Invalid date";break;case Q.invalid_string:if(typeof n.validation==="object")if("includes"in n.validation){if(i=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position==="number")i=`${i} at one or more positions greater than or equal to ${n.validation.position}`}else if("startsWith"in n.validation)i=`Invalid input: must start with "${n.validation.startsWith}"`;else if("endsWith"in n.validation)i=`Invalid input: must end with "${n.validation.endsWith}"`;else A.assertNever(n.validation);else if(n.validation!=="regex")i=`Invalid ${n.validation}`;else i="Invalid";break;case Q.too_small:if(n.type==="array")i=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`;else if(n.type==="string")i=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`;else if(n.type==="number")i=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="bigint")i=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="date")i=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`;else i="Invalid input";break;case Q.too_big:if(n.type==="array")i=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`;else if(n.type==="string")i=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`;else if(n.type==="number")i=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="bigint")i=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="date")i=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`;else i="Invalid input";break;case Q.custom:i="Invalid input";break;case Q.invalid_intersection_types:i="Intersection results could not be merged";break;case Q.not_multiple_of:i=`Number must be a multiple of ${n.multipleOf}`;break;case Q.not_finite:i="Number must be finite";break;default:i=m.defaultError,A.assertNever(n)}return{message:i}},Gn=C3;var n1=Gn;function K3(n){n1=n}function b0(){return n1}var R0=(n)=>{let{data:m,path:i,errorMaps:b,issueData:$}=n,o=[...i,...$.path||[]],_={...$,path:o};if($.message!==void 0)return{...$,path:o,message:$.message};let J="",X=b.filter((Y)=>!!Y).slice().reverse();for(let Y of X)J=Y(_,{data:m,defaultError:J}).message;return{...$,path:o,message:J}},A3=[];function G(n,m){let i=b0(),b=R0({issueData:m,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,i,i===Gn?void 0:Gn].filter(($)=>!!$)});n.common.issues.push(b)}class k{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(n,m){let i=[];for(let b of m){if(b.status==="aborted")return v;if(b.status==="dirty")n.dirty();i.push(b.value)}return{status:n.value,value:i}}static async mergeObjectAsync(n,m){let i=[];for(let b of m){let $=await b.key,o=await b.value;i.push({key:$,value:o})}return k.mergeObjectSync(n,i)}static mergeObjectSync(n,m){let i={};for(let b of m){let{key:$,value:o}=b;if($.status==="aborted")return v;if(o.status==="aborted")return v;if($.status==="dirty")n.dirty();if(o.status==="dirty")n.dirty();if($.value!=="__proto__"&&(typeof o.value<"u"||b.alwaysSet))i[$.value]=o.value}return{status:n.value,value:i}}}var v=Object.freeze({status:"aborted"}),In=(n)=>({status:"dirty",value:n}),I=(n)=>({status:"valid",value:n}),_m=(n)=>n.status==="aborted",Jm=(n)=>n.status==="dirty",Ln=(n)=>n.status==="valid",w0=(n)=>typeof Promise<"u"&&n instanceof Promise;var u;(function(n){n.errToObj=(m)=>typeof m==="string"?{message:m}:m||{},n.toString=(m)=>typeof m==="string"?m:m?.message})(u||(u={}));class e{constructor(n,m,i,b){this._cachedPath=[],this.parent=n,this.data=m,this._path=i,this._key=b}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var m1=(n,m)=>{if(Ln(m))return{success:!0,data:m.value};else{if(!n.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let i=new z(n.common.issues);return this._error=i,this._error}}}};function V(n){if(!n)return{};let{errorMap:m,invalid_type_error:i,required_error:b,description:$}=n;if(m&&(i||b))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(m)return{errorMap:m,description:$};return{errorMap:(_,J)=>{let{message:X}=n;if(_.code==="invalid_enum_value")return{message:X??J.defaultError};if(typeof J.data>"u")return{message:X??b??J.defaultError};if(_.code!=="invalid_type")return{message:J.defaultError};return{message:X??i??J.defaultError}},description:$}}class K{get description(){return this._def.description}_getType(n){return Jn(n.data)}_getOrReturnCtx(n,m){return m||{common:n.parent.common,data:n.data,parsedType:Jn(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}_processInputParams(n){return{status:new k,ctx:{common:n.parent.common,data:n.data,parsedType:Jn(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}}_parseSync(n){let m=this._parse(n);if(w0(m))throw Error("Synchronous parse encountered promise.");return m}_parseAsync(n){let m=this._parse(n);return Promise.resolve(m)}parse(n,m){let i=this.safeParse(n,m);if(i.success)return i.data;throw i.error}safeParse(n,m){let i={common:{issues:[],async:m?.async??!1,contextualErrorMap:m?.errorMap},path:m?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Jn(n)},b=this._parseSync({data:n,path:i.path,parent:i});return m1(i,b)}"~validate"(n){let m={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Jn(n)};if(!this["~standard"].async)try{let i=this._parseSync({data:n,path:[],parent:m});return Ln(i)?{value:i.value}:{issues:m.common.issues}}catch(i){if(i?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;m.common={issues:[],async:!0}}return this._parseAsync({data:n,path:[],parent:m}).then((i)=>Ln(i)?{value:i.value}:{issues:m.common.issues})}async parseAsync(n,m){let i=await this.safeParseAsync(n,m);if(i.success)return i.data;throw i.error}async safeParseAsync(n,m){let i={common:{issues:[],contextualErrorMap:m?.errorMap,async:!0},path:m?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Jn(n)},b=this._parse({data:n,path:i.path,parent:i}),$=await(w0(b)?b:Promise.resolve(b));return m1(i,$)}refine(n,m){let i=(b)=>{if(typeof m==="string"||typeof m>"u")return{message:m};else if(typeof m==="function")return m(b);else return m};return this._refinement((b,$)=>{let o=n(b),_=()=>$.addIssue({code:Q.custom,...i(b)});if(typeof Promise<"u"&&o instanceof Promise)return o.then((J)=>{if(!J)return _(),!1;else return!0});if(!o)return _(),!1;else return!0})}refinement(n,m){return this._refinement((i,b)=>{if(!n(i))return b.addIssue(typeof m==="function"?m(i,b):m),!1;else return!0})}_refinement(n){return new s({schema:this,typeName:W.ZodEffects,effect:{type:"refinement",refinement:n}})}superRefine(n){return this._refinement(n)}constructor(n){this.spa=this.safeParseAsync,this._def=n,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(m)=>this["~validate"](m)}}optional(){return a.create(this,this._def)}nullable(){return xn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return r.create(this)}promise(){return Zn.create(this,this._def)}or(n){return Y0.create([this,n],this._def)}and(n){return H0.create(this,n,this._def)}transform(n){return new s({...V(this._def),schema:this,typeName:W.ZodEffects,effect:{type:"transform",transform:n}})}default(n){let m=typeof n==="function"?n:()=>n;return new gn({...V(this._def),innerType:this,defaultValue:m,typeName:W.ZodDefault})}brand(){return new Ym({typeName:W.ZodBranded,type:this,...V(this._def)})}catch(n){let m=typeof n==="function"?n:()=>n;return new O0({...V(this._def),innerType:this,catchValue:m,typeName:W.ZodCatch})}describe(n){return new this.constructor({...this._def,description:n})}pipe(n){return F0.create(this,n)}readonly(){return G0.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var g3=/^c[^\s-]{8,}$/i,R3=/^[0-9a-z]+$/,E3=/^[0-9A-HJKMNP-TV-Z]{26}$/i,U3=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,S3=/^[a-z0-9_-]{21}$/i,f3=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,p3=/^[-+]?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)?)??$/,F3=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,h3="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",mi,P3=/^(?:(?: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])$/,k3=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,T3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,I3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,y3=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,c3=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,b1="((\\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])))",z3=new RegExp(`^${b1}$`);function w1(n){let m="[0-5]\\d";if(n.precision)m=`${m}\\.\\d{${n.precision}}`;else if(n.precision==null)m=`${m}(\\.\\d+)?`;let i=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${m})${i}`}function Z3(n){return new RegExp(`^${w1(n)}$`)}function $1(n){let m=`${b1}T${w1(n)}`,i=[];if(i.push(n.local?"Z?":"Z"),n.offset)i.push("([+-]\\d{2}:?\\d{2})");return m=`${m}(${i.join("|")})`,new RegExp(`^${m}$`)}function t3(n,m){if((m==="v4"||!m)&&P3.test(n))return!0;if((m==="v6"||!m)&&T3.test(n))return!0;return!1}function d3(n,m){if(!f3.test(n))return!1;try{let[i]=n.split(".");if(!i)return!1;let b=i.replace(/-/g,"+").replace(/_/g,"/").padEnd(i.length+(4-i.length%4)%4,"="),$=JSON.parse(atob(b));if(typeof $!=="object"||$===null)return!1;if("typ"in $&&$?.typ!=="JWT")return!1;if(!$.alg)return!1;if(m&&$.alg!==m)return!1;return!0}catch{return!1}}function a3(n,m){if((m==="v4"||!m)&&k3.test(n))return!0;if((m==="v6"||!m)&&I3.test(n))return!0;return!1}class d extends K{_parse(n){if(this._def.coerce)n.data=String(n.data);if(this._getType(n)!==O.string){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_type,expected:O.string,received:$.parsedType}),v}let i=new k,b=void 0;for(let $ of this._def.checks)if($.kind==="min"){if(n.data.length<$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_small,minimum:$.value,type:"string",inclusive:!0,exact:!1,message:$.message}),i.dirty()}else if($.kind==="max"){if(n.data.length>$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_big,maximum:$.value,type:"string",inclusive:!0,exact:!1,message:$.message}),i.dirty()}else if($.kind==="length"){let o=n.data.length>$.value,_=n.data.length<$.value;if(o||_){if(b=this._getOrReturnCtx(n,b),o)G(b,{code:Q.too_big,maximum:$.value,type:"string",inclusive:!0,exact:!0,message:$.message});else if(_)G(b,{code:Q.too_small,minimum:$.value,type:"string",inclusive:!0,exact:!0,message:$.message});i.dirty()}}else if($.kind==="email"){if(!F3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"email",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="emoji"){if(!mi)mi=new RegExp(h3,"u");if(!mi.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"emoji",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="uuid"){if(!U3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"uuid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="nanoid"){if(!S3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"nanoid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="cuid"){if(!g3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"cuid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="cuid2"){if(!R3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"cuid2",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="ulid"){if(!E3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"ulid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="url")try{new URL(n.data)}catch{b=this._getOrReturnCtx(n,b),G(b,{validation:"url",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="regex"){if($.regex.lastIndex=0,!$.regex.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"regex",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="trim")n.data=n.data.trim();else if($.kind==="includes"){if(!n.data.includes($.value,$.position))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:{includes:$.value,position:$.position},message:$.message}),i.dirty()}else if($.kind==="toLowerCase")n.data=n.data.toLowerCase();else if($.kind==="toUpperCase")n.data=n.data.toUpperCase();else if($.kind==="startsWith"){if(!n.data.startsWith($.value))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:{startsWith:$.value},message:$.message}),i.dirty()}else if($.kind==="endsWith"){if(!n.data.endsWith($.value))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:{endsWith:$.value},message:$.message}),i.dirty()}else if($.kind==="datetime"){if(!$1($).test(n.data))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:"datetime",message:$.message}),i.dirty()}else if($.kind==="date"){if(!z3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:"date",message:$.message}),i.dirty()}else if($.kind==="time"){if(!Z3($).test(n.data))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:"time",message:$.message}),i.dirty()}else if($.kind==="duration"){if(!p3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"duration",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="ip"){if(!t3(n.data,$.version))b=this._getOrReturnCtx(n,b),G(b,{validation:"ip",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="jwt"){if(!d3(n.data,$.alg))b=this._getOrReturnCtx(n,b),G(b,{validation:"jwt",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="cidr"){if(!a3(n.data,$.version))b=this._getOrReturnCtx(n,b),G(b,{validation:"cidr",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="base64"){if(!y3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"base64",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="base64url"){if(!c3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"base64url",code:Q.invalid_string,message:$.message}),i.dirty()}else A.assertNever($);return{status:i.value,value:n.data}}_regex(n,m,i){return this.refinement((b)=>n.test(b),{validation:m,code:Q.invalid_string,...u.errToObj(i)})}_addCheck(n){return new d({...this._def,checks:[...this._def.checks,n]})}email(n){return this._addCheck({kind:"email",...u.errToObj(n)})}url(n){return this._addCheck({kind:"url",...u.errToObj(n)})}emoji(n){return this._addCheck({kind:"emoji",...u.errToObj(n)})}uuid(n){return this._addCheck({kind:"uuid",...u.errToObj(n)})}nanoid(n){return this._addCheck({kind:"nanoid",...u.errToObj(n)})}cuid(n){return this._addCheck({kind:"cuid",...u.errToObj(n)})}cuid2(n){return this._addCheck({kind:"cuid2",...u.errToObj(n)})}ulid(n){return this._addCheck({kind:"ulid",...u.errToObj(n)})}base64(n){return this._addCheck({kind:"base64",...u.errToObj(n)})}base64url(n){return this._addCheck({kind:"base64url",...u.errToObj(n)})}jwt(n){return this._addCheck({kind:"jwt",...u.errToObj(n)})}ip(n){return this._addCheck({kind:"ip",...u.errToObj(n)})}cidr(n){return this._addCheck({kind:"cidr",...u.errToObj(n)})}datetime(n){if(typeof n==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:n});return this._addCheck({kind:"datetime",precision:typeof n?.precision>"u"?null:n?.precision,offset:n?.offset??!1,local:n?.local??!1,...u.errToObj(n?.message)})}date(n){return this._addCheck({kind:"date",message:n})}time(n){if(typeof n==="string")return this._addCheck({kind:"time",precision:null,message:n});return this._addCheck({kind:"time",precision:typeof n?.precision>"u"?null:n?.precision,...u.errToObj(n?.message)})}duration(n){return this._addCheck({kind:"duration",...u.errToObj(n)})}regex(n,m){return this._addCheck({kind:"regex",regex:n,...u.errToObj(m)})}includes(n,m){return this._addCheck({kind:"includes",value:n,position:m?.position,...u.errToObj(m?.message)})}startsWith(n,m){return this._addCheck({kind:"startsWith",value:n,...u.errToObj(m)})}endsWith(n,m){return this._addCheck({kind:"endsWith",value:n,...u.errToObj(m)})}min(n,m){return this._addCheck({kind:"min",value:n,...u.errToObj(m)})}max(n,m){return this._addCheck({kind:"max",value:n,...u.errToObj(m)})}length(n,m){return this._addCheck({kind:"length",value:n,...u.errToObj(m)})}nonempty(n){return this.min(1,u.errToObj(n))}trim(){return new d({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new d({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new d({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((n)=>n.kind==="datetime")}get isDate(){return!!this._def.checks.find((n)=>n.kind==="date")}get isTime(){return!!this._def.checks.find((n)=>n.kind==="time")}get isDuration(){return!!this._def.checks.find((n)=>n.kind==="duration")}get isEmail(){return!!this._def.checks.find((n)=>n.kind==="email")}get isURL(){return!!this._def.checks.find((n)=>n.kind==="url")}get isEmoji(){return!!this._def.checks.find((n)=>n.kind==="emoji")}get isUUID(){return!!this._def.checks.find((n)=>n.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((n)=>n.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((n)=>n.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((n)=>n.kind==="cuid2")}get isULID(){return!!this._def.checks.find((n)=>n.kind==="ulid")}get isIP(){return!!this._def.checks.find((n)=>n.kind==="ip")}get isCIDR(){return!!this._def.checks.find((n)=>n.kind==="cidr")}get isBase64(){return!!this._def.checks.find((n)=>n.kind==="base64")}get isBase64url(){return!!this._def.checks.find((n)=>n.kind==="base64url")}get minLength(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n}get maxLength(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n}}d.create=(n)=>{return new d({checks:[],typeName:W.ZodString,coerce:n?.coerce??!1,...V(n)})};function r3(n,m){let i=(n.toString().split(".")[1]||"").length,b=(m.toString().split(".")[1]||"").length,$=i>b?i:b,o=Number.parseInt(n.toFixed($).replace(".","")),_=Number.parseInt(m.toFixed($).replace(".",""));return o%_/10**$}class Cn extends K{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(n){if(this._def.coerce)n.data=Number(n.data);if(this._getType(n)!==O.number){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_type,expected:O.number,received:$.parsedType}),v}let i=void 0,b=new k;for(let $ of this._def.checks)if($.kind==="int"){if(!A.isInteger(n.data))i=this._getOrReturnCtx(n,i),G(i,{code:Q.invalid_type,expected:"integer",received:"float",message:$.message}),b.dirty()}else if($.kind==="min"){if($.inclusive?n.data<$.value:n.data<=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_small,minimum:$.value,type:"number",inclusive:$.inclusive,exact:!1,message:$.message}),b.dirty()}else if($.kind==="max"){if($.inclusive?n.data>$.value:n.data>=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_big,maximum:$.value,type:"number",inclusive:$.inclusive,exact:!1,message:$.message}),b.dirty()}else if($.kind==="multipleOf"){if(r3(n.data,$.value)!==0)i=this._getOrReturnCtx(n,i),G(i,{code:Q.not_multiple_of,multipleOf:$.value,message:$.message}),b.dirty()}else if($.kind==="finite"){if(!Number.isFinite(n.data))i=this._getOrReturnCtx(n,i),G(i,{code:Q.not_finite,message:$.message}),b.dirty()}else A.assertNever($);return{status:b.value,value:n.data}}gte(n,m){return this.setLimit("min",n,!0,u.toString(m))}gt(n,m){return this.setLimit("min",n,!1,u.toString(m))}lte(n,m){return this.setLimit("max",n,!0,u.toString(m))}lt(n,m){return this.setLimit("max",n,!1,u.toString(m))}setLimit(n,m,i,b){return new Cn({...this._def,checks:[...this._def.checks,{kind:n,value:m,inclusive:i,message:u.toString(b)}]})}_addCheck(n){return new Cn({...this._def,checks:[...this._def.checks,n]})}int(n){return this._addCheck({kind:"int",message:u.toString(n)})}positive(n){return this._addCheck({kind:"min",value:0,inclusive:!1,message:u.toString(n)})}negative(n){return this._addCheck({kind:"max",value:0,inclusive:!1,message:u.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:0,inclusive:!0,message:u.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:0,inclusive:!0,message:u.toString(n)})}multipleOf(n,m){return this._addCheck({kind:"multipleOf",value:n,message:u.toString(m)})}finite(n){return this._addCheck({kind:"finite",message:u.toString(n)})}safe(n){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:u.toString(n)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:u.toString(n)})}get minValue(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n}get maxValue(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n}get isInt(){return!!this._def.checks.find((n)=>n.kind==="int"||n.kind==="multipleOf"&&A.isInteger(n.value))}get isFinite(){let n=null,m=null;for(let i of this._def.checks)if(i.kind==="finite"||i.kind==="int"||i.kind==="multipleOf")return!0;else if(i.kind==="min"){if(m===null||i.value>m)m=i.value}else if(i.kind==="max"){if(n===null||i.value<n)n=i.value}return Number.isFinite(m)&&Number.isFinite(n)}}Cn.create=(n)=>{return new Cn({checks:[],typeName:W.ZodNumber,coerce:n?.coerce||!1,...V(n)})};class Kn extends K{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(n){if(this._def.coerce)try{n.data=BigInt(n.data)}catch{return this._getInvalidInput(n)}if(this._getType(n)!==O.bigint)return this._getInvalidInput(n);let i=void 0,b=new k;for(let $ of this._def.checks)if($.kind==="min"){if($.inclusive?n.data<$.value:n.data<=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_small,type:"bigint",minimum:$.value,inclusive:$.inclusive,message:$.message}),b.dirty()}else if($.kind==="max"){if($.inclusive?n.data>$.value:n.data>=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_big,type:"bigint",maximum:$.value,inclusive:$.inclusive,message:$.message}),b.dirty()}else if($.kind==="multipleOf"){if(n.data%$.value!==BigInt(0))i=this._getOrReturnCtx(n,i),G(i,{code:Q.not_multiple_of,multipleOf:$.value,message:$.message}),b.dirty()}else A.assertNever($);return{status:b.value,value:n.data}}_getInvalidInput(n){let m=this._getOrReturnCtx(n);return G(m,{code:Q.invalid_type,expected:O.bigint,received:m.parsedType}),v}gte(n,m){return this.setLimit("min",n,!0,u.toString(m))}gt(n,m){return this.setLimit("min",n,!1,u.toString(m))}lte(n,m){return this.setLimit("max",n,!0,u.toString(m))}lt(n,m){return this.setLimit("max",n,!1,u.toString(m))}setLimit(n,m,i,b){return new Kn({...this._def,checks:[...this._def.checks,{kind:n,value:m,inclusive:i,message:u.toString(b)}]})}_addCheck(n){return new Kn({...this._def,checks:[...this._def.checks,n]})}positive(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:u.toString(n)})}negative(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:u.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:u.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:u.toString(n)})}multipleOf(n,m){return this._addCheck({kind:"multipleOf",value:n,message:u.toString(m)})}get minValue(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n}get maxValue(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n}}Kn.create=(n)=>{return new Kn({checks:[],typeName:W.ZodBigInt,coerce:n?.coerce??!1,...V(n)})};class _0 extends K{_parse(n){if(this._def.coerce)n.data=Boolean(n.data);if(this._getType(n)!==O.boolean){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.boolean,received:i.parsedType}),v}return I(n.data)}}_0.create=(n)=>{return new _0({typeName:W.ZodBoolean,coerce:n?.coerce||!1,...V(n)})};class yn extends K{_parse(n){if(this._def.coerce)n.data=new Date(n.data);if(this._getType(n)!==O.date){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_type,expected:O.date,received:$.parsedType}),v}if(Number.isNaN(n.data.getTime())){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_date}),v}let i=new k,b=void 0;for(let $ of this._def.checks)if($.kind==="min"){if(n.data.getTime()<$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_small,message:$.message,inclusive:!0,exact:!1,minimum:$.value,type:"date"}),i.dirty()}else if($.kind==="max"){if(n.data.getTime()>$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_big,message:$.message,inclusive:!0,exact:!1,maximum:$.value,type:"date"}),i.dirty()}else A.assertNever($);return{status:i.value,value:new Date(n.data.getTime())}}_addCheck(n){return new yn({...this._def,checks:[...this._def.checks,n]})}min(n,m){return this._addCheck({kind:"min",value:n.getTime(),message:u.toString(m)})}max(n,m){return this._addCheck({kind:"max",value:n.getTime(),message:u.toString(m)})}get minDate(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n!=null?new Date(n):null}get maxDate(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n!=null?new Date(n):null}}yn.create=(n)=>{return new yn({checks:[],coerce:n?.coerce||!1,typeName:W.ZodDate,...V(n)})};class E0 extends K{_parse(n){if(this._getType(n)!==O.symbol){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.symbol,received:i.parsedType}),v}return I(n.data)}}E0.create=(n)=>{return new E0({typeName:W.ZodSymbol,...V(n)})};class J0 extends K{_parse(n){if(this._getType(n)!==O.undefined){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.undefined,received:i.parsedType}),v}return I(n.data)}}J0.create=(n)=>{return new J0({typeName:W.ZodUndefined,...V(n)})};class X0 extends K{_parse(n){if(this._getType(n)!==O.null){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.null,received:i.parsedType}),v}return I(n.data)}}X0.create=(n)=>{return new X0({typeName:W.ZodNull,...V(n)})};class cn extends K{constructor(){super(...arguments);this._any=!0}_parse(n){return I(n.data)}}cn.create=(n)=>{return new cn({typeName:W.ZodAny,...V(n)})};class Bn extends K{constructor(){super(...arguments);this._unknown=!0}_parse(n){return I(n.data)}}Bn.create=(n)=>{return new Bn({typeName:W.ZodUnknown,...V(n)})};class Xn extends K{_parse(n){let m=this._getOrReturnCtx(n);return G(m,{code:Q.invalid_type,expected:O.never,received:m.parsedType}),v}}Xn.create=(n)=>{return new Xn({typeName:W.ZodNever,...V(n)})};class U0 extends K{_parse(n){if(this._getType(n)!==O.undefined){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.void,received:i.parsedType}),v}return I(n.data)}}U0.create=(n)=>{return new U0({typeName:W.ZodVoid,...V(n)})};class r extends K{_parse(n){let{ctx:m,status:i}=this._processInputParams(n),b=this._def;if(m.parsedType!==O.array)return G(m,{code:Q.invalid_type,expected:O.array,received:m.parsedType}),v;if(b.exactLength!==null){let o=m.data.length>b.exactLength.value,_=m.data.length<b.exactLength.value;if(o||_)G(m,{code:o?Q.too_big:Q.too_small,minimum:_?b.exactLength.value:void 0,maximum:o?b.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:b.exactLength.message}),i.dirty()}if(b.minLength!==null){if(m.data.length<b.minLength.value)G(m,{code:Q.too_small,minimum:b.minLength.value,type:"array",inclusive:!0,exact:!1,message:b.minLength.message}),i.dirty()}if(b.maxLength!==null){if(m.data.length>b.maxLength.value)G(m,{code:Q.too_big,maximum:b.maxLength.value,type:"array",inclusive:!0,exact:!1,message:b.maxLength.message}),i.dirty()}if(m.common.async)return Promise.all([...m.data].map((o,_)=>{return b.type._parseAsync(new e(m,o,m.path,_))})).then((o)=>{return k.mergeArray(i,o)});let $=[...m.data].map((o,_)=>{return b.type._parseSync(new e(m,o,m.path,_))});return k.mergeArray(i,$)}get element(){return this._def.type}min(n,m){return new r({...this._def,minLength:{value:n,message:u.toString(m)}})}max(n,m){return new r({...this._def,maxLength:{value:n,message:u.toString(m)}})}length(n,m){return new r({...this._def,exactLength:{value:n,message:u.toString(m)}})}nonempty(n){return this.min(1,n)}}r.create=(n,m)=>{return new r({type:n,minLength:null,maxLength:null,exactLength:null,typeName:W.ZodArray,...V(m)})};function $0(n){if(n instanceof U){let m={};for(let i in n.shape){let b=n.shape[i];m[i]=a.create($0(b))}return new U({...n._def,shape:()=>m})}else if(n instanceof r)return new r({...n._def,type:$0(n.element)});else if(n instanceof a)return a.create($0(n.unwrap()));else if(n instanceof xn)return xn.create($0(n.unwrap()));else if(n instanceof Yn)return Yn.create(n.items.map((m)=>$0(m)));else return n}class U extends K{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let n=this._def.shape(),m=A.objectKeys(n);return this._cached={shape:n,keys:m},this._cached}_parse(n){if(this._getType(n)!==O.object){let X=this._getOrReturnCtx(n);return G(X,{code:Q.invalid_type,expected:O.object,received:X.parsedType}),v}let{status:i,ctx:b}=this._processInputParams(n),{shape:$,keys:o}=this._getCached(),_=[];if(!(this._def.catchall instanceof Xn&&this._def.unknownKeys==="strip")){for(let X in b.data)if(!o.includes(X))_.push(X)}let J=[];for(let X of o){let Y=$[X],H=b.data[X];J.push({key:{status:"valid",value:X},value:Y._parse(new e(b,H,b.path,X)),alwaysSet:X in b.data})}if(this._def.catchall instanceof Xn){let X=this._def.unknownKeys;if(X==="passthrough")for(let Y of _)J.push({key:{status:"valid",value:Y},value:{status:"valid",value:b.data[Y]}});else if(X==="strict"){if(_.length>0)G(b,{code:Q.unrecognized_keys,keys:_}),i.dirty()}else if(X==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let X=this._def.catchall;for(let Y of _){let H=b.data[Y];J.push({key:{status:"valid",value:Y},value:X._parse(new e(b,H,b.path,Y)),alwaysSet:Y in b.data})}}if(b.common.async)return Promise.resolve().then(async()=>{let X=[];for(let Y of J){let H=await Y.key,q=await Y.value;X.push({key:H,value:q,alwaysSet:Y.alwaysSet})}return X}).then((X)=>{return k.mergeObjectSync(i,X)});else return k.mergeObjectSync(i,J)}get shape(){return this._def.shape()}strict(n){return u.errToObj,new U({...this._def,unknownKeys:"strict",...n!==void 0?{errorMap:(m,i)=>{let b=this._def.errorMap?.(m,i).message??i.defaultError;if(m.code==="unrecognized_keys")return{message:u.errToObj(n).message??b};return{message:b}}}:{}})}strip(){return new U({...this._def,unknownKeys:"strip"})}passthrough(){return new U({...this._def,unknownKeys:"passthrough"})}extend(n){return new U({...this._def,shape:()=>({...this._def.shape(),...n})})}merge(n){return new U({unknownKeys:n._def.unknownKeys,catchall:n._def.catchall,shape:()=>({...this._def.shape(),...n._def.shape()}),typeName:W.ZodObject})}setKey(n,m){return this.augment({[n]:m})}catchall(n){return new U({...this._def,catchall:n})}pick(n){let m={};for(let i of A.objectKeys(n))if(n[i]&&this.shape[i])m[i]=this.shape[i];return new U({...this._def,shape:()=>m})}omit(n){let m={};for(let i of A.objectKeys(this.shape))if(!n[i])m[i]=this.shape[i];return new U({...this._def,shape:()=>m})}deepPartial(){return $0(this)}partial(n){let m={};for(let i of A.objectKeys(this.shape)){let b=this.shape[i];if(n&&!n[i])m[i]=b;else m[i]=b.optional()}return new U({...this._def,shape:()=>m})}required(n){let m={};for(let i of A.objectKeys(this.shape))if(n&&!n[i])m[i]=this.shape[i];else{let $=this.shape[i];while($ instanceof a)$=$._def.innerType;m[i]=$}return new U({...this._def,shape:()=>m})}keyof(){return o1(A.objectKeys(this.shape))}}U.create=(n,m)=>{return new U({shape:()=>n,unknownKeys:"strip",catchall:Xn.create(),typeName:W.ZodObject,...V(m)})};U.strictCreate=(n,m)=>{return new U({shape:()=>n,unknownKeys:"strict",catchall:Xn.create(),typeName:W.ZodObject,...V(m)})};U.lazycreate=(n,m)=>{return new U({shape:n,unknownKeys:"strip",catchall:Xn.create(),typeName:W.ZodObject,...V(m)})};class Y0 extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i=this._def.options;function b($){for(let _ of $)if(_.result.status==="valid")return _.result;for(let _ of $)if(_.result.status==="dirty")return m.common.issues.push(..._.ctx.common.issues),_.result;let o=$.map((_)=>new z(_.ctx.common.issues));return G(m,{code:Q.invalid_union,unionErrors:o}),v}if(m.common.async)return Promise.all(i.map(async($)=>{let o={...m,common:{...m.common,issues:[]},parent:null};return{result:await $._parseAsync({data:m.data,path:m.path,parent:o}),ctx:o}})).then(b);else{let $=void 0,o=[];for(let J of i){let X={...m,common:{...m.common,issues:[]},parent:null},Y=J._parseSync({data:m.data,path:m.path,parent:X});if(Y.status==="valid")return Y;else if(Y.status==="dirty"&&!$)$={result:Y,ctx:X};if(X.common.issues.length)o.push(X.common.issues)}if($)return m.common.issues.push(...$.ctx.common.issues),$.result;let _=o.map((J)=>new z(J));return G(m,{code:Q.invalid_union,unionErrors:_}),v}}get options(){return this._def.options}}Y0.create=(n,m)=>{return new Y0({options:n,typeName:W.ZodUnion,...V(m)})};var Mn=(n)=>{if(n instanceof Q0)return Mn(n.schema);else if(n instanceof s)return Mn(n.innerType());else if(n instanceof W0)return[n.value];else if(n instanceof An)return n.options;else if(n instanceof q0)return A.objectValues(n.enum);else if(n instanceof gn)return Mn(n._def.innerType);else if(n instanceof J0)return[void 0];else if(n instanceof X0)return[null];else if(n instanceof a)return[void 0,...Mn(n.unwrap())];else if(n instanceof xn)return[null,...Mn(n.unwrap())];else if(n instanceof Ym)return Mn(n.unwrap());else if(n instanceof G0)return Mn(n.unwrap());else if(n instanceof O0)return Mn(n._def.innerType);else return[]};class Xm extends K{_parse(n){let{ctx:m}=this._processInputParams(n);if(m.parsedType!==O.object)return G(m,{code:Q.invalid_type,expected:O.object,received:m.parsedType}),v;let i=this.discriminator,b=m.data[i],$=this.optionsMap.get(b);if(!$)return G(m,{code:Q.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[i]}),v;if(m.common.async)return $._parseAsync({data:m.data,path:m.path,parent:m});else return $._parseSync({data:m.data,path:m.path,parent:m})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(n,m,i){let b=new Map;for(let $ of m){let o=Mn($.shape[n]);if(!o.length)throw Error(`A discriminator value for key \`${n}\` could not be extracted from all schema options`);for(let _ of o){if(b.has(_))throw Error(`Discriminator property ${String(n)} has duplicate value ${String(_)}`);b.set(_,$)}}return new Xm({typeName:W.ZodDiscriminatedUnion,discriminator:n,options:m,optionsMap:b,...V(i)})}}function ii(n,m){let i=Jn(n),b=Jn(m);if(n===m)return{valid:!0,data:n};else if(i===O.object&&b===O.object){let $=A.objectKeys(m),o=A.objectKeys(n).filter((J)=>$.indexOf(J)!==-1),_={...n,...m};for(let J of o){let X=ii(n[J],m[J]);if(!X.valid)return{valid:!1};_[J]=X.data}return{valid:!0,data:_}}else if(i===O.array&&b===O.array){if(n.length!==m.length)return{valid:!1};let $=[];for(let o=0;o<n.length;o++){let _=n[o],J=m[o],X=ii(_,J);if(!X.valid)return{valid:!1};$.push(X.data)}return{valid:!0,data:$}}else if(i===O.date&&b===O.date&&+n===+m)return{valid:!0,data:n};else return{valid:!1}}class H0 extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n),b=($,o)=>{if(_m($)||_m(o))return v;let _=ii($.value,o.value);if(!_.valid)return G(i,{code:Q.invalid_intersection_types}),v;if(Jm($)||Jm(o))m.dirty();return{status:m.value,value:_.data}};if(i.common.async)return Promise.all([this._def.left._parseAsync({data:i.data,path:i.path,parent:i}),this._def.right._parseAsync({data:i.data,path:i.path,parent:i})]).then(([$,o])=>b($,o));else return b(this._def.left._parseSync({data:i.data,path:i.path,parent:i}),this._def.right._parseSync({data:i.data,path:i.path,parent:i}))}}H0.create=(n,m,i)=>{return new H0({left:n,right:m,typeName:W.ZodIntersection,...V(i)})};class Yn extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.array)return G(i,{code:Q.invalid_type,expected:O.array,received:i.parsedType}),v;if(i.data.length<this._def.items.length)return G(i,{code:Q.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;if(!this._def.rest&&i.data.length>this._def.items.length)G(i,{code:Q.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),m.dirty();let $=[...i.data].map((o,_)=>{let J=this._def.items[_]||this._def.rest;if(!J)return null;return J._parse(new e(i,o,i.path,_))}).filter((o)=>!!o);if(i.common.async)return Promise.all($).then((o)=>{return k.mergeArray(m,o)});else return k.mergeArray(m,$)}get items(){return this._def.items}rest(n){return new Yn({...this._def,rest:n})}}Yn.create=(n,m)=>{if(!Array.isArray(n))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new Yn({items:n,typeName:W.ZodTuple,rest:null,...V(m)})};class S0 extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.object)return G(i,{code:Q.invalid_type,expected:O.object,received:i.parsedType}),v;let b=[],$=this._def.keyType,o=this._def.valueType;for(let _ in i.data)b.push({key:$._parse(new e(i,_,i.path,_)),value:o._parse(new e(i,i.data[_],i.path,_)),alwaysSet:_ in i.data});if(i.common.async)return k.mergeObjectAsync(m,b);else return k.mergeObjectSync(m,b)}get element(){return this._def.valueType}static create(n,m,i){if(m instanceof K)return new S0({keyType:n,valueType:m,typeName:W.ZodRecord,...V(i)});return new S0({keyType:d.create(),valueType:n,typeName:W.ZodRecord,...V(m)})}}class f0 extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.map)return G(i,{code:Q.invalid_type,expected:O.map,received:i.parsedType}),v;let b=this._def.keyType,$=this._def.valueType,o=[...i.data.entries()].map(([_,J],X)=>{return{key:b._parse(new e(i,_,i.path,[X,"key"])),value:$._parse(new e(i,J,i.path,[X,"value"]))}});if(i.common.async){let _=new Map;return Promise.resolve().then(async()=>{for(let J of o){let X=await J.key,Y=await J.value;if(X.status==="aborted"||Y.status==="aborted")return v;if(X.status==="dirty"||Y.status==="dirty")m.dirty();_.set(X.value,Y.value)}return{status:m.value,value:_}})}else{let _=new Map;for(let J of o){let{key:X,value:Y}=J;if(X.status==="aborted"||Y.status==="aborted")return v;if(X.status==="dirty"||Y.status==="dirty")m.dirty();_.set(X.value,Y.value)}return{status:m.value,value:_}}}}f0.create=(n,m,i)=>{return new f0({valueType:m,keyType:n,typeName:W.ZodMap,...V(i)})};class zn extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.set)return G(i,{code:Q.invalid_type,expected:O.set,received:i.parsedType}),v;let b=this._def;if(b.minSize!==null){if(i.data.size<b.minSize.value)G(i,{code:Q.too_small,minimum:b.minSize.value,type:"set",inclusive:!0,exact:!1,message:b.minSize.message}),m.dirty()}if(b.maxSize!==null){if(i.data.size>b.maxSize.value)G(i,{code:Q.too_big,maximum:b.maxSize.value,type:"set",inclusive:!0,exact:!1,message:b.maxSize.message}),m.dirty()}let $=this._def.valueType;function o(J){let X=new Set;for(let Y of J){if(Y.status==="aborted")return v;if(Y.status==="dirty")m.dirty();X.add(Y.value)}return{status:m.value,value:X}}let _=[...i.data.values()].map((J,X)=>$._parse(new e(i,J,i.path,X)));if(i.common.async)return Promise.all(_).then((J)=>o(J));else return o(_)}min(n,m){return new zn({...this._def,minSize:{value:n,message:u.toString(m)}})}max(n,m){return new zn({...this._def,maxSize:{value:n,message:u.toString(m)}})}size(n,m){return this.min(n,m).max(n,m)}nonempty(n){return this.min(1,n)}}zn.create=(n,m)=>{return new zn({valueType:n,minSize:null,maxSize:null,typeName:W.ZodSet,...V(m)})};class o0 extends K{constructor(){super(...arguments);this.validate=this.implement}_parse(n){let{ctx:m}=this._processInputParams(n);if(m.parsedType!==O.function)return G(m,{code:Q.invalid_type,expected:O.function,received:m.parsedType}),v;function i(_,J){return R0({data:_,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,b0(),Gn].filter((X)=>!!X),issueData:{code:Q.invalid_arguments,argumentsError:J}})}function b(_,J){return R0({data:_,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,b0(),Gn].filter((X)=>!!X),issueData:{code:Q.invalid_return_type,returnTypeError:J}})}let $={errorMap:m.common.contextualErrorMap},o=m.data;if(this._def.returns instanceof Zn){let _=this;return I(async function(...J){let X=new z([]),Y=await _._def.args.parseAsync(J,$).catch((M)=>{throw X.addIssue(i(J,M)),X}),H=await Reflect.apply(o,this,Y);return await _._def.returns._def.type.parseAsync(H,$).catch((M)=>{throw X.addIssue(b(H,M)),X})})}else{let _=this;return I(function(...J){let X=_._def.args.safeParse(J,$);if(!X.success)throw new z([i(J,X.error)]);let Y=Reflect.apply(o,this,X.data),H=_._def.returns.safeParse(Y,$);if(!H.success)throw new z([b(Y,H.error)]);return H.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...n){return new o0({...this._def,args:Yn.create(n).rest(Bn.create())})}returns(n){return new o0({...this._def,returns:n})}implement(n){return this.parse(n)}strictImplement(n){return this.parse(n)}static create(n,m,i){return new o0({args:n?n:Yn.create([]).rest(Bn.create()),returns:m||Bn.create(),typeName:W.ZodFunction,...V(i)})}}class Q0 extends K{get schema(){return this._def.getter()}_parse(n){let{ctx:m}=this._processInputParams(n);return this._def.getter()._parse({data:m.data,path:m.path,parent:m})}}Q0.create=(n,m)=>{return new Q0({getter:n,typeName:W.ZodLazy,...V(m)})};class W0 extends K{_parse(n){if(n.data!==this._def.value){let m=this._getOrReturnCtx(n);return G(m,{received:m.data,code:Q.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:n.data}}get value(){return this._def.value}}W0.create=(n,m)=>{return new W0({value:n,typeName:W.ZodLiteral,...V(m)})};function o1(n,m){return new An({values:n,typeName:W.ZodEnum,...V(m)})}class An extends K{_parse(n){if(typeof n.data!=="string"){let m=this._getOrReturnCtx(n),i=this._def.values;return G(m,{expected:A.joinValues(i),received:m.parsedType,code:Q.invalid_type}),v}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(n.data)){let m=this._getOrReturnCtx(n),i=this._def.values;return G(m,{received:m.data,code:Q.invalid_enum_value,options:i}),v}return I(n.data)}get options(){return this._def.values}get enum(){let n={};for(let m of this._def.values)n[m]=m;return n}get Values(){let n={};for(let m of this._def.values)n[m]=m;return n}get Enum(){let n={};for(let m of this._def.values)n[m]=m;return n}extract(n,m=this._def){return An.create(n,{...this._def,...m})}exclude(n,m=this._def){return An.create(this.options.filter((i)=>!n.includes(i)),{...this._def,...m})}}An.create=o1;class q0 extends K{_parse(n){let m=A.getValidEnumValues(this._def.values),i=this._getOrReturnCtx(n);if(i.parsedType!==O.string&&i.parsedType!==O.number){let b=A.objectValues(m);return G(i,{expected:A.joinValues(b),received:i.parsedType,code:Q.invalid_type}),v}if(!this._cache)this._cache=new Set(A.getValidEnumValues(this._def.values));if(!this._cache.has(n.data)){let b=A.objectValues(m);return G(i,{received:i.data,code:Q.invalid_enum_value,options:b}),v}return I(n.data)}get enum(){return this._def.values}}q0.create=(n,m)=>{return new q0({values:n,typeName:W.ZodNativeEnum,...V(m)})};class Zn extends K{unwrap(){return this._def.type}_parse(n){let{ctx:m}=this._processInputParams(n);if(m.parsedType!==O.promise&&m.common.async===!1)return G(m,{code:Q.invalid_type,expected:O.promise,received:m.parsedType}),v;let i=m.parsedType===O.promise?m.data:Promise.resolve(m.data);return I(i.then((b)=>{return this._def.type.parseAsync(b,{path:m.path,errorMap:m.common.contextualErrorMap})}))}}Zn.create=(n,m)=>{return new Zn({type:n,typeName:W.ZodPromise,...V(m)})};class s extends K{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===W.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(n){let{status:m,ctx:i}=this._processInputParams(n),b=this._def.effect||null,$={addIssue:(o)=>{if(G(i,o),o.fatal)m.abort();else m.dirty()},get path(){return i.path}};if($.addIssue=$.addIssue.bind($),b.type==="preprocess"){let o=b.transform(i.data,$);if(i.common.async)return Promise.resolve(o).then(async(_)=>{if(m.value==="aborted")return v;let J=await this._def.schema._parseAsync({data:_,path:i.path,parent:i});if(J.status==="aborted")return v;if(J.status==="dirty")return In(J.value);if(m.value==="dirty")return In(J.value);return J});else{if(m.value==="aborted")return v;let _=this._def.schema._parseSync({data:o,path:i.path,parent:i});if(_.status==="aborted")return v;if(_.status==="dirty")return In(_.value);if(m.value==="dirty")return In(_.value);return _}}if(b.type==="refinement"){let o=(_)=>{let J=b.refinement(_,$);if(i.common.async)return Promise.resolve(J);if(J instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return _};if(i.common.async===!1){let _=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(_.status==="aborted")return v;if(_.status==="dirty")m.dirty();return o(_.value),{status:m.value,value:_.value}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then((_)=>{if(_.status==="aborted")return v;if(_.status==="dirty")m.dirty();return o(_.value).then(()=>{return{status:m.value,value:_.value}})})}if(b.type==="transform")if(i.common.async===!1){let o=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(!Ln(o))return v;let _=b.transform(o.value,$);if(_ instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:m.value,value:_}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then((o)=>{if(!Ln(o))return v;return Promise.resolve(b.transform(o.value,$)).then((_)=>({status:m.value,value:_}))});A.assertNever(b)}}s.create=(n,m,i)=>{return new s({schema:n,typeName:W.ZodEffects,effect:m,...V(i)})};s.createWithPreprocess=(n,m,i)=>{return new s({schema:m,effect:{type:"preprocess",transform:n},typeName:W.ZodEffects,...V(i)})};class a extends K{_parse(n){if(this._getType(n)===O.undefined)return I(void 0);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}a.create=(n,m)=>{return new a({innerType:n,typeName:W.ZodOptional,...V(m)})};class xn extends K{_parse(n){if(this._getType(n)===O.null)return I(null);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}xn.create=(n,m)=>{return new xn({innerType:n,typeName:W.ZodNullable,...V(m)})};class gn extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i=m.data;if(m.parsedType===O.undefined)i=this._def.defaultValue();return this._def.innerType._parse({data:i,path:m.path,parent:m})}removeDefault(){return this._def.innerType}}gn.create=(n,m)=>{return new gn({innerType:n,typeName:W.ZodDefault,defaultValue:typeof m.default==="function"?m.default:()=>m.default,...V(m)})};class O0 extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i={...m,common:{...m.common,issues:[]}},b=this._def.innerType._parse({data:i.data,path:i.path,parent:{...i}});if(w0(b))return b.then(($)=>{return{status:"valid",value:$.status==="valid"?$.value:this._def.catchValue({get error(){return new z(i.common.issues)},input:i.data})}});else return{status:"valid",value:b.status==="valid"?b.value:this._def.catchValue({get error(){return new z(i.common.issues)},input:i.data})}}removeCatch(){return this._def.innerType}}O0.create=(n,m)=>{return new O0({innerType:n,typeName:W.ZodCatch,catchValue:typeof m.catch==="function"?m.catch:()=>m.catch,...V(m)})};class p0 extends K{_parse(n){if(this._getType(n)!==O.nan){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.nan,received:i.parsedType}),v}return{status:"valid",value:n.data}}}p0.create=(n)=>{return new p0({typeName:W.ZodNaN,...V(n)})};var e3=Symbol("zod_brand");class Ym extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i=m.data;return this._def.type._parse({data:i,path:m.path,parent:m})}unwrap(){return this._def.type}}class F0 extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.common.async)return(async()=>{let $=await this._def.in._parseAsync({data:i.data,path:i.path,parent:i});if($.status==="aborted")return v;if($.status==="dirty")return m.dirty(),In($.value);else return this._def.out._parseAsync({data:$.value,path:i.path,parent:i})})();else{let b=this._def.in._parseSync({data:i.data,path:i.path,parent:i});if(b.status==="aborted")return v;if(b.status==="dirty")return m.dirty(),{status:"dirty",value:b.value};else return this._def.out._parseSync({data:b.value,path:i.path,parent:i})}}static create(n,m){return new F0({in:n,out:m,typeName:W.ZodPipeline})}}class G0 extends K{_parse(n){let m=this._def.innerType._parse(n),i=(b)=>{if(Ln(b))b.value=Object.freeze(b.value);return b};return w0(m)?m.then((b)=>i(b)):i(m)}unwrap(){return this._def.innerType}}G0.create=(n,m)=>{return new G0({innerType:n,typeName:W.ZodReadonly,...V(m)})};function i1(n,m){let i=typeof n==="function"?n(m):typeof n==="string"?{message:n}:n;return typeof i==="string"?{message:i}:i}function _1(n,m={},i){if(n)return cn.create().superRefine((b,$)=>{let o=n(b);if(o instanceof Promise)return o.then((_)=>{if(!_){let J=i1(m,b),X=J.fatal??i??!0;$.addIssue({code:"custom",...J,fatal:X})}});if(!o){let _=i1(m,b),J=_.fatal??i??!0;$.addIssue({code:"custom",..._,fatal:J})}return});return cn.create()}var s3={object:U.lazycreate},W;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(W||(W={}));var n4=(n,m={message:`Input not instance of ${n.name}`})=>_1((i)=>i instanceof n,m),J1=d.create,X1=Cn.create,m4=p0.create,i4=Kn.create,Y1=_0.create,b4=yn.create,w4=E0.create,$4=J0.create,o4=X0.create,_4=cn.create,J4=Bn.create,X4=Xn.create,Y4=U0.create,H4=r.create,Q4=U.create,W4=U.strictCreate,q4=Y0.create,O4=Xm.create,G4=H0.create,M4=Yn.create,x4=S0.create,l4=f0.create,u4=zn.create,j4=o0.create,v4=Q0.create,D4=W0.create,N4=An.create,V4=q0.create,L4=Zn.create,B4=s.create,C4=a.create,K4=xn.create,A4=s.createWithPreprocess,g4=F0.create,R4=()=>J1().optional(),E4=()=>X1().optional(),U4=()=>Y1().optional(),S4={string:(n)=>d.create({...n,coerce:!0}),number:(n)=>Cn.create({...n,coerce:!0}),boolean:(n)=>_0.create({...n,coerce:!0}),bigint:(n)=>Kn.create({...n,coerce:!0}),date:(n)=>yn.create({...n,coerce:!0})};var f4=v;function p4(n,m){if(!(m instanceof U))return n;let i=m.shape,b={...n};for(let[$,o]of Object.entries(i)){if(typeof b[$]!=="number")continue;let _=o;while(_ instanceof a||_ instanceof gn)_=_._def.innerType;if(_ instanceof d)b[$]=String(b[$])}return b}var F4=30000;class Hm{registry;constructor(n){this.registry=n}async execute(n){let m=Date.now(),{command:i,args:b}=n,$=this.registry.get(i);if(!$)return Vn(i,"core",new g0(i),Date.now()-m);let o=$.parameters.safeParse(p4(b,$.parameters));if(!o.success){let X=new em(`Invalid arguments for command '${i}'`,o.error.errors);return Vn(i,$.pluginName,X,Date.now()-m)}let _=$.timeout??F4,J;try{let X=await Promise.race([$.handler(o.data),new Promise((Y,H)=>{J=setTimeout(()=>H(new om(i,_)),_)})]);return clearTimeout(J),si(i,$.pluginName,X,Date.now()-m)}catch(X){if(clearTimeout(J),X instanceof om)return Vn(i,$.pluginName,X,Date.now()-m);if(X instanceof l)return Vn(i,$.pluginName,X,Date.now()-m);let Y=X instanceof Error?new wm(X.message,X.stack):new wm(String(X));return Vn(i,$.pluginName,Y,Date.now()-m)}}}function H1(n){if(n==="true")return!0;if(n==="false")return!1;if(n.startsWith("0"))return n;if(n!==""&&!isNaN(Number(n)))return Number(n);return n}function W1(n){let m={},i="",b=0;if(n.length>0&&!n[0].startsWith("--"))i=n[0],b=1;while(b<n.length){let $=n[b];if($.startsWith("--")){let o=$.slice(2);if(o.includes("=")){let _=o.indexOf("="),J=o.slice(0,_),X=o.slice(_+1);Q1(m,J,H1(X))}else if(b+1<n.length&&!n[b+1].startsWith("--"))Q1(m,o,H1(n[b+1])),b++;else m[o]=!0}b++}return{command:i,args:m}}function Q1(n,m,i){let b=n[m];if(b===void 0)n[m]=i;else if(Array.isArray(b))n[m]=[...b,i];else if(typeof b==="string")n[m]=[b,i]}var h4={version:"1.0.0"};async function P4(n,m){try{if(n.initialize)await n.initialize(h4);let i=m;for(let b of n.commands)i=i.register(b);return{registry:i}}catch(i){let b=i instanceof Error?new $m(n.name,i.message,i):new $m(n.name,String(i));return{registry:m,error:b}}}async function bi(n,m=new Tn){let i=m,b=[];for(let $ of n){let o=await P4($,i);if(i=o.registry,o.error)b.push({pluginName:$.name,error:o.error})}return{registry:i,errors:b}}import{readFileSync as k4,writeFileSync as T4,mkdirSync as I4,existsSync as q1}from"node:fs";import{homedir as y4}from"node:os";import{join as O1}from"node:path";var wi=process.env.YUNKE_CONFIG_DIR??O1(y4(),".yunke"),Qm=O1(wi,"plugins.json");function G1(){if(!q1(wi))I4(wi,{recursive:!0})}function tn(){if(G1(),!q1(Qm))return{version:"1",plugins:[]};try{let n=k4(Qm,"utf-8");return JSON.parse(n)}catch(n){return process.stderr.write(`Warning: Failed to parse plugin config at ${Qm}: ${n instanceof Error?n.message:String(n)}
|
|
6
|
+
`).map((m)=>m.trim()).join(" ")};R6.O=function(n){return this.inspectOpts.colors=this.useColors,Nm.inspect(n,this.inspectOpts)}});var f6=T((FY,ji)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)ji.exports=g6();else ji.exports=S6()});var h6=T((hY,F6)=>{F6.exports=p6;function p6(n,m){if(n&&m)return p6(n)(m);if(typeof n!=="function")throw TypeError("need wrapper function");return Object.keys(n).forEach(function(b){i[b]=n[b]}),i;function i(){var b=Array(arguments.length);for(var $=0;$<b.length;$++)b[$]=arguments[$];var o=n.apply(this,b),_=b[b.length-1];if(typeof o==="function"&&o!==_)Object.keys(_).forEach(function(J){o[J]=_[J]});return o}}});var Di=T((PY,vi)=>{var P6=h6();vi.exports=P6(Lm);vi.exports.strict=P6(k6);Lm.proto=Lm(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Lm(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return k6(this)},configurable:!0})});function Lm(n){var m=function(){if(m.called)return m.value;return m.called=!0,m.value=n.apply(this,arguments)};return m.called=!1,m}function k6(n){var m=function(){if(m.called)throw Error(m.onceError);return m.called=!0,m.value=n.apply(this,arguments)},i=n.name||"Function wrapped with `once`";return m.onceError=i+" shouldn't be called more than once",m.called=!1,m}});var y6=T((kY,I6)=>{var M9=Di(),x9=function(){},l9=global.Bare?queueMicrotask:process.nextTick.bind(process),u9=function(n){return n.setHeader&&typeof n.abort==="function"},j9=function(n){return n.stdio&&Array.isArray(n.stdio)&&n.stdio.length===3},T6=function(n,m,i){if(typeof m==="function")return T6(n,null,m);if(!m)m={};i=M9(i||x9);var{_writableState:b,_readableState:$}=n,o=m.readable||m.readable!==!1&&n.readable,_=m.writable||m.writable!==!1&&n.writable,J=!1,X=function(){if(!n.writable)Y()},Y=function(){if(_=!1,!o)i.call(n)},H=function(){if(o=!1,!_)i.call(n)},q=function(N){i.call(n,N?Error("exited with error code: "+N):null)},M=function(N){i.call(n,N)},j=function(){l9(h)},h=function(){if(J)return;if(o&&!($&&($.ended&&!$.destroyed)))return i.call(n,Error("premature close"));if(_&&!(b&&(b.ended&&!b.destroyed)))return i.call(n,Error("premature close"))},B=function(){n.req.on("finish",Y)};if(u9(n))if(n.on("complete",Y),n.on("abort",j),n.req)B();else n.on("request",B);else if(_&&!b)n.on("end",X),n.on("close",X);if(j9(n))n.on("exit",q);if(n.on("end",H),n.on("finish",Y),m.error!==!1)n.on("error",M);return n.on("close",j),function(){if(J=!0,n.removeListener("complete",Y),n.removeListener("abort",j),n.removeListener("request",B),n.req)n.req.removeListener("finish",Y);n.removeListener("end",X),n.removeListener("close",X),n.removeListener("finish",Y),n.removeListener("exit",q),n.removeListener("end",H),n.removeListener("error",M),n.removeListener("close",j)}};I6.exports=T6});var Z6=T((TY,z6)=>{var v9=Di(),D9=y6(),Bm;try{Bm=F("fs")}catch(n){}var y0=function(){},N9=typeof process>"u"?!1:/^v?\.0/.test(process.version),Cm=function(n){return typeof n==="function"},V9=function(n){if(!N9)return!1;if(!Bm)return!1;return(n instanceof(Bm.ReadStream||y0)||n instanceof(Bm.WriteStream||y0))&&Cm(n.close)},L9=function(n){return n.setHeader&&Cm(n.abort)},B9=function(n,m,i,b){b=v9(b);var $=!1;n.on("close",function(){$=!0}),D9(n,{readable:m,writable:i},function(_){if(_)return b(_);$=!0,b()});var o=!1;return function(_){if($)return;if(o)return;if(o=!0,V9(n))return n.close(y0);if(L9(n))return n.abort();if(Cm(n.destroy))return n.destroy();b(_||Error("stream was destroyed"))}},c6=function(n){n()},C9=function(n,m){return n.pipe(m)},K9=function(){var n=Array.prototype.slice.call(arguments),m=Cm(n[n.length-1]||y0)&&n.pop()||y0;if(Array.isArray(n[0]))n=n[0];if(n.length<2)throw Error("pump requires two streams per minimum");var i,b=n.map(function($,o){var _=o<n.length-1,J=o>0;return B9($,_,J,function(X){if(!i)i=X;if(X)b.forEach(c6);if(_)return;b.forEach(c6),m(i)})});return n.reduce(C9)};z6.exports=K9});var d6=T((IY,t6)=>{var{PassThrough:A9}=F("stream");t6.exports=(n)=>{n={...n};let{array:m}=n,{encoding:i}=n,b=i==="buffer",$=!1;if(m)$=!(i||b);else i=i||"utf8";if(b)i=null;let o=new A9({objectMode:$});if(i)o.setEncoding(i);let _=0,J=[];return o.on("data",(X)=>{if(J.push(X),$)_=J.length;else _+=X.length}),o.getBufferedValue=()=>{if(m)return J;return b?Buffer.concat(J,_):J.join("")},o.getBufferedLength=()=>_,o}});var a6=T((yY,j0)=>{var{constants:g9}=F("buffer"),R9=Z6(),E9=d6();class Ni extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}}async function Km(n,m){if(!n)return Promise.reject(Error("Expected a stream"));m={maxBuffer:1/0,...m};let{maxBuffer:i}=m,b;return await new Promise(($,o)=>{let _=(J)=>{if(J&&b.getBufferedLength()<=g9.MAX_LENGTH)J.bufferedData=b.getBufferedValue();o(J)};b=R9(n,E9(m),(J)=>{if(J){_(J);return}$()}),b.on("data",()=>{if(b.getBufferedLength()>i)_(new Ni)})}),b.getBufferedValue()}j0.exports=Km;j0.exports.default=Km;j0.exports.buffer=(n,m)=>Km(n,{...m,encoding:"buffer"});j0.exports.array=(n,m)=>Km(n,{...m,array:!0});j0.exports.MaxBufferError=Ni});var n2=T((cY,s6)=>{s6.exports=Am;function Am(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}Am.prototype.go=function(n){if(this.pending<this.max)e6(this,n);else this.waiting.push(n)};Am.prototype.wait=function(n){if(this.pending===0)n(this.error);else this.listeners.push(n)};Am.prototype.hold=function(){return r6(this)};function r6(n){n.pending+=1;var m=!1;return i;function i($){if(m)throw Error("callback called twice");if(m=!0,n.error=n.error||$,n.pending-=1,n.waiting.length>0&&n.pending<n.max)e6(n,n.waiting.shift());else if(n.pending===0){var o=n.listeners;n.listeners=[],o.forEach(b)}}function b($){$(n.error)}}function e6(n,m){m(r6(n))}});var i2=T((F9)=>{var c0=F("fs"),gm=F("util"),Vi=F("stream"),m2=Vi.Readable,Li=Vi.Writable,U9=Vi.PassThrough,S9=n2(),Rm=F("events").EventEmitter;F9.createFromBuffer=f9;F9.createFromFd=p9;F9.BufferSlicer=vn;F9.FdSlicer=jn;gm.inherits(jn,Rm);function jn(n,m){m=m||{},Rm.call(this),this.fd=n,this.pend=new S9,this.pend.max=1,this.refCount=0,this.autoClose=!!m.autoClose}jn.prototype.read=function(n,m,i,b,$){var o=this;o.pend.go(function(_){c0.read(o.fd,n,m,i,b,function(J,X,Y){_(),$(J,X,Y)})})};jn.prototype.write=function(n,m,i,b,$){var o=this;o.pend.go(function(_){c0.write(o.fd,n,m,i,b,function(J,X,Y){_(),$(J,X,Y)})})};jn.prototype.createReadStream=function(n){return new Em(this,n)};jn.prototype.createWriteStream=function(n){return new Um(this,n)};jn.prototype.ref=function(){this.refCount+=1};jn.prototype.unref=function(){var n=this;if(n.refCount-=1,n.refCount>0)return;if(n.refCount<0)throw Error("invalid unref");if(n.autoClose)c0.close(n.fd,m);function m(i){if(i)n.emit("error",i);else n.emit("close")}};gm.inherits(Em,m2);function Em(n,m){m=m||{},m2.call(this,m),this.context=n,this.context.ref(),this.start=m.start||0,this.endOffset=m.end,this.pos=this.start,this.destroyed=!1}Em.prototype._read=function(n){var m=this;if(m.destroyed)return;var i=Math.min(m._readableState.highWaterMark,n);if(m.endOffset!=null)i=Math.min(i,m.endOffset-m.pos);if(i<=0){m.destroyed=!0,m.push(null),m.context.unref();return}m.context.pend.go(function(b){if(m.destroyed)return b();var $=new Buffer(i);c0.read(m.context.fd,$,0,i,m.pos,function(o,_){if(o)m.destroy(o);else if(_===0)m.destroyed=!0,m.push(null),m.context.unref();else m.pos+=_,m.push($.slice(0,_));b()})})};Em.prototype.destroy=function(n){if(this.destroyed)return;n=n||Error("stream destroyed"),this.destroyed=!0,this.emit("error",n),this.context.unref()};gm.inherits(Um,Li);function Um(n,m){m=m||{},Li.call(this,m),this.context=n,this.context.ref(),this.start=m.start||0,this.endOffset=m.end==null?1/0:+m.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}Um.prototype._write=function(n,m,i){var b=this;if(b.destroyed)return;if(b.pos+n.length>b.endOffset){var $=Error("maximum file length exceeded");$.code="ETOOBIG",b.destroy(),i($);return}b.context.pend.go(function(o){if(b.destroyed)return o();c0.write(b.context.fd,n,0,n.length,b.pos,function(_,J){if(_)b.destroy(),o(),i(_);else b.bytesWritten+=J,b.pos+=J,b.emit("progress"),o(),i()})})};Um.prototype.destroy=function(){if(this.destroyed)return;this.destroyed=!0,this.context.unref()};gm.inherits(vn,Rm);function vn(n,m){Rm.call(this),m=m||{},this.refCount=0,this.buffer=n,this.maxChunkSize=m.maxChunkSize||Number.MAX_SAFE_INTEGER}vn.prototype.read=function(n,m,i,b,$){var o=b+i,_=o-this.buffer.length,J=_>0?_:i;this.buffer.copy(n,m,b,o),setImmediate(function(){$(null,J)})};vn.prototype.write=function(n,m,i,b,$){n.copy(this.buffer,b,m,m+i),setImmediate(function(){$(null,i,n)})};vn.prototype.createReadStream=function(n){n=n||{};var m=new U9(n);m.destroyed=!1,m.start=n.start||0,m.endOffset=n.end,m.pos=m.endOffset||this.buffer.length;var i=this.buffer.slice(m.start,m.pos),b=0;while(!0){var $=b+this.maxChunkSize;if($>=i.length){if(b<i.length)m.write(i.slice(b,i.length));break}m.write(i.slice(b,$)),b=$}return m.end(),m.destroy=function(){m.destroyed=!0},m};vn.prototype.createWriteStream=function(n){var m=this;n=n||{};var i=new Li(n);return i.start=n.start||0,i.endOffset=n.end==null?this.buffer.length:+n.end,i.bytesWritten=0,i.pos=i.start,i.destroyed=!1,i._write=function(b,$,o){if(i.destroyed)return;var _=i.pos+b.length;if(_>i.endOffset){var J=Error("maximum file length exceeded");J.code="ETOOBIG",i.destroyed=!0,o(J);return}b.copy(m.buffer,i.pos,0,b.length),i.bytesWritten+=b.length,i.pos=_,i.emit("progress"),o()},i.destroy=function(){i.destroyed=!0},i};vn.prototype.ref=function(){this.refCount+=1};vn.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw Error("invalid unref")};function f9(n,m){return new vn(n,m)}function p9(n,m){return new jn(n,m)}});var $2=T((ZY,w2)=>{var Sn=F("buffer").Buffer,Bi=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];if(typeof Int32Array<"u")Bi=new Int32Array(Bi);function b2(n){if(Sn.isBuffer(n))return n;var m=typeof Sn.alloc==="function"&&typeof Sn.from==="function";if(typeof n==="number")return m?Sn.alloc(n):new Sn(n);else if(typeof n==="string")return m?Sn.from(n):new Sn(n);else throw Error("input must be buffer, number, or string, received "+typeof n)}function I9(n){var m=b2(4);return m.writeInt32BE(n,0),m}function Ci(n,m){if(n=b2(n),Sn.isBuffer(m))m=m.readUInt32BE(0);var i=~~m^-1;for(var b=0;b<n.length;b++)i=Bi[(i^n[b])&255]^i>>>8;return i^-1}function Ki(){return I9(Ci.apply(null,arguments))}Ki.signed=function(){return Ci.apply(null,arguments)};Ki.unsigned=function(){return Ci.apply(null,arguments)>>>0};w2.exports=Ki});var Q2=T((a9)=>{var Ai=F("fs"),y9=F("zlib"),o2=i2(),c9=$2(),pm=F("util"),Fm=F("events").EventEmitter,_2=F("stream").Transform,gi=F("stream").PassThrough,z9=F("stream").Writable;a9.open=Z9;a9.fromFd=J2;a9.fromBuffer=t9;a9.fromRandomAccessReader=Ri;a9.dosDateTimeToDate=Y2;a9.validateFileName=H2;a9.ZipFile=fn;a9.Entry=z0;a9.RandomAccessReader=pn;function Z9(n,m,i){if(typeof m==="function")i=m,m=null;if(m==null)m={};if(m.autoClose==null)m.autoClose=!0;if(m.lazyEntries==null)m.lazyEntries=!1;if(m.decodeStrings==null)m.decodeStrings=!0;if(m.validateEntrySizes==null)m.validateEntrySizes=!0;if(m.strictFileNames==null)m.strictFileNames=!1;if(i==null)i=fm;Ai.open(n,"r",function(b,$){if(b)return i(b);J2($,m,function(o,_){if(o)Ai.close($,fm);i(o,_)})})}function J2(n,m,i){if(typeof m==="function")i=m,m=null;if(m==null)m={};if(m.autoClose==null)m.autoClose=!1;if(m.lazyEntries==null)m.lazyEntries=!1;if(m.decodeStrings==null)m.decodeStrings=!0;if(m.validateEntrySizes==null)m.validateEntrySizes=!0;if(m.strictFileNames==null)m.strictFileNames=!1;if(i==null)i=fm;Ai.fstat(n,function(b,$){if(b)return i(b);var o=o2.createFromFd(n,{autoClose:!0});Ri(o,$.size,m,i)})}function t9(n,m,i){if(typeof m==="function")i=m,m=null;if(m==null)m={};if(m.autoClose=!1,m.lazyEntries==null)m.lazyEntries=!1;if(m.decodeStrings==null)m.decodeStrings=!0;if(m.validateEntrySizes==null)m.validateEntrySizes=!0;if(m.strictFileNames==null)m.strictFileNames=!1;var b=o2.createFromBuffer(n,{maxChunkSize:65536});Ri(b,n.length,m,i)}function Ri(n,m,i,b){if(typeof i==="function")b=i,i=null;if(i==null)i={};if(i.autoClose==null)i.autoClose=!0;if(i.lazyEntries==null)i.lazyEntries=!1;if(i.decodeStrings==null)i.decodeStrings=!0;var $=!!i.decodeStrings;if(i.validateEntrySizes==null)i.validateEntrySizes=!0;if(i.strictFileNames==null)i.strictFileNames=!1;if(b==null)b=fm;if(typeof m!=="number")throw Error("expected totalSize parameter to be a number");if(m>Number.MAX_SAFE_INTEGER)throw Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");n.ref();var o=22,_=65535,J=Math.min(o+_,m),X=qn(J),Y=m-X.length;v0(n,X,0,J,Y,function(H){if(H)return b(H);for(var q=J-o;q>=0;q-=1){if(X.readUInt32LE(q)!==101010256)continue;var M=X.slice(q),j=M.readUInt16LE(4);if(j!==0)return b(Error("multi-disk zip files are not supported: found disk number: "+j));var h=M.readUInt16LE(10),B=M.readUInt32LE(16),N=M.readUInt16LE(20),f=M.length-o;if(N!==f)return b(Error("invalid comment length. expected: "+f+". found: "+N));var P=$?Sm(M,22,M.length,!1):M.slice(22);if(!(h===65535||B===4294967295))return b(null,new fn(n,B,m,h,P,i.autoClose,i.lazyEntries,$,i.validateEntrySizes,i.strictFileNames));var c=qn(20),Nn=Y+q-c.length;v0(n,c,0,c.length,Nn,function(i0){if(i0)return b(i0);if(c.readUInt32LE(0)!==117853008)return b(Error("invalid zip64 end of central directory locator signature"));var K0=D0(c,8),kn=qn(56);v0(n,kn,0,kn.length,K0,function(A0){if(A0)return b(A0);if(kn.readUInt32LE(0)!==101075792)return b(Error("invalid zip64 end of central directory record signature"));return h=D0(kn,32),B=D0(kn,48),b(null,new fn(n,B,m,h,P,i.autoClose,i.lazyEntries,$,i.validateEntrySizes,i.strictFileNames))})});return}b(Error("end of central directory record signature not found"))})}pm.inherits(fn,Fm);function fn(n,m,i,b,$,o,_,J,X,Y){var H=this;if(Fm.call(H),H.reader=n,H.reader.on("error",function(q){X2(H,q)}),H.reader.once("close",function(){H.emit("close")}),H.readEntryCursor=m,H.fileSize=i,H.entryCount=b,H.comment=$,H.entriesRead=0,H.autoClose=!!o,H.lazyEntries=!!_,H.decodeStrings=!!J,H.validateEntrySizes=!!X,H.strictFileNames=!!Y,H.isOpen=!0,H.emittedError=!1,!H.lazyEntries)H._readEntry()}fn.prototype.close=function(){if(!this.isOpen)return;this.isOpen=!1,this.reader.unref()};function wn(n,m){if(n.autoClose)n.close();X2(n,m)}function X2(n,m){if(n.emittedError)return;n.emittedError=!0,n.emit("error",m)}fn.prototype.readEntry=function(){if(!this.lazyEntries)throw Error("readEntry() called without lazyEntries:true");this._readEntry()};fn.prototype._readEntry=function(){var n=this;if(n.entryCount===n.entriesRead){setImmediate(function(){if(n.autoClose)n.close();if(n.emittedError)return;n.emit("end")});return}if(n.emittedError)return;var m=qn(46);v0(n.reader,m,0,m.length,n.readEntryCursor,function(i){if(i)return wn(n,i);if(n.emittedError)return;var b=new z0,$=m.readUInt32LE(0);if($!==33639248)return wn(n,Error("invalid central directory file header signature: 0x"+$.toString(16)));if(b.versionMadeBy=m.readUInt16LE(4),b.versionNeededToExtract=m.readUInt16LE(6),b.generalPurposeBitFlag=m.readUInt16LE(8),b.compressionMethod=m.readUInt16LE(10),b.lastModFileTime=m.readUInt16LE(12),b.lastModFileDate=m.readUInt16LE(14),b.crc32=m.readUInt32LE(16),b.compressedSize=m.readUInt32LE(20),b.uncompressedSize=m.readUInt32LE(24),b.fileNameLength=m.readUInt16LE(28),b.extraFieldLength=m.readUInt16LE(30),b.fileCommentLength=m.readUInt16LE(32),b.internalFileAttributes=m.readUInt16LE(36),b.externalFileAttributes=m.readUInt32LE(38),b.relativeOffsetOfLocalHeader=m.readUInt32LE(42),b.generalPurposeBitFlag&64)return wn(n,Error("strong encryption is not supported"));n.readEntryCursor+=46,m=qn(b.fileNameLength+b.extraFieldLength+b.fileCommentLength),v0(n.reader,m,0,m.length,n.readEntryCursor,function(o){if(o)return wn(n,o);if(n.emittedError)return;var _=(b.generalPurposeBitFlag&2048)!==0;b.fileName=n.decodeStrings?Sm(m,0,b.fileNameLength,_):m.slice(0,b.fileNameLength);var J=b.fileNameLength+b.extraFieldLength,X=m.slice(b.fileNameLength,J);b.extraFields=[];var Y=0;while(Y<X.length-3){var H=X.readUInt16LE(Y+0),q=X.readUInt16LE(Y+2),M=Y+4,j=M+q;if(j>X.length)return wn(n,Error("extra field length exceeds extra field buffer size"));var h=qn(q);X.copy(h,0,M,j),b.extraFields.push({id:H,data:h}),Y=j}if(b.fileComment=n.decodeStrings?Sm(m,J,J+b.fileCommentLength,_):m.slice(J,J+b.fileCommentLength),b.comment=b.fileComment,n.readEntryCursor+=m.length,n.entriesRead+=1,b.uncompressedSize===4294967295||b.compressedSize===4294967295||b.relativeOffsetOfLocalHeader===4294967295){var B=null;for(var Y=0;Y<b.extraFields.length;Y++){var N=b.extraFields[Y];if(N.id===1){B=N.data;break}}if(B==null)return wn(n,Error("expected zip64 extended information extra field"));var f=0;if(b.uncompressedSize===4294967295){if(f+8>B.length)return wn(n,Error("zip64 extended information extra field does not include uncompressed size"));b.uncompressedSize=D0(B,f),f+=8}if(b.compressedSize===4294967295){if(f+8>B.length)return wn(n,Error("zip64 extended information extra field does not include compressed size"));b.compressedSize=D0(B,f),f+=8}if(b.relativeOffsetOfLocalHeader===4294967295){if(f+8>B.length)return wn(n,Error("zip64 extended information extra field does not include relative header offset"));b.relativeOffsetOfLocalHeader=D0(B,f),f+=8}}if(n.decodeStrings)for(var Y=0;Y<b.extraFields.length;Y++){var N=b.extraFields[Y];if(N.id===28789){if(N.data.length<6)continue;if(N.data.readUInt8(0)!==1)continue;var P=N.data.readUInt32LE(1);if(c9.unsigned(m.slice(0,b.fileNameLength))!==P)continue;b.fileName=Sm(N.data,5,N.data.length,!0);break}}if(n.validateEntrySizes&&b.compressionMethod===0){var c=b.uncompressedSize;if(b.isEncrypted())c+=12;if(b.compressedSize!==c){var Nn="compressed/uncompressed size mismatch for stored file: "+b.compressedSize+" != "+b.uncompressedSize;return wn(n,Error(Nn))}}if(n.decodeStrings){if(!n.strictFileNames)b.fileName=b.fileName.replace(/\\/g,"/");var i0=H2(b.fileName,n.validateFileNameOptions);if(i0!=null)return wn(n,Error(i0))}if(n.emit("entry",b),!n.lazyEntries)n._readEntry()})})};fn.prototype.openReadStream=function(n,m,i){var b=this,$=0,o=n.compressedSize;if(i==null)i=m,m={};else{if(m.decrypt!=null){if(!n.isEncrypted())throw Error("options.decrypt can only be specified for encrypted entries");if(m.decrypt!==!1)throw Error("invalid options.decrypt value: "+m.decrypt);if(n.isCompressed()){if(m.decompress!==!1)throw Error("entry is encrypted and compressed, and options.decompress !== false")}}if(m.decompress!=null){if(!n.isCompressed())throw Error("options.decompress can only be specified for compressed entries");if(!(m.decompress===!1||m.decompress===!0))throw Error("invalid options.decompress value: "+m.decompress)}if(m.start!=null||m.end!=null){if(n.isCompressed()&&m.decompress!==!1)throw Error("start/end range not allowed for compressed entry without options.decompress === false");if(n.isEncrypted()&&m.decrypt!==!1)throw Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(m.start!=null){if($=m.start,$<0)throw Error("options.start < 0");if($>n.compressedSize)throw Error("options.start > entry.compressedSize")}if(m.end!=null){if(o=m.end,o<0)throw Error("options.end < 0");if(o>n.compressedSize)throw Error("options.end > entry.compressedSize");if(o<$)throw Error("options.end < options.start")}}if(!b.isOpen)return i(Error("closed"));if(n.isEncrypted()){if(m.decrypt!==!1)return i(Error("entry is encrypted, and options.decrypt !== false"))}b.reader.ref();var _=qn(30);v0(b.reader,_,0,_.length,n.relativeOffsetOfLocalHeader,function(J){try{if(J)return i(J);var X=_.readUInt32LE(0);if(X!==67324752)return i(Error("invalid local file header signature: 0x"+X.toString(16)));var Y=_.readUInt16LE(26),H=_.readUInt16LE(28),q=n.relativeOffsetOfLocalHeader+_.length+Y+H,M;if(n.compressionMethod===0)M=!1;else if(n.compressionMethod===8)M=m.decompress!=null?m.decompress:!0;else return i(Error("unsupported compression method: "+n.compressionMethod));var j=q,h=j+n.compressedSize;if(n.compressedSize!==0){if(h>b.fileSize)return i(Error("file data overflows file bounds: "+j+" + "+n.compressedSize+" > "+b.fileSize))}var B=b.reader.createReadStream({start:j+$,end:j+o}),N=B;if(M){var f=!1,P=y9.createInflateRaw();if(B.on("error",function(c){setImmediate(function(){if(!f)P.emit("error",c)})}),B.pipe(P),b.validateEntrySizes)N=new Z0(n.uncompressedSize),P.on("error",function(c){setImmediate(function(){if(!f)N.emit("error",c)})}),P.pipe(N);else N=P;N.destroy=function(){if(f=!0,P!==N)P.unpipe(N);B.unpipe(P),B.destroy()}}i(null,N)}finally{b.reader.unref()}})};function z0(){}z0.prototype.getLastModDate=function(){return Y2(this.lastModFileDate,this.lastModFileTime)};z0.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};z0.prototype.isCompressed=function(){return this.compressionMethod===8};function Y2(n,m){var i=n&31,b=(n>>5&15)-1,$=(n>>9&127)+1980,o=0,_=(m&31)*2,J=m>>5&63,X=m>>11&31;return new Date($,b,i,X,J,_,o)}function H2(n){if(n.indexOf("\\")!==-1)return"invalid characters in fileName: "+n;if(/^[a-zA-Z]:/.test(n)||/^\//.test(n))return"absolute path: "+n;if(n.split("/").indexOf("..")!==-1)return"invalid relative path: "+n;return null}function v0(n,m,i,b,$,o){if(b===0)return setImmediate(function(){o(null,qn(0))});n.read(m,i,b,$,function(_,J){if(_)return o(_);if(J<b)return o(Error("unexpected EOF"));o()})}pm.inherits(Z0,_2);function Z0(n){_2.call(this),this.actualByteCount=0,this.expectedByteCount=n}Z0.prototype._transform=function(n,m,i){if(this.actualByteCount+=n.length,this.actualByteCount>this.expectedByteCount){var b="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return i(Error(b))}i(null,n)};Z0.prototype._flush=function(n){if(this.actualByteCount<this.expectedByteCount){var m="not enough bytes in the stream. expected "+this.expectedByteCount+". got only "+this.actualByteCount;return n(Error(m))}n()};pm.inherits(pn,Fm);function pn(){Fm.call(this),this.refCount=0}pn.prototype.ref=function(){this.refCount+=1};pn.prototype.unref=function(){var n=this;if(n.refCount-=1,n.refCount>0)return;if(n.refCount<0)throw Error("invalid unref");n.close(m);function m(i){if(i)return n.emit("error",i);n.emit("close")}};pn.prototype.createReadStream=function(n){var{start:m,end:i}=n;if(m===i){var b=new gi;return setImmediate(function(){b.end()}),b}var $=this._readStreamForRange(m,i),o=!1,_=new hm(this);$.on("error",function(X){setImmediate(function(){if(!o)_.emit("error",X)})}),_.destroy=function(){$.unpipe(_),_.unref(),$.destroy()};var J=new Z0(i-m);return _.on("error",function(X){setImmediate(function(){if(!o)J.emit("error",X)})}),J.destroy=function(){o=!0,_.unpipe(J),_.destroy()},$.pipe(_).pipe(J)};pn.prototype._readStreamForRange=function(n,m){throw Error("not implemented")};pn.prototype.read=function(n,m,i,b,$){var o=this.createReadStream({start:b,end:b+i}),_=new z9,J=0;_._write=function(X,Y,H){X.copy(n,m+J,0,X.length),J+=X.length,H()},_.on("finish",$),o.on("error",function(X){$(X)}),o.pipe(_)};pn.prototype.close=function(n){setImmediate(n)};pm.inherits(hm,gi);function hm(n){gi.call(this),this.context=n,this.context.ref(),this.unreffedYet=!1}hm.prototype._flush=function(n){this.unref(),n()};hm.prototype.unref=function(n){if(this.unreffedYet)return;this.unreffedYet=!0,this.context.unref()};var d9="\x00☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ";function Sm(n,m,i,b){if(b)return n.toString("utf8",m,i);else{var $="";for(var o=m;o<i;o++)$+=d9[n[o]];return $}}function D0(n,m){var i=n.readUInt32LE(m),b=n.readUInt32LE(m+4);return b*4294967296+i}var qn;if(typeof Buffer.allocUnsafe==="function")qn=function(n){return Buffer.allocUnsafe(n)};else qn=function(n){return new Buffer(n)};function fm(n){if(n)throw n}});var O2=T((dY,q2)=>{var $n=f6()("extract-zip"),{createWriteStream:o$,promises:N0}=F("fs"),_$=a6(),sn=F("path"),{promisify:Ei}=F("util"),J$=F("stream"),X$=Q2(),Y$=Ei(X$.open),H$=Ei(J$.pipeline);class W2{constructor(n,m){this.zipPath=n,this.opts=m}async extract(){return $n("opening",this.zipPath,"with opts",this.opts),this.zipfile=await Y$(this.zipPath,{lazyEntries:!0}),this.canceled=!1,new Promise((n,m)=>{this.zipfile.on("error",(i)=>{this.canceled=!0,m(i)}),this.zipfile.readEntry(),this.zipfile.on("close",()=>{if(!this.canceled)$n("zip extraction complete"),n()}),this.zipfile.on("entry",async(i)=>{if(this.canceled){$n("skipping entry",i.fileName,{cancelled:this.canceled});return}if($n("zipfile entry",i.fileName),i.fileName.startsWith("__MACOSX/")){this.zipfile.readEntry();return}let b=sn.dirname(sn.join(this.opts.dir,i.fileName));try{await N0.mkdir(b,{recursive:!0});let $=await N0.realpath(b);if(sn.relative(this.opts.dir,$).split(sn.sep).includes(".."))throw Error(`Out of bound path "${$}" found while processing file ${i.fileName}`);await this.extractEntry(i),$n("finished processing",i.fileName),this.zipfile.readEntry()}catch($){this.canceled=!0,this.zipfile.close(),m($)}})})}async extractEntry(n){if(this.canceled){$n("skipping entry extraction",n.fileName,{cancelled:this.canceled});return}if(this.opts.onEntry)this.opts.onEntry(n,this.zipfile);let m=sn.join(this.opts.dir,n.fileName),i=n.externalFileAttributes>>16&65535,b=61440,$=16384,o=40960,_=(i&b)===o,J=(i&b)===$;if(!J&&n.fileName.endsWith("/"))J=!0;let X=n.versionMadeBy>>8;if(!J)J=X===0&&n.externalFileAttributes===16;$n("extracting entry",{filename:n.fileName,isDir:J,isSymlink:_});let Y=this.getExtractedMode(i,J)&511,H=J?m:sn.dirname(m),q={recursive:!0};if(J)q.mode=Y;if($n("mkdir",{dir:H,...q}),await N0.mkdir(H,q),J)return;$n("opening read stream",m);let M=await Ei(this.zipfile.openReadStream.bind(this.zipfile))(n);if(_){let j=await _$(M);$n("creating symlink",j,m),await N0.symlink(j,m)}else await H$(M,o$(m,{mode:Y}))}getExtractedMode(n,m){let i=n;if(i===0)if(m){if(this.opts.defaultDirMode)i=parseInt(this.opts.defaultDirMode,10);if(!i)i=493}else{if(this.opts.defaultFileMode)i=parseInt(this.opts.defaultFileMode,10);if(!i)i=420}return i}}q2.exports=async function(n,m){if($n("creating target directory",m.dir),!sn.isAbsolute(m.dir))throw Error("Target directory is expected to be absolute");return await N0.mkdir(m.dir,{recursive:!0}),m.dir=await N0.realpath(m.dir),new W2(n,m).extract()}});var n3={};ai(n3,{rollbackFromLatestBackup:()=>Zi,listBackups:()=>C0,backupCurrentBinary:()=>zi,BACKUP_DIR:()=>Pn});import{copyFile as e8,readdir as L5,unlink as B5,mkdir as C5,rename as K5}from"node:fs/promises";import{existsSync as A5}from"node:fs";import{homedir as g5}from"node:os";import{join as tm,basename as R5}from"node:path";async function s8(){if(!A5(Pn))await C5(Pn,{recursive:!0})}async function zi(){await s8();let n=process.execPath,m=new Date().toISOString().replace(/[:.]/g,"-"),i=`${R5(n)}-${E}-${m}`,b=tm(Pn,i);return await e8(n,b),await U5(),b}async function C0(){return await s8(),(await L5(Pn)).filter((i)=>i.startsWith("yunke")).map((i)=>tm(Pn,i)).sort().reverse()}async function Zi(){let n=await C0();if(n.length===0)return null;let m=n[0],i=process.execPath,b=`${i}.rollback`;return await e8(m,b),await K5(b,i),m}async function U5(){let m=(await C0()).slice(E5);for(let i of m)try{await B5(i)}catch{}}var Pn,E5=3;var dm=ri(()=>{bn();Pn=tm(process.env.YUNKE_CONFIG_DIR??tm(g5(),".yunke"),"backups")});class l extends Error{code;details;constructor(n,m,i){super(m);this.code=n;this.details=i;this.name="YunkeError"}}class g0 extends l{constructor(n){super("COMMAND_NOT_FOUND",`Command '${n}' not found. Use 'yunke schema' to list available commands.`);this.name="CommandNotFoundError"}}class em extends l{constructor(n,m){super("VALIDATION_FAILED",n,m);this.name="ValidationError"}}class wm extends l{constructor(n,m){super("EXECUTION_FAILED",n,m);this.name="ExecutionError"}}class $m extends l{constructor(n,m,i){super("PLUGIN_LOAD_FAILED",`Failed to load plugin '${n}': ${m}`,i);this.name="PluginLoadError"}}class sm extends l{constructor(n,m,i){super("PLUGIN_CONFLICT",`Command '${n}' already registered by plugin '${m}', cannot register from '${i}'`);this.name="PluginConflictError"}}class om extends l{constructor(n,m){super("TIMEOUT",`Command '${n}' timed out after ${m}ms`);this.name="TimeoutError"}}class Tn{commands;constructor(n=new Map){this.commands=n}register(n){if(this.commands.has(n.name)){let i=this.commands.get(n.name);throw new sm(n.name,i.pluginName,n.pluginName)}let m=new Map(this.commands);return m.set(n.name,n),new Tn(m)}unregister(n){if(!this.commands.has(n))return this;let m=new Map(this.commands);return m.delete(n),new Tn(m)}get(n){return this.commands.get(n)}getAll(){return Array.from(this.commands.values())}getAllVisible(){return this.getAll().filter((n)=>!n.hidden)}getByPlugin(n){return this.getAll().filter((m)=>m.pluginName===n)}has(n){return this.commands.has(n)}get size(){return this.commands.size}}function ei(n,m,i){return{command:n,duration_ms:i,timestamp:new Date().toISOString(),plugin:m}}function si(n,m,i,b){let $={success:!0,data:i,error:null,metadata:ei(n,m,b)};return JSON.stringify($)}function Vn(n,m,i,b){let $={success:!1,data:null,error:{code:i instanceof l?i.code:"EXECUTION_FAILED",message:i instanceof Error?i.message:String(i),details:i instanceof l?i.details:void 0},metadata:ei(n,m,b)};return JSON.stringify($)}var w={};ai(w,{void:()=>Y4,util:()=>A,unknown:()=>J4,union:()=>q4,undefined:()=>$4,tuple:()=>M4,transformer:()=>B4,symbol:()=>w4,string:()=>J1,strictObject:()=>W4,setErrorMap:()=>K3,set:()=>u4,record:()=>x4,quotelessJson:()=>B3,promise:()=>L4,preprocess:()=>A4,pipeline:()=>g4,ostring:()=>R4,optional:()=>C4,onumber:()=>E4,oboolean:()=>U4,objectUtil:()=>ni,object:()=>Q4,number:()=>X1,nullable:()=>K4,null:()=>o4,never:()=>X4,nativeEnum:()=>V4,nan:()=>m4,map:()=>l4,makeIssue:()=>R0,literal:()=>D4,lazy:()=>v4,late:()=>s3,isValid:()=>Ln,isDirty:()=>Jm,isAsync:()=>w0,isAborted:()=>_m,intersection:()=>G4,instanceof:()=>n4,getParsedType:()=>Jn,getErrorMap:()=>b0,function:()=>j4,enum:()=>N4,effect:()=>B4,discriminatedUnion:()=>O4,defaultErrorMap:()=>Gn,datetimeRegex:()=>$1,date:()=>b4,custom:()=>_1,coerce:()=>S4,boolean:()=>Y1,bigint:()=>i4,array:()=>H4,any:()=>_4,addIssueToContext:()=>G,ZodVoid:()=>U0,ZodUnknown:()=>Bn,ZodUnion:()=>Y0,ZodUndefined:()=>J0,ZodType:()=>K,ZodTuple:()=>Yn,ZodTransformer:()=>s,ZodSymbol:()=>E0,ZodString:()=>d,ZodSet:()=>zn,ZodSchema:()=>K,ZodRecord:()=>S0,ZodReadonly:()=>G0,ZodPromise:()=>Zn,ZodPipeline:()=>F0,ZodParsedType:()=>O,ZodOptional:()=>a,ZodObject:()=>U,ZodNumber:()=>Cn,ZodNullable:()=>xn,ZodNull:()=>X0,ZodNever:()=>Xn,ZodNativeEnum:()=>q0,ZodNaN:()=>p0,ZodMap:()=>f0,ZodLiteral:()=>W0,ZodLazy:()=>Q0,ZodIssueCode:()=>Q,ZodIntersection:()=>H0,ZodFunction:()=>o0,ZodFirstPartyTypeKind:()=>W,ZodError:()=>z,ZodEnum:()=>An,ZodEffects:()=>s,ZodDiscriminatedUnion:()=>Xm,ZodDefault:()=>gn,ZodDate:()=>yn,ZodCatch:()=>O0,ZodBranded:()=>Ym,ZodBoolean:()=>_0,ZodBigInt:()=>Kn,ZodArray:()=>r,ZodAny:()=>cn,Schema:()=>K,ParseStatus:()=>k,OK:()=>I,NEVER:()=>f4,INVALID:()=>v,EMPTY_PATH:()=>A3,DIRTY:()=>In,BRAND:()=>e3});var A;(function(n){n.assertEqual=($)=>{};function m($){}n.assertIs=m;function i($){throw Error()}n.assertNever=i,n.arrayToEnum=($)=>{let o={};for(let _ of $)o[_]=_;return o},n.getValidEnumValues=($)=>{let o=n.objectKeys($).filter((J)=>typeof $[$[J]]!=="number"),_={};for(let J of o)_[J]=$[J];return n.objectValues(_)},n.objectValues=($)=>{return n.objectKeys($).map(function(o){return $[o]})},n.objectKeys=typeof Object.keys==="function"?($)=>Object.keys($):($)=>{let o=[];for(let _ in $)if(Object.prototype.hasOwnProperty.call($,_))o.push(_);return o},n.find=($,o)=>{for(let _ of $)if(o(_))return _;return},n.isInteger=typeof Number.isInteger==="function"?($)=>Number.isInteger($):($)=>typeof $==="number"&&Number.isFinite($)&&Math.floor($)===$;function b($,o=" | "){return $.map((_)=>typeof _==="string"?`'${_}'`:_).join(o)}n.joinValues=b,n.jsonStringifyReplacer=($,o)=>{if(typeof o==="bigint")return o.toString();return o}})(A||(A={}));var ni;(function(n){n.mergeShapes=(m,i)=>{return{...m,...i}}})(ni||(ni={}));var O=A.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Jn=(n)=>{switch(typeof n){case"undefined":return O.undefined;case"string":return O.string;case"number":return Number.isNaN(n)?O.nan:O.number;case"boolean":return O.boolean;case"function":return O.function;case"bigint":return O.bigint;case"symbol":return O.symbol;case"object":if(Array.isArray(n))return O.array;if(n===null)return O.null;if(n.then&&typeof n.then==="function"&&n.catch&&typeof n.catch==="function")return O.promise;if(typeof Map<"u"&&n instanceof Map)return O.map;if(typeof Set<"u"&&n instanceof Set)return O.set;if(typeof Date<"u"&&n instanceof Date)return O.date;return O.object;default:return O.unknown}};var Q=A.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),B3=(n)=>{return JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:")};class z extends Error{get errors(){return this.issues}constructor(n){super();this.issues=[],this.addIssue=(i)=>{this.issues=[...this.issues,i]},this.addIssues=(i=[])=>{this.issues=[...this.issues,...i]};let m=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,m);else this.__proto__=m;this.name="ZodError",this.issues=n}format(n){let m=n||function($){return $.message},i={_errors:[]},b=($)=>{for(let o of $.issues)if(o.code==="invalid_union")o.unionErrors.map(b);else if(o.code==="invalid_return_type")b(o.returnTypeError);else if(o.code==="invalid_arguments")b(o.argumentsError);else if(o.path.length===0)i._errors.push(m(o));else{let _=i,J=0;while(J<o.path.length){let X=o.path[J];if(J!==o.path.length-1)_[X]=_[X]||{_errors:[]};else _[X]=_[X]||{_errors:[]},_[X]._errors.push(m(o));_=_[X],J++}}};return b(this),i}static assert(n){if(!(n instanceof z))throw Error(`Not a ZodError: ${n}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,A.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(n=(m)=>m.message){let m={},i=[];for(let b of this.issues)if(b.path.length>0){let $=b.path[0];m[$]=m[$]||[],m[$].push(n(b))}else i.push(n(b));return{formErrors:i,fieldErrors:m}}get formErrors(){return this.flatten()}}z.create=(n)=>{return new z(n)};var C3=(n,m)=>{let i;switch(n.code){case Q.invalid_type:if(n.received===O.undefined)i="Required";else i=`Expected ${n.expected}, received ${n.received}`;break;case Q.invalid_literal:i=`Invalid literal value, expected ${JSON.stringify(n.expected,A.jsonStringifyReplacer)}`;break;case Q.unrecognized_keys:i=`Unrecognized key(s) in object: ${A.joinValues(n.keys,", ")}`;break;case Q.invalid_union:i="Invalid input";break;case Q.invalid_union_discriminator:i=`Invalid discriminator value. Expected ${A.joinValues(n.options)}`;break;case Q.invalid_enum_value:i=`Invalid enum value. Expected ${A.joinValues(n.options)}, received '${n.received}'`;break;case Q.invalid_arguments:i="Invalid function arguments";break;case Q.invalid_return_type:i="Invalid function return type";break;case Q.invalid_date:i="Invalid date";break;case Q.invalid_string:if(typeof n.validation==="object")if("includes"in n.validation){if(i=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position==="number")i=`${i} at one or more positions greater than or equal to ${n.validation.position}`}else if("startsWith"in n.validation)i=`Invalid input: must start with "${n.validation.startsWith}"`;else if("endsWith"in n.validation)i=`Invalid input: must end with "${n.validation.endsWith}"`;else A.assertNever(n.validation);else if(n.validation!=="regex")i=`Invalid ${n.validation}`;else i="Invalid";break;case Q.too_small:if(n.type==="array")i=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`;else if(n.type==="string")i=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`;else if(n.type==="number")i=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="bigint")i=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="date")i=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`;else i="Invalid input";break;case Q.too_big:if(n.type==="array")i=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`;else if(n.type==="string")i=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`;else if(n.type==="number")i=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="bigint")i=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="date")i=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`;else i="Invalid input";break;case Q.custom:i="Invalid input";break;case Q.invalid_intersection_types:i="Intersection results could not be merged";break;case Q.not_multiple_of:i=`Number must be a multiple of ${n.multipleOf}`;break;case Q.not_finite:i="Number must be finite";break;default:i=m.defaultError,A.assertNever(n)}return{message:i}},Gn=C3;var n1=Gn;function K3(n){n1=n}function b0(){return n1}var R0=(n)=>{let{data:m,path:i,errorMaps:b,issueData:$}=n,o=[...i,...$.path||[]],_={...$,path:o};if($.message!==void 0)return{...$,path:o,message:$.message};let J="",X=b.filter((Y)=>!!Y).slice().reverse();for(let Y of X)J=Y(_,{data:m,defaultError:J}).message;return{...$,path:o,message:J}},A3=[];function G(n,m){let i=b0(),b=R0({issueData:m,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,i,i===Gn?void 0:Gn].filter(($)=>!!$)});n.common.issues.push(b)}class k{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(n,m){let i=[];for(let b of m){if(b.status==="aborted")return v;if(b.status==="dirty")n.dirty();i.push(b.value)}return{status:n.value,value:i}}static async mergeObjectAsync(n,m){let i=[];for(let b of m){let $=await b.key,o=await b.value;i.push({key:$,value:o})}return k.mergeObjectSync(n,i)}static mergeObjectSync(n,m){let i={};for(let b of m){let{key:$,value:o}=b;if($.status==="aborted")return v;if(o.status==="aborted")return v;if($.status==="dirty")n.dirty();if(o.status==="dirty")n.dirty();if($.value!=="__proto__"&&(typeof o.value<"u"||b.alwaysSet))i[$.value]=o.value}return{status:n.value,value:i}}}var v=Object.freeze({status:"aborted"}),In=(n)=>({status:"dirty",value:n}),I=(n)=>({status:"valid",value:n}),_m=(n)=>n.status==="aborted",Jm=(n)=>n.status==="dirty",Ln=(n)=>n.status==="valid",w0=(n)=>typeof Promise<"u"&&n instanceof Promise;var u;(function(n){n.errToObj=(m)=>typeof m==="string"?{message:m}:m||{},n.toString=(m)=>typeof m==="string"?m:m?.message})(u||(u={}));class e{constructor(n,m,i,b){this._cachedPath=[],this.parent=n,this.data=m,this._path=i,this._key=b}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var m1=(n,m)=>{if(Ln(m))return{success:!0,data:m.value};else{if(!n.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let i=new z(n.common.issues);return this._error=i,this._error}}}};function V(n){if(!n)return{};let{errorMap:m,invalid_type_error:i,required_error:b,description:$}=n;if(m&&(i||b))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(m)return{errorMap:m,description:$};return{errorMap:(_,J)=>{let{message:X}=n;if(_.code==="invalid_enum_value")return{message:X??J.defaultError};if(typeof J.data>"u")return{message:X??b??J.defaultError};if(_.code!=="invalid_type")return{message:J.defaultError};return{message:X??i??J.defaultError}},description:$}}class K{get description(){return this._def.description}_getType(n){return Jn(n.data)}_getOrReturnCtx(n,m){return m||{common:n.parent.common,data:n.data,parsedType:Jn(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}_processInputParams(n){return{status:new k,ctx:{common:n.parent.common,data:n.data,parsedType:Jn(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}}_parseSync(n){let m=this._parse(n);if(w0(m))throw Error("Synchronous parse encountered promise.");return m}_parseAsync(n){let m=this._parse(n);return Promise.resolve(m)}parse(n,m){let i=this.safeParse(n,m);if(i.success)return i.data;throw i.error}safeParse(n,m){let i={common:{issues:[],async:m?.async??!1,contextualErrorMap:m?.errorMap},path:m?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Jn(n)},b=this._parseSync({data:n,path:i.path,parent:i});return m1(i,b)}"~validate"(n){let m={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Jn(n)};if(!this["~standard"].async)try{let i=this._parseSync({data:n,path:[],parent:m});return Ln(i)?{value:i.value}:{issues:m.common.issues}}catch(i){if(i?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;m.common={issues:[],async:!0}}return this._parseAsync({data:n,path:[],parent:m}).then((i)=>Ln(i)?{value:i.value}:{issues:m.common.issues})}async parseAsync(n,m){let i=await this.safeParseAsync(n,m);if(i.success)return i.data;throw i.error}async safeParseAsync(n,m){let i={common:{issues:[],contextualErrorMap:m?.errorMap,async:!0},path:m?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Jn(n)},b=this._parse({data:n,path:i.path,parent:i}),$=await(w0(b)?b:Promise.resolve(b));return m1(i,$)}refine(n,m){let i=(b)=>{if(typeof m==="string"||typeof m>"u")return{message:m};else if(typeof m==="function")return m(b);else return m};return this._refinement((b,$)=>{let o=n(b),_=()=>$.addIssue({code:Q.custom,...i(b)});if(typeof Promise<"u"&&o instanceof Promise)return o.then((J)=>{if(!J)return _(),!1;else return!0});if(!o)return _(),!1;else return!0})}refinement(n,m){return this._refinement((i,b)=>{if(!n(i))return b.addIssue(typeof m==="function"?m(i,b):m),!1;else return!0})}_refinement(n){return new s({schema:this,typeName:W.ZodEffects,effect:{type:"refinement",refinement:n}})}superRefine(n){return this._refinement(n)}constructor(n){this.spa=this.safeParseAsync,this._def=n,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(m)=>this["~validate"](m)}}optional(){return a.create(this,this._def)}nullable(){return xn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return r.create(this)}promise(){return Zn.create(this,this._def)}or(n){return Y0.create([this,n],this._def)}and(n){return H0.create(this,n,this._def)}transform(n){return new s({...V(this._def),schema:this,typeName:W.ZodEffects,effect:{type:"transform",transform:n}})}default(n){let m=typeof n==="function"?n:()=>n;return new gn({...V(this._def),innerType:this,defaultValue:m,typeName:W.ZodDefault})}brand(){return new Ym({typeName:W.ZodBranded,type:this,...V(this._def)})}catch(n){let m=typeof n==="function"?n:()=>n;return new O0({...V(this._def),innerType:this,catchValue:m,typeName:W.ZodCatch})}describe(n){return new this.constructor({...this._def,description:n})}pipe(n){return F0.create(this,n)}readonly(){return G0.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var g3=/^c[^\s-]{8,}$/i,R3=/^[0-9a-z]+$/,E3=/^[0-9A-HJKMNP-TV-Z]{26}$/i,U3=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,S3=/^[a-z0-9_-]{21}$/i,f3=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,p3=/^[-+]?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)?)??$/,F3=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,h3="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",mi,P3=/^(?:(?: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])$/,k3=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,T3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,I3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,y3=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,c3=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,b1="((\\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])))",z3=new RegExp(`^${b1}$`);function w1(n){let m="[0-5]\\d";if(n.precision)m=`${m}\\.\\d{${n.precision}}`;else if(n.precision==null)m=`${m}(\\.\\d+)?`;let i=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${m})${i}`}function Z3(n){return new RegExp(`^${w1(n)}$`)}function $1(n){let m=`${b1}T${w1(n)}`,i=[];if(i.push(n.local?"Z?":"Z"),n.offset)i.push("([+-]\\d{2}:?\\d{2})");return m=`${m}(${i.join("|")})`,new RegExp(`^${m}$`)}function t3(n,m){if((m==="v4"||!m)&&P3.test(n))return!0;if((m==="v6"||!m)&&T3.test(n))return!0;return!1}function d3(n,m){if(!f3.test(n))return!1;try{let[i]=n.split(".");if(!i)return!1;let b=i.replace(/-/g,"+").replace(/_/g,"/").padEnd(i.length+(4-i.length%4)%4,"="),$=JSON.parse(atob(b));if(typeof $!=="object"||$===null)return!1;if("typ"in $&&$?.typ!=="JWT")return!1;if(!$.alg)return!1;if(m&&$.alg!==m)return!1;return!0}catch{return!1}}function a3(n,m){if((m==="v4"||!m)&&k3.test(n))return!0;if((m==="v6"||!m)&&I3.test(n))return!0;return!1}class d extends K{_parse(n){if(this._def.coerce)n.data=String(n.data);if(this._getType(n)!==O.string){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_type,expected:O.string,received:$.parsedType}),v}let i=new k,b=void 0;for(let $ of this._def.checks)if($.kind==="min"){if(n.data.length<$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_small,minimum:$.value,type:"string",inclusive:!0,exact:!1,message:$.message}),i.dirty()}else if($.kind==="max"){if(n.data.length>$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_big,maximum:$.value,type:"string",inclusive:!0,exact:!1,message:$.message}),i.dirty()}else if($.kind==="length"){let o=n.data.length>$.value,_=n.data.length<$.value;if(o||_){if(b=this._getOrReturnCtx(n,b),o)G(b,{code:Q.too_big,maximum:$.value,type:"string",inclusive:!0,exact:!0,message:$.message});else if(_)G(b,{code:Q.too_small,minimum:$.value,type:"string",inclusive:!0,exact:!0,message:$.message});i.dirty()}}else if($.kind==="email"){if(!F3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"email",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="emoji"){if(!mi)mi=new RegExp(h3,"u");if(!mi.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"emoji",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="uuid"){if(!U3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"uuid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="nanoid"){if(!S3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"nanoid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="cuid"){if(!g3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"cuid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="cuid2"){if(!R3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"cuid2",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="ulid"){if(!E3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"ulid",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="url")try{new URL(n.data)}catch{b=this._getOrReturnCtx(n,b),G(b,{validation:"url",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="regex"){if($.regex.lastIndex=0,!$.regex.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"regex",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="trim")n.data=n.data.trim();else if($.kind==="includes"){if(!n.data.includes($.value,$.position))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:{includes:$.value,position:$.position},message:$.message}),i.dirty()}else if($.kind==="toLowerCase")n.data=n.data.toLowerCase();else if($.kind==="toUpperCase")n.data=n.data.toUpperCase();else if($.kind==="startsWith"){if(!n.data.startsWith($.value))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:{startsWith:$.value},message:$.message}),i.dirty()}else if($.kind==="endsWith"){if(!n.data.endsWith($.value))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:{endsWith:$.value},message:$.message}),i.dirty()}else if($.kind==="datetime"){if(!$1($).test(n.data))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:"datetime",message:$.message}),i.dirty()}else if($.kind==="date"){if(!z3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:"date",message:$.message}),i.dirty()}else if($.kind==="time"){if(!Z3($).test(n.data))b=this._getOrReturnCtx(n,b),G(b,{code:Q.invalid_string,validation:"time",message:$.message}),i.dirty()}else if($.kind==="duration"){if(!p3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"duration",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="ip"){if(!t3(n.data,$.version))b=this._getOrReturnCtx(n,b),G(b,{validation:"ip",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="jwt"){if(!d3(n.data,$.alg))b=this._getOrReturnCtx(n,b),G(b,{validation:"jwt",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="cidr"){if(!a3(n.data,$.version))b=this._getOrReturnCtx(n,b),G(b,{validation:"cidr",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="base64"){if(!y3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"base64",code:Q.invalid_string,message:$.message}),i.dirty()}else if($.kind==="base64url"){if(!c3.test(n.data))b=this._getOrReturnCtx(n,b),G(b,{validation:"base64url",code:Q.invalid_string,message:$.message}),i.dirty()}else A.assertNever($);return{status:i.value,value:n.data}}_regex(n,m,i){return this.refinement((b)=>n.test(b),{validation:m,code:Q.invalid_string,...u.errToObj(i)})}_addCheck(n){return new d({...this._def,checks:[...this._def.checks,n]})}email(n){return this._addCheck({kind:"email",...u.errToObj(n)})}url(n){return this._addCheck({kind:"url",...u.errToObj(n)})}emoji(n){return this._addCheck({kind:"emoji",...u.errToObj(n)})}uuid(n){return this._addCheck({kind:"uuid",...u.errToObj(n)})}nanoid(n){return this._addCheck({kind:"nanoid",...u.errToObj(n)})}cuid(n){return this._addCheck({kind:"cuid",...u.errToObj(n)})}cuid2(n){return this._addCheck({kind:"cuid2",...u.errToObj(n)})}ulid(n){return this._addCheck({kind:"ulid",...u.errToObj(n)})}base64(n){return this._addCheck({kind:"base64",...u.errToObj(n)})}base64url(n){return this._addCheck({kind:"base64url",...u.errToObj(n)})}jwt(n){return this._addCheck({kind:"jwt",...u.errToObj(n)})}ip(n){return this._addCheck({kind:"ip",...u.errToObj(n)})}cidr(n){return this._addCheck({kind:"cidr",...u.errToObj(n)})}datetime(n){if(typeof n==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:n});return this._addCheck({kind:"datetime",precision:typeof n?.precision>"u"?null:n?.precision,offset:n?.offset??!1,local:n?.local??!1,...u.errToObj(n?.message)})}date(n){return this._addCheck({kind:"date",message:n})}time(n){if(typeof n==="string")return this._addCheck({kind:"time",precision:null,message:n});return this._addCheck({kind:"time",precision:typeof n?.precision>"u"?null:n?.precision,...u.errToObj(n?.message)})}duration(n){return this._addCheck({kind:"duration",...u.errToObj(n)})}regex(n,m){return this._addCheck({kind:"regex",regex:n,...u.errToObj(m)})}includes(n,m){return this._addCheck({kind:"includes",value:n,position:m?.position,...u.errToObj(m?.message)})}startsWith(n,m){return this._addCheck({kind:"startsWith",value:n,...u.errToObj(m)})}endsWith(n,m){return this._addCheck({kind:"endsWith",value:n,...u.errToObj(m)})}min(n,m){return this._addCheck({kind:"min",value:n,...u.errToObj(m)})}max(n,m){return this._addCheck({kind:"max",value:n,...u.errToObj(m)})}length(n,m){return this._addCheck({kind:"length",value:n,...u.errToObj(m)})}nonempty(n){return this.min(1,u.errToObj(n))}trim(){return new d({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new d({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new d({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((n)=>n.kind==="datetime")}get isDate(){return!!this._def.checks.find((n)=>n.kind==="date")}get isTime(){return!!this._def.checks.find((n)=>n.kind==="time")}get isDuration(){return!!this._def.checks.find((n)=>n.kind==="duration")}get isEmail(){return!!this._def.checks.find((n)=>n.kind==="email")}get isURL(){return!!this._def.checks.find((n)=>n.kind==="url")}get isEmoji(){return!!this._def.checks.find((n)=>n.kind==="emoji")}get isUUID(){return!!this._def.checks.find((n)=>n.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((n)=>n.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((n)=>n.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((n)=>n.kind==="cuid2")}get isULID(){return!!this._def.checks.find((n)=>n.kind==="ulid")}get isIP(){return!!this._def.checks.find((n)=>n.kind==="ip")}get isCIDR(){return!!this._def.checks.find((n)=>n.kind==="cidr")}get isBase64(){return!!this._def.checks.find((n)=>n.kind==="base64")}get isBase64url(){return!!this._def.checks.find((n)=>n.kind==="base64url")}get minLength(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n}get maxLength(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n}}d.create=(n)=>{return new d({checks:[],typeName:W.ZodString,coerce:n?.coerce??!1,...V(n)})};function r3(n,m){let i=(n.toString().split(".")[1]||"").length,b=(m.toString().split(".")[1]||"").length,$=i>b?i:b,o=Number.parseInt(n.toFixed($).replace(".","")),_=Number.parseInt(m.toFixed($).replace(".",""));return o%_/10**$}class Cn extends K{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(n){if(this._def.coerce)n.data=Number(n.data);if(this._getType(n)!==O.number){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_type,expected:O.number,received:$.parsedType}),v}let i=void 0,b=new k;for(let $ of this._def.checks)if($.kind==="int"){if(!A.isInteger(n.data))i=this._getOrReturnCtx(n,i),G(i,{code:Q.invalid_type,expected:"integer",received:"float",message:$.message}),b.dirty()}else if($.kind==="min"){if($.inclusive?n.data<$.value:n.data<=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_small,minimum:$.value,type:"number",inclusive:$.inclusive,exact:!1,message:$.message}),b.dirty()}else if($.kind==="max"){if($.inclusive?n.data>$.value:n.data>=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_big,maximum:$.value,type:"number",inclusive:$.inclusive,exact:!1,message:$.message}),b.dirty()}else if($.kind==="multipleOf"){if(r3(n.data,$.value)!==0)i=this._getOrReturnCtx(n,i),G(i,{code:Q.not_multiple_of,multipleOf:$.value,message:$.message}),b.dirty()}else if($.kind==="finite"){if(!Number.isFinite(n.data))i=this._getOrReturnCtx(n,i),G(i,{code:Q.not_finite,message:$.message}),b.dirty()}else A.assertNever($);return{status:b.value,value:n.data}}gte(n,m){return this.setLimit("min",n,!0,u.toString(m))}gt(n,m){return this.setLimit("min",n,!1,u.toString(m))}lte(n,m){return this.setLimit("max",n,!0,u.toString(m))}lt(n,m){return this.setLimit("max",n,!1,u.toString(m))}setLimit(n,m,i,b){return new Cn({...this._def,checks:[...this._def.checks,{kind:n,value:m,inclusive:i,message:u.toString(b)}]})}_addCheck(n){return new Cn({...this._def,checks:[...this._def.checks,n]})}int(n){return this._addCheck({kind:"int",message:u.toString(n)})}positive(n){return this._addCheck({kind:"min",value:0,inclusive:!1,message:u.toString(n)})}negative(n){return this._addCheck({kind:"max",value:0,inclusive:!1,message:u.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:0,inclusive:!0,message:u.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:0,inclusive:!0,message:u.toString(n)})}multipleOf(n,m){return this._addCheck({kind:"multipleOf",value:n,message:u.toString(m)})}finite(n){return this._addCheck({kind:"finite",message:u.toString(n)})}safe(n){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:u.toString(n)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:u.toString(n)})}get minValue(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n}get maxValue(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n}get isInt(){return!!this._def.checks.find((n)=>n.kind==="int"||n.kind==="multipleOf"&&A.isInteger(n.value))}get isFinite(){let n=null,m=null;for(let i of this._def.checks)if(i.kind==="finite"||i.kind==="int"||i.kind==="multipleOf")return!0;else if(i.kind==="min"){if(m===null||i.value>m)m=i.value}else if(i.kind==="max"){if(n===null||i.value<n)n=i.value}return Number.isFinite(m)&&Number.isFinite(n)}}Cn.create=(n)=>{return new Cn({checks:[],typeName:W.ZodNumber,coerce:n?.coerce||!1,...V(n)})};class Kn extends K{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(n){if(this._def.coerce)try{n.data=BigInt(n.data)}catch{return this._getInvalidInput(n)}if(this._getType(n)!==O.bigint)return this._getInvalidInput(n);let i=void 0,b=new k;for(let $ of this._def.checks)if($.kind==="min"){if($.inclusive?n.data<$.value:n.data<=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_small,type:"bigint",minimum:$.value,inclusive:$.inclusive,message:$.message}),b.dirty()}else if($.kind==="max"){if($.inclusive?n.data>$.value:n.data>=$.value)i=this._getOrReturnCtx(n,i),G(i,{code:Q.too_big,type:"bigint",maximum:$.value,inclusive:$.inclusive,message:$.message}),b.dirty()}else if($.kind==="multipleOf"){if(n.data%$.value!==BigInt(0))i=this._getOrReturnCtx(n,i),G(i,{code:Q.not_multiple_of,multipleOf:$.value,message:$.message}),b.dirty()}else A.assertNever($);return{status:b.value,value:n.data}}_getInvalidInput(n){let m=this._getOrReturnCtx(n);return G(m,{code:Q.invalid_type,expected:O.bigint,received:m.parsedType}),v}gte(n,m){return this.setLimit("min",n,!0,u.toString(m))}gt(n,m){return this.setLimit("min",n,!1,u.toString(m))}lte(n,m){return this.setLimit("max",n,!0,u.toString(m))}lt(n,m){return this.setLimit("max",n,!1,u.toString(m))}setLimit(n,m,i,b){return new Kn({...this._def,checks:[...this._def.checks,{kind:n,value:m,inclusive:i,message:u.toString(b)}]})}_addCheck(n){return new Kn({...this._def,checks:[...this._def.checks,n]})}positive(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:u.toString(n)})}negative(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:u.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:u.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:u.toString(n)})}multipleOf(n,m){return this._addCheck({kind:"multipleOf",value:n,message:u.toString(m)})}get minValue(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n}get maxValue(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n}}Kn.create=(n)=>{return new Kn({checks:[],typeName:W.ZodBigInt,coerce:n?.coerce??!1,...V(n)})};class _0 extends K{_parse(n){if(this._def.coerce)n.data=Boolean(n.data);if(this._getType(n)!==O.boolean){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.boolean,received:i.parsedType}),v}return I(n.data)}}_0.create=(n)=>{return new _0({typeName:W.ZodBoolean,coerce:n?.coerce||!1,...V(n)})};class yn extends K{_parse(n){if(this._def.coerce)n.data=new Date(n.data);if(this._getType(n)!==O.date){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_type,expected:O.date,received:$.parsedType}),v}if(Number.isNaN(n.data.getTime())){let $=this._getOrReturnCtx(n);return G($,{code:Q.invalid_date}),v}let i=new k,b=void 0;for(let $ of this._def.checks)if($.kind==="min"){if(n.data.getTime()<$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_small,message:$.message,inclusive:!0,exact:!1,minimum:$.value,type:"date"}),i.dirty()}else if($.kind==="max"){if(n.data.getTime()>$.value)b=this._getOrReturnCtx(n,b),G(b,{code:Q.too_big,message:$.message,inclusive:!0,exact:!1,maximum:$.value,type:"date"}),i.dirty()}else A.assertNever($);return{status:i.value,value:new Date(n.data.getTime())}}_addCheck(n){return new yn({...this._def,checks:[...this._def.checks,n]})}min(n,m){return this._addCheck({kind:"min",value:n.getTime(),message:u.toString(m)})}max(n,m){return this._addCheck({kind:"max",value:n.getTime(),message:u.toString(m)})}get minDate(){let n=null;for(let m of this._def.checks)if(m.kind==="min"){if(n===null||m.value>n)n=m.value}return n!=null?new Date(n):null}get maxDate(){let n=null;for(let m of this._def.checks)if(m.kind==="max"){if(n===null||m.value<n)n=m.value}return n!=null?new Date(n):null}}yn.create=(n)=>{return new yn({checks:[],coerce:n?.coerce||!1,typeName:W.ZodDate,...V(n)})};class E0 extends K{_parse(n){if(this._getType(n)!==O.symbol){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.symbol,received:i.parsedType}),v}return I(n.data)}}E0.create=(n)=>{return new E0({typeName:W.ZodSymbol,...V(n)})};class J0 extends K{_parse(n){if(this._getType(n)!==O.undefined){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.undefined,received:i.parsedType}),v}return I(n.data)}}J0.create=(n)=>{return new J0({typeName:W.ZodUndefined,...V(n)})};class X0 extends K{_parse(n){if(this._getType(n)!==O.null){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.null,received:i.parsedType}),v}return I(n.data)}}X0.create=(n)=>{return new X0({typeName:W.ZodNull,...V(n)})};class cn extends K{constructor(){super(...arguments);this._any=!0}_parse(n){return I(n.data)}}cn.create=(n)=>{return new cn({typeName:W.ZodAny,...V(n)})};class Bn extends K{constructor(){super(...arguments);this._unknown=!0}_parse(n){return I(n.data)}}Bn.create=(n)=>{return new Bn({typeName:W.ZodUnknown,...V(n)})};class Xn extends K{_parse(n){let m=this._getOrReturnCtx(n);return G(m,{code:Q.invalid_type,expected:O.never,received:m.parsedType}),v}}Xn.create=(n)=>{return new Xn({typeName:W.ZodNever,...V(n)})};class U0 extends K{_parse(n){if(this._getType(n)!==O.undefined){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.void,received:i.parsedType}),v}return I(n.data)}}U0.create=(n)=>{return new U0({typeName:W.ZodVoid,...V(n)})};class r extends K{_parse(n){let{ctx:m,status:i}=this._processInputParams(n),b=this._def;if(m.parsedType!==O.array)return G(m,{code:Q.invalid_type,expected:O.array,received:m.parsedType}),v;if(b.exactLength!==null){let o=m.data.length>b.exactLength.value,_=m.data.length<b.exactLength.value;if(o||_)G(m,{code:o?Q.too_big:Q.too_small,minimum:_?b.exactLength.value:void 0,maximum:o?b.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:b.exactLength.message}),i.dirty()}if(b.minLength!==null){if(m.data.length<b.minLength.value)G(m,{code:Q.too_small,minimum:b.minLength.value,type:"array",inclusive:!0,exact:!1,message:b.minLength.message}),i.dirty()}if(b.maxLength!==null){if(m.data.length>b.maxLength.value)G(m,{code:Q.too_big,maximum:b.maxLength.value,type:"array",inclusive:!0,exact:!1,message:b.maxLength.message}),i.dirty()}if(m.common.async)return Promise.all([...m.data].map((o,_)=>{return b.type._parseAsync(new e(m,o,m.path,_))})).then((o)=>{return k.mergeArray(i,o)});let $=[...m.data].map((o,_)=>{return b.type._parseSync(new e(m,o,m.path,_))});return k.mergeArray(i,$)}get element(){return this._def.type}min(n,m){return new r({...this._def,minLength:{value:n,message:u.toString(m)}})}max(n,m){return new r({...this._def,maxLength:{value:n,message:u.toString(m)}})}length(n,m){return new r({...this._def,exactLength:{value:n,message:u.toString(m)}})}nonempty(n){return this.min(1,n)}}r.create=(n,m)=>{return new r({type:n,minLength:null,maxLength:null,exactLength:null,typeName:W.ZodArray,...V(m)})};function $0(n){if(n instanceof U){let m={};for(let i in n.shape){let b=n.shape[i];m[i]=a.create($0(b))}return new U({...n._def,shape:()=>m})}else if(n instanceof r)return new r({...n._def,type:$0(n.element)});else if(n instanceof a)return a.create($0(n.unwrap()));else if(n instanceof xn)return xn.create($0(n.unwrap()));else if(n instanceof Yn)return Yn.create(n.items.map((m)=>$0(m)));else return n}class U extends K{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let n=this._def.shape(),m=A.objectKeys(n);return this._cached={shape:n,keys:m},this._cached}_parse(n){if(this._getType(n)!==O.object){let X=this._getOrReturnCtx(n);return G(X,{code:Q.invalid_type,expected:O.object,received:X.parsedType}),v}let{status:i,ctx:b}=this._processInputParams(n),{shape:$,keys:o}=this._getCached(),_=[];if(!(this._def.catchall instanceof Xn&&this._def.unknownKeys==="strip")){for(let X in b.data)if(!o.includes(X))_.push(X)}let J=[];for(let X of o){let Y=$[X],H=b.data[X];J.push({key:{status:"valid",value:X},value:Y._parse(new e(b,H,b.path,X)),alwaysSet:X in b.data})}if(this._def.catchall instanceof Xn){let X=this._def.unknownKeys;if(X==="passthrough")for(let Y of _)J.push({key:{status:"valid",value:Y},value:{status:"valid",value:b.data[Y]}});else if(X==="strict"){if(_.length>0)G(b,{code:Q.unrecognized_keys,keys:_}),i.dirty()}else if(X==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let X=this._def.catchall;for(let Y of _){let H=b.data[Y];J.push({key:{status:"valid",value:Y},value:X._parse(new e(b,H,b.path,Y)),alwaysSet:Y in b.data})}}if(b.common.async)return Promise.resolve().then(async()=>{let X=[];for(let Y of J){let H=await Y.key,q=await Y.value;X.push({key:H,value:q,alwaysSet:Y.alwaysSet})}return X}).then((X)=>{return k.mergeObjectSync(i,X)});else return k.mergeObjectSync(i,J)}get shape(){return this._def.shape()}strict(n){return u.errToObj,new U({...this._def,unknownKeys:"strict",...n!==void 0?{errorMap:(m,i)=>{let b=this._def.errorMap?.(m,i).message??i.defaultError;if(m.code==="unrecognized_keys")return{message:u.errToObj(n).message??b};return{message:b}}}:{}})}strip(){return new U({...this._def,unknownKeys:"strip"})}passthrough(){return new U({...this._def,unknownKeys:"passthrough"})}extend(n){return new U({...this._def,shape:()=>({...this._def.shape(),...n})})}merge(n){return new U({unknownKeys:n._def.unknownKeys,catchall:n._def.catchall,shape:()=>({...this._def.shape(),...n._def.shape()}),typeName:W.ZodObject})}setKey(n,m){return this.augment({[n]:m})}catchall(n){return new U({...this._def,catchall:n})}pick(n){let m={};for(let i of A.objectKeys(n))if(n[i]&&this.shape[i])m[i]=this.shape[i];return new U({...this._def,shape:()=>m})}omit(n){let m={};for(let i of A.objectKeys(this.shape))if(!n[i])m[i]=this.shape[i];return new U({...this._def,shape:()=>m})}deepPartial(){return $0(this)}partial(n){let m={};for(let i of A.objectKeys(this.shape)){let b=this.shape[i];if(n&&!n[i])m[i]=b;else m[i]=b.optional()}return new U({...this._def,shape:()=>m})}required(n){let m={};for(let i of A.objectKeys(this.shape))if(n&&!n[i])m[i]=this.shape[i];else{let $=this.shape[i];while($ instanceof a)$=$._def.innerType;m[i]=$}return new U({...this._def,shape:()=>m})}keyof(){return o1(A.objectKeys(this.shape))}}U.create=(n,m)=>{return new U({shape:()=>n,unknownKeys:"strip",catchall:Xn.create(),typeName:W.ZodObject,...V(m)})};U.strictCreate=(n,m)=>{return new U({shape:()=>n,unknownKeys:"strict",catchall:Xn.create(),typeName:W.ZodObject,...V(m)})};U.lazycreate=(n,m)=>{return new U({shape:n,unknownKeys:"strip",catchall:Xn.create(),typeName:W.ZodObject,...V(m)})};class Y0 extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i=this._def.options;function b($){for(let _ of $)if(_.result.status==="valid")return _.result;for(let _ of $)if(_.result.status==="dirty")return m.common.issues.push(..._.ctx.common.issues),_.result;let o=$.map((_)=>new z(_.ctx.common.issues));return G(m,{code:Q.invalid_union,unionErrors:o}),v}if(m.common.async)return Promise.all(i.map(async($)=>{let o={...m,common:{...m.common,issues:[]},parent:null};return{result:await $._parseAsync({data:m.data,path:m.path,parent:o}),ctx:o}})).then(b);else{let $=void 0,o=[];for(let J of i){let X={...m,common:{...m.common,issues:[]},parent:null},Y=J._parseSync({data:m.data,path:m.path,parent:X});if(Y.status==="valid")return Y;else if(Y.status==="dirty"&&!$)$={result:Y,ctx:X};if(X.common.issues.length)o.push(X.common.issues)}if($)return m.common.issues.push(...$.ctx.common.issues),$.result;let _=o.map((J)=>new z(J));return G(m,{code:Q.invalid_union,unionErrors:_}),v}}get options(){return this._def.options}}Y0.create=(n,m)=>{return new Y0({options:n,typeName:W.ZodUnion,...V(m)})};var Mn=(n)=>{if(n instanceof Q0)return Mn(n.schema);else if(n instanceof s)return Mn(n.innerType());else if(n instanceof W0)return[n.value];else if(n instanceof An)return n.options;else if(n instanceof q0)return A.objectValues(n.enum);else if(n instanceof gn)return Mn(n._def.innerType);else if(n instanceof J0)return[void 0];else if(n instanceof X0)return[null];else if(n instanceof a)return[void 0,...Mn(n.unwrap())];else if(n instanceof xn)return[null,...Mn(n.unwrap())];else if(n instanceof Ym)return Mn(n.unwrap());else if(n instanceof G0)return Mn(n.unwrap());else if(n instanceof O0)return Mn(n._def.innerType);else return[]};class Xm extends K{_parse(n){let{ctx:m}=this._processInputParams(n);if(m.parsedType!==O.object)return G(m,{code:Q.invalid_type,expected:O.object,received:m.parsedType}),v;let i=this.discriminator,b=m.data[i],$=this.optionsMap.get(b);if(!$)return G(m,{code:Q.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[i]}),v;if(m.common.async)return $._parseAsync({data:m.data,path:m.path,parent:m});else return $._parseSync({data:m.data,path:m.path,parent:m})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(n,m,i){let b=new Map;for(let $ of m){let o=Mn($.shape[n]);if(!o.length)throw Error(`A discriminator value for key \`${n}\` could not be extracted from all schema options`);for(let _ of o){if(b.has(_))throw Error(`Discriminator property ${String(n)} has duplicate value ${String(_)}`);b.set(_,$)}}return new Xm({typeName:W.ZodDiscriminatedUnion,discriminator:n,options:m,optionsMap:b,...V(i)})}}function ii(n,m){let i=Jn(n),b=Jn(m);if(n===m)return{valid:!0,data:n};else if(i===O.object&&b===O.object){let $=A.objectKeys(m),o=A.objectKeys(n).filter((J)=>$.indexOf(J)!==-1),_={...n,...m};for(let J of o){let X=ii(n[J],m[J]);if(!X.valid)return{valid:!1};_[J]=X.data}return{valid:!0,data:_}}else if(i===O.array&&b===O.array){if(n.length!==m.length)return{valid:!1};let $=[];for(let o=0;o<n.length;o++){let _=n[o],J=m[o],X=ii(_,J);if(!X.valid)return{valid:!1};$.push(X.data)}return{valid:!0,data:$}}else if(i===O.date&&b===O.date&&+n===+m)return{valid:!0,data:n};else return{valid:!1}}class H0 extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n),b=($,o)=>{if(_m($)||_m(o))return v;let _=ii($.value,o.value);if(!_.valid)return G(i,{code:Q.invalid_intersection_types}),v;if(Jm($)||Jm(o))m.dirty();return{status:m.value,value:_.data}};if(i.common.async)return Promise.all([this._def.left._parseAsync({data:i.data,path:i.path,parent:i}),this._def.right._parseAsync({data:i.data,path:i.path,parent:i})]).then(([$,o])=>b($,o));else return b(this._def.left._parseSync({data:i.data,path:i.path,parent:i}),this._def.right._parseSync({data:i.data,path:i.path,parent:i}))}}H0.create=(n,m,i)=>{return new H0({left:n,right:m,typeName:W.ZodIntersection,...V(i)})};class Yn extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.array)return G(i,{code:Q.invalid_type,expected:O.array,received:i.parsedType}),v;if(i.data.length<this._def.items.length)return G(i,{code:Q.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;if(!this._def.rest&&i.data.length>this._def.items.length)G(i,{code:Q.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),m.dirty();let $=[...i.data].map((o,_)=>{let J=this._def.items[_]||this._def.rest;if(!J)return null;return J._parse(new e(i,o,i.path,_))}).filter((o)=>!!o);if(i.common.async)return Promise.all($).then((o)=>{return k.mergeArray(m,o)});else return k.mergeArray(m,$)}get items(){return this._def.items}rest(n){return new Yn({...this._def,rest:n})}}Yn.create=(n,m)=>{if(!Array.isArray(n))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new Yn({items:n,typeName:W.ZodTuple,rest:null,...V(m)})};class S0 extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.object)return G(i,{code:Q.invalid_type,expected:O.object,received:i.parsedType}),v;let b=[],$=this._def.keyType,o=this._def.valueType;for(let _ in i.data)b.push({key:$._parse(new e(i,_,i.path,_)),value:o._parse(new e(i,i.data[_],i.path,_)),alwaysSet:_ in i.data});if(i.common.async)return k.mergeObjectAsync(m,b);else return k.mergeObjectSync(m,b)}get element(){return this._def.valueType}static create(n,m,i){if(m instanceof K)return new S0({keyType:n,valueType:m,typeName:W.ZodRecord,...V(i)});return new S0({keyType:d.create(),valueType:n,typeName:W.ZodRecord,...V(m)})}}class f0 extends K{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.map)return G(i,{code:Q.invalid_type,expected:O.map,received:i.parsedType}),v;let b=this._def.keyType,$=this._def.valueType,o=[...i.data.entries()].map(([_,J],X)=>{return{key:b._parse(new e(i,_,i.path,[X,"key"])),value:$._parse(new e(i,J,i.path,[X,"value"]))}});if(i.common.async){let _=new Map;return Promise.resolve().then(async()=>{for(let J of o){let X=await J.key,Y=await J.value;if(X.status==="aborted"||Y.status==="aborted")return v;if(X.status==="dirty"||Y.status==="dirty")m.dirty();_.set(X.value,Y.value)}return{status:m.value,value:_}})}else{let _=new Map;for(let J of o){let{key:X,value:Y}=J;if(X.status==="aborted"||Y.status==="aborted")return v;if(X.status==="dirty"||Y.status==="dirty")m.dirty();_.set(X.value,Y.value)}return{status:m.value,value:_}}}}f0.create=(n,m,i)=>{return new f0({valueType:m,keyType:n,typeName:W.ZodMap,...V(i)})};class zn extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.parsedType!==O.set)return G(i,{code:Q.invalid_type,expected:O.set,received:i.parsedType}),v;let b=this._def;if(b.minSize!==null){if(i.data.size<b.minSize.value)G(i,{code:Q.too_small,minimum:b.minSize.value,type:"set",inclusive:!0,exact:!1,message:b.minSize.message}),m.dirty()}if(b.maxSize!==null){if(i.data.size>b.maxSize.value)G(i,{code:Q.too_big,maximum:b.maxSize.value,type:"set",inclusive:!0,exact:!1,message:b.maxSize.message}),m.dirty()}let $=this._def.valueType;function o(J){let X=new Set;for(let Y of J){if(Y.status==="aborted")return v;if(Y.status==="dirty")m.dirty();X.add(Y.value)}return{status:m.value,value:X}}let _=[...i.data.values()].map((J,X)=>$._parse(new e(i,J,i.path,X)));if(i.common.async)return Promise.all(_).then((J)=>o(J));else return o(_)}min(n,m){return new zn({...this._def,minSize:{value:n,message:u.toString(m)}})}max(n,m){return new zn({...this._def,maxSize:{value:n,message:u.toString(m)}})}size(n,m){return this.min(n,m).max(n,m)}nonempty(n){return this.min(1,n)}}zn.create=(n,m)=>{return new zn({valueType:n,minSize:null,maxSize:null,typeName:W.ZodSet,...V(m)})};class o0 extends K{constructor(){super(...arguments);this.validate=this.implement}_parse(n){let{ctx:m}=this._processInputParams(n);if(m.parsedType!==O.function)return G(m,{code:Q.invalid_type,expected:O.function,received:m.parsedType}),v;function i(_,J){return R0({data:_,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,b0(),Gn].filter((X)=>!!X),issueData:{code:Q.invalid_arguments,argumentsError:J}})}function b(_,J){return R0({data:_,path:m.path,errorMaps:[m.common.contextualErrorMap,m.schemaErrorMap,b0(),Gn].filter((X)=>!!X),issueData:{code:Q.invalid_return_type,returnTypeError:J}})}let $={errorMap:m.common.contextualErrorMap},o=m.data;if(this._def.returns instanceof Zn){let _=this;return I(async function(...J){let X=new z([]),Y=await _._def.args.parseAsync(J,$).catch((M)=>{throw X.addIssue(i(J,M)),X}),H=await Reflect.apply(o,this,Y);return await _._def.returns._def.type.parseAsync(H,$).catch((M)=>{throw X.addIssue(b(H,M)),X})})}else{let _=this;return I(function(...J){let X=_._def.args.safeParse(J,$);if(!X.success)throw new z([i(J,X.error)]);let Y=Reflect.apply(o,this,X.data),H=_._def.returns.safeParse(Y,$);if(!H.success)throw new z([b(Y,H.error)]);return H.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...n){return new o0({...this._def,args:Yn.create(n).rest(Bn.create())})}returns(n){return new o0({...this._def,returns:n})}implement(n){return this.parse(n)}strictImplement(n){return this.parse(n)}static create(n,m,i){return new o0({args:n?n:Yn.create([]).rest(Bn.create()),returns:m||Bn.create(),typeName:W.ZodFunction,...V(i)})}}class Q0 extends K{get schema(){return this._def.getter()}_parse(n){let{ctx:m}=this._processInputParams(n);return this._def.getter()._parse({data:m.data,path:m.path,parent:m})}}Q0.create=(n,m)=>{return new Q0({getter:n,typeName:W.ZodLazy,...V(m)})};class W0 extends K{_parse(n){if(n.data!==this._def.value){let m=this._getOrReturnCtx(n);return G(m,{received:m.data,code:Q.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:n.data}}get value(){return this._def.value}}W0.create=(n,m)=>{return new W0({value:n,typeName:W.ZodLiteral,...V(m)})};function o1(n,m){return new An({values:n,typeName:W.ZodEnum,...V(m)})}class An extends K{_parse(n){if(typeof n.data!=="string"){let m=this._getOrReturnCtx(n),i=this._def.values;return G(m,{expected:A.joinValues(i),received:m.parsedType,code:Q.invalid_type}),v}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(n.data)){let m=this._getOrReturnCtx(n),i=this._def.values;return G(m,{received:m.data,code:Q.invalid_enum_value,options:i}),v}return I(n.data)}get options(){return this._def.values}get enum(){let n={};for(let m of this._def.values)n[m]=m;return n}get Values(){let n={};for(let m of this._def.values)n[m]=m;return n}get Enum(){let n={};for(let m of this._def.values)n[m]=m;return n}extract(n,m=this._def){return An.create(n,{...this._def,...m})}exclude(n,m=this._def){return An.create(this.options.filter((i)=>!n.includes(i)),{...this._def,...m})}}An.create=o1;class q0 extends K{_parse(n){let m=A.getValidEnumValues(this._def.values),i=this._getOrReturnCtx(n);if(i.parsedType!==O.string&&i.parsedType!==O.number){let b=A.objectValues(m);return G(i,{expected:A.joinValues(b),received:i.parsedType,code:Q.invalid_type}),v}if(!this._cache)this._cache=new Set(A.getValidEnumValues(this._def.values));if(!this._cache.has(n.data)){let b=A.objectValues(m);return G(i,{received:i.data,code:Q.invalid_enum_value,options:b}),v}return I(n.data)}get enum(){return this._def.values}}q0.create=(n,m)=>{return new q0({values:n,typeName:W.ZodNativeEnum,...V(m)})};class Zn extends K{unwrap(){return this._def.type}_parse(n){let{ctx:m}=this._processInputParams(n);if(m.parsedType!==O.promise&&m.common.async===!1)return G(m,{code:Q.invalid_type,expected:O.promise,received:m.parsedType}),v;let i=m.parsedType===O.promise?m.data:Promise.resolve(m.data);return I(i.then((b)=>{return this._def.type.parseAsync(b,{path:m.path,errorMap:m.common.contextualErrorMap})}))}}Zn.create=(n,m)=>{return new Zn({type:n,typeName:W.ZodPromise,...V(m)})};class s extends K{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===W.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(n){let{status:m,ctx:i}=this._processInputParams(n),b=this._def.effect||null,$={addIssue:(o)=>{if(G(i,o),o.fatal)m.abort();else m.dirty()},get path(){return i.path}};if($.addIssue=$.addIssue.bind($),b.type==="preprocess"){let o=b.transform(i.data,$);if(i.common.async)return Promise.resolve(o).then(async(_)=>{if(m.value==="aborted")return v;let J=await this._def.schema._parseAsync({data:_,path:i.path,parent:i});if(J.status==="aborted")return v;if(J.status==="dirty")return In(J.value);if(m.value==="dirty")return In(J.value);return J});else{if(m.value==="aborted")return v;let _=this._def.schema._parseSync({data:o,path:i.path,parent:i});if(_.status==="aborted")return v;if(_.status==="dirty")return In(_.value);if(m.value==="dirty")return In(_.value);return _}}if(b.type==="refinement"){let o=(_)=>{let J=b.refinement(_,$);if(i.common.async)return Promise.resolve(J);if(J instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return _};if(i.common.async===!1){let _=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(_.status==="aborted")return v;if(_.status==="dirty")m.dirty();return o(_.value),{status:m.value,value:_.value}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then((_)=>{if(_.status==="aborted")return v;if(_.status==="dirty")m.dirty();return o(_.value).then(()=>{return{status:m.value,value:_.value}})})}if(b.type==="transform")if(i.common.async===!1){let o=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(!Ln(o))return v;let _=b.transform(o.value,$);if(_ instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:m.value,value:_}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then((o)=>{if(!Ln(o))return v;return Promise.resolve(b.transform(o.value,$)).then((_)=>({status:m.value,value:_}))});A.assertNever(b)}}s.create=(n,m,i)=>{return new s({schema:n,typeName:W.ZodEffects,effect:m,...V(i)})};s.createWithPreprocess=(n,m,i)=>{return new s({schema:m,effect:{type:"preprocess",transform:n},typeName:W.ZodEffects,...V(i)})};class a extends K{_parse(n){if(this._getType(n)===O.undefined)return I(void 0);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}a.create=(n,m)=>{return new a({innerType:n,typeName:W.ZodOptional,...V(m)})};class xn extends K{_parse(n){if(this._getType(n)===O.null)return I(null);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}xn.create=(n,m)=>{return new xn({innerType:n,typeName:W.ZodNullable,...V(m)})};class gn extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i=m.data;if(m.parsedType===O.undefined)i=this._def.defaultValue();return this._def.innerType._parse({data:i,path:m.path,parent:m})}removeDefault(){return this._def.innerType}}gn.create=(n,m)=>{return new gn({innerType:n,typeName:W.ZodDefault,defaultValue:typeof m.default==="function"?m.default:()=>m.default,...V(m)})};class O0 extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i={...m,common:{...m.common,issues:[]}},b=this._def.innerType._parse({data:i.data,path:i.path,parent:{...i}});if(w0(b))return b.then(($)=>{return{status:"valid",value:$.status==="valid"?$.value:this._def.catchValue({get error(){return new z(i.common.issues)},input:i.data})}});else return{status:"valid",value:b.status==="valid"?b.value:this._def.catchValue({get error(){return new z(i.common.issues)},input:i.data})}}removeCatch(){return this._def.innerType}}O0.create=(n,m)=>{return new O0({innerType:n,typeName:W.ZodCatch,catchValue:typeof m.catch==="function"?m.catch:()=>m.catch,...V(m)})};class p0 extends K{_parse(n){if(this._getType(n)!==O.nan){let i=this._getOrReturnCtx(n);return G(i,{code:Q.invalid_type,expected:O.nan,received:i.parsedType}),v}return{status:"valid",value:n.data}}}p0.create=(n)=>{return new p0({typeName:W.ZodNaN,...V(n)})};var e3=Symbol("zod_brand");class Ym extends K{_parse(n){let{ctx:m}=this._processInputParams(n),i=m.data;return this._def.type._parse({data:i,path:m.path,parent:m})}unwrap(){return this._def.type}}class F0 extends K{_parse(n){let{status:m,ctx:i}=this._processInputParams(n);if(i.common.async)return(async()=>{let $=await this._def.in._parseAsync({data:i.data,path:i.path,parent:i});if($.status==="aborted")return v;if($.status==="dirty")return m.dirty(),In($.value);else return this._def.out._parseAsync({data:$.value,path:i.path,parent:i})})();else{let b=this._def.in._parseSync({data:i.data,path:i.path,parent:i});if(b.status==="aborted")return v;if(b.status==="dirty")return m.dirty(),{status:"dirty",value:b.value};else return this._def.out._parseSync({data:b.value,path:i.path,parent:i})}}static create(n,m){return new F0({in:n,out:m,typeName:W.ZodPipeline})}}class G0 extends K{_parse(n){let m=this._def.innerType._parse(n),i=(b)=>{if(Ln(b))b.value=Object.freeze(b.value);return b};return w0(m)?m.then((b)=>i(b)):i(m)}unwrap(){return this._def.innerType}}G0.create=(n,m)=>{return new G0({innerType:n,typeName:W.ZodReadonly,...V(m)})};function i1(n,m){let i=typeof n==="function"?n(m):typeof n==="string"?{message:n}:n;return typeof i==="string"?{message:i}:i}function _1(n,m={},i){if(n)return cn.create().superRefine((b,$)=>{let o=n(b);if(o instanceof Promise)return o.then((_)=>{if(!_){let J=i1(m,b),X=J.fatal??i??!0;$.addIssue({code:"custom",...J,fatal:X})}});if(!o){let _=i1(m,b),J=_.fatal??i??!0;$.addIssue({code:"custom",..._,fatal:J})}return});return cn.create()}var s3={object:U.lazycreate},W;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(W||(W={}));var n4=(n,m={message:`Input not instance of ${n.name}`})=>_1((i)=>i instanceof n,m),J1=d.create,X1=Cn.create,m4=p0.create,i4=Kn.create,Y1=_0.create,b4=yn.create,w4=E0.create,$4=J0.create,o4=X0.create,_4=cn.create,J4=Bn.create,X4=Xn.create,Y4=U0.create,H4=r.create,Q4=U.create,W4=U.strictCreate,q4=Y0.create,O4=Xm.create,G4=H0.create,M4=Yn.create,x4=S0.create,l4=f0.create,u4=zn.create,j4=o0.create,v4=Q0.create,D4=W0.create,N4=An.create,V4=q0.create,L4=Zn.create,B4=s.create,C4=a.create,K4=xn.create,A4=s.createWithPreprocess,g4=F0.create,R4=()=>J1().optional(),E4=()=>X1().optional(),U4=()=>Y1().optional(),S4={string:(n)=>d.create({...n,coerce:!0}),number:(n)=>Cn.create({...n,coerce:!0}),boolean:(n)=>_0.create({...n,coerce:!0}),bigint:(n)=>Kn.create({...n,coerce:!0}),date:(n)=>yn.create({...n,coerce:!0})};var f4=v;function p4(n,m){if(!(m instanceof U))return n;let i=m.shape,b={...n};for(let[$,o]of Object.entries(i)){if(typeof b[$]!=="number")continue;let _=o;while(_ instanceof a||_ instanceof gn)_=_._def.innerType;if(_ instanceof d)b[$]=String(b[$])}return b}var F4=30000;class Hm{registry;constructor(n){this.registry=n}async execute(n){let m=Date.now(),{command:i,args:b}=n,$=this.registry.get(i);if(!$)return Vn(i,"core",new g0(i),Date.now()-m);let o=$.parameters.safeParse(p4(b,$.parameters));if(!o.success){let X=new em(`Invalid arguments for command '${i}'`,o.error.errors);return Vn(i,$.pluginName,X,Date.now()-m)}let _=$.timeout??F4,J;try{let X=await Promise.race([$.handler(o.data),new Promise((Y,H)=>{J=setTimeout(()=>H(new om(i,_)),_)})]);return clearTimeout(J),si(i,$.pluginName,X,Date.now()-m)}catch(X){if(clearTimeout(J),X instanceof om)return Vn(i,$.pluginName,X,Date.now()-m);if(X instanceof l)return Vn(i,$.pluginName,X,Date.now()-m);let Y=X instanceof Error?new wm(X.message,X.stack):new wm(String(X));return Vn(i,$.pluginName,Y,Date.now()-m)}}}function H1(n){if(n==="true")return!0;if(n==="false")return!1;if(n==="0"||/^0\.\d+$/.test(n))return Number(n);if(n.startsWith("0"))return n;if(n!==""&&!isNaN(Number(n)))return Number(n);return n}function W1(n){let m={},i="",b=0;if(n.length>0&&!n[0].startsWith("--"))i=n[0],b=1;while(b<n.length){let $=n[b];if($.startsWith("--")){let o=$.slice(2);if(o.includes("=")){let _=o.indexOf("="),J=o.slice(0,_),X=o.slice(_+1);Q1(m,J,H1(X))}else if(b+1<n.length&&!n[b+1].startsWith("--"))Q1(m,o,H1(n[b+1])),b++;else m[o]=!0}b++}return{command:i,args:m}}function Q1(n,m,i){let b=n[m];if(b===void 0)n[m]=i;else if(Array.isArray(b))n[m]=[...b,i];else if(typeof b==="string")n[m]=[b,i]}var h4={version:"1.0.0"};async function P4(n,m){try{if(n.initialize)await n.initialize(h4);let i=m;for(let b of n.commands)i=i.register(b);return{registry:i}}catch(i){let b=i instanceof Error?new $m(n.name,i.message,i):new $m(n.name,String(i));return{registry:m,error:b}}}async function bi(n,m=new Tn){let i=m,b=[];for(let $ of n){let o=await P4($,i);if(i=o.registry,o.error)b.push({pluginName:$.name,error:o.error})}return{registry:i,errors:b}}import{readFileSync as k4,writeFileSync as T4,mkdirSync as I4,existsSync as q1}from"node:fs";import{homedir as y4}from"node:os";import{join as O1}from"node:path";var wi=process.env.YUNKE_CONFIG_DIR??O1(y4(),".yunke"),Qm=O1(wi,"plugins.json");function G1(){if(!q1(wi))I4(wi,{recursive:!0})}function tn(){if(G1(),!q1(Qm))return{version:"1",plugins:[]};try{let n=k4(Qm,"utf-8");return JSON.parse(n)}catch(n){return process.stderr.write(`Warning: Failed to parse plugin config at ${Qm}: ${n instanceof Error?n.message:String(n)}
|
|
7
7
|
`),{version:"1",plugins:[]}}}function Wm(n){G1(),T4(Qm,JSON.stringify(n,null,2),"utf-8")}function M1(n){let m=tn(),i=m.plugins.findIndex(($)=>$.name===n.name),b={...n,installedAt:new Date().toISOString()};if(i>=0){let $=[...m.plugins];$[i]=b,Wm({...m,plugins:$})}else Wm({...m,plugins:[...m.plugins,b]})}function x1(n){let m=tn(),i=m.plugins.filter((b)=>b.name!==n);if(i.length!==m.plugins.length)return Wm({...m,plugins:i}),!0;return!1}function $i(n,m){let i=tn();if(i.plugins.findIndex((o)=>o.name===n)<0)return!1;let $=i.plugins.map((o)=>o.name===n?{...o,enabled:m}:o);return Wm({...i,plugins:$}),!0}import{readFileSync as c4,writeFileSync as z4,existsSync as l1,mkdirSync as Z4}from"node:fs";import{homedir as t4}from"node:os";import{join as u1}from"node:path";var ln={agenphone:!1,weixiaozhu:!1},oi=process.env.YUNKE_CONFIG_DIR??u1(t4(),".yunke"),_i=u1(oi,"features.json");function qm(){if(!l1(_i))return{version:"1",features:{...ln}};try{let n=c4(_i,"utf-8"),m=JSON.parse(n);return{...m,features:{...ln,...m.features}}}catch{return{version:"1",features:{...ln}}}}function d4(n){if(!l1(oi))Z4(oi,{recursive:!0});z4(_i,JSON.stringify(n,null,2),"utf-8")}function j1(n){return qm().features[n]??!1}function Ji(n,m){let i=qm();d4({...i,features:{...i.features,[n]:m}})}var D1=Symbol("Let zodToJsonSchema decide on which parser to use");var v1={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},N1=(n)=>typeof n==="string"?{...v1,name:n}:{...v1,...n};var V1=(n)=>{let m=N1(n),i=m.name!==void 0?[...m.basePath,m.definitionPath,m.name]:m.basePath;return{...m,flags:{hasReferencedOpenAiAnyType:!1},currentPath:i,propertyPath:void 0,seen:new Map(Object.entries(m.definitions).map(([b,$])=>[$._def,{def:$._def,path:[...m.basePath,m.definitionPath,b],jsonSchema:void 0}]))}};function Xi(n,m,i,b){if(!b?.errorMessages)return;if(i)n.errorMessage={...n.errorMessage,[m]:i}}function R(n,m,i,b,$){n[m]=i,Xi(n,m,b,$)}var Om=(n,m)=>{let i=0;for(;i<n.length&&i<m.length;i++)if(n[i]!==m[i])break;return[(n.length-i).toString(),...m.slice(i)].join("/")};function p(n){if(n.target!=="openAi")return{};let m=[...n.basePath,n.definitionPath,n.openAiAnyTypeName];return n.flags.hasReferencedOpenAiAnyType=!0,{$ref:n.$refStrategy==="relative"?Om(m,n.currentPath):m.join("/")}}function L1(n,m){let i={type:"array"};if(n.type?._def&&n.type?._def?.typeName!==W.ZodAny)i.items=D(n.type._def,{...m,currentPath:[...m.currentPath,"items"]});if(n.minLength)R(i,"minItems",n.minLength.value,n.minLength.message,m);if(n.maxLength)R(i,"maxItems",n.maxLength.value,n.maxLength.message,m);if(n.exactLength)R(i,"minItems",n.exactLength.value,n.exactLength.message,m),R(i,"maxItems",n.exactLength.value,n.exactLength.message,m);return i}function B1(n,m){let i={type:"integer",format:"int64"};if(!n.checks)return i;for(let b of n.checks)switch(b.kind){case"min":if(m.target==="jsonSchema7")if(b.inclusive)R(i,"minimum",b.value,b.message,m);else R(i,"exclusiveMinimum",b.value,b.message,m);else{if(!b.inclusive)i.exclusiveMinimum=!0;R(i,"minimum",b.value,b.message,m)}break;case"max":if(m.target==="jsonSchema7")if(b.inclusive)R(i,"maximum",b.value,b.message,m);else R(i,"exclusiveMaximum",b.value,b.message,m);else{if(!b.inclusive)i.exclusiveMaximum=!0;R(i,"maximum",b.value,b.message,m)}break;case"multipleOf":R(i,"multipleOf",b.value,b.message,m);break}return i}function C1(){return{type:"boolean"}}function Gm(n,m){return D(n.type._def,m)}var K1=(n,m)=>{return D(n.innerType._def,m)};function Yi(n,m,i){let b=i??m.dateStrategy;if(Array.isArray(b))return{anyOf:b.map(($,o)=>Yi(n,m,$))};switch(b){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return a4(n,m)}}var a4=(n,m)=>{let i={type:"integer",format:"unix-time"};if(m.target==="openApi3")return i;for(let b of n.checks)switch(b.kind){case"min":R(i,"minimum",b.value,b.message,m);break;case"max":R(i,"maximum",b.value,b.message,m);break}return i};function A1(n,m){return{...D(n.innerType._def,m),default:n.defaultValue()}}function g1(n,m){return m.effectStrategy==="input"?D(n.schema._def,m):p(m)}function R1(n){return{type:"string",enum:Array.from(n.values)}}var r4=(n)=>{if("type"in n&&n.type==="string")return!1;return"allOf"in n};function E1(n,m){let i=[D(n.left._def,{...m,currentPath:[...m.currentPath,"allOf","0"]}),D(n.right._def,{...m,currentPath:[...m.currentPath,"allOf","1"]})].filter((o)=>!!o),b=m.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,$=[];return i.forEach((o)=>{if(r4(o)){if($.push(...o.allOf),o.unevaluatedProperties===void 0)b=void 0}else{let _=o;if("additionalProperties"in o&&o.additionalProperties===!1){let{additionalProperties:J,...X}=o;_=X}else b=void 0;$.push(_)}}),$.length?{allOf:$,...b}:void 0}function U1(n,m){let i=typeof n.value;if(i!=="bigint"&&i!=="number"&&i!=="boolean"&&i!=="string")return{type:Array.isArray(n.value)?"array":"object"};if(m.target==="openApi3")return{type:i==="bigint"?"integer":i,enum:[n.value]};return{type:i==="bigint"?"integer":i,const:n.value}}var Hi=void 0,nn={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(Hi===void 0)Hi=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return Hi},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Mm(n,m){let i={type:"string"};if(n.checks)for(let b of n.checks)switch(b.kind){case"min":R(i,"minLength",typeof i.minLength==="number"?Math.max(i.minLength,b.value):b.value,b.message,m);break;case"max":R(i,"maxLength",typeof i.maxLength==="number"?Math.min(i.maxLength,b.value):b.value,b.message,m);break;case"email":switch(m.emailStrategy){case"format:email":mn(i,"email",b.message,m);break;case"format:idn-email":mn(i,"idn-email",b.message,m);break;case"pattern:zod":y(i,nn.email,b.message,m);break}break;case"url":mn(i,"uri",b.message,m);break;case"uuid":mn(i,"uuid",b.message,m);break;case"regex":y(i,b.regex,b.message,m);break;case"cuid":y(i,nn.cuid,b.message,m);break;case"cuid2":y(i,nn.cuid2,b.message,m);break;case"startsWith":y(i,RegExp(`^${Qi(b.value,m)}`),b.message,m);break;case"endsWith":y(i,RegExp(`${Qi(b.value,m)}$`),b.message,m);break;case"datetime":mn(i,"date-time",b.message,m);break;case"date":mn(i,"date",b.message,m);break;case"time":mn(i,"time",b.message,m);break;case"duration":mn(i,"duration",b.message,m);break;case"length":R(i,"minLength",typeof i.minLength==="number"?Math.max(i.minLength,b.value):b.value,b.message,m),R(i,"maxLength",typeof i.maxLength==="number"?Math.min(i.maxLength,b.value):b.value,b.message,m);break;case"includes":{y(i,RegExp(Qi(b.value,m)),b.message,m);break}case"ip":{if(b.version!=="v6")mn(i,"ipv4",b.message,m);if(b.version!=="v4")mn(i,"ipv6",b.message,m);break}case"base64url":y(i,nn.base64url,b.message,m);break;case"jwt":y(i,nn.jwt,b.message,m);break;case"cidr":{if(b.version!=="v6")y(i,nn.ipv4Cidr,b.message,m);if(b.version!=="v4")y(i,nn.ipv6Cidr,b.message,m);break}case"emoji":y(i,nn.emoji(),b.message,m);break;case"ulid":{y(i,nn.ulid,b.message,m);break}case"base64":{switch(m.base64Strategy){case"format:binary":{mn(i,"binary",b.message,m);break}case"contentEncoding:base64":{R(i,"contentEncoding","base64",b.message,m);break}case"pattern:zod":{y(i,nn.base64,b.message,m);break}}break}case"nanoid":y(i,nn.nanoid,b.message,m);case"toLowerCase":case"toUpperCase":case"trim":break;default:(($)=>{})(b)}return i}function Qi(n,m){return m.patternStrategy==="escape"?s4(n):n}var e4=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function s4(n){let m="";for(let i=0;i<n.length;i++){if(!e4.has(n[i]))m+="\\";m+=n[i]}return m}function mn(n,m,i,b){if(n.format||n.anyOf?.some(($)=>$.format)){if(!n.anyOf)n.anyOf=[];if(n.format){if(n.anyOf.push({format:n.format,...n.errorMessage&&b.errorMessages&&{errorMessage:{format:n.errorMessage.format}}}),delete n.format,n.errorMessage){if(delete n.errorMessage.format,Object.keys(n.errorMessage).length===0)delete n.errorMessage}}n.anyOf.push({format:m,...i&&b.errorMessages&&{errorMessage:{format:i}}})}else R(n,"format",m,i,b)}function y(n,m,i,b){if(n.pattern||n.allOf?.some(($)=>$.pattern)){if(!n.allOf)n.allOf=[];if(n.pattern){if(n.allOf.push({pattern:n.pattern,...n.errorMessage&&b.errorMessages&&{errorMessage:{pattern:n.errorMessage.pattern}}}),delete n.pattern,n.errorMessage){if(delete n.errorMessage.pattern,Object.keys(n.errorMessage).length===0)delete n.errorMessage}}n.allOf.push({pattern:S1(m,b),...i&&b.errorMessages&&{errorMessage:{pattern:i}}})}else R(n,"pattern",S1(m,b),i,b)}function S1(n,m){if(!m.applyRegexFlags||!n.flags)return n.source;let i={i:n.flags.includes("i"),m:n.flags.includes("m"),s:n.flags.includes("s")},b=i.i?n.source.toLowerCase():n.source,$="",o=!1,_=!1,J=!1;for(let X=0;X<b.length;X++){if(o){$+=b[X],o=!1;continue}if(i.i){if(_){if(b[X].match(/[a-z]/)){if(J)$+=b[X],$+=`${b[X-2]}-${b[X]}`.toUpperCase(),J=!1;else if(b[X+1]==="-"&&b[X+2]?.match(/[a-z]/))$+=b[X],J=!0;else $+=`${b[X]}${b[X].toUpperCase()}`;continue}}else if(b[X].match(/[a-z]/)){$+=`[${b[X]}${b[X].toUpperCase()}]`;continue}}if(i.m){if(b[X]==="^"){$+=`(^|(?<=[\r
|
|
8
8
|
]))`;continue}else if(b[X]==="$"){$+=`($|(?=[\r
|
|
9
9
|
]))`;continue}}if(i.s&&b[X]==="."){$+=_?`${b[X]}\r
|
|
@@ -18,7 +18,7 @@ ${J.join(`
|
|
|
18
18
|
`),H=1}await c2($),Dn(H);return}},s2={name:"crm.auth.status",description:'WorkBuddy 对接:检测登录状态。已登录 exit 0 + 输出 "Logged in as <name>";未登录 exit 非0。token 过期自动 refresh。',category:"crm",pluginName:n0,parameters:w.object({}),returns:w.object({logged_in:w.boolean()}),examples:[{description:"已登录",input:{},output:{logged_in:!0}}],sideEffects:["filesystem","network"],handler:async()=>{let n=On();if(!n?.token||!n?.user_id){Dn(1);return}if(!(n.expires_at!=null&&Date.now()>=n.expires_at)){cm(`Logged in as ${n.name}
|
|
19
19
|
`),Dn(0);return}if(n.refresh_token&&n.client_id){try{let i=await k2({baseUrl:n.base_url||hi,refreshToken:n.refresh_token,clientId:n.client_id});A2({token:i.access_token,expires_at:Date.now()+(i.expires_in??3600)*1000,...i.refresh_token?{refresh_token:i.refresh_token}:{}}),cm(`Logged in as ${n.name}
|
|
20
20
|
`),Dn(0);return}catch(i){r0(`刷新凭证失败: ${zm(i)}
|
|
21
|
-
`)}Dn(1);return}Dn(1);return}},n8={name:"crm.auth.logout",description:"WorkBuddy 对接:登出,删除本地凭证(幂等,未登录也 exit 0)。",category:"crm",pluginName:n0,parameters:w.object({}),returns:w.object({success:w.boolean()}),examples:[{description:"登出",input:{},output:{success:!0}}],sideEffects:["filesystem"],handler:async()=>{return g2(),{success:!0}}};function m8(){let n=On();if(n?.base_url)try{let m=new URL(n.base_url);return`${m.protocol}//${m.host}`}catch{}return process.env.YUNKE_CRM_BASE_URL||"https://crm.yunkecn.com"}var o5={source:"yunkepc",package:"agentapp"};function _5(){let n=On();if(!n?.token||!n?.user_id)throw new l("CONFIG_ERROR","未登录,请先运行 'yunke crm.auth.login' 登录");return{token:n.token,user_id:n.user_id,company_code:n.company_code||""}}async function C(n,m,i){let{token:b,user_id:$,company_code:o}=_5(),_={...o5,userid:$,token:b,company:o,"content-type":"application/json",...i?.headers};if(i?.needOrigin)_.origin=m8();if(i?.formData)_["content-type"]="application/x-www-form-urlencoded; charset=UTF-8";let J=`${m8()}${n}`;if(i?.method==="GET"){let q=new URLSearchParams;for(let[M,j]of Object.entries(m))if(j!==void 0&&j!==null)q.set(M,String(j));J+=`?${q.toString()}`}let X;if(i?.method!=="GET")if(i?.formData){let q=new URLSearchParams;for(let[M,j]of Object.entries(m))if(j!==void 0&&j!==null)q.set(M,String(j));X=q.toString()}else X=JSON.stringify(m);let Y=await fetch(J,{method:i?.method??"POST",headers:_,body:X});if(!Y.ok)throw new l("EXECUTION_FAILED",`CRM 请求失败: HTTP ${Y.status}`);let H=await Y.json();if(!H.success&&H.code!==1e4)throw new l("EXECUTION_FAILED",H.message||H.msg||"CRM 业务失败");if(i?.rawResponse)return H;return H.data??H}function Ii(){return On()?.company_code||""}async function S(){let m=(await C("/usercenter/dept/tree",{id:"",showUser:!1,showUserStatus:"",queryQywxStatus:!1})).find((i)=>i.isDept);if(!m)throw new l("EXECUTION_FAILED","无法获取默认部门 ID");return m.id}var i8="crm",J5=w.object({id:w.string(),pid:w.string(),name:w.string(),is_dept:w.boolean(),bind_qywx:w.boolean(),offline_days:w.number(),sort:w.number(),account:w.string().nullable().optional(),phone_number:w.string().nullable().optional(),user_type:w.number().nullable().optional()}),X5=w.object({id:w.string(),pid:w.string(),name:w.string(),is_dept:w.boolean(),department_path:w.string(),routes:w.array(w.string()),bind_qywx:w.boolean(),offline_days:w.number(),sort:w.number(),account:w.string().nullable().optional(),phone_number:w.string().nullable().optional(),has_phone:w.boolean().nullable().optional(),user_type:w.number().nullable().optional()}),b8={name:"crm.org.department-tree",description:"查询指定部门下的子部门和员工列表(单级,不递归)。dept_id 为空时查根节点。",category:"crm",pluginName:i8,parameters:w.object({dept_id:w.string().optional().default("").describe("父部门 ID,空字符串表示根节点"),show_user:w.boolean().optional().default(!0).describe("是否返回员工节点"),show_user_status:w.string().optional().default("").describe("过滤员工状态"),query_qywx_status:w.boolean().optional().default(!1).describe("是否查询企业微信绑定状态")}),returns:w.object({items:w.array(J5)}),examples:[{description:"查询根节点",input:{},output:{items:[{id:"dept001",pid:"",name:"销售部",is_dept:!0,bind_qywx:!1,offline_days:0,sort:1}]}},{description:"查询指定部门的子节点",input:{dept_id:"dept001"},output:{items:[{id:"u001",pid:"dept001",name:"张三",is_dept:!1,bind_qywx:!1,offline_days:0,sort:1,phone_number:"13800138000"}]}}],sideEffects:["network"],handler:async({dept_id:n,show_user:m,show_user_status:i,query_qywx_status:b})=>{return{items:(await C("/usercenter/dept/tree",{id:n,showUser:m,showUserStatus:i,queryQywxStatus:b})??[]).map((o)=>({id:String(o.id??""),pid:String(o.pid??""),name:String(o.name??""),is_dept:Boolean(o.isDept),bind_qywx:Boolean(o.bindQywx),offline_days:Number(o.offlineDays??0),sort:Number(o.sort??0),account:o.account??null,phone_number:o.phoneNumber??null,user_type:o.userType??null}))}}},w8={name:"crm.org.search",description:"通过关键词模糊搜索部门和员工。search_type: 1=仅部门, 2=仅员工, 3=全部(默认)。",category:"crm",pluginName:i8,parameters:w.object({keyword:w.string().min(1).describe("搜索关键词"),search_type:w.number().int().min(1).max(3).optional().default(3).describe("1=仅部门 2=仅员工 3=全部"),limit:w.number().int().min(1).max(100).optional().default(20).describe("返回条数上限"),phone_only:w.boolean().optional().default(!1).describe("仅返回有手机号的员工")}),returns:w.object({total:w.number(),results:w.array(X5)}),examples:[{description:'搜索关键词"张"',input:{keyword:"张"},output:{total:1,results:[{id:"u001",pid:"dept001",name:"张三",is_dept:!1,department_path:"销售部",routes:["dept001"],bind_qywx:!1,offline_days:0,sort:1}]}}],sideEffects:["network"],handler:async({keyword:n,search_type:m,limit:i,phone_only:b})=>{let $=await C("/usercenter/dept/search",{keyword:n.trim(),type:m,limit:i,phoneOnly:b,showUserStatus:"",queryQywxStatus:!1},{needOrigin:!0,rawResponse:!0}),o=($.data??[]).map((_)=>{let J=_.routes??[];return{id:String(_.id??""),pid:String(_.pid??""),name:String(_.name??""),is_dept:Boolean(_.isDept),routes:J,department_path:J.join("/"),bind_qywx:Boolean(_.bindQywx),offline_days:Number(_.offlineDays??0),sort:Number(_.sort??0),account:_.account??null,phone_number:_.phoneNumber??null,has_phone:Boolean(_.phoneNumber),user_type:_.userType??null}});return{total:$.total??o.length,results:o}}};var e0="crm";function $8(n){return String(n).padStart(2,"0")}function o8(n){return`${n.getFullYear()}-${$8(n.getMonth()+1)}-${$8(n.getDate())}`}var _8=w.object({show_name:w.string(),field_code:w.string(),module:w.string(),hidden:w.boolean()}),Y5=w.object({option:w.number(),modules:w.array(w.string()),columns:w.array(_8)}),J8={name:"crm.report.employee-statistics",description:"获取员工报表统计数据。option=department 为部门维度,option=employee 为员工维度。",category:"crm",pluginName:e0,parameters:w.object({option:w.enum(["department","employee"]).optional().default("department").describe("统计维度:department=部门维度,employee=员工维度"),depart_id:w.string().optional().default("").describe("部门 ID,空字符串表示全公司"),start_time:w.string().optional().default("").describe("开始时间,格式 YYYY-MM-DD,如 2026-04-01"),end_time:w.string().optional().default("").describe("结束时间,格式 YYYY-MM-DD,如 2026-04-08"),page:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(100).optional().default(10).describe("每页条数")}),returns:w.object({heads:Y5,total:w.number(),page:w.number(),page_size:w.number(),rows:w.array(w.record(w.unknown()))}),examples:[{description:"查询部门维度报表(第1页)",input:{option:"department",start_time:"2026-04-01",end_time:"2026-04-08"},output:{heads:{option:1,modules:["base"],columns:[{show_name:"部门",field_code:"dept_name",module:"base",hidden:!1}]},total:5,page:1,page_size:10,rows:[{dept_name:"销售部",total_calls:120}]}},{description:"查询员工维度报表",input:{option:"employee",start_time:"2026-04-01",end_time:"2026-04-08"},output:{heads:{option:2,modules:["base"],columns:[{show_name:"姓名",field_code:"name",module:"base",hidden:!1}]},total:20,page:1,page_size:10,rows:[{name:"张三",total_calls:50}]}}],sideEffects:["network"],handler:async({option:n,depart_id:m,start_time:i,end_time:b,page:$,page_size:o})=>{let _=n==="department"?1:2,J=new Date,X=b||o8(J),Y=i||o8(new Date(J.getTime()-518400000)),[H,q]=await Promise.all([C("/yunke-report-phone/custom/Report/getHead",{departId:m},{method:"GET"}),C("/yunke-report-phone/custom/Report/getDataView",{option:_,departId:m,pageSize:o,starttime:Y,endtime:X,page:$})]),M=(H.customShowHeads??[]).map((j)=>({show_name:String(j.showName??""),field_code:String(j.fieldCode??""),module:String(j.module??""),hidden:Number(j.hiddens)===1}));return{heads:{option:H.option??_,modules:H.modules??[],columns:M},total:q.total??0,page:$,page_size:o,rows:q.list??[]}}},yi=w.union([w.array(w.string()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[n]}}),X8={name:"crm.report.custom-report-columns",description:"查询员工自定义报表的列配置(已启用字段及所有可配字段)。",category:"crm",pluginName:e0,parameters:w.object({depart_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({option:w.number(),modules:w.array(w.string()),columns:w.array(_8)}).passthrough(),examples:[{description:"查询默认部门报表列配置",input:{},output:{option:1,modules:["微信","短信","通话"],columns:[{show_name:"发送消息数量",field_code:"wechatOutMsg",module:"微信",hidden:!1}]}}],sideEffects:["network"],handler:async({depart_id:n})=>{let m=n||await S();return await C("/yunke-report-phone/custom/Report/getHead",{departId:m},{method:"GET"})}},Y8={name:"crm.report.set-custom-report-columns",description:"设置员工自定义报表的列配置(从 custom-report-columns 取得后修改 hiddens 再传入)。",category:"crm",pluginName:e0,parameters:w.object({custom_show_heads:w.string().describe("列配置 JSON 字符串(从 custom-report-columns 取得后修改)"),option:w.number().int().optional().default(1).describe("统计维度,默认 1"),modules:yi.optional().default(["微信","短信","通话"]).describe("启用模块"),max_rank:w.number().int().optional().default(8).describe("排名上限"),min_rank:w.number().int().optional().default(1).describe("排名下限")}),returns:w.object({}).passthrough(),examples:[{description:"设置列配置",input:{custom_show_heads:'[{"fieldCode":"wechatOutMsg","showName":"发送消息","module":"微信","hiddens":0,"userPower":false}]'},output:{}}],sideEffects:["network"],handler:async({custom_show_heads:n,option:m,modules:i,max_rank:b,min_rank:$})=>{let o;try{o=JSON.parse(n)}catch{throw new l("VALIDATION_FAILED","custom_show_heads 不是合法 JSON")}return await C("/yunke-report-phone/custom/Report/setHead",{option:m,modules:i,maxRank:b,minRank:$,customShowHeads:o})}},H8={name:"crm.report.customer-statistics",description:"查询客户统计(新增/跟进/待跟进/成交等指标,含环比对比)。",category:"crm",pluginName:e0,parameters:w.object({department_ids:yi.describe("部门 ID 列表(JSON 字符串或数组)"),user_ids:yi.optional().default([]).describe("用户 ID 列表,空则查部门下全部"),time_range:w.number().int().optional().default(2).describe("时间范围:2=昨日 3=近7日 4=近15日 5=近30日")}),returns:w.object({}).passthrough(),examples:[{description:"查询部门客户统计(近7日)",input:{department_ids:'["DEPT001"]',time_range:3},output:{}}],sideEffects:["network"],handler:async({department_ids:n,user_ids:m,time_range:i})=>{return await C("/pc/customer-metrics-stats/metrics",{userIds:m,departmentIds:n,timeRange:i})}},Q8={name:"crm.report.device-usage-statistics",description:"查询设备/应用使用时长统计。",category:"crm",pluginName:e0,parameters:w.object({page_num:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),search_type:w.number().int().optional().default(1).describe("搜索类型,默认 1"),sort_type:w.string().optional().default("desc").describe("排序:desc/asc"),user_id:w.string().optional().default("").describe("用户 ID,空则查部门下全部"),range:w.number().int().optional().default(0).describe("时间范围代码:0=今天 -1=昨天 -32=自定义"),range_str:w.string().optional().default("").describe('自定义时间范围,range=-32 时用,格式 "开始,结束"'),department_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询设备应用使用时长(今天)",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.department_id||await S();return await C("/pc/appstatistics/apps",{pageNum:n.page_num,pageSize:n.page_size,searchType:n.search_type,sortType:n.sort_type,userId:n.user_id,range:n.range,rangeStr:n.range_str,departmentId:m})}};var H5="crm",W8={name:"crm.report.device-statistics",description:"查询设备统计(总数/已绑定/锁定/激活)。department_id 空则取默认部门。",category:"crm",pluginName:H5,parameters:w.object({department_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),user_id:w.string().optional().default("").describe("用户 ID,空则查部门下全部")}),returns:w.object({total:w.number(),has_bind:w.number(),locked:w.number(),actived:w.number()}),examples:[{description:"查询默认部门设备统计",input:{},output:{total:10,has_bind:8,locked:1,actived:7}}],sideEffects:["network"],handler:async({department_id:n,user_id:m})=>{let i=n||await S(),b=await C("/pc/setup/deviceStatistics",{departmentId:i,userId:m});return{total:b.total,has_bind:b.hasBind,locked:b.locked,actived:b.actived}}};var G8="crm";function q8(n){return String(n).padStart(2,"0")}function O8(n,m=!1){return`${n.getFullYear()}-${q8(n.getMonth()+1)}-${q8(n.getDate())} ${m?"23:59:59":"00:00:00"}`}var Q5=w.object({user_id:w.string(),user_name:w.string(),longitude:w.number().nullable(),latitude:w.number().nullable(),addr:w.string(),created_time:w.string(),last_online_time:w.string(),active_type:w.number(),in_or_out:w.number(),in_or_out_name:w.string(),loc_duration:w.number(),location_exception:w.number()}),M8={name:"crm.location.by-department",description:"查询指定部门所有员工的最后一次定位记录。建议先用 org.search 或 org.department-tree 缩小部门范围。",category:"crm",pluginName:G8,parameters:w.object({department_id:w.string().min(1).describe("部门 ID(可通过 org.search / org.department-tree 获取)"),device_code:w.string().optional().default("").describe("设备编码,空则不过滤")}),returns:w.object({total:w.number(),records:w.array(Q5)}),examples:[{description:"查询部门员工最后定位",input:{department_id:"DEPT001"},output:{total:1,records:[{user_id:"u001",user_name:"张三",longitude:116.4,latitude:39.9,addr:"北京市",created_time:"2026-08-01 10:00:00",last_online_time:"2026-08-01 10:00:00",active_type:1,in_or_out:3,in_or_out_name:"未知",loc_duration:0,location_exception:0}]}}],sideEffects:["network"],handler:async({department_id:n,device_code:m})=>{let b=(await C("/pc/location/getEveryoneLastRecord",{departmentId:n,deviceCode:m})??[]).map(($)=>({user_id:String($.userId??""),user_name:String($.userName??""),longitude:$.longitude??null,latitude:$.latitude??null,addr:String($.addr??""),created_time:String($.createdTime??""),last_online_time:String($.lastOnlineTime??""),active_type:Number($.activeType??0),in_or_out:Number($.inOrOut??3),in_or_out_name:String($.inOrOutName??"未知"),loc_duration:Number($.locDuration??0),location_exception:Number($.locationException??0)}));return{total:b.length,records:b}}},W5=w.object({user_id:w.string(),longitude:w.number().nullable(),latitude:w.number().nullable(),addr:w.string(),created_time:w.string(),start_time:w.string(),end_time:w.string(),loc_duration:w.number(),in_or_out:w.number(),in_or_out_name:w.string(),active_type:w.number(),location_exception:w.number()}),x8={name:"crm.location.by-user",description:"查询指定员工在时间段内的定位轨迹。建议显式传入较短时间范围,不要依赖默认近30天。",category:"crm",pluginName:G8,parameters:w.object({user_id:w.string().min(1).describe("员工用户 ID(可通过 org.search 获取)"),start_time:w.string().optional().default("").describe("开始时间 YYYY-MM-DD HH:mm:ss,空则默认近30天"),end_time:w.string().optional().default("").describe("结束时间 YYYY-MM-DD HH:mm:ss,空则默认今天"),device_code:w.string().optional().default("").describe("设备编码,空则不过滤")}),returns:w.object({total:w.number(),records:w.array(W5)}),examples:[{description:"查询员工某天轨迹",input:{user_id:"u001",start_time:"2026-08-01 00:00:00",end_time:"2026-08-01 23:59:59"},output:{total:1,records:[{user_id:"u001",longitude:116.4,latitude:39.9,addr:"北京市",created_time:"2026-08-01 10:00:00",start_time:"2026-08-01 09:00:00",end_time:"2026-08-01 12:00:00",loc_duration:10800000,in_or_out:3,in_or_out_name:"未知",active_type:1,location_exception:0}]}}],sideEffects:["network"],handler:async({user_id:n,start_time:m,end_time:i,device_code:b})=>{let $=new Date,o=i||O8($,!0),_=m||O8(new Date($.getTime()-2592000000),!1),J=await C("/pc/location/getLocRecordByUserId",{userId:n,createTimeRange:{start:_,end:o},deviceCode:b}),X=(J?.list??[]).map((Y)=>({user_id:String(Y.userId??n),longitude:Y.longitude??null,latitude:Y.latitude??null,addr:String(Y.addr??""),created_time:String(Y.createdTime??""),start_time:String(Y.starttime??""),end_time:String(Y.endtime??""),loc_duration:Number(Y.locDuration??0),in_or_out:Number(Y.inOrOut??3),in_or_out_name:String(Y.inOrOutName??"未知"),active_type:Number(Y.activeType??0),location_exception:Number(Y.locationException??0)}));return{total:J?.total??X.length,records:X}}};var l8="crm",ci=w.union([w.string(),w.number()]).transform((n)=>String(n)),u8={name:"crm.call.log-list",description:"获取通话记录列表。后端每页最多 10 条;pageCount > 当前页时需翻页取全后再汇总。",category:"crm",pluginName:l8,parameters:w.object({page:w.number().int().min(1).optional().default(1).describe("页码,从 1 开始"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数,建议 5-10"),sales_progress:w.string().optional().default("").describe("销售进度"),start_voice_time:w.string().optional().default("").describe("语音开始时间 YYYY-MM-DD HH:mm:ss"),end_voice_time:w.string().optional().default("").describe("语音结束时间"),start_create_time:w.string().optional().default("").describe("创建开始时间"),end_create_time:w.string().optional().default("").describe("创建结束时间"),search_info:w.string().optional().default("").describe("搜索关键词(客户名/公司等)"),last_connect_time_start:w.string().optional().default("").describe("最后连接开始时间"),last_connect_time_end:w.string().optional().default("").describe("最后连接结束时间"),filter_user_id:ci.optional().default("").describe("按员工用户 ID 筛选"),tip_type:w.string().optional().default("").describe("提示类型"),progress:w.string().optional().default("").describe("进度状态"),call_seconds:w.string().optional().default("").describe("通话秒数筛选"),department_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),search_phone:ci.optional().default("").describe("按电话号码搜索"),call_id:ci.optional().default("").describe("通话记录 ID"),call_type:w.string().optional().default("s").describe("通话类型,默认 s")}),returns:w.object({page:w.number(),pageCount:w.number(),totalCount:w.number(),data:w.array(w.unknown())}).passthrough(),examples:[{description:"获取第 1 页通话记录",input:{page:1,page_size:5},output:{page:1,pageCount:3,totalCount:15,data:[]}}],sideEffects:["network"],handler:async(n)=>{let m=n.department_id||await S();return await C("/pc/callLog/list",{page:n.page,pageSize:n.page_size,salesProgress:n.sales_progress,startVoiceTime:n.start_voice_time,endVoiceTime:n.end_voice_time,startCreateTime:n.start_create_time,endCreateTime:n.end_create_time,searchInfo:n.search_info,lastConnectTimeStart:n.last_connect_time_start,lastConnectTimeEnd:n.last_connect_time_end,userId:n.filter_user_id,tipType:n.tip_type,progress:n.progress,callSeconds:n.call_seconds,departmentId:m,searchPhone:n.search_phone,id:n.call_id,callType:n.call_type})}},j8={name:"crm.call.asr-result",description:"获取通话录音的 ASR 语音转写结果。",category:"crm",pluginName:l8,parameters:w.object({call_action_id:w.string().min(1).describe("通话 ID"),audio_url:w.string().optional().default("").describe("音频文件 URL(可选)"),call_type:w.string().optional().default("1").describe("录音类型:1=通话,12=本地录音")}),returns:w.object({trans_complete:w.number(),asr_result:w.array(w.unknown()),message:w.string()}),examples:[{description:"获取通话录音的 ASR 转写结果",input:{call_action_id:"123456",call_type:"1"},output:{trans_complete:1,asr_result:[],message:""}}],sideEffects:["network"],handler:async({call_action_id:n,audio_url:m,call_type:i})=>{let b=await C("/pc/trans/transWord",{businessId:n,callActionId:n,isTrans:1,number:1,url:m,phone:"",type:i});return{trans_complete:b.transComplete??0,asr_result:b.asrResult??[],message:b.message??""}}};var s0="crm",q5=w.union([w.string(),w.number()]).transform((n)=>String(n)),v8=w.union([w.array(w.string()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[n]}});function D8(n){return new Date(n.replace(" ","T")).getTime()}var N8={name:"crm.misc.fly-order-warning",description:"查询飞单预警分析列表,检测员工可能的飞单行为。",category:"crm",pluginName:s0,parameters:w.object({start_time:w.string().describe("开始时间 yyyy-MM-dd HH:mm:ss"),end_time:w.string().describe("结束时间 yyyy-MM-dd HH:mm:ss"),page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),user_id:w.string().optional().default("").describe("员工 ID"),user_ids:v8.optional().default([]).describe("员工 ID 列表"),search_type:w.number().int().optional().describe("搜索类型:1客户姓名 2客户手机号 3员工姓名 4员工手机号 5客户微信昵称 6客户微信号 7员工微信昵称 8员工微信号"),keyword:w.string().optional().default("").describe("搜索关键词"),ctype:w.number().int().optional().describe("沟通类型:1电话 2微信 3微信长语音"),sort_field:w.number().int().optional().describe("排序字段:1分析时间 2沟通时间"),sort_order:w.string().optional().default("").describe("排序:asc/desc"),range_field:w.number().int().optional().describe("过滤时间字段:1分析时间 2沟通时间"),call_second_type:w.number().int().optional().describe("通话时长类型"),call_percent:w.number().int().optional().describe("员工通话占比"),call_speed:w.number().int().optional().describe("语速"),missing_topic:v8.optional().default([]).describe("飞单话题筛选列表")}),returns:w.object({}).passthrough(),examples:[{description:"查询飞单预警",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/orderMissing/list",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,dptId:m,userId:n.user_id,userIds:n.user_ids,type:n.search_type,keyword:n.keyword,ctype:n.ctype,sortField:n.sort_field,sortOrder:n.sort_order,rangeField:n.range_field,callSecondType:n.call_second_type,callPercent:n.call_percent,callSpeed:n.call_speed,missingTopic:n.missing_topic})}},V8={name:"crm.misc.sms-history",description:"查询短信历史记录列表。",category:"crm",pluginName:s0,parameters:w.object({page:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),customer_id:w.string().optional().default("").describe("客户 ID"),customer_name:w.string().optional().default("").describe("客户姓名"),customer_phone:q5.optional().default("").describe("客户手机号"),start_time:w.string().optional().default("").describe("开始时间"),end_time:w.string().optional().default("").describe("结束时间")}),returns:w.object({}).passthrough(),examples:[{description:"查询短信记录",input:{},output:{}}],sideEffects:["network"],handler:async({page:n,page_size:m,customer_id:i,customer_name:b,customer_phone:$,start_time:o,end_time:_})=>{return await C("/pc/customer/smsLogsList",{page:n,pageSize:m,customerId:i,customerName:b,customerPhone:$,startTime:o,endTime:_})}},L8={name:"crm.misc.site-recording",description:"查询现场录音或工牌录音列表。",category:"crm",pluginName:s0,parameters:w.object({start_time:w.string().describe("开始时间"),end_time:w.string().describe("结束时间"),page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),device_type:w.number().int().optional().default(0).describe("设备类型:0=现场录音 1=工牌录音"),user_id:w.string().optional().default("").describe("员工 ID"),user_name:w.string().optional().default("").describe("员工姓名"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询现场录音",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/voice/queryvoicelist",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,deviceType:n.device_type,userId:n.user_id,userName:n.user_name,deptId:m})}},B8={name:"crm.misc.control-logs",description:"查询管控日志列表(开始/结束时间转毫秒时间戳传后端)。",category:"crm",pluginName:s0,parameters:w.object({start_time:w.string().describe("开始时间 yyyy-MM-dd HH:mm:ss"),end_time:w.string().describe("结束时间 yyyy-MM-dd HH:mm:ss"),page_num:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数")}),returns:w.object({}).passthrough(),examples:[{description:"查询管控日志",input:{start_time:"2026-08-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async({start_time:n,end_time:m,page_num:i,page_size:b})=>{return await C("/wxz/web/config/get_control_log_list",{pageNum:i,pageSize:b,phone:"",name:"",type:"",status:"",startTriggerTime:D8(n),endTriggerTime:D8(m),showTime:[]},{headers:{source:"h5",package:"com.applet.manage",channel:"4"}})}},O5=new Set(["menus","themeConfig","showfieldHead","showfieldHeadShow"]),C8={name:"crm.user.info",description:"获取当前登录用户的关键信息(基础身份、权限、部门、角色),已过滤 menus/themeConfig 等大字段。可作为需要 userId/departmentId 的前置调用。",category:"crm",pluginName:s0,parameters:w.object({}),returns:w.object({}).passthrough(),examples:[{description:"获取当前用户信息",input:{},output:{id:"u001",real_name:"张三",role_name:"管理员"}}],sideEffects:["network"],handler:async()=>{let n=await C("/pc/home/userInfo",{});return Object.fromEntries(Object.entries(n).filter(([m])=>!O5.has(m)))}};var t="crm",G5=w.union([w.string(),w.number()]).transform((n)=>String(n)),Fn=w.union([w.array(w.string()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[n]}}),nm=w.union([w.array(w.number()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[Number(n)]}}),on={start_time:w.string().describe("开始时间 yyyy-MM-dd HH:mm:ss"),end_time:w.string().describe("结束时间 yyyy-MM-dd HH:mm:ss"),page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),user_id:w.string().optional().default("").describe("员工 ID"),user_ids:Fn.optional().default([]).describe("员工 ID 列表"),search_type:w.number().int().optional().describe("搜索类型:1客户姓名 2客户手机号 3员工姓名 4员工手机号 5客户微信昵称 6客户微信号 7员工微信昵称 8员工微信号"),keyword:w.string().optional().default("").describe("搜索关键词"),ctype:w.number().int().optional().describe("沟通类型:1电话 2微信 3微信长语音"),sort_field:w.number().int().optional().describe("排序字段:1分析时间 2沟通时间"),sort_order:w.string().optional().default("").describe("排序:asc/desc"),range_field:w.number().int().optional().describe("过滤时间字段:1分析时间 2沟通时间"),call_second_type:w.number().int().optional().describe("通话时长类型")};function _n(n,m,i={}){return{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,dptId:m,userId:n.user_id,userIds:n.user_ids,type:n.search_type,keyword:n.keyword,ctype:n.ctype,sortField:n.sort_field,sortOrder:n.sort_order,rangeField:n.range_field,callSecondType:n.call_second_type,...i}}var K8={name:"crm.ai.sop-analysis",description:"查询员工 SOP 分析列表,评估话术执行情况。",category:"crm",pluginName:t,parameters:w.object({...on,call_percent:w.number().int().optional().describe("通话占比"),call_speed:w.number().int().optional().describe("语速"),sop_id:w.string().optional().default("").describe("SOP 配置 ID"),sop_step_id:w.string().optional().default("").describe("SOP 步骤 ID"),sop_type:nm.optional().default([]).describe("SOP 评估类型列表")}),returns:w.object({}).passthrough(),examples:[{description:"查询 SOP 分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/sop/list",_n(n,m,{callPercent:n.call_percent,callSpeed:n.call_speed,sopId:n.sop_id,sopStepId:n.sop_step_id,sopType:n.sop_type}))}},A8={name:"crm.ai.excellent-speech",description:"查询优秀话术列表。",category:"crm",pluginName:t,parameters:w.object({...on,call_percent:w.number().int().optional(),call_speed:w.number().int().optional(),good_speech_type:w.number().int().optional().describe("优秀话术类型")}),returns:w.object({}).passthrough(),examples:[{description:"查询优秀话术",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/speech/list",_n(n,m,{callPercent:n.call_percent,callSpeed:n.call_speed,goodSpeechType:n.good_speech_type}))}},g8={name:"crm.ai.employee-analysis",description:"查询员工 AI 分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,call_percent:w.number().int().optional(),call_speed:w.number().int().optional()}),returns:w.object({}).passthrough(),examples:[{description:"查询员工分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/list",_n(n,m,{callPercent:n.call_percent,callSpeed:n.call_speed}))}},R8={name:"crm.ai.customer-objection",description:"查询客户异议分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,objection:Fn.optional().default([]).describe("异议列表"),select_type:w.number().int().optional().describe("筛选类型"),solution_judge:w.string().optional().default("").describe("解决方案判定")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户异议",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/objection/list",_n(n,m,{objection:n.objection,selectType:n.select_type,solutionJudge:n.solution_judge}))}},E8={name:"crm.ai.customer-pain-point",description:"查询客户痛点分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,pain:Fn.optional().default([]).describe("痛点列表"),select_type:w.number().int().optional(),solution_judge:w.string().optional().default("")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户痛点",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/pain/list",_n(n,m,{pain:n.pain,selectType:n.select_type,solutionJudge:n.solution_judge}))}},U8={name:"crm.ai.customer-issue",description:"查询客户问题分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,issue:Fn.optional().default([]).describe("问题列表"),select_type:w.number().int().optional(),solution_judge:w.string().optional().default("")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户问题",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/issue/list",_n(n,m,{issue:n.issue,selectType:n.select_type,solutionJudge:n.solution_judge}))}},S8={name:"crm.ai.customer-emotion",description:"查询客户情绪分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,mood_type:nm.optional().default([]).describe("情绪类型列表"),select_type:w.number().int().optional()}),returns:w.object({}).passthrough(),examples:[{description:"查询客户情绪",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/mood/list",_n(n,m,{moodType:n.mood_type,selectType:n.select_type}))}},f8={name:"crm.ai.competitor-analysis",description:"查询竞品分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,competitor:Fn.optional().default([]).describe("竞品列表"),select_type:w.number().int().optional()}),returns:w.object({}).passthrough(),examples:[{description:"查询竞品分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/competitor/list",_n(n,m,{competitor:n.competitor,selectType:n.select_type}))}},p8={name:"crm.ai.failure-analysis",description:"查询战败分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,failure_reason:Fn.optional().default([]).describe("战败原因列表"),detail_reason:Fn.optional().default([]).describe("细分原因列表"),intention:nm.optional().default([]).describe("意向度列表"),clue_value:nm.optional().default([]).describe("线索价值列表:1高2中3低"),customer_id:w.string().optional().default("").describe("客户 ID")}),returns:w.object({}).passthrough(),examples:[{description:"查询战败分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/failureAnalyse/list",_n(n,m,{failureReason:n.failure_reason,detailReason:n.detail_reason,intention:n.intention,clueValue:n.clue_value,customerId:n.customer_id}))}},F8={name:"crm.ai.failure-detail",description:"查询战败详情列表(单通维度,customer_id 必填)。",category:"crm",pluginName:t,parameters:w.object({...on,customer_id:w.string().describe("客户 ID(必填)")}),returns:w.object({}).passthrough(),examples:[{description:"查询战败详情",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59",customer_id:"C001"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/failureDetail/list",_n(n,m,{customerId:n.customer_id}))}},h8={name:"crm.ai.sop-quality-analysis",description:"查询 SOP 质检分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,quality_type:w.number().int().optional().describe("质检类型:1关键词2SOP"),quality_result:w.number().int().optional().describe("质检结果:1合格3不合格5好7中9差"),comm_scenario_id:w.number().int().optional().describe("沟通场景 ID"),sop_id:w.number().int().optional().describe("SOP 配置 ID"),rule_id:w.number().int().optional().describe("规则模板 ID"),task_id:w.number().int().optional().describe("任务 ID"),call_id:w.string().optional().default("").describe("通话 ID")}),returns:w.object({}).passthrough(),examples:[{description:"查询 SOP 质检",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/sopQualityAnalyse/list",_n(n,m,{qualityType:n.quality_type,qualityResult:n.quality_result,commScenarioId:n.comm_scenario_id,sopId:n.sop_id,ruleId:n.rule_id,taskId:n.task_id,callId:n.call_id}))}},P8={name:"crm.ai.employee-emotion",description:"分析员工沟通中的情绪表现。",category:"crm",pluginName:t,parameters:w.object({page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),mood_types:nm.optional().default([]).describe("情绪类型列表(1喜悦3满足5兴奋7希望11耐心25平静27专业13愤怒15悲伤17焦虑21失望23挫折)"),start_time:w.string().optional().default("").describe("开始时间,空则不限制"),end_time:w.string().optional().default("").describe("结束时间,空则不限制"),communication_type:w.string().optional().default("").describe("沟通类型:1电话2微信3微信语音5企微聊天6企微语音11工牌12现场"),filter_user_id:w.string().optional().default("").describe("员工用户 ID"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询员工情绪",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/list",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,type:"1",dptId:m,comCode:Ii(),userId:n.filter_user_id,ctype:n.communication_type,moodType:n.mood_types,rangeField:"1",selectType:3})}},k8={name:"crm.ai.customer-intention",description:"获取客户 AI 分析列表(意向/情绪/痛点/异议等)。",category:"crm",pluginName:t,parameters:w.object({page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),intension_levels:Fn.optional().default([]).describe("意向等级列表(高意向/中意向/低意向/无意向/意向不明/需跟进),空则全部"),search_phone:G5.optional().default("").describe("手机号搜索"),search_name_and_company:w.string().optional().default("").describe("客户名/公司名搜索"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户意向",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S(),i=n.intension_levels.length?n.intension_levels:["高意向","中意向","低意向","无意向","意向不明"];return await C("/pc/newcustomer/aIAnalysisList",{moneyType:"",salesname:"",pageSize:n.page_size,page:n.page_index,searchPhone:n.search_phone,groupName:"全部客户",searchNameAndCompany:n.search_name_and_company,customerSerial:"",wechatID:"",relationContactCustomerName:"",intensionLevel:i,deptId:m,phoneCityId:"",phoneProvinceId:"",sort:{field:"createdTime",order:"desc"},tipNameList:null,tipTypeList:null,pageIndex:n.page_index})}},T8={name:"crm.ai.communication-keywords",description:"分析客户沟通中的关键词(情绪/痛点/需求)。",category:"crm",pluginName:t,parameters:w.object({page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),start_time:w.string().optional().default("").describe("开始时间,空则不限制"),end_time:w.string().optional().default("").describe("结束时间,空则不限制"),keyword_type:w.string().optional().default("1").describe("关键词类型,默认 1"),communication_type:w.string().optional().default("").describe("沟通类型"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),filter_user_id:w.string().optional().default("").describe("员工用户 ID")}),returns:w.object({}).passthrough(),examples:[{description:"查询沟通关键词",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/keywords/list",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,type:n.keyword_type,dptId:m,comCode:Ii(),userId:n.filter_user_id,ctype:n.communication_type,rangeField:"1"})}};var I8={name:"crm",version:"1.0.0",commands:[Z2,t2,d2,a2,e2,s2,n8,b8,w8,J8,W8,M8,x8,u8,j8,X8,Y8,H8,Q8,N8,V8,L8,B8,C8,K8,A8,g8,R8,E8,U8,S8,f8,p8,F8,h8,P8,k8,T8]};var M5="ai_task_wx_circle_of_friends_config",x5="WECHAT_MOMENTS";function y8(){let n=new Date,m=(i)=>String(i).padStart(2,"0");return`${n.getFullYear()}-${m(n.getMonth()+1)}-${m(n.getDate())} ${m(n.getHours())}:${m(n.getMinutes())}:${m(n.getSeconds())}`}function l5(n,m){let i=new Date(n.replace(" ","T"));i.setHours(i.getHours()+m);let b=($)=>String($).padStart(2,"0");return`${i.getFullYear()}-${b(i.getMonth()+1)}-${b(i.getDate())} ${b(i.getHours())}:${b(i.getMinutes())}:${b(i.getSeconds())}`}function u5(n){let m=new Date,i=(o)=>String(o).padStart(2,"0"),b=`${m.getFullYear()}${i(m.getMonth()+1)}${i(m.getDate())}_${i(m.getHours())}${i(m.getMinutes())}${i(m.getSeconds())}`,$=n.slice(-8);return`朋友圈_${b}_${$}`}function j5(){let n=On();if(!n?.user_id)throw new l("CONFIG_ERROR","未登录,请先运行 'yunke crm.auth.login' 登录");return n.user_id}async function c8(n){let m=j5(),i=n.startTime??y8(),b=n.endTime??l5(i,1),$={taskType:x5,taskName:n.taskName,content:n.content,remark:n.remark,taskKey:u5(m),createTime:y8(),startTime:i,endTime:b},o=`${dn}/api/v1/weixiaozhu/message/send`,_;try{_=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user_id:m,push_type:M5,text:$})})}catch(X){let Y=X instanceof Error?X.message:String(X);throw new l("EXECUTION_FAILED",`微小助服务不可达: ${Y}`)}if(!_.ok){let X=`HTTP ${_.status}`;try{let Y=await _.json();X=Y.detail??Y.message??X}catch{}throw new l("EXECUTION_FAILED",`微小助服务错误: ${X}`)}return(await _.json()).data}var v5="weixiaozhu",z8={name:"weixiaozhu.moments.send",description:"发送一条朋友圈推送任务到微小助 broker。user_id 自动从 crm 登录凭证读取。",category:"weixiaozhu",pluginName:v5,hidden:!0,parameters:w.object({content:w.string().min(1).describe("朋友圈文案"),remark:w.string().min(1).describe("朋友圈图片 URL(微小助 broker 固定字段名为 remark)"),task_name:w.string().optional().default("测试发朋友圈").describe('任务名称,默认"测试发朋友圈"'),start_time:w.string().optional().describe("发送开始时间,格式 YYYY-MM-DD HH:mm:ss,默认当前时间"),end_time:w.string().optional().describe("发送结束时间,格式 YYYY-MM-DD HH:mm:ss,默认 start_time + 1小时")}),returns:w.object({success:w.boolean(),data:w.record(w.unknown()).nullable()}),examples:[{description:"发送朋友圈(最简调用)",input:{content:"今天天气真好!",remark:"https://example.com/img.jpg"},output:{success:!0,data:{}}},{description:"指定任务名和时间",input:{content:"新品上市!",remark:"https://example.com/product.jpg",task_name:"新品推广",start_time:"2026-04-15 10:00:00",end_time:"2026-04-15 11:00:00"},output:{success:!0,data:{}}}],sideEffects:["network"],handler:async({content:n,remark:m,task_name:i,start_time:b,end_time:$})=>{return{success:!0,data:await c8({content:n,remark:m,taskName:i,startTime:b,endTime:$})}}};var Z8={name:"weixiaozhu",version:"1.0.0",featureFlag:"weixiaozhu",commands:[z8]};bn();bn();var t8=`yunke-cli/${E}`;function d8(){return Wn().api_base_url.replace(/\/$/,"")}async function Zm(n,m){let i=`${d8()}${n}`,b=await fetch(i,{...m,headers:{"User-Agent":t8,...m?.headers??{}}});if(!b.ok){let $=`HTTP ${b.status}`;try{let o=await b.json();if(o.error)$=o.error;else if(o.message)$=o.message}catch{}throw new l("EXECUTION_FAILED",`CLI API error: ${$}`)}return await b.json()}async function a8(n){let m=`${d8()}${n}`,i=await fetch(m,{redirect:"manual",headers:{"User-Agent":t8}}),b=i.headers.get("location");if(!b)throw new l("EXECUTION_FAILED",`CLI API did not return a redirect for ${n} (status ${i.status})`);return b}bn();function mm(){let{platform:n,arch:m}=process;switch(n){case"darwin":return m==="arm64"?"darwin-arm64":"darwin-x64";case"linux":return"linux-x64";case"win32":return"windows-x64";default:throw Error(`不支持的平台: ${n}-${m}。`+"支持的平台: darwin-arm64, darwin-x64, linux-x64, windows-x64")}}var D5=(()=>{return"npm"})();function hn(){return D5==="npm"}bn();import{readFileSync as h5,writeFileSync as P5,mkdirSync as k5,existsSync as i3}from"node:fs";import{homedir as T5}from"node:os";import{join as b3}from"node:path";import{writeFile as S5,chmod as f5,rename as p5,unlink as F5}from"node:fs/promises";bn();import{createHash as N5}from"node:crypto";function V5(n){return N5("sha256").update(n).digest("hex")}function r8(n,m){let i=V5(n);if(!m)return{valid:!0,actual:i,expected:null};let b=m.toLowerCase().trim();return{valid:i===b,actual:i,expected:b}}dm();async function im(){let n=mm();return Zm(`/api/v1/cli/check-update?current=${encodeURIComponent(E)}&target=${encodeURIComponent(n)}`)}async function m3(){let n=mm(),m=await im();if(!m.hasUpdate)return{updated:!1,fromVersion:E,toVersion:m.latestVersion,message:"已是最新版本"};let i;try{i=await zi()}catch(Y){throw Error(`备份当前版本失败: ${Y instanceof Error?Y.message:String(Y)}`)}let b=await a8(`/api/v1/cli/download?target=${encodeURIComponent(n)}`),$=await fetch(b);if(!$.ok)throw Error(`下载失败: HTTP ${$.status}`);let o=Buffer.from(await $.arrayBuffer()),_=r8(o,m.checksum);if(!_.valid)throw Error(`完整性校验失败。期望: ${_.expected}, 实际: ${_.actual}`);let J=process.execPath,X=`${J}.new`;try{await S5(X,o),await f5(X,493),await p5(X,J)}catch(Y){try{await F5(X)}catch{}if(i)try{let{rollbackFromLatestBackup:H}=await Promise.resolve().then(() => (dm(),n3));await H()}catch{}throw Y}return{updated:!0,fromVersion:E,toVersion:m.latestVersion??"",backupPath:i,message:`已更新到 ${m.latestVersion}。请重启 CLI 以使用新版本。`}}var ti=process.env.YUNKE_CONFIG_DIR??b3(T5(),".yunke"),di=b3(ti,"update-check.json"),I5=86400000;function w3(){if(!i3(di))return null;try{let n=h5(di,"utf-8");return JSON.parse(n)}catch{return null}}function $3(n){if(!i3(ti))k5(ti,{recursive:!0});P5(di,JSON.stringify(n,null,2),"utf-8")}function am(n){if(!n)return!0;if(n.currentVersion!==E)return!0;return Date.now()-new Date(n.lastCheck).getTime()>=I5}function o3(){if(hn()){c5();return}let n=w3();if(n&&!am(n)&&n.hasUpdate){J3(n.latestVersion);return}if(am(n))y5().catch(()=>{})}async function y5(){try{let n=await im(),m=n.hasUpdate&&n.latestVersion!=null&&X3(n.latestVersion,E),i={lastCheck:new Date().toISOString(),hasUpdate:m,latestVersion:n.latestVersion,currentVersion:E};if($3(i),m)J3(n.latestVersion)}catch{}}function _3(n,m){return`
|
|
21
|
+
`)}Dn(1);return}Dn(1);return}},n8={name:"crm.auth.logout",description:"WorkBuddy 对接:登出,删除本地凭证(幂等,未登录也 exit 0)。",category:"crm",pluginName:n0,parameters:w.object({}),returns:w.object({success:w.boolean()}),examples:[{description:"登出",input:{},output:{success:!0}}],sideEffects:["filesystem"],handler:async()=>{return g2(),{success:!0}}};function m8(){let n=On();if(n?.base_url)try{let m=new URL(n.base_url);return`${m.protocol}//${m.host}`}catch{}return process.env.YUNKE_CRM_BASE_URL||"https://crm.yunkecn.com"}var o5={source:"yunkepc",package:"agentapp"};function _5(){let n=On();if(!n?.token||!n?.user_id)throw new l("CONFIG_ERROR","未登录,请先运行 'yunke crm.auth.login' 登录");return{token:n.token,user_id:n.user_id,company_code:n.company_code||""}}async function C(n,m,i){let{token:b,user_id:$,company_code:o}=_5(),_={...o5,userid:$,token:b,company:o,"content-type":"application/json",...i?.headers};if(i?.needOrigin)_.origin=m8();if(i?.formData)_["content-type"]="application/x-www-form-urlencoded; charset=UTF-8";let J=`${m8()}${n}`;if(i?.method==="GET"){let q=new URLSearchParams;for(let[M,j]of Object.entries(m))if(j!==void 0&&j!==null)q.set(M,String(j));J+=`?${q.toString()}`}let X;if(i?.method!=="GET")if(i?.formData){let q=new URLSearchParams;for(let[M,j]of Object.entries(m))if(j!==void 0&&j!==null)q.set(M,String(j));X=q.toString()}else X=JSON.stringify(m);let Y=await fetch(J,{method:i?.method??"POST",headers:_,body:X});if(!Y.ok)throw new l("EXECUTION_FAILED",`CRM 请求失败: HTTP ${Y.status}`);let H=await Y.json();if(!H.success&&H.code!==1e4)throw new l("EXECUTION_FAILED",H.message||H.msg||"CRM 业务失败");if(i?.rawResponse)return H;return H.data??H}function Ii(){return On()?.company_code||""}async function S(){let m=(await C("/usercenter/dept/tree",{id:"",showUser:!1,showUserStatus:"",queryQywxStatus:!1})).find((i)=>i.isDept);if(!m)throw new l("EXECUTION_FAILED","无法获取默认部门 ID");return m.id}var i8="crm",J5=w.object({id:w.string(),pid:w.string(),name:w.string(),is_dept:w.boolean(),bind_qywx:w.boolean(),offline_days:w.number(),sort:w.number(),account:w.string().nullable().optional(),phone_number:w.string().nullable().optional(),user_type:w.number().nullable().optional()}),X5=w.object({id:w.string(),pid:w.string(),name:w.string(),is_dept:w.boolean(),department_path:w.string(),routes:w.array(w.string()),bind_qywx:w.boolean(),offline_days:w.number(),sort:w.number(),account:w.string().nullable().optional(),phone_number:w.string().nullable().optional(),has_phone:w.boolean().nullable().optional(),user_type:w.number().nullable().optional()}),b8={name:"crm.org.department-tree",description:"查询指定部门下的子部门和员工列表(单级,不递归)。dept_id 为空时查根节点。",category:"crm",pluginName:i8,parameters:w.object({dept_id:w.string().optional().default("").describe("父部门 ID,空字符串表示根节点"),show_user:w.boolean().optional().default(!0).describe("是否返回员工节点"),show_user_status:w.string().optional().default("").describe("过滤员工状态"),query_qywx_status:w.boolean().optional().default(!1).describe("是否查询企业微信绑定状态")}),returns:w.object({items:w.array(J5)}),examples:[{description:"查询根节点",input:{},output:{items:[{id:"dept001",pid:"",name:"销售部",is_dept:!0,bind_qywx:!1,offline_days:0,sort:1}]}},{description:"查询指定部门的子节点",input:{dept_id:"dept001"},output:{items:[{id:"u001",pid:"dept001",name:"张三",is_dept:!1,bind_qywx:!1,offline_days:0,sort:1,phone_number:"13800138000"}]}}],sideEffects:["network"],handler:async({dept_id:n,show_user:m,show_user_status:i,query_qywx_status:b})=>{return{items:(await C("/usercenter/dept/tree",{id:n,showUser:m,showUserStatus:i,queryQywxStatus:b})??[]).map((o)=>({id:String(o.id??""),pid:String(o.pid??""),name:String(o.name??""),is_dept:Boolean(o.isDept),bind_qywx:Boolean(o.bindQywx),offline_days:Number(o.offlineDays??0),sort:Number(o.sort??0),account:o.account??null,phone_number:o.phoneNumber??null,user_type:o.userType??null}))}}},w8={name:"crm.org.search",description:"通过关键词模糊搜索部门和员工。search_type: 1=仅部门, 2=仅员工, 3=全部(默认)。",category:"crm",pluginName:i8,parameters:w.object({keyword:w.string().min(1).describe("搜索关键词"),search_type:w.number().int().min(1).max(3).optional().default(3).describe("1=仅部门 2=仅员工 3=全部"),limit:w.number().int().min(1).max(100).optional().default(20).describe("返回条数上限"),phone_only:w.boolean().optional().default(!1).describe("仅返回有手机号的员工")}),returns:w.object({total:w.number(),results:w.array(X5)}),examples:[{description:'搜索关键词"张"',input:{keyword:"张"},output:{total:1,results:[{id:"u001",pid:"dept001",name:"张三",is_dept:!1,department_path:"销售部",routes:["dept001"],bind_qywx:!1,offline_days:0,sort:1}]}}],sideEffects:["network"],handler:async({keyword:n,search_type:m,limit:i,phone_only:b})=>{let $=await C("/usercenter/dept/search",{keyword:n.trim(),type:m,limit:i,phoneOnly:b,showUserStatus:"",queryQywxStatus:!1},{needOrigin:!0,rawResponse:!0}),o=($.data??[]).map((_)=>{let J=_.routes??[];return{id:String(_.id??""),pid:String(_.pid??""),name:String(_.name??""),is_dept:Boolean(_.isDept),routes:J,department_path:J.join("/"),bind_qywx:Boolean(_.bindQywx),offline_days:Number(_.offlineDays??0),sort:Number(_.sort??0),account:_.account??null,phone_number:_.phoneNumber??null,has_phone:Boolean(_.phoneNumber),user_type:_.userType??null}});return{total:$.total??o.length,results:o}}};var e0="crm";function $8(n){return String(n).padStart(2,"0")}function o8(n){return`${n.getFullYear()}-${$8(n.getMonth()+1)}-${$8(n.getDate())}`}var _8=w.object({show_name:w.string(),field_code:w.string(),module:w.string(),hidden:w.boolean()}),Y5=w.object({option:w.number(),modules:w.array(w.string()),columns:w.array(_8)}),J8={name:"crm.report.employee-statistics",description:"获取员工报表统计数据。option=department 为部门维度,option=employee 为员工维度。",category:"crm",pluginName:e0,parameters:w.object({option:w.enum(["department","employee"]).optional().default("department").describe("统计维度:department=部门维度,employee=员工维度"),depart_id:w.string().optional().default("").describe("部门 ID,空字符串表示全公司"),start_time:w.string().optional().default("").describe("开始时间,格式 YYYY-MM-DD,如 2026-04-01"),end_time:w.string().optional().default("").describe("结束时间,格式 YYYY-MM-DD,如 2026-04-08"),page:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(100).optional().default(10).describe("每页条数")}),returns:w.object({heads:Y5,total:w.number(),page:w.number(),page_size:w.number(),rows:w.array(w.record(w.unknown()))}),examples:[{description:"查询部门维度报表(第1页)",input:{option:"department",start_time:"2026-04-01",end_time:"2026-04-08"},output:{heads:{option:1,modules:["base"],columns:[{show_name:"部门",field_code:"dept_name",module:"base",hidden:!1}]},total:5,page:1,page_size:10,rows:[{dept_name:"销售部",total_calls:120}]}},{description:"查询员工维度报表",input:{option:"employee",start_time:"2026-04-01",end_time:"2026-04-08"},output:{heads:{option:2,modules:["base"],columns:[{show_name:"姓名",field_code:"name",module:"base",hidden:!1}]},total:20,page:1,page_size:10,rows:[{name:"张三",total_calls:50}]}}],sideEffects:["network"],handler:async({option:n,depart_id:m,start_time:i,end_time:b,page:$,page_size:o})=>{let _=n==="department"?1:2,J=new Date,X=b||o8(J),Y=i||o8(new Date(J.getTime()-518400000)),[H,q]=await Promise.all([C("/yunke-report-phone/custom/Report/getHead",{departId:m},{method:"GET"}),C("/yunke-report-phone/custom/Report/getDataView",{option:_,departId:m,pageSize:o,starttime:Y,endtime:X,page:$})]),M=(H.customShowHeads??[]).map((j)=>({show_name:String(j.showName??""),field_code:String(j.fieldCode??""),module:String(j.module??""),hidden:Number(j.hiddens)===1}));return{heads:{option:H.option??_,modules:H.modules??[],columns:M},total:q.total??0,page:$,page_size:o,rows:q.list??[]}}},yi=w.union([w.array(w.string()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[n]}}),X8={name:"crm.report.custom-report-columns",description:"查询员工自定义报表的列配置(已启用字段及所有可配字段)。",category:"crm",pluginName:e0,parameters:w.object({depart_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({option:w.number(),modules:w.array(w.string()),columns:w.array(_8)}).passthrough(),examples:[{description:"查询默认部门报表列配置",input:{},output:{option:1,modules:["微信","短信","通话"],columns:[{show_name:"发送消息数量",field_code:"wechatOutMsg",module:"微信",hidden:!1}]}}],sideEffects:["network"],handler:async({depart_id:n})=>{let m=n||await S();return await C("/yunke-report-phone/custom/Report/getHead",{departId:m},{method:"GET"})}},Y8={name:"crm.report.set-custom-report-columns",description:"设置员工自定义报表的列配置(从 custom-report-columns 取得后修改 hiddens 再传入)。",category:"crm",pluginName:e0,parameters:w.object({custom_show_heads:w.string().describe("列配置 JSON 字符串(从 custom-report-columns 取得后修改)"),option:w.number().int().optional().default(1).describe("统计维度,默认 1"),modules:yi.optional().default(["微信","短信","通话"]).describe("启用模块"),max_rank:w.number().int().optional().default(8).describe("排名上限"),min_rank:w.number().int().optional().default(1).describe("排名下限")}),returns:w.object({}).passthrough(),examples:[{description:"设置列配置",input:{custom_show_heads:'[{"fieldCode":"wechatOutMsg","showName":"发送消息","module":"微信","hiddens":0,"userPower":false}]'},output:{}}],sideEffects:["network"],handler:async({custom_show_heads:n,option:m,modules:i,max_rank:b,min_rank:$})=>{let o;try{o=JSON.parse(n)}catch{throw new l("VALIDATION_FAILED","custom_show_heads 不是合法 JSON")}return await C("/yunke-report-phone/custom/Report/setHead",{option:m,modules:i,maxRank:b,minRank:$,customShowHeads:o})}},H8={name:"crm.report.customer-statistics",description:"查询客户统计(新增/跟进/待跟进/成交等指标,含环比对比)。",category:"crm",pluginName:e0,parameters:w.object({department_ids:yi.describe("部门 ID 列表(JSON 字符串或数组)"),user_ids:yi.optional().default([]).describe("用户 ID 列表,空则查部门下全部"),time_range:w.number().int().optional().default(2).describe("时间范围:2=昨日 3=近7日 4=近15日 5=近30日")}),returns:w.object({}).passthrough(),examples:[{description:"查询部门客户统计(近7日)",input:{department_ids:'["DEPT001"]',time_range:3},output:{}}],sideEffects:["network"],handler:async({department_ids:n,user_ids:m,time_range:i})=>{return await C("/pc/customer-metrics-stats/metrics",{userIds:m,departmentIds:n,timeRange:i})}},Q8={name:"crm.report.device-usage-statistics",description:"查询设备/应用使用时长统计。",category:"crm",pluginName:e0,parameters:w.object({page_num:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),search_type:w.number().int().optional().default(1).describe("搜索类型,默认 1"),sort_type:w.string().optional().default("desc").describe("排序:desc/asc"),user_id:w.string().optional().default("").describe("用户 ID,空则查部门下全部"),range:w.number().int().optional().default(0).describe("时间范围代码:0=今天 -1=昨天 -32=自定义"),range_str:w.string().optional().default("").describe('自定义时间范围,range=-32 时用,格式 "开始,结束"'),department_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询设备应用使用时长(今天)",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.department_id||await S();return await C("/pc/appstatistics/apps",{pageNum:n.page_num,pageSize:n.page_size,searchType:n.search_type,sortType:n.sort_type,userId:n.user_id,range:n.range,rangeStr:n.range_str,departmentId:m})}};var H5="crm",W8={name:"crm.report.device-statistics",description:"查询设备统计(总数/已绑定/锁定/激活)。department_id 空则取默认部门。",category:"crm",pluginName:H5,parameters:w.object({department_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),user_id:w.string().optional().default("").describe("用户 ID,空则查部门下全部")}),returns:w.object({total:w.number(),has_bind:w.number(),locked:w.number(),actived:w.number()}),examples:[{description:"查询默认部门设备统计",input:{},output:{total:10,has_bind:8,locked:1,actived:7}}],sideEffects:["network"],handler:async({department_id:n,user_id:m})=>{let i=n||await S(),b=await C("/pc/setup/deviceStatistics",{departmentId:i,userId:m});return{total:b.total,has_bind:b.hasBind,locked:b.locked,actived:b.actived}}};var G8="crm";function q8(n){return String(n).padStart(2,"0")}function O8(n,m=!1){return`${n.getFullYear()}-${q8(n.getMonth()+1)}-${q8(n.getDate())} ${m?"23:59:59":"00:00:00"}`}var Q5=w.object({user_id:w.string(),user_name:w.string(),longitude:w.number().nullable(),latitude:w.number().nullable(),addr:w.string(),created_time:w.string(),last_online_time:w.string(),active_type:w.number(),in_or_out:w.number(),in_or_out_name:w.string(),loc_duration:w.number(),location_exception:w.number()}),M8={name:"crm.location.by-department",description:"查询指定部门所有员工的最后一次定位记录。建议先用 org.search 或 org.department-tree 缩小部门范围。",category:"crm",pluginName:G8,parameters:w.object({department_id:w.string().min(1).describe("部门 ID(可通过 org.search / org.department-tree 获取)"),device_code:w.string().optional().default("").describe("设备编码,空则不过滤")}),returns:w.object({total:w.number(),records:w.array(Q5)}),examples:[{description:"查询部门员工最后定位",input:{department_id:"DEPT001"},output:{total:1,records:[{user_id:"u001",user_name:"张三",longitude:116.4,latitude:39.9,addr:"北京市",created_time:"2026-08-01 10:00:00",last_online_time:"2026-08-01 10:00:00",active_type:1,in_or_out:3,in_or_out_name:"未知",loc_duration:0,location_exception:0}]}}],sideEffects:["network"],handler:async({department_id:n,device_code:m})=>{let b=(await C("/pc/location/getEveryoneLastRecord",{departmentId:n,deviceCode:m})??[]).map(($)=>({user_id:String($.userId??""),user_name:String($.userName??""),longitude:$.longitude??null,latitude:$.latitude??null,addr:String($.addr??""),created_time:String($.createdTime??""),last_online_time:String($.lastOnlineTime??""),active_type:Number($.activeType??0),in_or_out:Number($.inOrOut??3),in_or_out_name:String($.inOrOutName??"未知"),loc_duration:Number($.locDuration??0),location_exception:Number($.locationException??0)}));return{total:b.length,records:b}}},W5=w.object({user_id:w.string(),longitude:w.number().nullable(),latitude:w.number().nullable(),addr:w.string(),created_time:w.string(),start_time:w.string(),end_time:w.string(),loc_duration:w.number(),in_or_out:w.number(),in_or_out_name:w.string(),active_type:w.number(),location_exception:w.number()}),x8={name:"crm.location.by-user",description:"查询指定员工在时间段内的定位轨迹。建议显式传入较短时间范围,不要依赖默认近30天。",category:"crm",pluginName:G8,parameters:w.object({user_id:w.string().min(1).describe("员工用户 ID(可通过 org.search 获取)"),start_time:w.string().optional().default("").describe("开始时间 YYYY-MM-DD HH:mm:ss,空则默认近30天"),end_time:w.string().optional().default("").describe("结束时间 YYYY-MM-DD HH:mm:ss,空则默认今天"),device_code:w.string().optional().default("").describe("设备编码,空则不过滤")}),returns:w.object({total:w.number(),records:w.array(W5)}),examples:[{description:"查询员工某天轨迹",input:{user_id:"u001",start_time:"2026-08-01 00:00:00",end_time:"2026-08-01 23:59:59"},output:{total:1,records:[{user_id:"u001",longitude:116.4,latitude:39.9,addr:"北京市",created_time:"2026-08-01 10:00:00",start_time:"2026-08-01 09:00:00",end_time:"2026-08-01 12:00:00",loc_duration:10800000,in_or_out:3,in_or_out_name:"未知",active_type:1,location_exception:0}]}}],sideEffects:["network"],handler:async({user_id:n,start_time:m,end_time:i,device_code:b})=>{let $=new Date,o=i||O8($,!0),_=m||O8(new Date($.getTime()-2592000000),!1),J=await C("/pc/location/getLocRecordByUserId",{userId:n,createTimeRange:{start:_,end:o},deviceCode:b}),X=(J?.list??[]).map((Y)=>({user_id:String(Y.userId??n),longitude:Y.longitude??null,latitude:Y.latitude??null,addr:String(Y.addr??""),created_time:String(Y.createdTime??""),start_time:String(Y.starttime??""),end_time:String(Y.endtime??""),loc_duration:Number(Y.locDuration??0),in_or_out:Number(Y.inOrOut??3),in_or_out_name:String(Y.inOrOutName??"未知"),active_type:Number(Y.activeType??0),location_exception:Number(Y.locationException??0)}));return{total:J?.total??X.length,records:X}}};var l8="crm",ci=w.union([w.string(),w.number()]).transform((n)=>String(n)),u8={name:"crm.call.log-list",description:"获取通话记录列表。后端每页最多 10 条;pageCount > 当前页时需翻页取全后再汇总。",category:"crm",pluginName:l8,parameters:w.object({page:w.number().int().min(1).optional().default(1).describe("页码,从 1 开始"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数,建议 5-10"),sales_progress:w.string().optional().default("").describe("销售进度"),start_voice_time:w.string().optional().default("").describe("语音开始时间 YYYY-MM-DD HH:mm:ss"),end_voice_time:w.string().optional().default("").describe("语音结束时间"),start_create_time:w.string().optional().default("").describe("创建开始时间"),end_create_time:w.string().optional().default("").describe("创建结束时间"),search_info:w.string().optional().default("").describe("搜索关键词(客户名/公司等)"),last_connect_time_start:w.string().optional().default("").describe("最后连接开始时间"),last_connect_time_end:w.string().optional().default("").describe("最后连接结束时间"),filter_user_id:ci.optional().default("").describe("按员工用户 ID 筛选"),tip_type:w.string().optional().default("").describe("提示类型"),progress:w.string().optional().default("").describe("进度状态"),call_seconds:w.string().optional().default("").describe("通话秒数筛选"),department_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),search_phone:ci.optional().default("").describe("按电话号码搜索"),call_id:ci.optional().default("").describe("通话记录 ID"),call_type:w.string().optional().default("s").describe("通话类型,默认 s")}),returns:w.object({page:w.number(),pageCount:w.number(),totalCount:w.number(),data:w.array(w.unknown())}).passthrough(),examples:[{description:"获取第 1 页通话记录",input:{page:1,page_size:5},output:{page:1,pageCount:3,totalCount:15,data:[]}}],sideEffects:["network"],handler:async(n)=>{let m=n.department_id||await S();return await C("/pc/callLog/list",{page:n.page,pageSize:n.page_size,salesProgress:n.sales_progress,startVoiceTime:n.start_voice_time,endVoiceTime:n.end_voice_time,startCreateTime:n.start_create_time,endCreateTime:n.end_create_time,searchInfo:n.search_info,lastConnectTimeStart:n.last_connect_time_start,lastConnectTimeEnd:n.last_connect_time_end,userId:n.filter_user_id,tipType:n.tip_type,progress:n.progress,callSeconds:n.call_seconds,departmentId:m,searchPhone:n.search_phone,id:n.call_id,callType:n.call_type})}},j8={name:"crm.call.asr-result",description:"获取通话录音的 ASR 语音转写结果。",category:"crm",pluginName:l8,parameters:w.object({call_action_id:w.string().min(1).describe("通话 ID"),audio_url:w.string().optional().default("").describe("音频文件 URL(可选)"),call_type:w.string().optional().default("1").describe("录音类型:1=通话,12=本地录音")}),returns:w.object({trans_complete:w.number(),asr_result:w.array(w.unknown()),message:w.string()}),examples:[{description:"获取通话录音的 ASR 转写结果",input:{call_action_id:"123456",call_type:"1"},output:{trans_complete:1,asr_result:[],message:""}}],sideEffects:["network"],handler:async({call_action_id:n,audio_url:m,call_type:i})=>{let b=await C("/pc/trans/transWord",{businessId:n,callActionId:n,isTrans:1,number:1,url:m,phone:"",type:i});return{trans_complete:b.transComplete??0,asr_result:b.asrResult??[],message:b.message??""}}};var s0="crm",q5=w.union([w.string(),w.number()]).transform((n)=>String(n)),v8=w.union([w.array(w.string()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[n]}});function D8(n){return new Date(n.replace(" ","T")).getTime()}var N8={name:"crm.misc.fly-order-warning",description:"查询飞单预警分析列表,检测员工可能的飞单行为。",category:"crm",pluginName:s0,parameters:w.object({start_time:w.string().describe("开始时间 yyyy-MM-dd HH:mm:ss"),end_time:w.string().describe("结束时间 yyyy-MM-dd HH:mm:ss"),page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),user_id:w.string().optional().default("").describe("员工 ID"),user_ids:v8.optional().default([]).describe("员工 ID 列表"),search_type:w.number().int().optional().describe("搜索类型:1客户姓名 2客户手机号 3员工姓名 4员工手机号 5客户微信昵称 6客户微信号 7员工微信昵称 8员工微信号"),keyword:w.string().optional().default("").describe("搜索关键词"),ctype:w.number().int().optional().describe("沟通类型:1电话 2微信 3微信长语音"),sort_field:w.number().int().optional().describe("排序字段:1分析时间 2沟通时间"),sort_order:w.string().optional().default("").describe("排序:asc/desc"),range_field:w.number().int().optional().describe("过滤时间字段:1分析时间 2沟通时间"),call_second_type:w.number().int().optional().describe("通话时长类型"),call_percent:w.number().int().optional().describe("员工通话占比"),call_speed:w.number().int().optional().describe("语速"),missing_topic:v8.optional().default([]).describe("飞单话题筛选列表")}),returns:w.object({}).passthrough(),examples:[{description:"查询飞单预警",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/orderMissing/list",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,dptId:m,userId:n.user_id,userIds:n.user_ids,type:n.search_type,keyword:n.keyword,ctype:n.ctype,sortField:n.sort_field,sortOrder:n.sort_order,rangeField:n.range_field,callSecondType:n.call_second_type,callPercent:n.call_percent,callSpeed:n.call_speed,missingTopic:n.missing_topic})}},V8={name:"crm.misc.sms-history",description:"查询短信历史记录列表。",category:"crm",pluginName:s0,parameters:w.object({page:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),customer_id:w.string().optional().default("").describe("客户 ID"),customer_name:w.string().optional().default("").describe("客户姓名"),customer_phone:q5.optional().default("").describe("客户手机号"),start_time:w.string().optional().default("").describe("开始时间"),end_time:w.string().optional().default("").describe("结束时间")}),returns:w.object({}).passthrough(),examples:[{description:"查询短信记录",input:{},output:{}}],sideEffects:["network"],handler:async({page:n,page_size:m,customer_id:i,customer_name:b,customer_phone:$,start_time:o,end_time:_})=>{return await C("/pc/customer/smsLogsList",{page:n,pageSize:m,customerId:i,customerName:b,customerPhone:$,startTime:o,endTime:_})}},L8={name:"crm.misc.site-recording",description:"查询现场录音或工牌录音列表。",category:"crm",pluginName:s0,parameters:w.object({start_time:w.string().describe("开始时间"),end_time:w.string().describe("结束时间"),page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),device_type:w.number().int().optional().default(0).describe("设备类型:0=现场录音 1=工牌录音"),user_id:w.string().optional().default("").describe("员工 ID"),user_name:w.string().optional().default("").describe("员工姓名"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询现场录音",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/voice/queryvoicelist",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,deviceType:n.device_type,userId:n.user_id,userName:n.user_name,deptId:m})}},B8={name:"crm.misc.control-logs",description:"查询管控日志列表(开始/结束时间转毫秒时间戳传后端)。",category:"crm",pluginName:s0,parameters:w.object({start_time:w.string().describe("开始时间 yyyy-MM-dd HH:mm:ss"),end_time:w.string().describe("结束时间 yyyy-MM-dd HH:mm:ss"),page_num:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数")}),returns:w.object({}).passthrough(),hidden:!0,examples:[{description:"查询管控日志",input:{start_time:"2026-08-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async({start_time:n,end_time:m,page_num:i,page_size:b})=>{return await C("/wxz/web/config/get_control_log_list",{pageNum:i,pageSize:b,phone:"",name:"",type:"",status:"",startTriggerTime:D8(n),endTriggerTime:D8(m),showTime:[]},{headers:{source:"h5",package:"com.applet.manage",channel:"4"}})}},O5=new Set(["menus","themeConfig","showfieldHead","showfieldHeadShow"]),C8={name:"crm.user.info",description:"获取当前登录用户的关键信息(基础身份、权限、部门、角色),已过滤 menus/themeConfig 等大字段。可作为需要 userId/departmentId 的前置调用。",category:"crm",pluginName:s0,parameters:w.object({}),returns:w.object({}).passthrough(),examples:[{description:"获取当前用户信息",input:{},output:{id:"u001",real_name:"张三",role_name:"管理员"}}],sideEffects:["network"],handler:async()=>{let n=await C("/pc/home/userInfo",{});return Object.fromEntries(Object.entries(n).filter(([m])=>!O5.has(m)))}};var t="crm",G5=w.union([w.string(),w.number()]).transform((n)=>String(n)),Fn=w.union([w.array(w.string()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[n]}}),nm=w.union([w.array(w.number()),w.string()]).transform((n)=>{if(Array.isArray(n))return n;try{return JSON.parse(n)}catch{return[Number(n)]}}),on={start_time:w.string().describe("开始时间 yyyy-MM-dd HH:mm:ss"),end_time:w.string().describe("结束时间 yyyy-MM-dd HH:mm:ss"),page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),user_id:w.string().optional().default("").describe("员工 ID"),user_ids:Fn.optional().default([]).describe("员工 ID 列表"),search_type:w.number().int().optional().describe("搜索类型:1客户姓名 2客户手机号 3员工姓名 4员工手机号 5客户微信昵称 6客户微信号 7员工微信昵称 8员工微信号"),keyword:w.string().optional().default("").describe("搜索关键词"),ctype:w.number().int().optional().describe("沟通类型:1电话 2微信 3微信长语音"),sort_field:w.number().int().optional().describe("排序字段:1分析时间 2沟通时间"),sort_order:w.string().optional().default("").describe("排序:asc/desc"),range_field:w.number().int().optional().describe("过滤时间字段:1分析时间 2沟通时间"),call_second_type:w.number().int().optional().describe("通话时长类型")};function _n(n,m,i={}){return{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,dptId:m,userId:n.user_id,userIds:n.user_ids,type:n.search_type,keyword:n.keyword,ctype:n.ctype,sortField:n.sort_field,sortOrder:n.sort_order,rangeField:n.range_field,callSecondType:n.call_second_type,...i}}var K8={name:"crm.ai.sop-analysis",description:"查询员工 SOP 分析列表,评估话术执行情况。",category:"crm",pluginName:t,parameters:w.object({...on,call_percent:w.number().int().optional().describe("通话占比"),call_speed:w.number().int().optional().describe("语速"),sop_id:w.string().optional().default("").describe("SOP 配置 ID"),sop_step_id:w.string().optional().default("").describe("SOP 步骤 ID"),sop_type:nm.optional().default([]).describe("SOP 评估类型列表")}),returns:w.object({}).passthrough(),examples:[{description:"查询 SOP 分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/sop/list",_n(n,m,{callPercent:n.call_percent,callSpeed:n.call_speed,sopId:n.sop_id,sopStepId:n.sop_step_id,sopType:n.sop_type}))}},A8={name:"crm.ai.excellent-speech",description:"查询优秀话术列表。",category:"crm",pluginName:t,parameters:w.object({...on,call_percent:w.number().int().optional(),call_speed:w.number().int().optional(),good_speech_type:w.number().int().optional().describe("优秀话术类型")}),returns:w.object({}).passthrough(),examples:[{description:"查询优秀话术",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/speech/list",_n(n,m,{callPercent:n.call_percent,callSpeed:n.call_speed,goodSpeechType:n.good_speech_type}))}},g8={name:"crm.ai.employee-analysis",description:"查询员工 AI 分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,call_percent:w.number().int().optional(),call_speed:w.number().int().optional()}),returns:w.object({}).passthrough(),examples:[{description:"查询员工分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/list",_n(n,m,{callPercent:n.call_percent,callSpeed:n.call_speed}))}},R8={name:"crm.ai.customer-objection",description:"查询客户异议分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,objection:Fn.optional().default([]).describe("异议列表"),select_type:w.number().int().optional().describe("筛选类型"),solution_judge:w.string().optional().default("").describe("解决方案判定")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户异议",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/objection/list",_n(n,m,{objection:n.objection,selectType:n.select_type,solutionJudge:n.solution_judge}))}},E8={name:"crm.ai.customer-pain-point",description:"查询客户痛点分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,pain:Fn.optional().default([]).describe("痛点列表"),select_type:w.number().int().optional(),solution_judge:w.string().optional().default("")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户痛点",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/pain/list",_n(n,m,{pain:n.pain,selectType:n.select_type,solutionJudge:n.solution_judge}))}},U8={name:"crm.ai.customer-issue",description:"查询客户问题分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,issue:Fn.optional().default([]).describe("问题列表"),select_type:w.number().int().optional(),solution_judge:w.string().optional().default("")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户问题",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/issue/list",_n(n,m,{issue:n.issue,selectType:n.select_type,solutionJudge:n.solution_judge}))}},S8={name:"crm.ai.customer-emotion",description:"查询客户情绪分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,mood_type:nm.optional().default([]).describe("情绪类型列表"),select_type:w.number().int().optional()}),returns:w.object({}).passthrough(),examples:[{description:"查询客户情绪",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/mood/list",_n(n,m,{moodType:n.mood_type,selectType:n.select_type}))}},f8={name:"crm.ai.competitor-analysis",description:"查询竞品分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,competitor:Fn.optional().default([]).describe("竞品列表"),select_type:w.number().int().optional()}),returns:w.object({}).passthrough(),examples:[{description:"查询竞品分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/competitor/list",_n(n,m,{competitor:n.competitor,selectType:n.select_type}))}},p8={name:"crm.ai.failure-analysis",description:"查询战败分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,failure_reason:Fn.optional().default([]).describe("战败原因列表"),detail_reason:Fn.optional().default([]).describe("细分原因列表"),intention:nm.optional().default([]).describe("意向度列表"),clue_value:nm.optional().default([]).describe("线索价值列表:1高2中3低"),customer_id:w.string().optional().default("").describe("客户 ID")}),returns:w.object({}).passthrough(),examples:[{description:"查询战败分析",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/failureAnalyse/list",_n(n,m,{failureReason:n.failure_reason,detailReason:n.detail_reason,intention:n.intention,clueValue:n.clue_value,customerId:n.customer_id}))}},F8={name:"crm.ai.failure-detail",description:"查询战败详情列表(单通维度,customer_id 必填)。",category:"crm",pluginName:t,parameters:w.object({...on,customer_id:w.string().describe("客户 ID(必填)")}),returns:w.object({}).passthrough(),examples:[{description:"查询战败详情",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59",customer_id:"C001"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/failureDetail/list",_n(n,m,{customerId:n.customer_id}))}},h8={name:"crm.ai.sop-quality-analysis",description:"查询 SOP 质检分析列表。",category:"crm",pluginName:t,parameters:w.object({...on,quality_type:w.number().int().optional().describe("质检类型:1关键词2SOP"),quality_result:w.number().int().optional().describe("质检结果:1合格3不合格5好7中9差"),comm_scenario_id:w.number().int().optional().describe("沟通场景 ID"),sop_id:w.number().int().optional().describe("SOP 配置 ID"),rule_id:w.number().int().optional().describe("规则模板 ID"),task_id:w.number().int().optional().describe("任务 ID"),call_id:w.string().optional().default("").describe("通话 ID")}),returns:w.object({}).passthrough(),examples:[{description:"查询 SOP 质检",input:{start_time:"2026-07-01 00:00:00",end_time:"2026-08-05 23:59:59"},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/sopQualityAnalyse/list",_n(n,m,{qualityType:n.quality_type,qualityResult:n.quality_result,commScenarioId:n.comm_scenario_id,sopId:n.sop_id,ruleId:n.rule_id,taskId:n.task_id,callId:n.call_id}))}},P8={name:"crm.ai.employee-emotion",description:"分析员工沟通中的情绪表现。",category:"crm",pluginName:t,parameters:w.object({page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),mood_types:nm.optional().default([]).describe("情绪类型列表(1喜悦3满足5兴奋7希望11耐心25平静27专业13愤怒15悲伤17焦虑21失望23挫折)"),start_time:w.string().optional().default("").describe("开始时间,空则不限制"),end_time:w.string().optional().default("").describe("结束时间,空则不限制"),communication_type:w.string().optional().default("").describe("沟通类型:1电话2微信3微信语音5企微聊天6企微语音11工牌12现场"),filter_user_id:w.string().optional().default("").describe("员工用户 ID"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询员工情绪",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/analyse/employee/list",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,type:"1",dptId:m,comCode:Ii(),userId:n.filter_user_id,ctype:n.communication_type,moodType:n.mood_types,rangeField:"1",selectType:3})}},k8={name:"crm.ai.customer-intention",description:"获取客户 AI 分析列表(意向/情绪/痛点/异议等)。",category:"crm",pluginName:t,parameters:w.object({page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),intension_levels:Fn.optional().default([]).describe("意向等级列表(高意向/中意向/低意向/无意向/意向不明/需跟进),空则全部"),search_phone:G5.optional().default("").describe("手机号搜索"),search_name_and_company:w.string().optional().default("").describe("客户名/公司名搜索"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门")}),returns:w.object({}).passthrough(),examples:[{description:"查询客户意向",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S(),i=n.intension_levels.length?n.intension_levels:["高意向","中意向","低意向","无意向","意向不明"];return await C("/pc/newcustomer/aIAnalysisList",{moneyType:"",salesname:"",pageSize:n.page_size,page:n.page_index,searchPhone:n.search_phone,groupName:"全部客户",searchNameAndCompany:n.search_name_and_company,customerSerial:"",wechatID:"",relationContactCustomerName:"",intensionLevel:i,deptId:m,phoneCityId:"",phoneProvinceId:"",sort:{field:"createdTime",order:"desc"},tipNameList:null,tipTypeList:null,pageIndex:n.page_index})}},T8={name:"crm.ai.communication-keywords",description:"分析客户沟通中的关键词(情绪/痛点/需求)。",category:"crm",pluginName:t,parameters:w.object({page_index:w.number().int().min(1).optional().default(1).describe("页码"),page_size:w.number().int().min(1).max(10).optional().default(5).describe("每页条数"),start_time:w.string().optional().default("").describe("开始时间,空则不限制"),end_time:w.string().optional().default("").describe("结束时间,空则不限制"),keyword_type:w.string().optional().default("1").describe("关键词类型,默认 1"),communication_type:w.string().optional().default("").describe("沟通类型"),dept_id:w.string().optional().default("").describe("部门 ID,空则取默认部门"),filter_user_id:w.string().optional().default("").describe("员工用户 ID")}),returns:w.object({}).passthrough(),examples:[{description:"查询沟通关键词",input:{},output:{}}],sideEffects:["network"],handler:async(n)=>{let m=n.dept_id||await S();return await C("/pc/ai/customerInsights/keywords/list",{pageIndex:n.page_index,pageSize:n.page_size,startTime:n.start_time,endTime:n.end_time,type:n.keyword_type,dptId:m,comCode:Ii(),userId:n.filter_user_id,ctype:n.communication_type,rangeField:"1"})}};var I8={name:"crm",version:"1.0.0",commands:[Z2,t2,d2,a2,e2,s2,n8,b8,w8,J8,W8,M8,x8,u8,j8,X8,Y8,H8,Q8,N8,V8,L8,B8,C8,K8,A8,g8,R8,E8,U8,S8,f8,p8,F8,h8,P8,k8,T8]};var M5="ai_task_wx_circle_of_friends_config",x5="WECHAT_MOMENTS";function y8(){let n=new Date,m=(i)=>String(i).padStart(2,"0");return`${n.getFullYear()}-${m(n.getMonth()+1)}-${m(n.getDate())} ${m(n.getHours())}:${m(n.getMinutes())}:${m(n.getSeconds())}`}function l5(n,m){let i=new Date(n.replace(" ","T"));i.setHours(i.getHours()+m);let b=($)=>String($).padStart(2,"0");return`${i.getFullYear()}-${b(i.getMonth()+1)}-${b(i.getDate())} ${b(i.getHours())}:${b(i.getMinutes())}:${b(i.getSeconds())}`}function u5(n){let m=new Date,i=(o)=>String(o).padStart(2,"0"),b=`${m.getFullYear()}${i(m.getMonth()+1)}${i(m.getDate())}_${i(m.getHours())}${i(m.getMinutes())}${i(m.getSeconds())}`,$=n.slice(-8);return`朋友圈_${b}_${$}`}function j5(){let n=On();if(!n?.user_id)throw new l("CONFIG_ERROR","未登录,请先运行 'yunke crm.auth.login' 登录");return n.user_id}async function c8(n){let m=j5(),i=n.startTime??y8(),b=n.endTime??l5(i,1),$={taskType:x5,taskName:n.taskName,content:n.content,remark:n.remark,taskKey:u5(m),createTime:y8(),startTime:i,endTime:b},o=`${dn}/api/v1/weixiaozhu/message/send`,_;try{_=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user_id:m,push_type:M5,text:$})})}catch(X){let Y=X instanceof Error?X.message:String(X);throw new l("EXECUTION_FAILED",`微小助服务不可达: ${Y}`)}if(!_.ok){let X=`HTTP ${_.status}`;try{let Y=await _.json();X=Y.detail??Y.message??X}catch{}throw new l("EXECUTION_FAILED",`微小助服务错误: ${X}`)}return(await _.json()).data}var v5="weixiaozhu",z8={name:"weixiaozhu.moments.send",description:"发送一条朋友圈推送任务到微小助 broker。user_id 自动从 crm 登录凭证读取。",category:"weixiaozhu",pluginName:v5,hidden:!0,parameters:w.object({content:w.string().min(1).describe("朋友圈文案"),remark:w.string().min(1).describe("朋友圈图片 URL(微小助 broker 固定字段名为 remark)"),task_name:w.string().optional().default("测试发朋友圈").describe('任务名称,默认"测试发朋友圈"'),start_time:w.string().optional().describe("发送开始时间,格式 YYYY-MM-DD HH:mm:ss,默认当前时间"),end_time:w.string().optional().describe("发送结束时间,格式 YYYY-MM-DD HH:mm:ss,默认 start_time + 1小时")}),returns:w.object({success:w.boolean(),data:w.record(w.unknown()).nullable()}),examples:[{description:"发送朋友圈(最简调用)",input:{content:"今天天气真好!",remark:"https://example.com/img.jpg"},output:{success:!0,data:{}}},{description:"指定任务名和时间",input:{content:"新品上市!",remark:"https://example.com/product.jpg",task_name:"新品推广",start_time:"2026-04-15 10:00:00",end_time:"2026-04-15 11:00:00"},output:{success:!0,data:{}}}],sideEffects:["network"],handler:async({content:n,remark:m,task_name:i,start_time:b,end_time:$})=>{return{success:!0,data:await c8({content:n,remark:m,taskName:i,startTime:b,endTime:$})}}};var Z8={name:"weixiaozhu",version:"1.0.0",featureFlag:"weixiaozhu",commands:[z8]};bn();bn();var t8=`yunke-cli/${E}`;function d8(){return Wn().api_base_url.replace(/\/$/,"")}async function Zm(n,m){let i=`${d8()}${n}`,b=await fetch(i,{...m,headers:{"User-Agent":t8,...m?.headers??{}}});if(!b.ok){let $=`HTTP ${b.status}`;try{let o=await b.json();if(o.error)$=o.error;else if(o.message)$=o.message}catch{}throw new l("EXECUTION_FAILED",`CLI API error: ${$}`)}return await b.json()}async function a8(n){let m=`${d8()}${n}`,i=await fetch(m,{redirect:"manual",headers:{"User-Agent":t8}}),b=i.headers.get("location");if(!b)throw new l("EXECUTION_FAILED",`CLI API did not return a redirect for ${n} (status ${i.status})`);return b}bn();function mm(){let{platform:n,arch:m}=process;switch(n){case"darwin":return m==="arm64"?"darwin-arm64":"darwin-x64";case"linux":return"linux-x64";case"win32":return"windows-x64";default:throw Error(`不支持的平台: ${n}-${m}。`+"支持的平台: darwin-arm64, darwin-x64, linux-x64, windows-x64")}}var D5=(()=>{return"npm"})();function hn(){return D5==="npm"}bn();import{readFileSync as h5,writeFileSync as P5,mkdirSync as k5,existsSync as i3}from"node:fs";import{homedir as T5}from"node:os";import{join as b3}from"node:path";import{writeFile as S5,chmod as f5,rename as p5,unlink as F5}from"node:fs/promises";bn();import{createHash as N5}from"node:crypto";function V5(n){return N5("sha256").update(n).digest("hex")}function r8(n,m){let i=V5(n);if(!m)return{valid:!0,actual:i,expected:null};let b=m.toLowerCase().trim();return{valid:i===b,actual:i,expected:b}}dm();async function im(){let n=mm();return Zm(`/api/v1/cli/check-update?current=${encodeURIComponent(E)}&target=${encodeURIComponent(n)}`)}async function m3(){let n=mm(),m=await im();if(!m.hasUpdate)return{updated:!1,fromVersion:E,toVersion:m.latestVersion,message:"已是最新版本"};let i;try{i=await zi()}catch(Y){throw Error(`备份当前版本失败: ${Y instanceof Error?Y.message:String(Y)}`)}let b=await a8(`/api/v1/cli/download?target=${encodeURIComponent(n)}`),$=await fetch(b);if(!$.ok)throw Error(`下载失败: HTTP ${$.status}`);let o=Buffer.from(await $.arrayBuffer()),_=r8(o,m.checksum);if(!_.valid)throw Error(`完整性校验失败。期望: ${_.expected}, 实际: ${_.actual}`);let J=process.execPath,X=`${J}.new`;try{await S5(X,o),await f5(X,493),await p5(X,J)}catch(Y){try{await F5(X)}catch{}if(i)try{let{rollbackFromLatestBackup:H}=await Promise.resolve().then(() => (dm(),n3));await H()}catch{}throw Y}return{updated:!0,fromVersion:E,toVersion:m.latestVersion??"",backupPath:i,message:`已更新到 ${m.latestVersion}。请重启 CLI 以使用新版本。`}}var ti=process.env.YUNKE_CONFIG_DIR??b3(T5(),".yunke"),di=b3(ti,"update-check.json"),I5=86400000;function w3(){if(!i3(di))return null;try{let n=h5(di,"utf-8");return JSON.parse(n)}catch{return null}}function $3(n){if(!i3(ti))k5(ti,{recursive:!0});P5(di,JSON.stringify(n,null,2),"utf-8")}function am(n){if(!n)return!0;if(n.currentVersion!==E)return!0;return Date.now()-new Date(n.lastCheck).getTime()>=I5}function o3(){if(hn()){c5();return}let n=w3();if(n&&!am(n)&&n.hasUpdate){J3(n.latestVersion);return}if(am(n))y5().catch(()=>{})}async function y5(){try{let n=await im(),m=n.hasUpdate&&n.latestVersion!=null&&X3(n.latestVersion,E),i={lastCheck:new Date().toISOString(),hasUpdate:m,latestVersion:n.latestVersion,currentVersion:E};if($3(i),m)J3(n.latestVersion)}catch{}}function _3(n,m){return`
|
|
22
22
|
新版本可用: ${n} -> ${m}
|
|
23
23
|
`+` 运行以下命令更新:
|
|
24
24
|
`+` npm install -g @yunkeai/yunke-cli
|