@visulima/vis 3.0.1 → 3.0.3
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/CHANGELOG.md +23 -0
- package/LICENSE.md +33 -22
- package/dashboard/dist/index.html +12 -12
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/packem_chunks/CONFIG_FILES.js +1 -1
- package/dist/packem_chunks/bloom-status.js +1 -1
- package/dist/packem_chunks/bloom-sync.js +1 -1
- package/dist/packem_chunks/catalog.js +2 -2
- package/dist/packem_chunks/cli-exec.js +1 -1
- package/dist/packem_chunks/cli-main.js +168 -170
- package/dist/packem_chunks/doctor-probe.js +2 -2
- package/dist/packem_chunks/fix.js +5 -5
- package/dist/packem_chunks/handler13.js +1 -1
- package/dist/packem_chunks/handler14.js +1 -1
- package/dist/packem_chunks/handler15.js +1 -1
- package/dist/packem_chunks/handler19.js +1 -1
- package/dist/packem_chunks/handler2.js +1 -1
- package/dist/packem_chunks/handler20.js +1 -1
- package/dist/packem_chunks/handler21.js +1 -1
- package/dist/packem_chunks/handler23.js +1 -1
- package/dist/packem_chunks/handler24.js +1 -1
- package/dist/packem_chunks/handler26.js +1 -1
- package/dist/packem_chunks/handler28.js +1 -1
- package/dist/packem_chunks/handler3.js +1 -1
- package/dist/packem_chunks/handler50.js +4 -4
- package/dist/packem_chunks/handler53.js +1 -1
- package/dist/packem_chunks/handler54.js +1 -1
- package/dist/packem_chunks/handler55.js +1 -1
- package/dist/packem_chunks/handler58.js +1 -1
- package/dist/packem_chunks/handler59.js +1 -1
- package/dist/packem_chunks/handler6.js +5 -5
- package/dist/packem_chunks/handler60.js +1 -1
- package/dist/packem_chunks/handler61.js +7 -7
- package/dist/packem_chunks/handler62.js +1 -1
- package/dist/packem_chunks/handler63.js +1 -1
- package/dist/packem_chunks/handler64.js +2 -2
- package/dist/packem_chunks/handler65.js +2 -2
- package/dist/packem_chunks/handler66.js +1 -1
- package/dist/packem_chunks/handler67.js +25 -24
- package/dist/packem_chunks/handler68.js +153 -25
- package/dist/packem_chunks/handler69.js +10 -153
- package/dist/packem_chunks/handler70.js +22 -10
- package/dist/packem_chunks/handler71.js +4 -4
- package/dist/packem_chunks/handler72.js +3 -3
- package/dist/packem_chunks/handler73.js +6 -6
- package/dist/packem_chunks/handler74.js +1 -1
- package/dist/packem_chunks/handler75.js +1 -1
- package/dist/packem_chunks/handler76.js +1 -1
- package/dist/packem_chunks/handler77.js +40 -40
- package/dist/packem_chunks/handler78.js +20 -20
- package/dist/packem_chunks/heal.js +4 -4
- package/dist/packem_chunks/help-command.js +5 -5
- package/dist/packem_chunks/index4.js +6 -8
- package/dist/packem_chunks/index6.js +5 -5
- package/dist/packem_chunks/list.js +1 -1
- package/dist/packem_chunks/prompts.js +1 -1
- package/dist/packem_chunks/prune.js +1 -1
- package/dist/packem_chunks/run.js +1 -1
- package/dist/packem_chunks/shell-runner.js +1 -1
- package/dist/packem_chunks/status.js +1 -1
- package/dist/packem_chunks/sync.js +1 -1
- package/dist/packem_chunks/tar.js +3 -3
- package/dist/packem_shared/{advisories-CyDqzi5j.js → advisories-0ScpWAHV.js} +1 -1
- package/dist/packem_shared/{affected-selection-DPQR-Bd3.js → affected-selection-BMoQWuHl.js} +1 -1
- package/dist/packem_shared/{ai-fix-6nXZbecQ.js → ai-fix-CKN1JGRh.js} +1 -1
- package/dist/packem_shared/{bin-wafzkjaB.js → bin-CN4heKmb.js} +1 -1
- package/dist/packem_shared/{cyclonedx-C_ezHg8b.js → cyclonedx-B1vzerwP.js} +1 -1
- package/dist/packem_shared/{docker-Br_iFmI-.js → docker-Bex05Qcn.js} +16 -16
- package/dist/packem_shared/giget-D8Kwb0kD.js +2 -0
- package/dist/packem_shared/index.server-BAjDJSEu.js +2 -0
- package/dist/packem_shared/main-BP-w-K-6.js +1 -0
- package/dist/packem_shared/{osv-bloom-5wDAoZ1e.js → osv-bloom-JYIWcH3F.js} +1 -1
- package/dist/packem_shared/{package-version-BJkg7-6H.js → package-version-CJxZ_B7G.js} +3 -3
- package/dist/packem_shared/{project-name-filter-BeREbPMI.js → project-name-filter-DsrVo0MY.js} +1 -1
- package/dist/packem_shared/{resolve-explicit-COmP7eqr.js → resolve-explicit-DYaHAVDg.js} +1 -1
- package/dist/packem_shared/{s1ngularity-RZOHbGrE.js → s1ngularity-C8sva2SO.js} +1 -1
- package/dist/packem_shared/{scan-progress-C9nMDLis.js → scan-progress-5uTRdC1G.js} +2 -2
- package/dist/packem_shared/{spinner-CbJfWYwB.js → spinner-BM_0Bj6x.js} +1 -1
- package/dist/packem_shared/{tabs-BilwonkM.js → tabs-UDYQ3tqt.js} +1 -1
- package/dist/packem_shared/target-merge-B4No-LHM.js +4 -0
- package/dist/packem_shared/{typosquats-D8ppc5kr.js → typosquats-Cdsnf6aN.js} +1 -1
- package/dist/packem_shared/{vis-update-app-ngwL2mRv.js → vis-update-app-zqSa2clT.js} +1 -1
- package/dist/packem_shared/{vis-user-error-jhNwmkZp.js → vis-user-error-Dkc97rGY.js} +1 -1
- package/index.js +26 -26
- package/package.json +14 -14
- package/dist/packem_shared/giget-CVyyR7x8.js +0 -2
- package/dist/packem_shared/index.server-CwSgbeN7.js +0 -2
- package/dist/packem_shared/main-BjJN8kWj.js +0 -1
- package/dist/packem_shared/target-merge-D1xbylFw.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as It}from"node:module";import{b as he,u as Ut,c as W,h as jt,i as be,d as Vt,a as Dt,l as Tt,e as Ie}from"./package-version-BJkg7-6H.js";let St;const Lt=t=>(St??=It(import.meta.url))(t),ne=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Mt=t=>{if(typeof ne<"u"&&ne.versions&&ne.versions.node){const[e,n]=ne.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return ne.getBuiltinModule(t)}return Lt(t)},{createRequire:Pt}=Mt("node:module"),Rt=16,fe=32,Bt=64,T=128,le="positionals";let te=class extends Error{loc;title;hint;type="VisulimaError";constructor({cause:e,hint:n,location:o,message:i,name:s,stack:l,title:a}){super(i,{cause:e}),this.title=a,this.name=s,this.stack=l??this.stack,this.loc=o,this.hint=n}setLocation(e){this.loc=e}setName(e){this.name=e}setMessage(e){this.message=e}setHint(e){this.hint=e}},b=class extends te{code;context;constructor(e,n,o){super({message:e,name:"CerebroError"}),this.code=n,this.context=o}};const nt=String.raw,Se=nt`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,zt=()=>new RegExp(nt`\p{RI}{2}|(?)${Se}(?:\u200D${Se})*`,"gu");Object.freeze(new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49],[90,39]]));const Zs=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\))/g,Ys=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,F=zt(),Wt=/[-_./\s]+/g,ce=/(\u001B\[[0-9;]*[a-z])/i,Le=new RegExp("\\p{Script=Arabic}","u"),Ft=new RegExp("\\p{Script=Bengali}","u"),X=new RegExp("\\p{Script=Cyrillic}","u"),qt=new RegExp("\\p{Script=Devanagari}","u"),Gt=new RegExp("\\p{Script=Ethiopic}","u"),me=new RegExp("\\p{Script=Greek}","u"),Me=new RegExp("\\p{Script=Greek}+|\\p{Script=Latin}+|[^\\p{Script=Greek}\\p{Script=Latin}]+","gu"),Jt=new RegExp("\\p{Script=Gujarati}","u"),Ht=new RegExp("\\p{Script=Gurmukhi}","u"),Pe=new RegExp("\\p{Script=Hangul}","u"),Ue=new RegExp("\\p{Script=Hebrew}","u"),Kt=new RegExp("\\p{Script=Hiragana}","u"),je=new RegExp("\\p{Script=Han}","u"),Zt=new RegExp("\\p{Script=Kannada}","u"),Yt=new RegExp("\\p{Script=Katakana}","u"),Xt=new RegExp("\\p{Script=Khmer}","u"),Qt=new RegExp("\\p{Script=Lao}","u"),L=new RegExp("\\p{Script=Latin}","u"),en=new RegExp("\\p{Script=Malayalam}","u"),tn=new RegExp("\\p{Script=Myanmar}","u"),nn=new RegExp("\\p{Script=Oriya}","u"),on=new RegExp("\\p{Script=Sinhala}","u"),sn=new RegExp("\\p{Script=Tamil}","u"),rn=new RegExp("\\p{Script=Telugu}","u"),an=new RegExp("\\p{Script=Thai}","u"),ln=new RegExp("\\p{Script=Tibetan}","u"),Ve=/[\u02BB\u02BC\u0027]/u,cn=t=>t.replace(F,""),R=new Uint32Array(65536),un=(t,e)=>{const n=t.length,o=e.length,i=1<<n-1;let s=-1,l=0,a=n,u=n;for(;u--;)R[t.charCodeAt(u)]|=1<<u;for(u=0;u<o;u++){let r=R[e.charCodeAt(u)];const c=r|l;r|=(r&s)+s^s,l|=~(r|s),s&=r,l&i&&a++,s&i&&a--,l=l<<1|1,s=s<<1|~(c|l),l&=c}for(u=n;u--;)R[t.charCodeAt(u)]=0;return a},hn=(t,e)=>{const n=e.length,o=t.length,i=[],s=[],l=Math.ceil(n/32),a=Math.ceil(o/32);for(let p=0;p<l;p++)s[p]=-1,i[p]=0;let u=0;for(;u<a-1;u++){let p=0,w=-1;const $=u*32,m=Math.min(32,o)+$;for(let v=$;v<m;v++)R[t.charCodeAt(v)]|=1<<v;for(let v=0;v<n;v++){const A=R[e.charCodeAt(v)],k=s[v/32|0]>>>v&1,C=i[v/32|0]>>>v&1,j=A|p,_=((A|C)&w)+w^w|A|C;let g=p|~(_|w),y=w&_;g>>>31^k&&(s[v/32|0]^=1<<v),y>>>31^C&&(i[v/32|0]^=1<<v),g=g<<1|k,y=y<<1|C,w=y|~(j|g),p=g&j}for(let v=$;v<m;v++)R[t.charCodeAt(v)]=0}let r=0,c=-1;const d=u*32,h=Math.min(32,o-d)+d;for(let p=d;p<h;p++)R[t.charCodeAt(p)]|=1<<p;let f=o;for(let p=0;p<n;p++){const w=R[e.charCodeAt(p)],$=s[p/32|0]>>>p&1,m=i[p/32|0]>>>p&1,v=w|r,A=((w|m)&c)+c^c|w|m;let k=r|~(A|c),C=c&A;f+=k>>>o-1&1,f-=C>>>o-1&1,k>>>31^$&&(s[p/32|0]^=1<<p),C>>>31^m&&(i[p/32|0]^=1<<p),k=k<<1|$,C=C<<1|m,c=C|~(v|k),r=k&v}for(let p=d;p<h;p++)R[t.charCodeAt(p)]=0;return f},pn=(t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return e.length===0?t.length:t.length<=32?un(t,e):hn(t,e)};let dn;const fn=t=>(dn??=Pt(import.meta.url))(t),oe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,mn=t=>{if(typeof oe<"u"&&oe.versions&&oe.versions.node){const[e,n]=oe.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return oe.getBuiltinModule(t)}return fn(t)},{writeFile:gn,stat:wn,rm:yn,readFile:De,readdir:vn,mkdir:$n,access:xn}=mn("node:fs/promises"),re=[{alias:"v",description:"Turn on verbose output",group:"global",name:"verbose",type:Boolean},{description:"Turn on debugging output",group:"global",name:"debug",type:Boolean},{alias:"h",description:"Print out helpful usage information",group:"global",name:"help",type:Boolean},{alias:"q",description:"Silence output",group:"global",name:"quiet",type:Boolean},{alias:"V",description:"Print version info",group:"global",name:"version",type:Boolean},{description:"Turn off colored output",group:"global",name:"no-color",type:Boolean},{description:"Force colored output",group:"global",name:"color",type:Boolean}];let G=class extends b{commandName;constructor(e,n=[]){const o=`Command "${e}" not found${n.length>0?`. Did you mean: ${n.join(", ")}?`:""}`;super(o,"COMMAND_NOT_FOUND",{commandName:e,suggestions:n}),this.name="CommandNotFoundError",this.commandName=e,n.length>0&&(this.hint=`Try one of these commands: ${n.join(", ")}`)}},ot=class extends b{option1;option2;constructor(e,n){super(`Options "${e}" and "${n}" cannot be used together`,"CONFLICTING_OPTIONS",{option1:e,option2:n}),this.name="ConflictingOptionsError",this.option1=e,this.option2=n,this.hint=`Remove either --${e} or --${n}`}};class An extends b{unknownOptions;constructor(e,n){const o=e.join(", "),i=`Found unknown ${e.length===1?"option":"options"}: ${o}`;super(i,"UNKNOWN_OPTION",{suggestions:n,unknownOptions:e}),this.name="UnknownOptionError",this.unknownOptions=e,n&&n.length>0&&(this.hint=`Did you mean: ${n.join(", ")}?`)}}class Nn extends b{pluginName;constructor(e,n,o){super(`Plugin "${e}" error: ${n}`,"PLUGIN_ERROR",{originalError:o,pluginName:e}),this.name="PluginError",this.pluginName=e,o&&(this.cause=o)}}class bn{logger;plugins=new Map;initialized=!1;cachedDependencyOrder=void 0;constructor(e){this.logger=e}hasPlugins(){return this.plugins.size>0}register(e){if(this.initialized)throw new Error(`Cannot register plugin "${e.name}" after initialization`);if(this.plugins.has(e.name))throw new Error(`Plugin "${e.name}" is already registered`);he().CEREBRO_OUTPUT_LEVEL===String(T)&&this.logger.debug(`registering plugin: ${e.name}`),this.plugins.set(e.name,e),this.cachedDependencyOrder=void 0}async init(e){if(this.initialized)throw new Error("PluginManager already initialized");if(this.plugins.size===0){this.logger.debug("no plugins registered, skipping initialization"),this.initialized=!0;return}this.validateDependencies();const n=this.getDependencyOrder();this.logger.debug(`initializing ${String(n.length)} plugin(s)...`);for(const o of n)if(typeof o.init=="function"){this.logger.debug(`initializing plugin: ${o.name}`);try{await o.init(e)}catch(i){const s=new Nn(o.name,`Failed to initialize: ${i instanceof Error?i.message:String(i)}`,i instanceof Error?i:void 0);throw this.logger.error(s.message),s}}this.initialized=!0}async executeLifecycle(e,n,o){if(!this.initialized)throw new Error("PluginManager not initialized");if(this.plugins.size===0)return;const i=this.getDependencyOrder();for(const s of i){const l=s[e];if(typeof l=="function"){this.logger.debug(`executing ${e} hook for plugin: ${s.name}`);try{await(e==="afterCommand"?l(n,o):l(n))}catch(a){throw this.logger.error(`Error in ${e} hook for plugin "${s.name}":`,a),a}}}}async executeErrorHandlers(e,n){if(!this.initialized||this.plugins.size===0)return;const o=this.getDependencyOrder();for(const i of o)if(typeof i.onError=="function"){this.logger.debug(`executing error handler for plugin: ${i.name}`);try{await i.onError(e,n)}catch(s){this.logger.error(`Error in error handler for plugin "${i.name}":`,s)}}}getDependencyOrder(){if(this.cachedDependencyOrder!==void 0)return this.cachedDependencyOrder;const e=[],n=new Set,o=new Set,i=s=>{if(n.has(s))return;if(o.has(s))throw new Error(`Circular dependency detected involving plugin "${s}"`);const l=this.plugins.get(s);if(!l)throw new Error(`Plugin "${s}" not found`);if(o.add(s),l.dependencies)for(const a of l.dependencies)i(a);o.delete(s),n.add(s),e.push(l)};for(const s of this.plugins.keys())i(s);return this.cachedDependencyOrder=e,e}validateDependencies(){for(const e of this.plugins.values())if(e.dependencies){for(const n of e.dependencies)if(!this.plugins.has(n))throw new Error(`Plugin "${e.name}" depends on "${n}" which is not registered`)}}}const se=t=>t.type?.name==="Boolean",Cn=t=>{let e=t.type?t.type.name.toLowerCase():"string";const n=t.multiple??t.lazyMultiple?"[]":"";return e&&(e=e==="boolean"?"":`{underline ${e}${n}}`),e},Te=t=>(se(t)||(t.typeLabel=t.typeLabel??Cn(t),t.defaultOption&&(t.typeLabel=`${t.typeLabel} (D)`),t.required&&(t.typeLabel=`${t.typeLabel} (R)`)),t),kn=new RegExp(/^-([^\d-])$/),En=new RegExp(/^--(\S+)/),On=new RegExp(/^-([^\d-]{2,})$/),_n=t=>kn.test(t)||En.test(t)||On.test(t),In=(t,e)=>{const n=e[0]&&_n(e[0])||e.length===0?null:e.shift()??null;if(!t.includes(n)){const o=new Error(`Command not recognised: ${String(n)}`);throw o.command=n,o.name="INVALID_COMMAND",o}return{argv:e,command:n}};let Sn=class st extends te{optionName;value;constructor(e,n,o){super({hint:`Pass a valid ${o} value for '${e}'.`,message:`Invalid ${o} value '${n}' for option '${e}'`,name:"INVALID_VALUE",title:"Invalid Value"}),this.optionName=e,this.value=n,Object.setPrototypeOf(this,st.prototype)}},Ln=class it extends te{optionName;constructor(e){super({cause:void 0,hint:`Remove the duplicate option '${e}' from your command line arguments.`,location:void 0,message:`Option '${e}' is already set`,name:"ALREADY_SET",stack:void 0,title:"Option Already Set"}),this.optionName=e,Object.setPrototypeOf(this,it.prototype)}},Re=class rt extends te{optionName;constructor(e){super({cause:void 0,hint:`Check your option definitions or remove the unknown option '${e}' from your command line arguments.`,location:void 0,message:`Unknown option: --${e}`,name:"UNKNOWN_OPTION",stack:void 0,title:"Unknown Option"}),this.optionName=`--${e}`,Object.setPrototypeOf(this,rt.prototype)}},Mn=class at extends te{value;constructor(e){super({hint:"Use a defined option or add a defaultOption to capture this value.",message:`Unknown value: ${e}`,name:"UNKNOWN_VALUE",title:"Unknown Value"}),this.value=e,Object.setPrototypeOf(this,at.prototype)}},M=class lt extends te{constructor(e,n){super({cause:void 0,hint:n,location:void 0,message:e,name:"INVALID_DEFINITIONS",stack:void 0,title:"Invalid Option Definition"}),Object.setPrototypeOf(this,lt.prototype)}};const H=t=>t===Boolean||typeof t=="function"&&t.name==="Boolean",Ce=t=>t===Number||typeof t=="function"&&t.name==="Number",Be=t=>t===String||typeof t=="function"&&t.name==="String",ze=(t,e,n)=>{const o=Number(t);if(e&&Number.isNaN(o)&&String(t).trim().toLowerCase()!=="nan")throw new Sn(n??"",String(t),"Number");return o},Pn=(t,e,n={})=>{const{optionName:o,strictTypes:i}=n;return Array.isArray(t)?H(e)?t.map(Boolean):Ce(e)?t.map(s=>ze(s,i,o)):Be(e)?t.map(String):t.map(s=>e(String(s))):t===null?null:H(e)?!!t:Ce(e)?ze(t,i,o):Be(e)?typeof t=="string"?t:String(t):e(typeof t=="string"?t:String(t))},O=(t,e,n,...o)=>{t&&console.debug(`[command-line-args:${n}] ${e}`,...o)},Un=/-([a-z])/g,jn=/^\d+$/,Vn=t=>t.codePointAt(0)===95,We=(t,e)=>Array.isArray(t)?[...t,...e]:[t,...e],Fe=t=>t==="__proto__"||t==="constructor"||t==="prototype",ge=(t,e,n,o=!1)=>{t[e]===void 0?t[e]=o?[n]:n:o&&Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]},qe=(t,e,n,o,i)=>{let s=e.get(t)??n.get(t);if(!s&&o){const l=t.toLowerCase();s=o.get(l)??i?.get(l)}return s},Dn=(t,e,n,o)=>{const i=n.debug??!1;O(i,"resolveArgs called with options:","resolver",{partial:n.partial,stopAtFirstUnknown:n.stopAtFirstUnknown}),O(i,"Starting argument resolution","resolver"),O(i,"Tokens:","resolver",t),O(i,"Definitions:","resolver",e),O(i,"Processing tokens...","resolver");const s=new Map,l=new Map,a=n.caseInsensitive?new Map:void 0,u=n.caseInsensitive?new Map:void 0,r=n.camelCase?new Map:void 0,c=n.camelCase?new Map:void 0;for(const g of e)if(s.set(g.name,g),g.alias&&l.set(g.alias,g),n.caseInsensitive&&a&&(a.set(g.name.toLowerCase(),g),g.alias&&u&&u.set(g.alias.toLowerCase(),g)),n.camelCase&&r&&c){const y=g.name.replaceAll(Un,(x,I)=>I.toUpperCase());r.set(g.name,y),c.set(y,g.name)}const d=Object.create(null),h=Object.create(null),f=[],p=[],w=new Set;let $=!1;const m=e.find(g=>g.defaultOption),v=e.some(g=>g.group),A=e.find(g=>Ce(g.type));for(let g=0;g<t.length;g++){const y=t[g];if(y.kind==="option-terminator"){d._unknown=o.slice(y.index),$=!0;break}if(y.kind==="option"&&y.name){let x=qe(y.name,s,l,a,u);!x&&y.value===void 0&&A&&jn.test(y.name)&&(x=A,y.value=y.name,y.name=A.name);let I=!1;if(!x&&n.negation&&y.value===void 0&&y.name.startsWith("no-")){const E=y.name.slice(3),U=qe(E,s,l,a,u);U?.type&&H(U.type)&&(x=U,I=!0)}const N=x?x.name:y.name,S=x?.multiple,P=x?.lazyMultiple;if(Object.hasOwn(h,N)&&h[N]!==void 0&&!S&&!P&&!n.partial)throw new Ln(N);if(!x&&n.partial){const E=y.rawName??`--${y.name}${y.value!==void 0&&y.inlineValue?`=${y.value}`:""}`;f.push({index:y.index,value:E});continue}if(!x&&n.stopAtFirstUnknown){d._unknown=o.slice(y.index);break}if(!x&&!n.partial)throw new Re(y.name);if(y.value===void 0){const E=t[g+1],U=E?.kind==="option"&&!("name"in E)&&E.value!==void 0,V=E&&x&&!(x.type&&H(x.type))&&(E.kind==="positional"||U),_t=x&&x.defaultOption&&!x.multiple&&!x.lazyMultiple;if(V&&(!x?.defaultOption||_t))if(S){let D=g+1;const de=[];for(;D<t.length&&(t[D].kind==="positional"||t[D].kind==="option"&&!("name"in t[D])&&t[D].value!==void 0);)de.push(t[D].value),w.add(t[D].index),D++;h[N]=h[N]===void 0?de:We(h[N],de),g=D-1}else P?(ge(h,N,E.value,!0),w.add(E.index),g++):(h[N]=E.value,w.add(E.index),g++);else x?.type&&H(x.type)?ge(h,N,!I,S):(S||P)&&h[N]!==void 0?ge(h,N,null,!0):h[N]=S?[]:null}else{let{value:E}=y;if(x?.type&&H(x.type))switch(E){case"":{if(n.partial){const V=`${y.rawName??`--${y.name}`}${y.value?`=${y.value}`:""}`;p.push({index:y.index,value:V}),E=!0}else throw new Re(y.name);break}case"false":{E=!1;break}case"true":{E=!0;break}default:E=!0}const U=[E];if(S){let V=g+1;for(;V<t.length&&t[V].kind==="positional";)U.push(t[V].value),w.add(t[V].index),V++;g=V-1}h[N]===void 0?h[N]=S||P?U:E:S||P?h[N]=We(h[N],U):h[N]=E}}else if(y.kind==="positional"&&n.stopAtFirstUnknown&&!w.has(y.index)&&!m){O(i,`Found unconsumed positional token at index ${String(y.index)}, stopping processing`,"resolver"),d._unknown=o.slice(y.index);break}}for(const[g,y]of Object.entries(h)){const x=s.get(g);x&&(x.multiple||x.lazyMultiple)&&!Array.isArray(y)&&(h[g]=[y])}const k=g=>g.kind==="option"&&!s.has(g.name??"")&&!l.has(g.name??"")&&(!n.caseInsensitive||!a?.has(g.name?.toLowerCase()??"")&&!u?.has(g.name?.toLowerCase()??""));let C=-1,j=Number.POSITIVE_INFINITY;if(n.stopAtFirstUnknown&&!$&&(C=t.findIndex(g=>k(g)),C!==-1&&(j=t[C].index)),m){const g=[],y=[];for(const x of t)x.kind==="positional"&&!w.has(x.index)&&x.index<j&&(g.push(x.value),y.push(x));if(g.length>0){const x=h[m.name],I=m.multiple??m.lazyMultiple;x===void 0?I?(y.forEach(N=>w.add(N.index)),h[m.name]=g):(w.add(y[0].index),h[m.name]=g[0]):I&&(y.forEach(N=>w.add(N.index)),h[m.name]=Array.isArray(x)?[...g,...x]:[...g,x])}}if(!n.partial){for(const g of t)if(g.kind==="positional"&&!w.has(g.index))throw new Mn(o[g.index])}if(n.partial&&!n.stopAtFirstUnknown){const g=[...f];for(const y of p)g.push({index:y.index,value:y.value});for(const y of t)y.kind==="positional"&&!w.has(y.index)&&g.push({index:y.index,value:o[y.index]});g.length>0&&(g.sort((y,x)=>y.index-x.index),d._unknown=g.map(y=>y.value))}if(n.stopAtFirstUnknown&&!$){const g=t.findIndex(x=>x.kind==="positional"&&!w.has(x.index));let y=-1;if(C!==-1&&g!==-1?y=Math.min(C,g):C!==-1?y=C:g!==-1&&(y=g),y>=0){const x=t[y].index;d._unknown=o.slice(x)}}for(const[g,y]of Object.entries(h)){const x=n.camelCase?r?.get(g)??g:g,I=s.get(g);I?.type?d[x]=Pn(y,I.type,{optionName:I.name,strictTypes:n.strictTypes}):d[x]=y===void 0?null:y}for(const g of e){const y=n.camelCase?r?.get(g.name)??g.name:g.name;!(y in d)&&g.defaultValue!==void 0&&(g.multiple??g.lazyMultiple?d[y]=Array.isArray(g.defaultValue)?[...g.defaultValue]:[g.defaultValue]:d[y]=g.defaultValue)}if(v){const g={},y={},x={};for(const N of e)if(N.group){const S=Array.isArray(N.group)?N.group:[N.group];for(const P of S)Fe(P)||(g[P]??={})}for(const N of Object.keys(d))if(!Vn(N)){y[N]=d[N];let S=N;n.camelCase&&(S=c?.get(N)??N);const P=s.get(S);if(P?.group){const E=Array.isArray(P.group)?P.group:[P.group];for(const U of E)Fe(U)||g[U]&&(g[U][N]=d[N])}else x[N]=d[N]}const I={_all:y};for(const[N,S]of Object.entries(g))I[N]=S;Object.keys(x).length>0&&(I._none=x),d._unknown&&(I._unknown=d._unknown),Object.keys(d).forEach(N=>delete d[N]),Object.assign(d,I)}const _=Object.defineProperties({},Object.getOwnPropertyDescriptors(d));return O(i,"Final parsed result:","resolver",_),_},ct="-",ee=ct.codePointAt(0),K="=",Tn=K.codePointAt(0),Rn="--",Bn=ct,zn="--",ut=t=>t.length>2&&t.startsWith(zn),Wn=t=>ut(t)&&!t.includes(K,3),Fn=t=>ut(t)&&t.includes(K,3),qn=t=>{if(t.length!==2||t.codePointAt(0)!==ee||t.codePointAt(1)===ee)return!1;const e=t.codePointAt(1);return e!==void 0&&(e<48||e>57)},Gn=t=>{if(t.length<=2||t.codePointAt(0)!==ee||t.codePointAt(1)===ee)return!1;const e=t.codePointAt(1);return!(e!==void 0&&e>=48&&e<=57)},Jn=t=>{const e=[];let n=0,o=[],i=0,s=-1,l=0;for(;i<o.length||n<t.length;){let a;if(i<o.length?(a=o[i],i++):(a=t[n],n++),l>0?l--:s++,a===Rn){e.push({index:s,kind:"option-terminator"});const u=[...o.slice(i),...t.slice(n)],r=u.map((c,d)=>({index:s+d+1,kind:"positional",value:c}));e.push(...r),s+=u.length;break}if(qn(a)){const u=a.charAt(1);e.push({index:s,kind:"option",name:u,rawName:a});continue}if(Gn(a)&&!a.includes(K)){const u=[];let r="",c=!1;for(let d=1;d<a.length;d++){const h=a.charAt(d);c?r+=h:h.codePointAt(0)===Tn?c=!0:u.push(`${Bn}${h}`)}if(c)if(u.length>0){const d=u.pop();u.push(`${d}=${r}`)}else u.push(r);o=i<o.length?[...u,...o.slice(i)]:u,i=0,l=u.length;continue}if(Wn(a)){const u=a.slice(2);e.push({index:s,kind:"option",name:u,rawName:a});continue}if(Fn(a)){const u=a.indexOf(K),r=a.slice(2,u),c=a.slice(u+1);e.push({index:s,inlineValue:!0,kind:"option",name:r,rawName:a,value:c});continue}if(a.length>2&&a.codePointAt(0)===ee&&a.codePointAt(1)!==ee&&a.includes(K)){const u=a.indexOf(K),r=a.charAt(1),c=a.slice(u+1);e.push({index:s,inlineValue:!0,kind:"option",name:r,rawName:a,value:c});continue}e.push({index:s,kind:"positional",value:a})}return e},Hn=/\d/,Kn=t=>typeof t=="function",Zn=(t,e,n)=>{const o=n?.debug??!1;O(o,"Validating definitions:","validation",t,"caseInsensitive:",e);const i=new Set,s=new Set,l=new Set,a=new Set;let u=0;for(const r of t){if(O(o,"Checking definition:","validation",r),!r.name)throw O(o,"Validation failed: name is required","validation"),new M("Invalid option definition: name is required");if(typeof r.name!="string")throw new M("Invalid option definition: name must be a string");if(r.name.trim()==="")throw new M("Invalid option definition: name cannot be empty");const c=e?r.name.toLowerCase():"";if(i.has(r.name)||e&&l.has(c))throw new M(`Invalid option definition: duplicate name '${r.name}'`);if(s.has(r.name)||e&&a.has(c))throw new M(`Invalid option definition: name '${r.name}' conflicts with an existing alias`);if(i.add(r.name),e&&l.add(c),r.alias!==void 0){if(typeof r.alias!="string")throw new M("Invalid option definition: alias must be a string");if(r.alias.length!==1)throw new M("Invalid option definition: alias must be a single character");if(Hn.test(r.alias))throw new M("Invalid option definition: alias cannot be numeric");if(r.alias==="-")throw new M('Invalid option definition: alias cannot be "-"');const d=e?r.alias.toLowerCase():"";if(s.has(r.alias)||e&&a.has(d))throw new M(`Invalid option definition: duplicate alias '${r.alias}'`);if(i.has(r.alias)||e&&l.has(d))throw new M(`Invalid option definition: alias '${r.alias}' conflicts with an existing option name`);s.add(r.alias),e&&a.add(d)}if(r.defaultOption&&(u++,r.type!==void 0&&H(r.type)))throw new M("Invalid option definition: defaultOption cannot be Boolean type");if(r.type!==void 0&&!(r.type===Boolean||r.type===Number||r.type===String||typeof r.type=="function"&&Kn(r.type)))throw new M("Invalid option definition: invalid type")}if(u>1)throw O(o,"Validation failed: multiple defaultOptions not allowed","validation"),new M("Invalid option definition: multiple defaultOptions not allowed");O(o,"Validation completed successfully","validation")};function Yn(t,e={}){const n=e.debug??!1;O(n,"Starting command-line-args parsing","index"),O(n,"Options:","index",e);const o={...e};o.stopAtFirstUnknown&&(o.partial=!0);const i=Array.isArray(t)?t:[t];O(n,"Normalized definitions:","index",i),Zn(i,o.caseInsensitive,n?o:void 0);let{argv:s}=o;s??=process.argv.slice(2),O(n,"Using argv:","index",s);let l=s;o.caseInsensitive&&(l=s.map(r=>{if(r.startsWith("--")){const c=r.indexOf("="),d=(c===-1?r.slice(2):r.slice(2,c)).toLowerCase();return c===-1?`--${d}`:`--${d}${r.slice(c)}`}if(r.startsWith("-")&&!r.startsWith("--")&&r.length>1){const c=r.indexOf("="),d=c===-1?r.slice(1):r.slice(1,c);if(!d)return r;const h=d.toLowerCase();return c===-1?`-${h}`:`-${h}${r.slice(c)}`}return r}));const a=Jn(l.map(String));O(n,"Tokenized arguments:","index",a);const u=Dn(a,i,o,s);return O(n,"Command-line-args parsing completed","index"),u}class Xn{result;argv;options;argument;command;commandName;env;logger;console;fs;process;runtime;rawUnknown;constructor(e,n){this.commandName=e,this.command=n}}let we=class extends b{commandName;constructor(e,n,o){super(`Failed to load command "${e}": ${n}`,"COMMAND_LOADER_ERROR",{commandName:e,reason:n}),this.name="CommandLoaderError",this.commandName=e,this.hint="Ensure the loader resolves to a module with a default export that is the command handler function.",o!==void 0&&(this.cause=o)}};const Qn=/^-{1,2}(\w+)(=(.+))?$/,ht=(t,e,n,o)=>{const i=Qn.exec(t);if(i===null)return{};const s=i[1];if(!s)return{};const l=n&&o?n.get(s)??o.get(s):e.find(a=>a.name===s||a.alias===s);return l!==void 0?{argName:l.name,argValue:i[3],option:l}:{}},Ge=(t,e)=>{if(e.type===void 0)return t;if(e.type.name==="Boolean"){if(t==="true"||t==="1")return e.type(!0);if(t==="false"||t==="0")return e.type(!1)}return e.type(t)},eo=new Set(["0","1","false","true"]),to=(t,e,n,o)=>{if(e.length===0||t.length===0)return{};const i=(s,l)=>{const{argName:a,argValue:u,option:r}=ht(l,e,n,o),{lastOption:c}=s;return r&&se(r)&&u&&a?s.partial[a]=Ge(u,r):s.lastName&&c&&se(c)&&eo.has(l)&&(s.partial[s.lastName]=Ge(l,c)),{lastName:a,lastOption:r,partial:s.partial}};return t.reduce(i,{partial:{}}).partial},no=new Set(["0","1","false","true"]),oo=(t,e,n,o)=>{if(e.length===0||t.length===0)return t;const i=(s,l)=>{const{argValue:a,option:u}=ht(l,e,n,o),{lastOption:r}=s;if(r&&se(r)&&no.has(l)){const{args:c}=s;return{args:c.slice(0,-1)}}return u&&se(u)&&a?{args:s.args}:{args:[...s.args,l],lastOption:u}};return t.reduce(i,{args:[]}).args},so=t=>{const e=new Map;for(const n of t){const o=e.get(n.name);o?e.set(n.name,{...o,...n}):e.set(n.name,n)}return[...e.values()]},io=t=>{if(t===void 0)return;const e=t.toLowerCase().trim();return e==="true"||e==="1"||e==="yes"||e==="on"},ro=(t,e)=>{if(!t.type)return e;if(e!==void 0){if(t.type===Boolean||typeof t.type=="function"&&t.type.name==="Boolean")return io(e);if(t.type===Number||typeof t.type=="function"&&t.type.name==="Number"){const n=Number.parseFloat(e);return Number.isNaN(n)?void 0:n}return t.type===String||typeof t.type=="function"&&t.type.name==="String"?e:t.type(e)}},ao=/_./g,lo=/^[A-Z]/,co=t=>t.toLowerCase().replaceAll(ao,e=>e[1]?.toUpperCase()??e).replace(lo,e=>e.toLowerCase()),uo=(t,e=he())=>{if(!t||t.length===0)return{};const n={};for(const o of t){const i=e[o.name],s=ro(o,i),l=s===void 0?o.defaultValue:s,a=co(o.name);n[a]=l}return n},ho=t=>{const e=new Map,n=new Map;for(const o of t)if(e.set(o.name,o),o.alias){const i=Array.isArray(o.alias)?o.alias:[o.alias];for(const s of i)n.set(s,o)}return{optionMapByAlias:n,optionMapByName:e}},pt=async t=>{if(typeof t.__resolvedExecute__=="function")return t.__resolvedExecute__;if(typeof t.loader!="function")throw new we(t.name,"no execute or loader defined");let e;try{e=await t.loader()}catch(o){throw new we(t.name,o instanceof Error?o.message:String(o),o)}const n=e.default;if(typeof n!="function")throw new we(t.name,"loader did not return a module with a default-exported handler function");return t.__resolvedExecute__=n,n},po=(t,e,n,o,i)=>{const s=new Xn(t.name,t),{_all:l,_unknown:a,positionals:u}=e,r=Object.keys(n).length>0?{...l,...n}:l;le in r&&delete r[le],s.argument=u?.[le]??[],s.rawUnknown=[...a??[]];const c=Object.keys(o).length>0;return s.options=c?{...r,...o}:r,s.env=uo(t.env,i),s},fo=(t,e,n)=>{const o=t.options??[],i=o.length>0;let s=so(i?[...o,...n]:n);if(s.length>0){for(const r of s)if(r.multiple&&r.lazyMultiple)throw new Error(`Argument "${r.name}" cannot have both multiple and lazyMultiple options, please choose one.`)}t.argument&&(s=[{defaultOption:!0,description:t.argument.description,group:"positionals",multiple:!0,name:le,type:t.argument.type,typeLabel:t.argument.typeLabel},...s]);let l,a;if(i){const{optionMapByAlias:r,optionMapByName:c}=ho(o);l=oo(e,o,c,r),a=to(e,o,c,r)}else l=e,a={};const u=Yn(s,{argv:l,camelCase:!0,partial:!0,stopAtFirstUnknown:!0});return{arguments_:s,booleanValues:a,parsedArgs:u}},ye=async(t,e,n)=>typeof t.execute=="function"?t.execute(e):(await pt(t))(e);let mo=class{capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;const e=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,e),e}has(t){return this.cache.has(t)}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){const n=this.cache.keys().next().value;n!==void 0&&this.cache.delete(n)}this.cache.set(t,e)}delete(t){this.cache.delete(t)}clear(){this.cache.clear()}size(){return this.cache.size}};const go=(t,e)=>typeof t!="string"||t===""?"":t[0].toLowerCase()+t.slice(1),wo=new RegExp("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))","g"),yo=t=>{if(typeof t!="string")throw new TypeError(`The "value" argument must be of type string. Received ${typeof t}`);return t.replaceAll(wo,"")},ve=new mo(1e3),vo=/[.*+?^${}()|[\]\\]/g,$o=t=>{const e=t.join("");if(ve.has(e)){const i=ve.get(e);return i.lastIndex=0,i}const n=t.map(i=>i.replaceAll(vo,String.raw`\$&`)).join("|"),o=new RegExp(n,"g");return ve.set(e,o),o},xo=t=>{const e=[];let n=0,o;for(F.lastIndex=0;(o=F.exec(t))!==null;)o.index>n&&e.push(t.slice(n,o.index)),e.push(o[0]),n=F.lastIndex;return n<t.length&&e.push(t.slice(n)),e.filter(Boolean)},Ao=/[ČŠŽĐ]/i,dt=new Uint8Array(128),ft=new Uint8Array(128),mt=new Uint8Array(128);for(let t=0;t<128;t++)dt[t]=t>=65&&t<=90?1:0,ft[t]=t>=97&&t<=122?1:0,mt[t]=t>=48&&t<=57?1:0;const $e=t=>dt[t],Je=t=>ft[t],xe=t=>mt[t],B=(t,e,n,o,i)=>{if(t.length===0)return[];let s=!1;const l=Object.values(e);for(const f of l)if(f(t[0])){s=!0;break}if(!s&&!n)return[t];const a=[...t],u=[];let r=a[0],c="other";const d=Object.entries(e);for(const f of d){const[p,w]=f;if(w(a[0])){c=p;break}}let h=n&&o?a[0]===a[0].toLocaleUpperCase(o):!1;for(let f=1;f<a.length;f++){const p=a[f];let w="other";for(const v of d){const[A,k]=v;if(k(p)){w=A;break}}const $=n&&o?p===p.toLocaleUpperCase(o):!1;let m=!1;i?m=i(c,w,h,$,p,f,a):(c!==w&&c!=="other"&&w!=="other"&&(m=!0),n&&w!=="other"&&!h&&$&&(m=!0)),m?(u.push(r),r=p):r+=p,c=w,n&&(h=$)}return r&&r.length>0&&u.push(r),u.length>0?u:[t]},No=(t,e,n,o)=>{if(n.size===0)return e;for(const i of n)if(t.startsWith(i,e))return o.push(i),e+i.length;return e},gt=(t,e=new Set)=>{if(t.length===0)return[];if(t.toUpperCase()===t)return[t];let n=0;const o=[],i=t.length;for(let s=1;s<i;s++){const l=No(t,n,e,o);if(l!==n){n=l,s=n-1;continue}const a=t.codePointAt(s-1),u=t.codePointAt(s),r=a&&a<128&&$e(a),c=u&&u<128&&$e(u),d=a&&a<128&&Je(a),h=a&&a<128&&xe(a),f=u&&u<128&&xe(u);if(d&&c){o.push(t.slice(n,s)),n=s;continue}if(h&&!f||!h&&f){o.push(t.slice(n,s)),n=s;continue}if(f&&!h){let p=!1,w=!1;if(s+1<i){const $=t.codePointAt(s+1);p=$&&$<128&&$e($),w=$&&$<128&&xe($)}if(!w&&p){o.push(t.slice(n,s),t.slice(s,s+1)),n=s+1;continue}}if(s+1<i){const p=t.codePointAt(s+1),w=p&&p<128&&Je(p);if(r&&c&&w){const $=t.slice(n,s+1);e.has($)||(o.push(t.slice(n,s)),n=s)}}}return n<i&&o.push(t.slice(n)),o.filter(s=>s!=="")},wt=(t,e,n)=>{if(t.length===0)return[];const o=t===t.toLocaleUpperCase(e);if(e.startsWith("de")){if(!o&&t.replaceAll("ß","SS")===t.toLocaleUpperCase(e))return[t];const r=[...t],c=r.length,d=[];let h=r[0],f=r[0]===r[0].toLocaleUpperCase(e),p=f,w=f?0:-1;for(let $=1;$<c;$++){const m=r[$],v=m===m.toLocaleUpperCase(e);if(v===f)h+=m;else if(v)h&&h.length>0&&(d.push(h),h=m),p=!0,w=$;else{if(p&&$-w>1){const A=r[$-1],k=h.slice(0,-1);k&&k.length>0&&d.push(k),h=A+m}else h+=m;p=!1,w=-1}f=v}return h&&h.length>0&&d.push(h),d}if(e.startsWith("uk")||e.startsWith("ru")||e.startsWith("bg")||e.startsWith("sr")||e.startsWith("mk")||e.startsWith("be")){if(!X.test(t)&&!L.test(t))return[t];const r=[...t],c=r.length,d=[];let h=r[0];const f=r[0];let p;X.test(f)?p=1:L.test(f)?p=2:p=0;let w=f===f.toLocaleUpperCase(e);for(let m=1;m<c;m++){const v=r[m];let A;X.test(v)?A=1:L.test(v)?A=2:A=0;const k=v===v.toLocaleUpperCase(e);p!==A&&(p===1||p===2)&&(A===1||A===2)||A===p&&!w&&k?(d.push(h),h=v):h+=v,p=A,w=k}h&&h.length>0&&d.push(h);const $=[];for(let m=0;m<d.length;m++)m<d.length-1&&d[m].length===1&&L.test(d[m])&&X.test(d[m+1][0])?($.push(d[m]+d[m+1]),m+=1):$.push(d[m]);return $}if(e.startsWith("el")){if(!me.test(t)&&!L.test(t))return[t];const r=[];Me.lastIndex=0;let c;for(;(c=Me.exec(t))!==null;)r.push(c[0]);r.length===0&&r.push(t);const d=[];if(r.length===1){const h=r[0];if(!h||!me.test(h[0])||h.length===1)return[h??t]}for(const h of r){if(!h)continue;if(!me.test(h[0])||h.length===1){d.push(h);continue}const f=h.length;let p=h[0],w=h[0]===h[0].toLocaleUpperCase(e);for(let $=1;$<f;$++){const m=h[$],v=m===m.toLocaleUpperCase(e);!w&&v?(d.push(p),p=m):p+=m,w=v}p&&d.push(p)}return d}if(e.startsWith("ja")||e.startsWith("ko")){const r=e.startsWith("ja"),c=r?{hiragana:h=>Kt.test(h),kanji:h=>je.test(h),katakana:h=>Yt.test(h),latin:h=>L.test(h)}:{hangul:h=>Pe.test(h),latin:h=>L.test(h)},d=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(r){const h=B(t,c,!1,e,(p,w)=>p==="hiragana"&&w==="katakana"||p==="katakana"&&w==="hiragana"||p==="hiragana"&&w==="latin"||p==="katakana"&&w==="latin"||p==="kanji"&&w==="latin"||p==="latin"&&(w==="hiragana"||w==="katakana"||w==="kanji")),f=[];for(const p of h){const w=p;w.length===1&&d.has(w)&&f.length>0?f[f.length-1]=f.at(-1)+w:f.push(w)}return f.length>0?f:[t]}return B(t,c,!1,e,(h,f)=>h==="hangul"&&f==="latin"||h==="latin"&&f==="hangul")}if(e.startsWith("sl")){const r=[...t],c=r.length,d=[];let h=r[0],f=r[0]===r[0].toLocaleUpperCase(e);for(let p=1;p<c;p++){const w=r[p],$=w===w.toLocaleUpperCase(e),m=Ao.test(w),v=p<c-1&&r[p+1]===r[p+1].toLocaleUpperCase(e);!f&&$||m&&v?(d.push(h),h=w,m&&v&&(d.push(h),h="")):h+=w,f=$}return h&&h.length>0&&d.push(h),d}if(e.startsWith("zh"))return B(t,{han:r=>je.test(r),latin:r=>L.test(r)},!1,e);if(["ar","fa","he","ur"].includes(e.split("-")[0])){const r=c=>Ue.test(c)||Le.test(c);return B(t,{latin:c=>L.test(c),rtl:c=>r(c)},!1,e)}if(["am","bn","gu","hi","km","kn","lo","ml","mr","ne","or","pa","si","ta","te","th"].includes(e.split("-")[0])){const r=c=>qt.test(c)||Ft.test(c)||Jt.test(c)||Ht.test(c)||Zt.test(c)||sn.test(c)||rn.test(c)||en.test(c)||on.test(c)||an.test(c)||Qt.test(c)||ln.test(c)||tn.test(c)||Gt.test(c)||Xt.test(c)||nn.test(c);return B(t,{indic:c=>r(c),latin:c=>L.test(c)},!1,e)}if(["be","bg","ru","sr","uk"].includes(e))return B(t,{cyrillic:r=>X.test(r),latin:r=>L.test(r)},!0,e);if(["ar","fa","he"].includes(e))return B(t,{latin:r=>L.test(r),rtl:r=>Ue.test(r)||Le.test(r)},!1,e);if(e.startsWith("ko"))return B(t,{hangul:r=>Pe.test(r),latin:r=>L.test(r)},!1,e);if(e.startsWith("uz")){if(!X.test(t)&&!L.test(t))return[t];const r=[...t],c=r.length,d=[];let h=r[0],f=r[0]===r[0].toLocaleUpperCase(e);for(let p=1;p<c;p++){const w=r[p],$=w===w.toLocaleUpperCase(e);if(Ve.test(w)||Ve.test(r[p-1])){h+=w;continue}!f&&$?(d.push(h),h=w):h+=w,f=$}return h&&h.length>0&&d.push(h),d}const i=[...t],s=i.length,l=[];let a=i[0],u=i[0]===i[0].toLocaleUpperCase(e);for(const r of n)if(t.startsWith(r)){l.push(r),a=i[r.length],u=a===a.toLocaleUpperCase(e);break}for(let r=1;r<s;r++){const c=i[r],d=c===c.toLocaleUpperCase(e);let h=0;for(const f of n)if(t.startsWith(f,r)){l.push(a,f),h=f.length,a="";const p=f.at(-1);p&&(u=p===p.toLocaleUpperCase(e));break}if(h>0){r+=h-1;continue}!u&&d?(l.push(a),a=c):a+=c,u=d}return a&&l.push(a),l},bo=(t,e,n)=>{const o=[],i=ce.test(t)?t.split(ce).filter(Boolean):[t];for(const s of i){const l=s;if(ce.test(l))o.push(l);else{F.lastIndex=0;const a=F.test(l)?xo(l).filter(Boolean):[l];for(const u of a)if(F.lastIndex=0,F.test(u))o.push(u);else if(e){const r=e.toLowerCase().split("-")[0];o.push(...wt(u,r,n))}else o.push(...gt(u,n))}}return o},Co=(t,e={})=>{if(!t||typeof t!="string")return[];const{handleAnsi:n=!1,handleEmoji:o=!1,knownAcronyms:i=[],locale:s,normalize:l=!1,separators:a,stripAnsi:u=!1,stripEmoji:r=!1}=e,c=new Set([...i].toSorted((m,v)=>v.length-m.length));let d=t;u&&(d=yo(d)),r&&(d=cn(d));let h;Array.isArray(a)?h=$o(a):a instanceof RegExp?h=a:h=Wt;const f=[];let p=d;const w=h.flags.includes("g")?h:new RegExp(h.source,`${h.flags}g`);for(;p.length>0;){const m=w.exec(p);if(!m){p===".."?f.push(".."):p==="."?f.push("."):p.length>0&&f.push(p);break}const v=m.index,A=m[0],k=A.length,C=p.slice(0,v),j=p.slice(v+k);if(A.startsWith("../"))f.push(".."),p=p.slice(v+3);else if(A.startsWith("./"))f.push("."),p=p.slice(v+2);else if(v===0&&A==="..")f.push(".."),p=p.slice(2);else if(v===0&&A===".")f.push("."),p=p.slice(1);else{C.length>0&&f.push(C);let _=0;for(;(_=A.indexOf("../",_))!==-1;)f.push(".."),_+=3;for(_=0;(_=A.indexOf("./",_))!==-1;)(_===0||A[_-1]!==".")&&f.push("."),_+=2;let g=j;for(;g.startsWith("../");)f.push(".."),g=g.slice(3);for(;g.startsWith("./");)f.push("."),g=g.slice(2);if(g===".."){f.push("..");break}else if(g==="."){f.push(".");break}else p=g}w.lastIndex=0}if(f.length===0){const m=d.split(h).filter(Boolean);f.push(...m)}let $=[];for(const m of f)n||o?$.push(...bo(m,s,c)):s?$.push(...wt(m,s,c)):$.push(...gt(m,c));return l&&($=$.map(m=>c.has(m)?m:s&&m===m.toLocaleUpperCase(s)?m[0]+m.slice(1).toLocaleLowerCase(s):m.toUpperCase()===m&&!c.has(m)?m.slice(0,1)+m.slice(1).toLowerCase():m)),$},ko=(t,e)=>typeof t!="string"||t===""?"":t[0].toUpperCase()+t.slice(1),Eo=(t,e)=>{const{length:n}=t;if(n===0)return"";if(n===1)return t[0];const o=[];let i="",s="";for(let l=0;l<n;l++){const a=t[l];if(ce.test(a)){i?(o.push(i+s+a),i="",s=""):(o.length>0&&o.push(e),i=a);continue}i?(s&&(s+=e),s+=a):(o.length>0&&o.push(e),o.push(a))}return o.join("")},Q=(t,e)=>{if(typeof t!="string"||!t)return"";let n=!0;return Eo(Co(t,{handleAnsi:e?.handleAnsi,handleEmoji:e?.handleEmoji,knownAcronyms:e?.knownAcronyms,locale:e?.locale,normalize:e?.normalize,separators:void 0,stripAnsi:e?.stripAnsi,stripEmoji:e?.stripEmoji}).map(o=>{const i=o,s=i.toLowerCase();return n?(n=!1,go(s)):ko(s)}),"")};class Oo extends b{commandName;missingOptions;constructor(e,n){super(`Command "${e}" is missing required options: ${n.join(", ")}`,"COMMAND_VALIDATION_ERROR",{commandName:e,missingOptions:n}),this.name="CommandValidationError",this.commandName=e,this.missingOptions=n,this.hint=`Provide the following required options: ${n.join(", ")}`}}class _o extends b{choices;option;value;constructor(e,n,o){super(`Invalid value "${n}" for option "${e}". Allowed values: ${o.join(", ")}`,"INVALID_CHOICE",{choices:o,option:e,value:n}),this.name="InvalidChoiceError",this.option=e,this.value=n,this.choices=o,this.hint=`Use one of: ${o.map(i=>`--${e} ${i}`).join(", ")}`}}const He=(t,e,n=!1)=>{const o=[],i=e._all??e;for(const s of t){if(!n&&!s.required)continue;const l=s.__camelCaseName__??s.name;if(i[l]===void 0){if(s.type?.name==="Boolean"){e[l]=!1;continue}o.push(s)}}return o},Io=(t,e)=>e.includes(t)?!0:Math.abs(t.length-e.length)>t.length/2?!1:pn(t,e)<=t.length/3,z=(t,e)=>{const n=t.toLowerCase();return e.filter(o=>Io(o.toLowerCase(),n))},So=(t,e)=>{const n=[];if(t._unknown&&t._unknown.forEach(o=>{const i=o.startsWith("--");let s=`Found unknown ${i?"option":"argument"} "${o}"`;if(i){const l=z(o.replace("--",""),(e.options??[]).map(a=>a.name));if(l.length>0){const[a,...u]=l.map(r=>`--${r}`);s+=u.length>0?`, did you mean ${a??""} or ${u.join(", ")}?`:`, did you mean ${a??""}?`}}n.push(s)}),n.length>0)throw new Error(n.join(`
|
|
1
|
+
import{createRequire as It}from"node:module";import{b as he,u as Ut,c as W,h as jt,i as be,d as Vt,a as Dt,l as Tt,e as Ie}from"./package-version-CJxZ_B7G.js";let St;const Lt=t=>(St??=It(import.meta.url))(t),ne=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Mt=t=>{if(typeof ne<"u"&&ne.versions&&ne.versions.node){const[e,n]=ne.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return ne.getBuiltinModule(t)}return Lt(t)},{createRequire:Pt}=Mt("node:module"),Rt=16,fe=32,Bt=64,T=128,le="positionals";let te=class extends Error{loc;title;hint;type="VisulimaError";constructor({cause:e,hint:n,location:o,message:i,name:s,stack:l,title:a}){super(i,{cause:e}),this.title=a,this.name=s,this.stack=l??this.stack,this.loc=o,this.hint=n}setLocation(e){this.loc=e}setName(e){this.name=e}setMessage(e){this.message=e}setHint(e){this.hint=e}},b=class extends te{code;context;constructor(e,n,o){super({message:e,name:"CerebroError"}),this.code=n,this.context=o}};const nt=String.raw,Se=nt`\p{Emoji}(?:\p{EMod}|[\u{E0020}-\u{E007E}]+\u{E007F}|\uFE0F?\u20E3?)`,zt=()=>new RegExp(nt`\p{RI}{2}|(?)${Se}(?:\u200D${Se})*`,"gu");Object.freeze(new Map([[0,0],[1,22],[2,22],[3,23],[4,24],[7,27],[8,28],[9,29],[30,39],[31,39],[32,39],[33,39],[34,39],[35,39],[36,39],[37,39],[40,49],[41,49],[42,49],[43,49],[44,49],[45,49],[46,49],[47,49],[90,39]]));const Zs=/[\u001B\u009B](?:[[()#;?]{0,10}(?:\d{1,4}(?:;\d{0,4})*)?[0-9A-ORZcf-nqry=><]|\]8;;[^\u0007\u001B]{0,100}(?:\u0007|\u001B\\))/g,Ys=/[\u0000-\u0008\n-\u001F\u007F-\u009F]{1,1000}/y,F=zt(),Wt=/[-_./\s]+/g,ce=/(\u001B\[[0-9;]*[a-z])/i,Le=new RegExp("\\p{Script=Arabic}","u"),Ft=new RegExp("\\p{Script=Bengali}","u"),X=new RegExp("\\p{Script=Cyrillic}","u"),qt=new RegExp("\\p{Script=Devanagari}","u"),Gt=new RegExp("\\p{Script=Ethiopic}","u"),me=new RegExp("\\p{Script=Greek}","u"),Me=new RegExp("\\p{Script=Greek}+|\\p{Script=Latin}+|[^\\p{Script=Greek}\\p{Script=Latin}]+","gu"),Jt=new RegExp("\\p{Script=Gujarati}","u"),Ht=new RegExp("\\p{Script=Gurmukhi}","u"),Pe=new RegExp("\\p{Script=Hangul}","u"),Ue=new RegExp("\\p{Script=Hebrew}","u"),Kt=new RegExp("\\p{Script=Hiragana}","u"),je=new RegExp("\\p{Script=Han}","u"),Zt=new RegExp("\\p{Script=Kannada}","u"),Yt=new RegExp("\\p{Script=Katakana}","u"),Xt=new RegExp("\\p{Script=Khmer}","u"),Qt=new RegExp("\\p{Script=Lao}","u"),L=new RegExp("\\p{Script=Latin}","u"),en=new RegExp("\\p{Script=Malayalam}","u"),tn=new RegExp("\\p{Script=Myanmar}","u"),nn=new RegExp("\\p{Script=Oriya}","u"),on=new RegExp("\\p{Script=Sinhala}","u"),sn=new RegExp("\\p{Script=Tamil}","u"),rn=new RegExp("\\p{Script=Telugu}","u"),an=new RegExp("\\p{Script=Thai}","u"),ln=new RegExp("\\p{Script=Tibetan}","u"),Ve=/[\u02BB\u02BC\u0027]/u,cn=t=>t.replace(F,""),R=new Uint32Array(65536),un=(t,e)=>{const n=t.length,o=e.length,i=1<<n-1;let s=-1,l=0,a=n,u=n;for(;u--;)R[t.charCodeAt(u)]|=1<<u;for(u=0;u<o;u++){let r=R[e.charCodeAt(u)];const c=r|l;r|=(r&s)+s^s,l|=~(r|s),s&=r,l&i&&a++,s&i&&a--,l=l<<1|1,s=s<<1|~(c|l),l&=c}for(u=n;u--;)R[t.charCodeAt(u)]=0;return a},hn=(t,e)=>{const n=e.length,o=t.length,i=[],s=[],l=Math.ceil(n/32),a=Math.ceil(o/32);for(let p=0;p<l;p++)s[p]=-1,i[p]=0;let u=0;for(;u<a-1;u++){let p=0,w=-1;const $=u*32,m=Math.min(32,o)+$;for(let v=$;v<m;v++)R[t.charCodeAt(v)]|=1<<v;for(let v=0;v<n;v++){const A=R[e.charCodeAt(v)],k=s[v/32|0]>>>v&1,C=i[v/32|0]>>>v&1,j=A|p,_=((A|C)&w)+w^w|A|C;let g=p|~(_|w),y=w&_;g>>>31^k&&(s[v/32|0]^=1<<v),y>>>31^C&&(i[v/32|0]^=1<<v),g=g<<1|k,y=y<<1|C,w=y|~(j|g),p=g&j}for(let v=$;v<m;v++)R[t.charCodeAt(v)]=0}let r=0,c=-1;const d=u*32,h=Math.min(32,o-d)+d;for(let p=d;p<h;p++)R[t.charCodeAt(p)]|=1<<p;let f=o;for(let p=0;p<n;p++){const w=R[e.charCodeAt(p)],$=s[p/32|0]>>>p&1,m=i[p/32|0]>>>p&1,v=w|r,A=((w|m)&c)+c^c|w|m;let k=r|~(A|c),C=c&A;f+=k>>>o-1&1,f-=C>>>o-1&1,k>>>31^$&&(s[p/32|0]^=1<<p),C>>>31^m&&(i[p/32|0]^=1<<p),k=k<<1|$,C=C<<1|m,c=C|~(v|k),r=k&v}for(let p=d;p<h;p++)R[t.charCodeAt(p)]=0;return f},pn=(t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return e.length===0?t.length:t.length<=32?un(t,e):hn(t,e)};let dn;const fn=t=>(dn??=Pt(import.meta.url))(t),oe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,mn=t=>{if(typeof oe<"u"&&oe.versions&&oe.versions.node){const[e,n]=oe.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return oe.getBuiltinModule(t)}return fn(t)},{writeFile:gn,stat:wn,rm:yn,readFile:De,readdir:vn,mkdir:$n,access:xn}=mn("node:fs/promises"),re=[{alias:"v",description:"Turn on verbose output",group:"global",name:"verbose",type:Boolean},{description:"Turn on debugging output",group:"global",name:"debug",type:Boolean},{alias:"h",description:"Print out helpful usage information",group:"global",name:"help",type:Boolean},{alias:"q",description:"Silence output",group:"global",name:"quiet",type:Boolean},{alias:"V",description:"Print version info",group:"global",name:"version",type:Boolean},{description:"Turn off colored output",group:"global",name:"no-color",type:Boolean},{description:"Force colored output",group:"global",name:"color",type:Boolean}];let G=class extends b{commandName;constructor(e,n=[]){const o=`Command "${e}" not found${n.length>0?`. Did you mean: ${n.join(", ")}?`:""}`;super(o,"COMMAND_NOT_FOUND",{commandName:e,suggestions:n}),this.name="CommandNotFoundError",this.commandName=e,n.length>0&&(this.hint=`Try one of these commands: ${n.join(", ")}`)}},ot=class extends b{option1;option2;constructor(e,n){super(`Options "${e}" and "${n}" cannot be used together`,"CONFLICTING_OPTIONS",{option1:e,option2:n}),this.name="ConflictingOptionsError",this.option1=e,this.option2=n,this.hint=`Remove either --${e} or --${n}`}};class An extends b{unknownOptions;constructor(e,n){const o=e.join(", "),i=`Found unknown ${e.length===1?"option":"options"}: ${o}`;super(i,"UNKNOWN_OPTION",{suggestions:n,unknownOptions:e}),this.name="UnknownOptionError",this.unknownOptions=e,n&&n.length>0&&(this.hint=`Did you mean: ${n.join(", ")}?`)}}class Nn extends b{pluginName;constructor(e,n,o){super(`Plugin "${e}" error: ${n}`,"PLUGIN_ERROR",{originalError:o,pluginName:e}),this.name="PluginError",this.pluginName=e,o&&(this.cause=o)}}class bn{logger;plugins=new Map;initialized=!1;cachedDependencyOrder=void 0;constructor(e){this.logger=e}hasPlugins(){return this.plugins.size>0}register(e){if(this.initialized)throw new Error(`Cannot register plugin "${e.name}" after initialization`);if(this.plugins.has(e.name))throw new Error(`Plugin "${e.name}" is already registered`);he().CEREBRO_OUTPUT_LEVEL===String(T)&&this.logger.debug(`registering plugin: ${e.name}`),this.plugins.set(e.name,e),this.cachedDependencyOrder=void 0}async init(e){if(this.initialized)throw new Error("PluginManager already initialized");if(this.plugins.size===0){this.logger.debug("no plugins registered, skipping initialization"),this.initialized=!0;return}this.validateDependencies();const n=this.getDependencyOrder();this.logger.debug(`initializing ${String(n.length)} plugin(s)...`);for(const o of n)if(typeof o.init=="function"){this.logger.debug(`initializing plugin: ${o.name}`);try{await o.init(e)}catch(i){const s=new Nn(o.name,`Failed to initialize: ${i instanceof Error?i.message:String(i)}`,i instanceof Error?i:void 0);throw this.logger.error(s.message),s}}this.initialized=!0}async executeLifecycle(e,n,o){if(!this.initialized)throw new Error("PluginManager not initialized");if(this.plugins.size===0)return;const i=this.getDependencyOrder();for(const s of i){const l=s[e];if(typeof l=="function"){this.logger.debug(`executing ${e} hook for plugin: ${s.name}`);try{await(e==="afterCommand"?l(n,o):l(n))}catch(a){throw this.logger.error(`Error in ${e} hook for plugin "${s.name}":`,a),a}}}}async executeErrorHandlers(e,n){if(!this.initialized||this.plugins.size===0)return;const o=this.getDependencyOrder();for(const i of o)if(typeof i.onError=="function"){this.logger.debug(`executing error handler for plugin: ${i.name}`);try{await i.onError(e,n)}catch(s){this.logger.error(`Error in error handler for plugin "${i.name}":`,s)}}}getDependencyOrder(){if(this.cachedDependencyOrder!==void 0)return this.cachedDependencyOrder;const e=[],n=new Set,o=new Set,i=s=>{if(n.has(s))return;if(o.has(s))throw new Error(`Circular dependency detected involving plugin "${s}"`);const l=this.plugins.get(s);if(!l)throw new Error(`Plugin "${s}" not found`);if(o.add(s),l.dependencies)for(const a of l.dependencies)i(a);o.delete(s),n.add(s),e.push(l)};for(const s of this.plugins.keys())i(s);return this.cachedDependencyOrder=e,e}validateDependencies(){for(const e of this.plugins.values())if(e.dependencies){for(const n of e.dependencies)if(!this.plugins.has(n))throw new Error(`Plugin "${e.name}" depends on "${n}" which is not registered`)}}}const se=t=>t.type?.name==="Boolean",Cn=t=>{let e=t.type?t.type.name.toLowerCase():"string";const n=t.multiple??t.lazyMultiple?"[]":"";return e&&(e=e==="boolean"?"":`{underline ${e}${n}}`),e},Te=t=>(se(t)||(t.typeLabel=t.typeLabel??Cn(t),t.defaultOption&&(t.typeLabel=`${t.typeLabel} (D)`),t.required&&(t.typeLabel=`${t.typeLabel} (R)`)),t),kn=new RegExp(/^-([^\d-])$/),En=new RegExp(/^--(\S+)/),On=new RegExp(/^-([^\d-]{2,})$/),_n=t=>kn.test(t)||En.test(t)||On.test(t),In=(t,e)=>{const n=e[0]&&_n(e[0])||e.length===0?null:e.shift()??null;if(!t.includes(n)){const o=new Error(`Command not recognised: ${String(n)}`);throw o.command=n,o.name="INVALID_COMMAND",o}return{argv:e,command:n}};let Sn=class st extends te{optionName;value;constructor(e,n,o){super({hint:`Pass a valid ${o} value for '${e}'.`,message:`Invalid ${o} value '${n}' for option '${e}'`,name:"INVALID_VALUE",title:"Invalid Value"}),this.optionName=e,this.value=n,Object.setPrototypeOf(this,st.prototype)}},Ln=class it extends te{optionName;constructor(e){super({cause:void 0,hint:`Remove the duplicate option '${e}' from your command line arguments.`,location:void 0,message:`Option '${e}' is already set`,name:"ALREADY_SET",stack:void 0,title:"Option Already Set"}),this.optionName=e,Object.setPrototypeOf(this,it.prototype)}},Re=class rt extends te{optionName;constructor(e){super({cause:void 0,hint:`Check your option definitions or remove the unknown option '${e}' from your command line arguments.`,location:void 0,message:`Unknown option: --${e}`,name:"UNKNOWN_OPTION",stack:void 0,title:"Unknown Option"}),this.optionName=`--${e}`,Object.setPrototypeOf(this,rt.prototype)}},Mn=class at extends te{value;constructor(e){super({hint:"Use a defined option or add a defaultOption to capture this value.",message:`Unknown value: ${e}`,name:"UNKNOWN_VALUE",title:"Unknown Value"}),this.value=e,Object.setPrototypeOf(this,at.prototype)}},M=class lt extends te{constructor(e,n){super({cause:void 0,hint:n,location:void 0,message:e,name:"INVALID_DEFINITIONS",stack:void 0,title:"Invalid Option Definition"}),Object.setPrototypeOf(this,lt.prototype)}};const H=t=>t===Boolean||typeof t=="function"&&t.name==="Boolean",Ce=t=>t===Number||typeof t=="function"&&t.name==="Number",Be=t=>t===String||typeof t=="function"&&t.name==="String",ze=(t,e,n)=>{const o=Number(t);if(e&&Number.isNaN(o)&&String(t).trim().toLowerCase()!=="nan")throw new Sn(n??"",String(t),"Number");return o},Pn=(t,e,n={})=>{const{optionName:o,strictTypes:i}=n;return Array.isArray(t)?H(e)?t.map(Boolean):Ce(e)?t.map(s=>ze(s,i,o)):Be(e)?t.map(String):t.map(s=>e(String(s))):t===null?null:H(e)?!!t:Ce(e)?ze(t,i,o):Be(e)?typeof t=="string"?t:String(t):e(typeof t=="string"?t:String(t))},O=(t,e,n,...o)=>{t&&console.debug(`[command-line-args:${n}] ${e}`,...o)},Un=/-([a-z])/g,jn=/^\d+$/,Vn=t=>t.codePointAt(0)===95,We=(t,e)=>Array.isArray(t)?[...t,...e]:[t,...e],Fe=t=>t==="__proto__"||t==="constructor"||t==="prototype",ge=(t,e,n,o=!1)=>{t[e]===void 0?t[e]=o?[n]:n:o&&Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]},qe=(t,e,n,o,i)=>{let s=e.get(t)??n.get(t);if(!s&&o){const l=t.toLowerCase();s=o.get(l)??i?.get(l)}return s},Dn=(t,e,n,o)=>{const i=n.debug??!1;O(i,"resolveArgs called with options:","resolver",{partial:n.partial,stopAtFirstUnknown:n.stopAtFirstUnknown}),O(i,"Starting argument resolution","resolver"),O(i,"Tokens:","resolver",t),O(i,"Definitions:","resolver",e),O(i,"Processing tokens...","resolver");const s=new Map,l=new Map,a=n.caseInsensitive?new Map:void 0,u=n.caseInsensitive?new Map:void 0,r=n.camelCase?new Map:void 0,c=n.camelCase?new Map:void 0;for(const g of e)if(s.set(g.name,g),g.alias&&l.set(g.alias,g),n.caseInsensitive&&a&&(a.set(g.name.toLowerCase(),g),g.alias&&u&&u.set(g.alias.toLowerCase(),g)),n.camelCase&&r&&c){const y=g.name.replaceAll(Un,(x,I)=>I.toUpperCase());r.set(g.name,y),c.set(y,g.name)}const d=Object.create(null),h=Object.create(null),f=[],p=[],w=new Set;let $=!1;const m=e.find(g=>g.defaultOption),v=e.some(g=>g.group),A=e.find(g=>Ce(g.type));for(let g=0;g<t.length;g++){const y=t[g];if(y.kind==="option-terminator"){d._unknown=o.slice(y.index),$=!0;break}if(y.kind==="option"&&y.name){let x=qe(y.name,s,l,a,u);!x&&y.value===void 0&&A&&jn.test(y.name)&&(x=A,y.value=y.name,y.name=A.name);let I=!1;if(!x&&n.negation&&y.value===void 0&&y.name.startsWith("no-")){const E=y.name.slice(3),U=qe(E,s,l,a,u);U?.type&&H(U.type)&&(x=U,I=!0)}const N=x?x.name:y.name,S=x?.multiple,P=x?.lazyMultiple;if(Object.hasOwn(h,N)&&h[N]!==void 0&&!S&&!P&&!n.partial)throw new Ln(N);if(!x&&n.partial){const E=y.rawName??`--${y.name}${y.value!==void 0&&y.inlineValue?`=${y.value}`:""}`;f.push({index:y.index,value:E});continue}if(!x&&n.stopAtFirstUnknown){d._unknown=o.slice(y.index);break}if(!x&&!n.partial)throw new Re(y.name);if(y.value===void 0){const E=t[g+1],U=E?.kind==="option"&&!("name"in E)&&E.value!==void 0,V=E&&x&&!(x.type&&H(x.type))&&(E.kind==="positional"||U),_t=x&&x.defaultOption&&!x.multiple&&!x.lazyMultiple;if(V&&(!x?.defaultOption||_t))if(S){let D=g+1;const de=[];for(;D<t.length&&(t[D].kind==="positional"||t[D].kind==="option"&&!("name"in t[D])&&t[D].value!==void 0);)de.push(t[D].value),w.add(t[D].index),D++;h[N]=h[N]===void 0?de:We(h[N],de),g=D-1}else P?(ge(h,N,E.value,!0),w.add(E.index),g++):(h[N]=E.value,w.add(E.index),g++);else x?.type&&H(x.type)?ge(h,N,!I,S):(S||P)&&h[N]!==void 0?ge(h,N,null,!0):h[N]=S?[]:null}else{let{value:E}=y;if(x?.type&&H(x.type))switch(E){case"":{if(n.partial){const V=`${y.rawName??`--${y.name}`}${y.value?`=${y.value}`:""}`;p.push({index:y.index,value:V}),E=!0}else throw new Re(y.name);break}case"false":{E=!1;break}case"true":{E=!0;break}default:E=!0}const U=[E];if(S){let V=g+1;for(;V<t.length&&t[V].kind==="positional";)U.push(t[V].value),w.add(t[V].index),V++;g=V-1}h[N]===void 0?h[N]=S||P?U:E:S||P?h[N]=We(h[N],U):h[N]=E}}else if(y.kind==="positional"&&n.stopAtFirstUnknown&&!w.has(y.index)&&!m){O(i,`Found unconsumed positional token at index ${String(y.index)}, stopping processing`,"resolver"),d._unknown=o.slice(y.index);break}}for(const[g,y]of Object.entries(h)){const x=s.get(g);x&&(x.multiple||x.lazyMultiple)&&!Array.isArray(y)&&(h[g]=[y])}const k=g=>g.kind==="option"&&!s.has(g.name??"")&&!l.has(g.name??"")&&(!n.caseInsensitive||!a?.has(g.name?.toLowerCase()??"")&&!u?.has(g.name?.toLowerCase()??""));let C=-1,j=Number.POSITIVE_INFINITY;if(n.stopAtFirstUnknown&&!$&&(C=t.findIndex(g=>k(g)),C!==-1&&(j=t[C].index)),m){const g=[],y=[];for(const x of t)x.kind==="positional"&&!w.has(x.index)&&x.index<j&&(g.push(x.value),y.push(x));if(g.length>0){const x=h[m.name],I=m.multiple??m.lazyMultiple;x===void 0?I?(y.forEach(N=>w.add(N.index)),h[m.name]=g):(w.add(y[0].index),h[m.name]=g[0]):I&&(y.forEach(N=>w.add(N.index)),h[m.name]=Array.isArray(x)?[...g,...x]:[...g,x])}}if(!n.partial){for(const g of t)if(g.kind==="positional"&&!w.has(g.index))throw new Mn(o[g.index])}if(n.partial&&!n.stopAtFirstUnknown){const g=[...f];for(const y of p)g.push({index:y.index,value:y.value});for(const y of t)y.kind==="positional"&&!w.has(y.index)&&g.push({index:y.index,value:o[y.index]});g.length>0&&(g.sort((y,x)=>y.index-x.index),d._unknown=g.map(y=>y.value))}if(n.stopAtFirstUnknown&&!$){const g=t.findIndex(x=>x.kind==="positional"&&!w.has(x.index));let y=-1;if(C!==-1&&g!==-1?y=Math.min(C,g):C!==-1?y=C:g!==-1&&(y=g),y>=0){const x=t[y].index;d._unknown=o.slice(x)}}for(const[g,y]of Object.entries(h)){const x=n.camelCase?r?.get(g)??g:g,I=s.get(g);I?.type?d[x]=Pn(y,I.type,{optionName:I.name,strictTypes:n.strictTypes}):d[x]=y===void 0?null:y}for(const g of e){const y=n.camelCase?r?.get(g.name)??g.name:g.name;!(y in d)&&g.defaultValue!==void 0&&(g.multiple??g.lazyMultiple?d[y]=Array.isArray(g.defaultValue)?[...g.defaultValue]:[g.defaultValue]:d[y]=g.defaultValue)}if(v){const g={},y={},x={};for(const N of e)if(N.group){const S=Array.isArray(N.group)?N.group:[N.group];for(const P of S)Fe(P)||(g[P]??={})}for(const N of Object.keys(d))if(!Vn(N)){y[N]=d[N];let S=N;n.camelCase&&(S=c?.get(N)??N);const P=s.get(S);if(P?.group){const E=Array.isArray(P.group)?P.group:[P.group];for(const U of E)Fe(U)||g[U]&&(g[U][N]=d[N])}else x[N]=d[N]}const I={_all:y};for(const[N,S]of Object.entries(g))I[N]=S;Object.keys(x).length>0&&(I._none=x),d._unknown&&(I._unknown=d._unknown),Object.keys(d).forEach(N=>delete d[N]),Object.assign(d,I)}const _=Object.defineProperties({},Object.getOwnPropertyDescriptors(d));return O(i,"Final parsed result:","resolver",_),_},ct="-",ee=ct.codePointAt(0),K="=",Tn=K.codePointAt(0),Rn="--",Bn=ct,zn="--",ut=t=>t.length>2&&t.startsWith(zn),Wn=t=>ut(t)&&!t.includes(K,3),Fn=t=>ut(t)&&t.includes(K,3),qn=t=>{if(t.length!==2||t.codePointAt(0)!==ee||t.codePointAt(1)===ee)return!1;const e=t.codePointAt(1);return e!==void 0&&(e<48||e>57)},Gn=t=>{if(t.length<=2||t.codePointAt(0)!==ee||t.codePointAt(1)===ee)return!1;const e=t.codePointAt(1);return!(e!==void 0&&e>=48&&e<=57)},Jn=t=>{const e=[];let n=0,o=[],i=0,s=-1,l=0;for(;i<o.length||n<t.length;){let a;if(i<o.length?(a=o[i],i++):(a=t[n],n++),l>0?l--:s++,a===Rn){e.push({index:s,kind:"option-terminator"});const u=[...o.slice(i),...t.slice(n)],r=u.map((c,d)=>({index:s+d+1,kind:"positional",value:c}));e.push(...r),s+=u.length;break}if(qn(a)){const u=a.charAt(1);e.push({index:s,kind:"option",name:u,rawName:a});continue}if(Gn(a)&&!a.includes(K)){const u=[];let r="",c=!1;for(let d=1;d<a.length;d++){const h=a.charAt(d);c?r+=h:h.codePointAt(0)===Tn?c=!0:u.push(`${Bn}${h}`)}if(c)if(u.length>0){const d=u.pop();u.push(`${d}=${r}`)}else u.push(r);o=i<o.length?[...u,...o.slice(i)]:u,i=0,l=u.length;continue}if(Wn(a)){const u=a.slice(2);e.push({index:s,kind:"option",name:u,rawName:a});continue}if(Fn(a)){const u=a.indexOf(K),r=a.slice(2,u),c=a.slice(u+1);e.push({index:s,inlineValue:!0,kind:"option",name:r,rawName:a,value:c});continue}if(a.length>2&&a.codePointAt(0)===ee&&a.codePointAt(1)!==ee&&a.includes(K)){const u=a.indexOf(K),r=a.charAt(1),c=a.slice(u+1);e.push({index:s,inlineValue:!0,kind:"option",name:r,rawName:a,value:c});continue}e.push({index:s,kind:"positional",value:a})}return e},Hn=/\d/,Kn=t=>typeof t=="function",Zn=(t,e,n)=>{const o=n?.debug??!1;O(o,"Validating definitions:","validation",t,"caseInsensitive:",e);const i=new Set,s=new Set,l=new Set,a=new Set;let u=0;for(const r of t){if(O(o,"Checking definition:","validation",r),!r.name)throw O(o,"Validation failed: name is required","validation"),new M("Invalid option definition: name is required");if(typeof r.name!="string")throw new M("Invalid option definition: name must be a string");if(r.name.trim()==="")throw new M("Invalid option definition: name cannot be empty");const c=e?r.name.toLowerCase():"";if(i.has(r.name)||e&&l.has(c))throw new M(`Invalid option definition: duplicate name '${r.name}'`);if(s.has(r.name)||e&&a.has(c))throw new M(`Invalid option definition: name '${r.name}' conflicts with an existing alias`);if(i.add(r.name),e&&l.add(c),r.alias!==void 0){if(typeof r.alias!="string")throw new M("Invalid option definition: alias must be a string");if(r.alias.length!==1)throw new M("Invalid option definition: alias must be a single character");if(Hn.test(r.alias))throw new M("Invalid option definition: alias cannot be numeric");if(r.alias==="-")throw new M('Invalid option definition: alias cannot be "-"');const d=e?r.alias.toLowerCase():"";if(s.has(r.alias)||e&&a.has(d))throw new M(`Invalid option definition: duplicate alias '${r.alias}'`);if(i.has(r.alias)||e&&l.has(d))throw new M(`Invalid option definition: alias '${r.alias}' conflicts with an existing option name`);s.add(r.alias),e&&a.add(d)}if(r.defaultOption&&(u++,r.type!==void 0&&H(r.type)))throw new M("Invalid option definition: defaultOption cannot be Boolean type");if(r.type!==void 0&&!(r.type===Boolean||r.type===Number||r.type===String||typeof r.type=="function"&&Kn(r.type)))throw new M("Invalid option definition: invalid type")}if(u>1)throw O(o,"Validation failed: multiple defaultOptions not allowed","validation"),new M("Invalid option definition: multiple defaultOptions not allowed");O(o,"Validation completed successfully","validation")};function Yn(t,e={}){const n=e.debug??!1;O(n,"Starting command-line-args parsing","index"),O(n,"Options:","index",e);const o={...e};o.stopAtFirstUnknown&&(o.partial=!0);const i=Array.isArray(t)?t:[t];O(n,"Normalized definitions:","index",i),Zn(i,o.caseInsensitive,n?o:void 0);let{argv:s}=o;s??=process.argv.slice(2),O(n,"Using argv:","index",s);let l=s;o.caseInsensitive&&(l=s.map(r=>{if(r.startsWith("--")){const c=r.indexOf("="),d=(c===-1?r.slice(2):r.slice(2,c)).toLowerCase();return c===-1?`--${d}`:`--${d}${r.slice(c)}`}if(r.startsWith("-")&&!r.startsWith("--")&&r.length>1){const c=r.indexOf("="),d=c===-1?r.slice(1):r.slice(1,c);if(!d)return r;const h=d.toLowerCase();return c===-1?`-${h}`:`-${h}${r.slice(c)}`}return r}));const a=Jn(l.map(String));O(n,"Tokenized arguments:","index",a);const u=Dn(a,i,o,s);return O(n,"Command-line-args parsing completed","index"),u}class Xn{result;argv;options;argument;command;commandName;env;logger;console;fs;process;runtime;rawUnknown;constructor(e,n){this.commandName=e,this.command=n}}let we=class extends b{commandName;constructor(e,n,o){super(`Failed to load command "${e}": ${n}`,"COMMAND_LOADER_ERROR",{commandName:e,reason:n}),this.name="CommandLoaderError",this.commandName=e,this.hint="Ensure the loader resolves to a module with a default export that is the command handler function.",o!==void 0&&(this.cause=o)}};const Qn=/^-{1,2}(\w+)(=(.+))?$/,ht=(t,e,n,o)=>{const i=Qn.exec(t);if(i===null)return{};const s=i[1];if(!s)return{};const l=n&&o?n.get(s)??o.get(s):e.find(a=>a.name===s||a.alias===s);return l!==void 0?{argName:l.name,argValue:i[3],option:l}:{}},Ge=(t,e)=>{if(e.type===void 0)return t;if(e.type.name==="Boolean"){if(t==="true"||t==="1")return e.type(!0);if(t==="false"||t==="0")return e.type(!1)}return e.type(t)},eo=new Set(["0","1","false","true"]),to=(t,e,n,o)=>{if(e.length===0||t.length===0)return{};const i=(s,l)=>{const{argName:a,argValue:u,option:r}=ht(l,e,n,o),{lastOption:c}=s;return r&&se(r)&&u&&a?s.partial[a]=Ge(u,r):s.lastName&&c&&se(c)&&eo.has(l)&&(s.partial[s.lastName]=Ge(l,c)),{lastName:a,lastOption:r,partial:s.partial}};return t.reduce(i,{partial:{}}).partial},no=new Set(["0","1","false","true"]),oo=(t,e,n,o)=>{if(e.length===0||t.length===0)return t;const i=(s,l)=>{const{argValue:a,option:u}=ht(l,e,n,o),{lastOption:r}=s;if(r&&se(r)&&no.has(l)){const{args:c}=s;return{args:c.slice(0,-1)}}return u&&se(u)&&a?{args:s.args}:{args:[...s.args,l],lastOption:u}};return t.reduce(i,{args:[]}).args},so=t=>{const e=new Map;for(const n of t){const o=e.get(n.name);o?e.set(n.name,{...o,...n}):e.set(n.name,n)}return[...e.values()]},io=t=>{if(t===void 0)return;const e=t.toLowerCase().trim();return e==="true"||e==="1"||e==="yes"||e==="on"},ro=(t,e)=>{if(!t.type)return e;if(e!==void 0){if(t.type===Boolean||typeof t.type=="function"&&t.type.name==="Boolean")return io(e);if(t.type===Number||typeof t.type=="function"&&t.type.name==="Number"){const n=Number.parseFloat(e);return Number.isNaN(n)?void 0:n}return t.type===String||typeof t.type=="function"&&t.type.name==="String"?e:t.type(e)}},ao=/_./g,lo=/^[A-Z]/,co=t=>t.toLowerCase().replaceAll(ao,e=>e[1]?.toUpperCase()??e).replace(lo,e=>e.toLowerCase()),uo=(t,e=he())=>{if(!t||t.length===0)return{};const n={};for(const o of t){const i=e[o.name],s=ro(o,i),l=s===void 0?o.defaultValue:s,a=co(o.name);n[a]=l}return n},ho=t=>{const e=new Map,n=new Map;for(const o of t)if(e.set(o.name,o),o.alias){const i=Array.isArray(o.alias)?o.alias:[o.alias];for(const s of i)n.set(s,o)}return{optionMapByAlias:n,optionMapByName:e}},pt=async t=>{if(typeof t.__resolvedExecute__=="function")return t.__resolvedExecute__;if(typeof t.loader!="function")throw new we(t.name,"no execute or loader defined");let e;try{e=await t.loader()}catch(o){throw new we(t.name,o instanceof Error?o.message:String(o),o)}const n=e.default;if(typeof n!="function")throw new we(t.name,"loader did not return a module with a default-exported handler function");return t.__resolvedExecute__=n,n},po=(t,e,n,o,i)=>{const s=new Xn(t.name,t),{_all:l,_unknown:a,positionals:u}=e,r=Object.keys(n).length>0?{...l,...n}:l;le in r&&delete r[le],s.argument=u?.[le]??[],s.rawUnknown=[...a??[]];const c=Object.keys(o).length>0;return s.options=c?{...r,...o}:r,s.env=uo(t.env,i),s},fo=(t,e,n)=>{const o=t.options??[],i=o.length>0;let s=so(i?[...o,...n]:n);if(s.length>0){for(const r of s)if(r.multiple&&r.lazyMultiple)throw new Error(`Argument "${r.name}" cannot have both multiple and lazyMultiple options, please choose one.`)}t.argument&&(s=[{defaultOption:!0,description:t.argument.description,group:"positionals",multiple:!0,name:le,type:t.argument.type,typeLabel:t.argument.typeLabel},...s]);let l,a;if(i){const{optionMapByAlias:r,optionMapByName:c}=ho(o);l=oo(e,o,c,r),a=to(e,o,c,r)}else l=e,a={};const u=Yn(s,{argv:l,camelCase:!0,partial:!0,stopAtFirstUnknown:!0});return{arguments_:s,booleanValues:a,parsedArgs:u}},ye=async(t,e,n)=>typeof t.execute=="function"?t.execute(e):(await pt(t))(e);let mo=class{capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;const e=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,e),e}has(t){return this.cache.has(t)}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){const n=this.cache.keys().next().value;n!==void 0&&this.cache.delete(n)}this.cache.set(t,e)}delete(t){this.cache.delete(t)}clear(){this.cache.clear()}size(){return this.cache.size}};const go=(t,e)=>typeof t!="string"||t===""?"":t[0].toLowerCase()+t.slice(1),wo=new RegExp("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))","g"),yo=t=>{if(typeof t!="string")throw new TypeError(`The "value" argument must be of type string. Received ${typeof t}`);return t.replaceAll(wo,"")},ve=new mo(1e3),vo=/[.*+?^${}()|[\]\\]/g,$o=t=>{const e=t.join("");if(ve.has(e)){const i=ve.get(e);return i.lastIndex=0,i}const n=t.map(i=>i.replaceAll(vo,String.raw`\$&`)).join("|"),o=new RegExp(n,"g");return ve.set(e,o),o},xo=t=>{const e=[];let n=0,o;for(F.lastIndex=0;(o=F.exec(t))!==null;)o.index>n&&e.push(t.slice(n,o.index)),e.push(o[0]),n=F.lastIndex;return n<t.length&&e.push(t.slice(n)),e.filter(Boolean)},Ao=/[ČŠŽĐ]/i,dt=new Uint8Array(128),ft=new Uint8Array(128),mt=new Uint8Array(128);for(let t=0;t<128;t++)dt[t]=t>=65&&t<=90?1:0,ft[t]=t>=97&&t<=122?1:0,mt[t]=t>=48&&t<=57?1:0;const $e=t=>dt[t],Je=t=>ft[t],xe=t=>mt[t],B=(t,e,n,o,i)=>{if(t.length===0)return[];let s=!1;const l=Object.values(e);for(const f of l)if(f(t[0])){s=!0;break}if(!s&&!n)return[t];const a=[...t],u=[];let r=a[0],c="other";const d=Object.entries(e);for(const f of d){const[p,w]=f;if(w(a[0])){c=p;break}}let h=n&&o?a[0]===a[0].toLocaleUpperCase(o):!1;for(let f=1;f<a.length;f++){const p=a[f];let w="other";for(const v of d){const[A,k]=v;if(k(p)){w=A;break}}const $=n&&o?p===p.toLocaleUpperCase(o):!1;let m=!1;i?m=i(c,w,h,$,p,f,a):(c!==w&&c!=="other"&&w!=="other"&&(m=!0),n&&w!=="other"&&!h&&$&&(m=!0)),m?(u.push(r),r=p):r+=p,c=w,n&&(h=$)}return r&&r.length>0&&u.push(r),u.length>0?u:[t]},No=(t,e,n,o)=>{if(n.size===0)return e;for(const i of n)if(t.startsWith(i,e))return o.push(i),e+i.length;return e},gt=(t,e=new Set)=>{if(t.length===0)return[];if(t.toUpperCase()===t)return[t];let n=0;const o=[],i=t.length;for(let s=1;s<i;s++){const l=No(t,n,e,o);if(l!==n){n=l,s=n-1;continue}const a=t.codePointAt(s-1),u=t.codePointAt(s),r=a&&a<128&&$e(a),c=u&&u<128&&$e(u),d=a&&a<128&&Je(a),h=a&&a<128&&xe(a),f=u&&u<128&&xe(u);if(d&&c){o.push(t.slice(n,s)),n=s;continue}if(h&&!f||!h&&f){o.push(t.slice(n,s)),n=s;continue}if(f&&!h){let p=!1,w=!1;if(s+1<i){const $=t.codePointAt(s+1);p=$&&$<128&&$e($),w=$&&$<128&&xe($)}if(!w&&p){o.push(t.slice(n,s),t.slice(s,s+1)),n=s+1;continue}}if(s+1<i){const p=t.codePointAt(s+1),w=p&&p<128&&Je(p);if(r&&c&&w){const $=t.slice(n,s+1);e.has($)||(o.push(t.slice(n,s)),n=s)}}}return n<i&&o.push(t.slice(n)),o.filter(s=>s!=="")},wt=(t,e,n)=>{if(t.length===0)return[];const o=t===t.toLocaleUpperCase(e);if(e.startsWith("de")){if(!o&&t.replaceAll("ß","SS")===t.toLocaleUpperCase(e))return[t];const r=[...t],c=r.length,d=[];let h=r[0],f=r[0]===r[0].toLocaleUpperCase(e),p=f,w=f?0:-1;for(let $=1;$<c;$++){const m=r[$],v=m===m.toLocaleUpperCase(e);if(v===f)h+=m;else if(v)h&&h.length>0&&(d.push(h),h=m),p=!0,w=$;else{if(p&&$-w>1){const A=r[$-1],k=h.slice(0,-1);k&&k.length>0&&d.push(k),h=A+m}else h+=m;p=!1,w=-1}f=v}return h&&h.length>0&&d.push(h),d}if(e.startsWith("uk")||e.startsWith("ru")||e.startsWith("bg")||e.startsWith("sr")||e.startsWith("mk")||e.startsWith("be")){if(!X.test(t)&&!L.test(t))return[t];const r=[...t],c=r.length,d=[];let h=r[0];const f=r[0];let p;X.test(f)?p=1:L.test(f)?p=2:p=0;let w=f===f.toLocaleUpperCase(e);for(let m=1;m<c;m++){const v=r[m];let A;X.test(v)?A=1:L.test(v)?A=2:A=0;const k=v===v.toLocaleUpperCase(e);p!==A&&(p===1||p===2)&&(A===1||A===2)||A===p&&!w&&k?(d.push(h),h=v):h+=v,p=A,w=k}h&&h.length>0&&d.push(h);const $=[];for(let m=0;m<d.length;m++)m<d.length-1&&d[m].length===1&&L.test(d[m])&&X.test(d[m+1][0])?($.push(d[m]+d[m+1]),m+=1):$.push(d[m]);return $}if(e.startsWith("el")){if(!me.test(t)&&!L.test(t))return[t];const r=[];Me.lastIndex=0;let c;for(;(c=Me.exec(t))!==null;)r.push(c[0]);r.length===0&&r.push(t);const d=[];if(r.length===1){const h=r[0];if(!h||!me.test(h[0])||h.length===1)return[h??t]}for(const h of r){if(!h)continue;if(!me.test(h[0])||h.length===1){d.push(h);continue}const f=h.length;let p=h[0],w=h[0]===h[0].toLocaleUpperCase(e);for(let $=1;$<f;$++){const m=h[$],v=m===m.toLocaleUpperCase(e);!w&&v?(d.push(p),p=m):p+=m,w=v}p&&d.push(p)}return d}if(e.startsWith("ja")||e.startsWith("ko")){const r=e.startsWith("ja"),c=r?{hiragana:h=>Kt.test(h),kanji:h=>je.test(h),katakana:h=>Yt.test(h),latin:h=>L.test(h)}:{hangul:h=>Pe.test(h),latin:h=>L.test(h)},d=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(r){const h=B(t,c,!1,e,(p,w)=>p==="hiragana"&&w==="katakana"||p==="katakana"&&w==="hiragana"||p==="hiragana"&&w==="latin"||p==="katakana"&&w==="latin"||p==="kanji"&&w==="latin"||p==="latin"&&(w==="hiragana"||w==="katakana"||w==="kanji")),f=[];for(const p of h){const w=p;w.length===1&&d.has(w)&&f.length>0?f[f.length-1]=f.at(-1)+w:f.push(w)}return f.length>0?f:[t]}return B(t,c,!1,e,(h,f)=>h==="hangul"&&f==="latin"||h==="latin"&&f==="hangul")}if(e.startsWith("sl")){const r=[...t],c=r.length,d=[];let h=r[0],f=r[0]===r[0].toLocaleUpperCase(e);for(let p=1;p<c;p++){const w=r[p],$=w===w.toLocaleUpperCase(e),m=Ao.test(w),v=p<c-1&&r[p+1]===r[p+1].toLocaleUpperCase(e);!f&&$||m&&v?(d.push(h),h=w,m&&v&&(d.push(h),h="")):h+=w,f=$}return h&&h.length>0&&d.push(h),d}if(e.startsWith("zh"))return B(t,{han:r=>je.test(r),latin:r=>L.test(r)},!1,e);if(["ar","fa","he","ur"].includes(e.split("-")[0])){const r=c=>Ue.test(c)||Le.test(c);return B(t,{latin:c=>L.test(c),rtl:c=>r(c)},!1,e)}if(["am","bn","gu","hi","km","kn","lo","ml","mr","ne","or","pa","si","ta","te","th"].includes(e.split("-")[0])){const r=c=>qt.test(c)||Ft.test(c)||Jt.test(c)||Ht.test(c)||Zt.test(c)||sn.test(c)||rn.test(c)||en.test(c)||on.test(c)||an.test(c)||Qt.test(c)||ln.test(c)||tn.test(c)||Gt.test(c)||Xt.test(c)||nn.test(c);return B(t,{indic:c=>r(c),latin:c=>L.test(c)},!1,e)}if(["be","bg","ru","sr","uk"].includes(e))return B(t,{cyrillic:r=>X.test(r),latin:r=>L.test(r)},!0,e);if(["ar","fa","he"].includes(e))return B(t,{latin:r=>L.test(r),rtl:r=>Ue.test(r)||Le.test(r)},!1,e);if(e.startsWith("ko"))return B(t,{hangul:r=>Pe.test(r),latin:r=>L.test(r)},!1,e);if(e.startsWith("uz")){if(!X.test(t)&&!L.test(t))return[t];const r=[...t],c=r.length,d=[];let h=r[0],f=r[0]===r[0].toLocaleUpperCase(e);for(let p=1;p<c;p++){const w=r[p],$=w===w.toLocaleUpperCase(e);if(Ve.test(w)||Ve.test(r[p-1])){h+=w;continue}!f&&$?(d.push(h),h=w):h+=w,f=$}return h&&h.length>0&&d.push(h),d}const i=[...t],s=i.length,l=[];let a=i[0],u=i[0]===i[0].toLocaleUpperCase(e);for(const r of n)if(t.startsWith(r)){l.push(r),a=i[r.length],u=a===a.toLocaleUpperCase(e);break}for(let r=1;r<s;r++){const c=i[r],d=c===c.toLocaleUpperCase(e);let h=0;for(const f of n)if(t.startsWith(f,r)){l.push(a,f),h=f.length,a="";const p=f.at(-1);p&&(u=p===p.toLocaleUpperCase(e));break}if(h>0){r+=h-1;continue}!u&&d?(l.push(a),a=c):a+=c,u=d}return a&&l.push(a),l},bo=(t,e,n)=>{const o=[],i=ce.test(t)?t.split(ce).filter(Boolean):[t];for(const s of i){const l=s;if(ce.test(l))o.push(l);else{F.lastIndex=0;const a=F.test(l)?xo(l).filter(Boolean):[l];for(const u of a)if(F.lastIndex=0,F.test(u))o.push(u);else if(e){const r=e.toLowerCase().split("-")[0];o.push(...wt(u,r,n))}else o.push(...gt(u,n))}}return o},Co=(t,e={})=>{if(!t||typeof t!="string")return[];const{handleAnsi:n=!1,handleEmoji:o=!1,knownAcronyms:i=[],locale:s,normalize:l=!1,separators:a,stripAnsi:u=!1,stripEmoji:r=!1}=e,c=new Set([...i].toSorted((m,v)=>v.length-m.length));let d=t;u&&(d=yo(d)),r&&(d=cn(d));let h;Array.isArray(a)?h=$o(a):a instanceof RegExp?h=a:h=Wt;const f=[];let p=d;const w=h.flags.includes("g")?h:new RegExp(h.source,`${h.flags}g`);for(;p.length>0;){const m=w.exec(p);if(!m){p===".."?f.push(".."):p==="."?f.push("."):p.length>0&&f.push(p);break}const v=m.index,A=m[0],k=A.length,C=p.slice(0,v),j=p.slice(v+k);if(A.startsWith("../"))f.push(".."),p=p.slice(v+3);else if(A.startsWith("./"))f.push("."),p=p.slice(v+2);else if(v===0&&A==="..")f.push(".."),p=p.slice(2);else if(v===0&&A===".")f.push("."),p=p.slice(1);else{C.length>0&&f.push(C);let _=0;for(;(_=A.indexOf("../",_))!==-1;)f.push(".."),_+=3;for(_=0;(_=A.indexOf("./",_))!==-1;)(_===0||A[_-1]!==".")&&f.push("."),_+=2;let g=j;for(;g.startsWith("../");)f.push(".."),g=g.slice(3);for(;g.startsWith("./");)f.push("."),g=g.slice(2);if(g===".."){f.push("..");break}else if(g==="."){f.push(".");break}else p=g}w.lastIndex=0}if(f.length===0){const m=d.split(h).filter(Boolean);f.push(...m)}let $=[];for(const m of f)n||o?$.push(...bo(m,s,c)):s?$.push(...wt(m,s,c)):$.push(...gt(m,c));return l&&($=$.map(m=>c.has(m)?m:s&&m===m.toLocaleUpperCase(s)?m[0]+m.slice(1).toLocaleLowerCase(s):m.toUpperCase()===m&&!c.has(m)?m.slice(0,1)+m.slice(1).toLowerCase():m)),$},ko=(t,e)=>typeof t!="string"||t===""?"":t[0].toUpperCase()+t.slice(1),Eo=(t,e)=>{const{length:n}=t;if(n===0)return"";if(n===1)return t[0];const o=[];let i="",s="";for(let l=0;l<n;l++){const a=t[l];if(ce.test(a)){i?(o.push(i+s+a),i="",s=""):(o.length>0&&o.push(e),i=a);continue}i?(s&&(s+=e),s+=a):(o.length>0&&o.push(e),o.push(a))}return o.join("")},Q=(t,e)=>{if(typeof t!="string"||!t)return"";let n=!0;return Eo(Co(t,{handleAnsi:e?.handleAnsi,handleEmoji:e?.handleEmoji,knownAcronyms:e?.knownAcronyms,locale:e?.locale,normalize:e?.normalize,separators:void 0,stripAnsi:e?.stripAnsi,stripEmoji:e?.stripEmoji}).map(o=>{const i=o,s=i.toLowerCase();return n?(n=!1,go(s)):ko(s)}),"")};class Oo extends b{commandName;missingOptions;constructor(e,n){super(`Command "${e}" is missing required options: ${n.join(", ")}`,"COMMAND_VALIDATION_ERROR",{commandName:e,missingOptions:n}),this.name="CommandValidationError",this.commandName=e,this.missingOptions=n,this.hint=`Provide the following required options: ${n.join(", ")}`}}class _o extends b{choices;option;value;constructor(e,n,o){super(`Invalid value "${n}" for option "${e}". Allowed values: ${o.join(", ")}`,"INVALID_CHOICE",{choices:o,option:e,value:n}),this.name="InvalidChoiceError",this.option=e,this.value=n,this.choices=o,this.hint=`Use one of: ${o.map(i=>`--${e} ${i}`).join(", ")}`}}const He=(t,e,n=!1)=>{const o=[],i=e._all??e;for(const s of t){if(!n&&!s.required)continue;const l=s.__camelCaseName__??s.name;if(i[l]===void 0){if(s.type?.name==="Boolean"){e[l]=!1;continue}o.push(s)}}return o},Io=(t,e)=>e.includes(t)?!0:Math.abs(t.length-e.length)>t.length/2?!1:pn(t,e)<=t.length/3,z=(t,e)=>{const n=t.toLowerCase();return e.filter(o=>Io(o.toLowerCase(),n))},So=(t,e)=>{const n=[];if(t._unknown&&t._unknown.forEach(o=>{const i=o.startsWith("--");let s=`Found unknown ${i?"option":"argument"} "${o}"`;if(i){const l=z(o.replace("--",""),(e.options??[]).map(a=>a.name));if(l.length>0){const[a,...u]=l.map(r=>`--${r}`);s+=u.length>0?`, did you mean ${a??""} or ${u.join(", ")}?`:`, did you mean ${a??""}?`}}n.push(s)}),n.length>0)throw new Error(n.join(`
|
|
2
2
|
`))},Lo=(t,e,n)=>{const o=n.__requiredOptions__,i=o?He(o,e,!0):He(t,e,!1);if(i.length>0)throw new Oo(n.name,i.map(s=>s.name));e._unknown&&e._unknown.length>0&&!n.argument&&So(e,n)},Mo=(t,e,n)=>{const o=n.__conflictingOptions__??t.filter(i=>i.conflicts!==void 0);if(o.length>0){const i=o.find(s=>{const l=s.__camelCaseName__??Q(s.name);return Array.isArray(s.conflicts)?s.conflicts.some(a=>e[Q(a)]!==void 0)&&e[l]!==void 0:e[Q(s.conflicts)]!==void 0&&e[l]!==void 0});if(i)throw new ot(i.name,typeof i.conflicts=="string"?i.conflicts:i.conflicts?.[0]??"unknown")}},Po=(t,e)=>{const n=e.options;if(n)for(const o of n){if(!o.choices||o.choices.length===0)continue;const i=o.__camelCaseName__??Q(o.name),s=t[i];if(s==null)continue;const l=Array.isArray(s)?s:[s];for(const a of l){const u=String(a);if(!o.choices.includes(u))throw new _o(o.name,u,o.choices)}}},Uo=t=>{if(!Array.isArray(t.options))return;const e=new Map,n=new Map;for(const i of t.options){if(i.name){const s=e.get(i.name)??[];s.push(i),e.set(i.name,s)}if(typeof i.alias=="string"&&i.alias.length>0){const s=n.get(i.alias)??[];s.push(i),n.set(i.alias,s)}else if(Array.isArray(i.alias)){for(const s of i.alias)if(s.length>0){const l=n.get(s)??[];l.push(i),n.set(s,l)}}}const o=[];for(const[i,s]of e)s.length>1&&o.push(`Duplicate option name "${i}" in command "${t.name}": ${JSON.stringify(s)}`);for(const[i,s]of n)s.length>1&&o.push(`Duplicate option alias "-${i}" used by options ${s.map(l=>`"${l.name}"`).join(", ")} in command "${t.name}"`);if(o.length>0)throw new Error(o.join(`
|
|
3
3
|
`))},jo=(t,e)=>{if(e.length===0)return{argv:[],commandPath:void 0};const n=[];let o;for(let i=1;i<=e.length;i+=1){const s=e[i-1];if(s===void 0||s.startsWith("-"))break;n.push(s);const l=n.join(" ");t.has(l)&&(o={commandPath:[...n],depth:i})}return o?{argv:e.slice(o.depth),commandPath:o.commandPath}:{argv:e,commandPath:void 0}},J=t=>t.join(" "),Ke=(t,e)=>e&&e.length>0?[...e,t]:[t],Vo=/^no-/,Do=t=>{t.options?.forEach(e=>{e.__camelCaseName__=Q(e.name)})},To=t=>{if(!Array.isArray(t.options)||t.options.length===0)return;const e=new Set;for(const o of t.options)e.add(o.name);const n=[];for(const o of t.options)if(o.name.startsWith("no-")){const i=o.name.replace(Vo,"");if(!e.has(i)){if(o.type!==Boolean)throw new Error(`Cannot add negated option "${o.name}" to command "${t.name}" because it is not a boolean.`);const s={...o,defaultValue:o.defaultValue===void 0?!0:!o.defaultValue,name:i};n.push(s),e.add(i)}}n.length>0&&t.options.push(...n)},Ro=(t,e)=>{if(!e.options||e.options.length===0)return;const{options:n}=t,o=new Map;for(const s of e.options)if(s.name.startsWith("no-")){const l=Q(s.name);o.set(l,s)}const i=Object.keys(n).filter(s=>o.has(s));if(i.length!==0)for(const s of i){const l=s.charAt(2);if(!l)continue;const a=l.toLowerCase()+s.slice(3),u=o.get(s);u&&(u.__negated__=!0),n[a]=!n[s],Reflect.deleteProperty(n,s)}},Bo=(t,e)=>{if(!e.options||e.options.length===0)return;const n=new Map;for(const i of e.options)i.__camelCaseName__&&i.__negated__===void 0&&i.implies!==void 0&&n.set(i.__camelCaseName__,i);if(n.size===0)return;const{options:o}=t;for(const i of Object.keys(o)){const s=n.get(i);if(s?.implies){const{implies:l}=s;for(const[a,u]of Object.entries(l))o[a]===void 0&&(o[a]=u)}}},zo=()=>!!process.versions.electron,Wo=()=>zo()&&!process.defaultApp,Fo=()=>Wo()?0:1,qo=t=>t.slice(Fo()+1),Go=" ",Jo=(t,e)=>t===e?!0:t.length!==e.length?!1:t.every((n,o)=>n===e[o]),Ho=t=>{if(typeof t=="string")return t.split(Go);const e=be();return Jo(t,e)?qo(t):t},Ko=t=>{const e=s=>{t.error(`Uncaught exception: ${s.message||s}`),s.stack&&t.error(s.stack),W(1)},n=(s,l)=>{if(s instanceof Error)t.error(`Promise rejection: ${s.message||s}`),s.stack&&t.error(s.stack);else{let a;if(typeof s=="string")a=s;else try{a=JSON.stringify(s)}catch{a=String(s)}t.error(`Promise rejection: ${a}`)}W(1)},o=Ie("uncaughtException",e),i=Ie("unhandledRejection",n);return()=>{o(),i()}},Ze=100,Zo=/^[a-z][\w-]*$/i,ke=(t,e)=>{if(typeof t!="string"||t.trim().length===0)throw new b(`${e} must be a non-empty string`,"INVALID_INPUT",{fieldName:e,value:t});return t.trim()},Ye=(t,e)=>{if(!Array.isArray(t)||!t.every(n=>typeof n=="string"))throw new b(`${e} must be an array of strings`,"INVALID_INPUT",{fieldName:e,value:t});return t},Ae=(t,e)=>{if(typeof t!="object"||t===null)throw new b(`${e} must be an object`,"INVALID_INPUT",{fieldName:e,value:t});return t},ae=t=>{const e=ke(t,"Command name");if(e.length>Ze)throw new b(`Command name is too long (maximum ${String(Ze)} characters)`,"INVALID_COMMAND_NAME",{commandName:e,length:e.length});if(e.includes("..")||e.includes("/")||e.includes("\\")||e.includes(";")||e.includes("|")||e.includes("&"))throw new b(`Command name "${e}" contains invalid characters`,"INVALID_COMMAND_NAME",{commandName:e});if(!Zo.test(e))throw new b(`Command name "${e}" must start with a letter and contain only letters, numbers, hyphens, and underscores`,"INVALID_COMMAND_NAME",{commandName:e});return e},Yo=1e6,Xo=1e5,Qo=new Set([`
|
|
4
4
|
`,"\r"," ","\0",'"',"$","&","'","(",")",";","<",">","[","\\","]","`","{","|","}"]),es=(t,e={})=>{if(typeof t!="string")throw new TypeError("Argument must be a string");const n=typeof e=="boolean"?{checkDangerousChars:e}:e,o=n.maxArgumentLength??Yo;if(Number.isFinite(o)&&o>0&&t.length>o)throw new Error(`Argument is too long (maximum ${String(o)} characters)`);if(n.checkDangerousChars){for(const i of t)if(Qo.has(i))throw new Error(`Argument contains dangerous character: ${i}`)}return n.trim?t.trim():t},Xe=(t,e={})=>{if(!Array.isArray(t))throw new TypeError("Arguments must be an array");const n=typeof e=="boolean"?{checkDangerousChars:e}:e,o=n.maxArguments??Xo;if(Number.isFinite(o)&&o>0&&t.length>o)throw new Error(`Too many arguments (maximum ${String(o)})`);return t.map(i=>es(i,n))},ts=/^-([^\d-])$/,ns=/^--(\S+)/,os=/^-([^\d-]{2,})$/,Ne=t=>ts.test(t)||ns.test(t)||os.test(t),ss={access:(t,e)=>xn(t,e),mkdir:(t,e)=>$n(t,e),readdir:t=>vn(t),readFile:(async(t,e)=>e===void 0?De(t):De(t,e)),rm:(t,e)=>yn(t,e),stat:t=>wn(t),writeFile:(t,e,n)=>gn(t,e,n)},is=(t,e,n)=>{const o=e.indexOf("--"),i=o===-1?new Set:new Set(e.slice(o+1)),s=n.filter(u=>u.startsWith("--")&&u!=="--"&&!i.has(u));if(s.length===0)return;const l=(t.options??[]).map(u=>u.name),a=s.flatMap(u=>z(u.slice(2),l).map(r=>`--${r}`));throw new An(s,a)};class Ee{#t;#e;#u;#p;#d;#f;#b;#C;#k;#$;#E;#x;#O;#A=fe;#h;#n;#o;#s;#i;#r;#_=!1;#I;#S=!1;#m;#g;#w;#l=[];#V(){return this.#m===void 0&&(this.#m=[...this.#o.keys()]),this.#m}#L(){return this.#g===void 0&&(this.#g=[...this.#n.keys()]),this.#g}#a(){return this.#w===void 0&&(this.#w=[...this.#V(),...this.#L()]),this.#w}#M(){return this.#l.length===0?re:[...re,...this.#l]}#P(){this.#m=void 0,this.#g=void 0,this.#w=void 0}#N(){if(this.#u===void 0){const e=Ho(this.#e.argv);this.#u=Xe(e,{maxArguments:this.#x}),this.#D()}return this.#u}#y(){return this.#$??he()}#v(e){this.#A=e,this.#y().CEREBRO_OUTPUT_LEVEL=String(e)}#c(){return this.#A}#D(){if(!this.#u)return;let e=!1;for(const n of this.#u){if(n==="--quiet"||n==="-q"){this.#v(Rt),e=!0;break}if(n==="--verbose"||n==="-v"){this.#v(Bt),e=!0;break}if(n==="--debug"){this.#v(T),e=!0;break}}e||this.#v(Object.hasOwn(this.#y(),"DEBUG")?T:fe)}#T(){this.#S||(this.#I=Ko(this.#t),this.#S=!0)}#R(){return{arch:jt(),argv:this.#N(),cwd:this.#p,env:this.#$??he(),exit:this.#k??(e=>W(e??0)),platform:Ut(),stdin:this.#E}}#U(e,n,o,i){this.#c()===T&&this.#t.debug(`command '${i}' found, parsing command args: ${n.join(", ")}`);const{arguments_:s,booleanValues:l,parsedArgs:a}=fo(e,n,this.#M()),u=Object.keys(l).length>0;let r=a;u&&(r={...a,_all:{...a._all,...l}}),Lo(s,r,e);const c=po(e,a,l,o,this.#y());c.runtime=this,c.argv=this.#N(),c.fs=this.#C??ss,c.process=this.#R(),c.console=this.#t;const d=e.options&&e.options.length>0;if(d&&e.options){const h=e.options.filter(f=>f.name.startsWith("no-"));for(const f of h){const p=f.name.slice(3),w=`--${f.name}`,$=`--${p}`,m=n.includes(w),v=n.includes($);if(m&&v)throw new ot(p,f.name)}}return d&&(Ro(c,e),Bo(c,e)),Mo(s,c.options,e),Po(c.options,e),this.#O&&is(e,n,c.rawUnknown),this.#c()===T&&(this.#t.debug("command options parsed from options:"),this.#t.debug(JSON.stringify(c.options,null,2)),this.#t.debug("command argument parsed from argument:"),this.#t.debug(JSON.stringify(c.argument,null,2))),{arguments_:s,booleanValues:l,commandArgs:r,parsedArgs:a,toolbox:c}}async#j(e,n,o){const i=this.getPluginManager();try{!this.#_&&i.hasPlugins()&&(await i.init({cli:this,cwd:this.#p,logger:this.#t}),this.#_=!0),await i.executeLifecycle("execute",n),await i.executeLifecycle("beforeCommand",n);let s;const l=o.global;if(l?.help){const a=this.#n.get("help");if(!a)throw new b("Help command not found","COMMAND_NOT_FOUND");s=await ye(a,n,o)}else if(l?.version??l?.V){const a=this.#n.get("version");if(!a)throw new b("Version command not found","COMMAND_NOT_FOUND");s=await ye(a,n,o)}else s=await ye(e,n,o);return await i.executeLifecycle("afterCommand",n,s),s}catch(s){throw await i.executeErrorHandlers(s,n),s}}constructor(e,n={}){if(typeof e!="string"||e.trim().length===0)throw new b("CLI name must be a non-empty string","INVALID_INPUT",{cliName:e});this.#d=e.trim();const o=n.argv??be(),i=n.cwd??Vt();if(this.#e={...n,argv:o,cwd:i},this.#e.argv&&!Array.isArray(this.#e.argv))throw new b("CLI argv option must be an array of strings","INVALID_INPUT",{argv:this.#e.argv});if(this.#e.cwd&&typeof this.#e.cwd!="string")throw new b("CLI cwd option must be a string","INVALID_INPUT",{cwd:this.#e.cwd});if(this.#e.packageName&&typeof this.#e.packageName!="string")throw new b("CLI packageName option must be a string","INVALID_INPUT",{packageName:this.#e.packageName});if(this.#e.packageVersion&&typeof this.#e.packageVersion!="string")throw new b("CLI packageVersion option must be a string","INVALID_INPUT",{packageVersion:this.#e.packageVersion});if(typeof this.#e.logger=="object"){const d=["debug","error","info","log","warn"],h=[],f=this.#e.logger;for(const p of d)typeof f[p]!="function"&&h.push(p);if(h.length>0)throw new b(`Logger object is missing required methods: ${h.join(", ")}`,"INVALID_INPUT",{logger:this.#e.logger,missingMethods:h});this.#t=this.#e.logger}else this.#t={...console,debug:(...d)=>{this.#c()===T&&console.debug(...d)}};this.#f=this.#e.packageVersion,this.#b=this.#e.packageName,this.#p=this.#e.cwd,this.#i="help",this.#r={};const s=n.fs;if(s!==void 0&&(typeof s!="object"||s===null))throw new b("CLI fs option must be an object implementing the CerebroFs interface","INVALID_INPUT",{fs:n.fs});const l=n.exit;if(l!==void 0&&typeof l!="function")throw new b("CLI exit option must be a function","INVALID_INPUT",{exit:n.exit});const a=n.env;if(a!==void 0&&(typeof a!="object"||a===null))throw new b("CLI env option must be a record of string keys","INVALID_INPUT",{env:n.env});const u=n.stdin;if(u!==void 0&&typeof u!="string")throw new b("CLI stdin option must be a string","INVALID_INPUT",{stdin:n.stdin});this.#C=n.fs,this.#k=n.exit,this.#$=n.env,this.#E=n.stdin??"",this.#x=n.maxArguments,this.#O=n.strictOptions??!1;const r=this.#y().CEREBRO_OUTPUT_LEVEL,c=r===void 0?Number.NaN:Number(r);this.#A=Number.isNaN(c)?fe:c,this.#n=new Map,this.#o=new Map,this.#s=new Map}setCommandSection(e){return this.#r=e,this}getCommandSection(){return this.#r.header||(this.#r.header=`${this.#d}${this.#f?` v${this.#f}`:""}`),this.#r}setDefaultCommand(e){return this.#i=e,this}get defaultCommand(){return this.#i}addCommand(e){Ae(e,"Command"),ae(e.name);const n=typeof e.execute=="function",o=typeof e.loader=="function";if(n&&o)throw new b(`Command "${e.name}" cannot define both "execute" and "loader" — choose one`,"INVALID_COMMAND",{commandName:e.name});if(!n&&!o)throw new b(`Command "${e.name}" must define either "execute" or "loader"`,"INVALID_COMMAND",{commandName:e.name});e.alias&&(typeof e.alias=="string"?ae(e.alias):Ye(e.alias,"Command alias").forEach(r=>ae(r))),e.argument&&Ae(e.argument,"Command argument"),e.options&&Ae(e.options,"Command options"),e.commandPath&&(Ye(e.commandPath,"Command commandPath"),e.commandPath.forEach(r=>{ae(r)}));const i=Ke(e.name,e.commandPath),s=J(i);if(this.#o.has(s))throw new b(`Command with path "${s}" already exists`,"DUPLICATE_COMMAND",{commandName:e.name,commandPath:e.commandPath});const l=Array.isArray(e.commandPath)&&e.commandPath.length>0,a=this.#n.get(e.name),u=a!==void 0&&(a.commandPath===void 0||a.commandPath.length===0);if(!l&&u)throw new b(`Command with name "${e.name}" already exists`,"DUPLICATE_COMMAND",{commandName:e.name});if(e.options)for(const r of e.options)Te(r);if(Uo(e),To(e),Do(e),e.options&&(e.__conflictingOptions__=e.options.filter(r=>r.conflicts!==void 0),e.__requiredOptions__=e.options.filter(r=>r.required===!0)),l&&a!==void 0)this.#n.set(s,e);else{if(!l&&a!==void 0&&!u){const r=Ke(a.name,a.commandPath);this.#n.set(J(r),a)}this.#n.set(e.name,e)}if(this.#o.set(s,i),this.#s.set(s,e),this.#P(),e.alias!==void 0){const r=typeof e.alias=="string"?[e.alias]:e.alias;for(const c of r){if(this.#c()===T&&this.#t.debug("adding alias",c),this.#n.has(c))throw new b(`Command alias "${c}" conflicts with existing command`,"DUPLICATE_COMMAND",{alias:c,commandName:e.name});this.#n.set(c,e)}}return this}addGlobalOption(e){const n=e,o=new Set(re.map(s=>s.name)),i=new Set(re.map(s=>s.alias).filter(Boolean));if(o.has(n.name))throw new b(`Cannot add global option "--${n.name}": it conflicts with a built-in global option`,"DUPLICATE_OPTION",{optionName:n.name});if(n.alias&&i.has(n.alias))throw new b(`Cannot add global option with alias "-${n.alias}": it conflicts with a built-in global option alias`,"DUPLICATE_OPTION",{alias:n.alias,optionName:n.name});if(new Set(this.#l.map(s=>s.name)).has(n.name))throw new b(`Global option "--${n.name}" has already been added`,"DUPLICATE_OPTION",{optionName:n.name});return n.group="global",Te(n),this.#l.push(n),this}getGlobalOptions(){return this.#M()}addPlugin(e){return this.getPluginManager().register(e),this}getPluginManager(){return this.#h?this.#h:(this.#h=new bn(this.#t),this.#h.register({description:"Attaches the logger to the toolbox",execute:e=>{e.logger=this.#t,e.console=e.logger},name:"logger"}),this.#h)}getCliName(){return this.#d}getPackageVersion(){return this.#f}getPackageName(){return this.#b}getCommands(){return this.#n}getCwd(){return this.#p}dispose(){this.#I?.()}async run(e={}){const{autoDispose:n=!0,shouldExitProcess:o=!0,...i}=e;if(!this.#n.has("help")){const{default:m}=await import("../packem_chunks/help-command.js");this.addCommand(new m(this.#n))}const s=this.#L(),l=this.#o;this.#T();const a=this.#N();let u,r=[...a];this.#c()===T&&(this.#t.debug(`process.execPath: ${Dt()}`),this.#t.debug(`process.execArgv: ${Tt().join(" ")}`),this.#t.debug(`process.argv: ${be().join(" ")}`));const c=jo(l,[...a]);if(c.commandPath)u=c.commandPath,r=c.argv;else{if(a.length>1&&a[0]&&a[1]&&!Ne(a[0])&&!Ne(a[1])){const v=[];let A=0;for(;A<a.length;){const C=a[A];if(!C||Ne(C))break;v.push(C),A+=1}const k=J(v);if(v[0]&&!s.includes(v[0])){const C=this.#a(),j=z(k,C);throw new G(k,j)}}let m;try{m=In([null,...s],[...a])}catch(v){if(v instanceof Error&&v.name==="INVALID_COMMAND"&&"command"in v){const A=v.command,k=this.#a(),C=z(A,k);throw new G(A,C)}throw v}m.command&&(u=[m.command],r=m.argv)}if(!u)if(this.#i)u=[this.#i];else{const m=this.#a();throw new G("",m)}const d=J(u),h=this.#o.get(d);let f;if(h){if(f=this.#s.get(d),!f||J(h)!==d){const m=this.#a(),v=z(d,m);throw new G(d,v)}}else{const m=u.at(-1);if(f=m?this.#n.get(m):void 0,!f){const v=this.#a(),A=z(d,v);throw new G(d,A)}}if(typeof f.execute!="function"&&typeof f.loader!="function")return this.#t.error(`Command "${f.name}" has no function to execute.`),o?W(1):void 0;const p=r;let w,$;try{({commandArgs:w,toolbox:$}=this.#U(f,p,i,d))}catch(m){if(this.#t.error(m),o)return W(1);throw m}try{return await this.#j(f,$,w),o?W(0):void 0}catch(m){if(o)return this.#t.error(m),W(1);throw m}finally{n&&this.dispose()}}async runCommand(e,n={}){const{argv:o=[],...i}=n;ke(e,"Command name");const s=e.split(" ").filter(Boolean),l=J(s),a=this.#o.get(l)?this.#s.get(l):this.#n.get(e);if(!a){const d=this.#a(),h=z(l||e,d);throw new G(e,h)}if(typeof a.execute!="function"&&typeof a.loader!="function")throw new b(`Command "${a.name}" has no function to execute`,"INVALID_COMMAND",{commandName:a.name});const u=[...Xe(o,{maxArguments:this.#x})];this.#c()===T&&this.#t.debug(`running command '${e}' programmatically with args: ${u.join(", ")}`);const{commandArgs:r,toolbox:c}=this.#U(a,u,i,l||e);return this.#j(a,c,r)}clone(e){const n={...this.#e,...e},o=new Ee(this.#d,n);for(const[i,s]of this.#n)o.#n.set(i,s);for(const[i,s]of this.#o)o.#o.set(i,[...s]);for(const[i,s]of this.#s)o.#s.set(i,s);for(const i of this.#l)o.#l.push(i);return o.#i=this.#i,o.#r={...this.#r},o.#P(),o}async getAction(e){ke(e,"Command name");const n=e.split(" ").filter(Boolean),o=J(n),i=this.#o.get(o)?this.#s.get(o):this.#n.get(e);if(!i){const s=this.#a(),l=z(o||e,s);throw new G(e,l)}if(typeof i.execute=="function")return i.execute;if(typeof i.loader=="function")return pt(i);throw new b(`Command "${i.name}" has no execute or loader defined`,"INVALID_COMMAND",{commandName:i.name})}}const ti=(t,e)=>new Ee(t,e),rs=globalThis.process??Object.create(null),Qe={versions:{}},ie=new Proxy(rs,{get(t,e){if(e in t)return t[e];if(e in Qe)return Qe[e]}}),as=t=>t.replaceAll(/\r\n|\r(?!\n)|\n/gu,`
|
package/index.js
CHANGED
|
@@ -82,7 +82,7 @@ function requireNative() {
|
|
|
82
82
|
const binding = require('@visulima/vis-binding-android-arm64')
|
|
83
83
|
const bindingPackageVersion = require('@visulima/vis-binding-android-arm64/package.json').version
|
|
84
84
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
85
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
85
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
86
86
|
}
|
|
87
87
|
return binding
|
|
88
88
|
} catch (e) {
|
|
@@ -98,7 +98,7 @@ function requireNative() {
|
|
|
98
98
|
const binding = require('@visulima/vis-binding-android-arm-eabi')
|
|
99
99
|
const bindingPackageVersion = require('@visulima/vis-binding-android-arm-eabi/package.json').version
|
|
100
100
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
101
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
101
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
102
102
|
}
|
|
103
103
|
return binding
|
|
104
104
|
} catch (e) {
|
|
@@ -119,7 +119,7 @@ function requireNative() {
|
|
|
119
119
|
const binding = require('@visulima/vis-binding-win32-x64-gnu')
|
|
120
120
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-x64-gnu/package.json').version
|
|
121
121
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
122
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
122
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
123
123
|
}
|
|
124
124
|
return binding
|
|
125
125
|
} catch (e) {
|
|
@@ -135,7 +135,7 @@ function requireNative() {
|
|
|
135
135
|
const binding = require('@visulima/vis-binding-win32-x64-msvc')
|
|
136
136
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-x64-msvc/package.json').version
|
|
137
137
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
138
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
138
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
139
139
|
}
|
|
140
140
|
return binding
|
|
141
141
|
} catch (e) {
|
|
@@ -152,7 +152,7 @@ function requireNative() {
|
|
|
152
152
|
const binding = require('@visulima/vis-binding-win32-ia32-msvc')
|
|
153
153
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-ia32-msvc/package.json').version
|
|
154
154
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
155
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
155
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
156
156
|
}
|
|
157
157
|
return binding
|
|
158
158
|
} catch (e) {
|
|
@@ -168,7 +168,7 @@ function requireNative() {
|
|
|
168
168
|
const binding = require('@visulima/vis-binding-win32-arm64-msvc')
|
|
169
169
|
const bindingPackageVersion = require('@visulima/vis-binding-win32-arm64-msvc/package.json').version
|
|
170
170
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
171
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
171
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
172
172
|
}
|
|
173
173
|
return binding
|
|
174
174
|
} catch (e) {
|
|
@@ -187,7 +187,7 @@ function requireNative() {
|
|
|
187
187
|
const binding = require('@visulima/vis-binding-darwin-universal')
|
|
188
188
|
const bindingPackageVersion = require('@visulima/vis-binding-darwin-universal/package.json').version
|
|
189
189
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
190
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
190
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
191
191
|
}
|
|
192
192
|
return binding
|
|
193
193
|
} catch (e) {
|
|
@@ -203,7 +203,7 @@ function requireNative() {
|
|
|
203
203
|
const binding = require('@visulima/vis-binding-darwin-x64')
|
|
204
204
|
const bindingPackageVersion = require('@visulima/vis-binding-darwin-x64/package.json').version
|
|
205
205
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
206
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
206
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
207
207
|
}
|
|
208
208
|
return binding
|
|
209
209
|
} catch (e) {
|
|
@@ -219,7 +219,7 @@ function requireNative() {
|
|
|
219
219
|
const binding = require('@visulima/vis-binding-darwin-arm64')
|
|
220
220
|
const bindingPackageVersion = require('@visulima/vis-binding-darwin-arm64/package.json').version
|
|
221
221
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
222
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
222
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
223
223
|
}
|
|
224
224
|
return binding
|
|
225
225
|
} catch (e) {
|
|
@@ -239,7 +239,7 @@ function requireNative() {
|
|
|
239
239
|
const binding = require('@visulima/vis-binding-freebsd-x64')
|
|
240
240
|
const bindingPackageVersion = require('@visulima/vis-binding-freebsd-x64/package.json').version
|
|
241
241
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
242
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
242
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
243
243
|
}
|
|
244
244
|
return binding
|
|
245
245
|
} catch (e) {
|
|
@@ -255,7 +255,7 @@ function requireNative() {
|
|
|
255
255
|
const binding = require('@visulima/vis-binding-freebsd-arm64')
|
|
256
256
|
const bindingPackageVersion = require('@visulima/vis-binding-freebsd-arm64/package.json').version
|
|
257
257
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
258
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
258
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
259
259
|
}
|
|
260
260
|
return binding
|
|
261
261
|
} catch (e) {
|
|
@@ -276,7 +276,7 @@ function requireNative() {
|
|
|
276
276
|
const binding = require('@visulima/vis-binding-linux-x64-musl')
|
|
277
277
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-x64-musl/package.json').version
|
|
278
278
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
279
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
279
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
280
280
|
}
|
|
281
281
|
return binding
|
|
282
282
|
} catch (e) {
|
|
@@ -292,7 +292,7 @@ function requireNative() {
|
|
|
292
292
|
const binding = require('@visulima/vis-binding-linux-x64-gnu')
|
|
293
293
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-x64-gnu/package.json').version
|
|
294
294
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
295
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
295
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
296
296
|
}
|
|
297
297
|
return binding
|
|
298
298
|
} catch (e) {
|
|
@@ -310,7 +310,7 @@ function requireNative() {
|
|
|
310
310
|
const binding = require('@visulima/vis-binding-linux-arm64-musl')
|
|
311
311
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm64-musl/package.json').version
|
|
312
312
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
313
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
313
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
314
314
|
}
|
|
315
315
|
return binding
|
|
316
316
|
} catch (e) {
|
|
@@ -326,7 +326,7 @@ function requireNative() {
|
|
|
326
326
|
const binding = require('@visulima/vis-binding-linux-arm64-gnu')
|
|
327
327
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm64-gnu/package.json').version
|
|
328
328
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
329
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
329
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
330
330
|
}
|
|
331
331
|
return binding
|
|
332
332
|
} catch (e) {
|
|
@@ -344,7 +344,7 @@ function requireNative() {
|
|
|
344
344
|
const binding = require('@visulima/vis-binding-linux-arm-musleabihf')
|
|
345
345
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm-musleabihf/package.json').version
|
|
346
346
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
347
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
347
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
348
348
|
}
|
|
349
349
|
return binding
|
|
350
350
|
} catch (e) {
|
|
@@ -360,7 +360,7 @@ function requireNative() {
|
|
|
360
360
|
const binding = require('@visulima/vis-binding-linux-arm-gnueabihf')
|
|
361
361
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-arm-gnueabihf/package.json').version
|
|
362
362
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
363
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
363
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
364
364
|
}
|
|
365
365
|
return binding
|
|
366
366
|
} catch (e) {
|
|
@@ -378,7 +378,7 @@ function requireNative() {
|
|
|
378
378
|
const binding = require('@visulima/vis-binding-linux-loong64-musl')
|
|
379
379
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-loong64-musl/package.json').version
|
|
380
380
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
381
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
381
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
382
382
|
}
|
|
383
383
|
return binding
|
|
384
384
|
} catch (e) {
|
|
@@ -394,7 +394,7 @@ function requireNative() {
|
|
|
394
394
|
const binding = require('@visulima/vis-binding-linux-loong64-gnu')
|
|
395
395
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-loong64-gnu/package.json').version
|
|
396
396
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
397
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
397
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
398
398
|
}
|
|
399
399
|
return binding
|
|
400
400
|
} catch (e) {
|
|
@@ -412,7 +412,7 @@ function requireNative() {
|
|
|
412
412
|
const binding = require('@visulima/vis-binding-linux-riscv64-musl')
|
|
413
413
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-riscv64-musl/package.json').version
|
|
414
414
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
415
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
415
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
416
416
|
}
|
|
417
417
|
return binding
|
|
418
418
|
} catch (e) {
|
|
@@ -428,7 +428,7 @@ function requireNative() {
|
|
|
428
428
|
const binding = require('@visulima/vis-binding-linux-riscv64-gnu')
|
|
429
429
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-riscv64-gnu/package.json').version
|
|
430
430
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
431
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
431
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
432
432
|
}
|
|
433
433
|
return binding
|
|
434
434
|
} catch (e) {
|
|
@@ -445,7 +445,7 @@ function requireNative() {
|
|
|
445
445
|
const binding = require('@visulima/vis-binding-linux-ppc64-gnu')
|
|
446
446
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-ppc64-gnu/package.json').version
|
|
447
447
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
448
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
448
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
449
449
|
}
|
|
450
450
|
return binding
|
|
451
451
|
} catch (e) {
|
|
@@ -461,7 +461,7 @@ function requireNative() {
|
|
|
461
461
|
const binding = require('@visulima/vis-binding-linux-s390x-gnu')
|
|
462
462
|
const bindingPackageVersion = require('@visulima/vis-binding-linux-s390x-gnu/package.json').version
|
|
463
463
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
464
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
464
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
465
465
|
}
|
|
466
466
|
return binding
|
|
467
467
|
} catch (e) {
|
|
@@ -481,7 +481,7 @@ function requireNative() {
|
|
|
481
481
|
const binding = require('@visulima/vis-binding-openharmony-arm64')
|
|
482
482
|
const bindingPackageVersion = require('@visulima/vis-binding-openharmony-arm64/package.json').version
|
|
483
483
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
484
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
484
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
485
485
|
}
|
|
486
486
|
return binding
|
|
487
487
|
} catch (e) {
|
|
@@ -497,7 +497,7 @@ function requireNative() {
|
|
|
497
497
|
const binding = require('@visulima/vis-binding-openharmony-x64')
|
|
498
498
|
const bindingPackageVersion = require('@visulima/vis-binding-openharmony-x64/package.json').version
|
|
499
499
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
500
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
500
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
501
501
|
}
|
|
502
502
|
return binding
|
|
503
503
|
} catch (e) {
|
|
@@ -513,7 +513,7 @@ function requireNative() {
|
|
|
513
513
|
const binding = require('@visulima/vis-binding-openharmony-arm')
|
|
514
514
|
const bindingPackageVersion = require('@visulima/vis-binding-openharmony-arm/package.json').version
|
|
515
515
|
if (bindingPackageVersion !== '2.0.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
516
|
-
throw new Error(`Native binding package version mismatch, expected 3.0.
|
|
516
|
+
throw new Error(`Native binding package version mismatch, expected 3.0.3 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
517
517
|
}
|
|
518
518
|
return binding
|
|
519
519
|
} catch (e) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/vis",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "A monorepo dev toolkit — task runner, remote caching, security scanning, git hooks, and AI agent integrations — powered by @visulima/task-runner",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"build",
|
|
@@ -120,11 +120,11 @@
|
|
|
120
120
|
"@visulima/source-map": "3.0.1",
|
|
121
121
|
"@visulima/tabular": "4.1.0",
|
|
122
122
|
"@visulima/task-runner": "1.0.4",
|
|
123
|
-
"@visulima/tui": "4.0.
|
|
124
|
-
"@visulima/tui-kit": "1.0.
|
|
125
|
-
"module-replacements": "^
|
|
126
|
-
"module-replacements-codemods": "^2.0.
|
|
127
|
-
"react": "19.2.
|
|
123
|
+
"@visulima/tui": "4.0.2",
|
|
124
|
+
"@visulima/tui-kit": "1.0.5",
|
|
125
|
+
"module-replacements": "^3.1.0",
|
|
126
|
+
"module-replacements-codemods": "^2.0.2",
|
|
127
|
+
"react": "19.2.8",
|
|
128
128
|
"react-reconciler": ">=0.33.0"
|
|
129
129
|
},
|
|
130
130
|
"peerDependencies": {
|
|
@@ -148,14 +148,14 @@
|
|
|
148
148
|
}
|
|
149
149
|
},
|
|
150
150
|
"optionalDependencies": {
|
|
151
|
-
"@visulima/vis-binding-darwin-arm64": "3.0.
|
|
152
|
-
"@visulima/vis-binding-darwin-x64": "3.0.
|
|
153
|
-
"@visulima/vis-binding-linux-arm64-
|
|
154
|
-
"@visulima/vis-binding-linux-
|
|
155
|
-
"@visulima/vis-binding-linux-
|
|
156
|
-
"@visulima/vis-binding-
|
|
157
|
-
"@visulima/vis-binding-win32-x64-msvc": "3.0.
|
|
158
|
-
"@visulima/vis-binding-
|
|
151
|
+
"@visulima/vis-binding-darwin-arm64": "3.0.3",
|
|
152
|
+
"@visulima/vis-binding-darwin-x64": "3.0.3",
|
|
153
|
+
"@visulima/vis-binding-linux-arm64-gnu": "3.0.3",
|
|
154
|
+
"@visulima/vis-binding-linux-arm64-musl": "3.0.3",
|
|
155
|
+
"@visulima/vis-binding-linux-x64-gnu": "3.0.3",
|
|
156
|
+
"@visulima/vis-binding-win32-arm64-msvc": "3.0.3",
|
|
157
|
+
"@visulima/vis-binding-win32-x64-msvc": "3.0.3",
|
|
158
|
+
"@visulima/vis-binding-linux-x64-musl": "3.0.3"
|
|
159
159
|
},
|
|
160
160
|
"engines": {
|
|
161
161
|
"node": "^22.14.0 || >=24.10.0"
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as ce}from"node:module";let le;const ue=t=>(le??=ce(import.meta.url))(t),y=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,w=t=>{if(typeof y<"u"&&y.versions&&y.versions.node){const[e,r]=y.versions.node.split(".").map(Number);if(e>22||e===22&&r>=3||e===20&&r>=16)return y.getBuiltinModule(t)}return ue(t)},{existsSync:m,openSync:de,readSync:he,closeSync:fe,statSync:pe,createWriteStream:V,readdirSync:me,renameSync:ge}=w("node:fs"),{readFile:X,mkdir:O,rm:x,writeFile:we,mkdtemp:ve}=w("node:fs/promises"),{PassThrough:q,Readable:z,pipeline:_e}=w("node:stream"),{pipeline:J}=w("node:stream/promises"),{spawn:Y}=w("node:child_process"),{basename:be,normalize:$e,delimiter:T,resolve:K,dirname:M,join:j}=w("node:path"),{cwd:Z}=y,ye=w("node:readline"),{homedir:Ee,tmpdir:Q}=w("node:os"),{promisify:ke}=w("node:util");var D=Object.defineProperty,xe=(t,e)=>{let r={};for(var n in t)D(r,n,{get:t[n],enumerable:!0});return D(r,Symbol.toStringTag,{value:"Module"}),r};const Te=/^[A-Za-z]:\//;function C(t=""){return t&&t.replace(/\\/g,"/").replace(Te,e=>e.toUpperCase())}const Ce=/^[/\\]{2}/,Ae=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,ee=/^[A-Za-z]:$/,te=function(t){if(t.length===0)return".";t=C(t);let e=t.match(Ce),r=E(t),n=t[t.length-1]==="/";return t=re(t,!r),t.length===0?r?"/":n?"./":".":(n&&(t+="/"),ee.test(t)&&(t+="/"),e?r?`//${t}`:`//./${t}`:r&&!E(t)?`/${t}`:t)},P=function(...t){let e="";for(let r of t)if(r)if(e.length>0){let n=e[e.length-1]==="/",s=r[0]==="/";n&&s?e+=r.slice(1):e+=n||s?r:`/${r}`}else e+=r;return te(e)};function Se(){return typeof process.cwd=="function"?process.cwd().replace(/\\/g,"/"):"/"}const p=function(...t){t=t.map(n=>C(n));let e="",r=!1;for(let n=t.length-1;n>=-1&&!r;n--){let s=n>=0?t[n]:Se();!s||s.length===0||(e=`${s}/${e}`,r=E(s))}return e=re(e,!r),r&&!E(e)?`/${e}`:e.length>0?e:"."};function re(t,e){let r="",n=0,s=-1,o=0,i=null;for(let a=0;a<=t.length;++a){if(a<t.length)i=t[a];else{if(i==="/")break;i="/"}if(i==="/"){if(!(s===a-1||o===1))if(o===2){if(r.length<2||n!==2||r[r.length-1]!=="."||r[r.length-2]!=="."){if(r.length>2){let c=r.lastIndexOf("/");c===-1?(r="",n=0):(r=r.slice(0,c),n=r.length-1-r.lastIndexOf("/")),s=a,o=0;continue}else if(r.length>0){r="",n=0,s=a,o=0;continue}}e&&(r+=r.length>0?"/..":"..",n=2)}else r.length>0?r+=`/${t.slice(s+1,a)}`:r=t.slice(s+1,a),n=a-s-1;s=a,o=0}else i==="."&&o!==-1?++o:o=-1}return r}const E=function(t){return Ae.test(t)},ne=function(t){let e=C(t).replace(/\/$/,"").split("/").slice(0,-1);return e.length===1&&ee.test(e[0])&&(e[0]+="/"),e.join("/")||(E(t)?"/":".")},se=function(t,e){let r=C(t).split("/"),n="";for(let s=r.length-1;s>=0;s--){let o=r[s];if(o){n=o;break}}return n},Oe=/^path$/i,F={key:"PATH",value:""};function oe(t){for(let e in t){if(!Object.prototype.hasOwnProperty.call(t,e)||!Oe.test(e))continue;let r=t[e];return r?{key:e,value:r}:F}return F}function Ie(t,e){let r=e.value.split(T),n=[],s=t,o;do n.push(K(s,"node_modules",".bin")),o=s,s=M(s);while(s!==o);n.push(M(process.execPath));let i=n.concat(r).join(T);return{key:e.key,value:i}}function ze(t,e,r=!0){let n={...process.env,...e};if(!r)return n;let s=Ie(t,oe(n));return n[s.key]=s.value,n}const Me=t=>{let e=t.length,r=new q,n=()=>{--e===0&&r.end()};for(let s of t)J(s,r,{end:!1}).then(n).catch(n);return r},S=/([()\][%!^"`<>&|;, *?])/g,je=/^#!\s*(.+)/,De=/\.(?:com|exe)$/i,Pe=/node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i,Fe=process.platform==="win32",Ge=[".EXE",".CMD",".BAT",".COM"];function Re(t,e=[],r={}){if(r.shell===!0||!Fe)return{command:t,args:e,options:r};let n=G(t,r),s=null;if(n!==null){let o=Buffer.alloc(150),i=null;try{i=de(n,"r"),he(i,o,0,150,0)}catch{}finally{i!==null&&fe(i)}let a=o.toString().match(je);if(a!==null){let c=a[1].trim(),d=c.indexOf(" "),l=d===-1?c:c.slice(0,d),f=d===-1?"":c.slice(d+1),h=be(l);s=h==="env"?f||null:h}}if(s!==null&&n!==null&&(e=[n,...e],t=s,n=G(t,r)),n===null||!De.test(n)){let o=n!==null&&Pe.test(n);t=$e(t),t=t.replace(S,"^$1"),e=e.map(i=>(i=i.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),i=i.replace(/(?=(\\+?)?)\1$/,"$1$1"),i=`"${i}"`,i=i.replace(S,"^$1"),o&&(i=i.replace(S,"^$1")),i)),e=["/d","/s","/c",`"${[t,...e].join(" ")}"`],t=r.env?.comspec??"cmd.exe",r={...r,windowsVerbatimArguments:!0}}return{command:t,args:e,options:r}}function G(t,e){let r=(e.cwd??Z()).toString(),n=e.env??process.env,s=oe(n).value,o=t.includes("/")||t.includes("\\")?[""]:[r,...s.split(T)],i=n.PATHEXT?n.PATHEXT.split(T):Ge;t.includes(".")&&i[0]!==""&&i.unshift("");for(let a of o){let c=K(r,a.startsWith('"')&&a.endsWith('"')&&a.length>1?a.slice(1,-1):a,t);for(let d of i){let l=c+d;try{if(pe(l).isFile())return l}catch{}}}return null}var R=class extends Error{result;output;get exitCode(){if(this.result.exitCode!==null)return this.result.exitCode}constructor(t,e){super(`Process exited with non-zero status (${t.exitCode})`),this.result=t,this.output=e}};const Be={timeout:void 0,persist:!1},Ue={windowsHide:!0};function He(t){let e=new AbortController;for(let r of t){if(r.aborted)return e.abort(),r;r.addEventListener("abort",()=>{e.abort(r.reason)},{signal:e.signal})}return e.signal}async function B(t){let e="";try{for await(let r of t)e+=r.toString()}catch{}return e}var Ne=class{_process;_aborted=!1;_options;_command;_args;_resolveClose;_processClosed;_thrownError;get process(){return this._process}get pid(){return this._process?.pid}get exitCode(){if(this._process&&this._process.exitCode!==null)return this._process.exitCode}constructor(t,e,r){this._options={...Be,...r},this._command=t,this._args=e??[],this._processClosed=new Promise(n=>{this._resolveClose=n})}kill(t){return this._process?.kill(t)===!0}get aborted(){return this._aborted}get killed(){return this._process?.killed===!0}pipe(t,e,r){return Le(t,e,{...r,stdin:this})}async*[Symbol.asyncIterator](){let t=this._process;if(!t)return;let e=[];this._streamErr&&e.push(this._streamErr),this._streamOut&&e.push(this._streamOut);let r=Me(e),n=ye.createInterface({input:r});for await(let s of n)yield s.toString();if(await this._processClosed,t.removeAllListeners(),this._thrownError)throw this._thrownError;if(this._options?.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new R(this)}async _waitForOutput(){let t=this._process;if(!t)throw Error("No process was started");let[e,r]=await Promise.all([this._streamOut?B(this._streamOut):"",this._streamErr?B(this._streamErr):""]);await this._processClosed;let{stdin:n}=this._options;if(n&&typeof n!="string"&&await n,t.removeAllListeners(),this._thrownError)throw this._thrownError;let s={stderr:r,stdout:e,exitCode:this.exitCode};if(this._options.throwOnError&&this.exitCode!==0&&this.exitCode!==void 0)throw new R(this,s);return s}then(t,e){return this._waitForOutput().then(t,e)}_streamOut;_streamErr;spawn(){let t=Z(),e=this._options,r={...Ue,...e.nodeOptions},n=[];this._resetState(),e.timeout!==void 0&&n.push(AbortSignal.timeout(e.timeout)),e.signal!==void 0&&n.push(e.signal),e.persist===!0&&(r.detached=!0),n.length>0&&(r.signal=He(n)),r.env=ze(t,r.env,e.nodePath);let s=Re(this._command,this._args,r),o=Y(s.command,s.args,s.options);if(o.stderr&&(this._streamErr=o.stderr),o.stdout&&(this._streamOut=o.stdout),this._process=o,o.once("error",this._onError),o.once("close",this._onClose),o.stdin){let{stdin:i}=e;typeof i=="string"?o.stdin.end(i):i?.process?.stdout?.pipe(o.stdin)}}_resetState(){this._aborted=!1,this._processClosed=new Promise(t=>{this._resolveClose=t}),this._thrownError=void 0}_onError=t=>{if(t.name==="AbortError"&&(!(t.cause instanceof Error)||t.cause.name!=="TimeoutError")){this._aborted=!0;return}this._thrownError=t};_onClose=()=>{this._resolveClose&&this._resolveClose()}};const I=(t,e,r)=>{let n=new Ne(t,e,r);return n.spawn(),n},Le=I;var We=xe({detectPackageManager:()=>ie,installDependencies:()=>Ze,packageManagers:()=>_});async function Ve(t,e,r={}){let n=te(t).split("/");for(;n.length>0;){let s=await e(n.join("/")||"/");if(s||!r.includeParentDirs)return s;n.pop()}}function Xe(t){let e;return()=>(e===void 0&&(e=t().then(r=>(e=r,e))),e)}const qe=Xe(async()=>{if(globalThis.process?.versions?.webcontainer)return!1;try{let{exitCode:t}=await I("corepack",["--version"]);return t===0}catch{return!1}});async function Je(t,e,r={}){let n=t!=="npm"&&t!=="bun"&&t!=="deno"&&r.corepack!==!1&&await qe()?["corepack",[t,...e]]:[t,e],{exitCode:s,stdout:o,stderr:i}=await I(n[0],n[1],{nodeOptions:{cwd:p(r.cwd||process.cwd()),env:r.env,stdio:r.silent?"pipe":"inherit"}});if(s!==0)throw Error(`\`${n.flat().join(" ")}\` failed.${r.silent?["",o,i].join(`
|
|
2
|
-
`):""}`)}async function Ye(t={}){let e=t.cwd||process.cwd(),r={...process.env,...t.env},n=(typeof t.packageManager=="string"?_.find(s=>s.name===t.packageManager):t.packageManager)||await ie(t.cwd||process.cwd());if(!n)throw Error("No package manager auto-detected.");return{cwd:e,env:r,silent:t.silent??!1,packageManager:n,dev:t.dev??!1,workspace:t.workspace,global:t.global??!1,dry:t.dry??!1,corepack:t.corepack??!0}}function Ke(t){let[e,r]=(t||"").split("@"),[n,s]=r?.split("+")||[];if(e&&e!=="-"&&/^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(e))return{name:e,version:n,buildMeta:s};let o=(e||"").replace(/\W+/g,"");return{name:o,version:n,buildMeta:s,warnings:[`Abnormal characters found in \`packageManager\` field, sanitizing from \`${e}\` to \`${o}\``]}}const _=[{name:"npm",command:"npm",lockFile:"package-lock.json"},{name:"pnpm",command:"pnpm",lockFile:"pnpm-lock.yaml",files:["pnpm-workspace.yaml"]},{name:"bun",command:"bun",lockFile:["bun.lockb","bun.lock"]},{name:"yarn",command:"yarn",lockFile:"yarn.lock",files:[".yarnrc.yml"]},{name:"deno",command:"deno",lockFile:"deno.lock",files:["deno.json"]}];async function ie(t,e={}){let r=await Ve(p(t||"."),async n=>{if(!e.ignorePackageJSON){let s=P(n,"package.json");if(m(s)){let o=JSON.parse(await X(s,"utf8"));if(o?.packageManager){let{name:i,version:a="0.0.0",buildMeta:c,warnings:d}=Ke(o.packageManager);if(i){let l=a.split(".")[0],f=_.find(h=>h.name===i&&h.majorVersion===l)||_.find(h=>h.name===i);return{name:i,command:i,version:a,majorVersion:l,buildMeta:c,warnings:d,files:f?.files,lockFile:f?.lockFile}}}}if(m(P(n,"deno.json")))return _.find(o=>o.name==="deno")}if(!e.ignoreLockFile){for(let s of _)if([s.lockFile,s.files].flat().filter(Boolean).some(o=>m(p(n,o))))return{...s}}},{includeParentDirs:e.includeParentDirs??!0});if(!r&&!e.ignoreArgv){let n=process.argv[1];if(n){for(let s of _)if(RegExp(`[/\\\\]\\.?${s.command}`).test(n))return s}}return r}async function Ze(t={}){let e=await Ye(t),r=t.frozenLockFile?{npm:["ci"],yarn:["install","--immutable"],bun:["install","--frozen-lockfile"],pnpm:["install","--frozen-lockfile"],deno:["install","--frozen"]}[e.packageManager.name]:["install"];return t.ignoreWorkspace&&e.packageManager.name==="pnpm"&&r.push("--ignore-workspace"),e.dry||await Je(e.packageManager.command,r,{cwd:e.cwd,silent:e.silent,corepack:e.corepack}),{exec:{command:e.packageManager.command,args:r}}}const Qe=Object.defineProperty({__proto__:null,basename:se,dirname:ne,dist_exports:We,resolve:p},Symbol.toStringTag,{value:"Module"});async function et(t,e,r={}){const n=e+".json",s=JSON.parse(await X(n,"utf8").catch(()=>"{}")),o=(await k(t,{method:"HEAD",headers:r.headers}).catch(()=>{}))?.headers.get("etag");if(s.etag===o&&m(e))return;typeof o=="string"&&(s.etag=o);const i=await k(t,{headers:r.headers});if(i.status>=400)throw new Error(`Failed to download ${t}: ${i.status} ${i.statusText}`);const a=V(e);await ke(_e)(i.body,a),await we(n,JSON.stringify(s),"utf8")}const tt=/^(?<repo>[-\w.]+\/[-\w.]+)(?<subdir>[^#]+)?(?<ref>#[-\w./@]+)?/,rt=/^(?<repo>[-\w.]+(?:\/[-\w.]+)+?)(?:::(?<subdir>[^#]*))?(?<ref>#[-\w./@]+)?$/;function A(t,e){const r=e?.expandRepo||t.includes("::"),n=t.match(r?rt:tt)?.groups||{},s=r?n.subdir?"/"+n.subdir:"/":n.subdir||"/";return{repo:n.repo||"",subdir:s,ref:n.ref?n.ref.slice(1):"main"}}function v(...t){process.env.DEBUG&&console.debug("[giget]",...t)}async function k(t,e={}){e.headers?.["sec-fetch-mode"]&&(e.mode=e.headers["sec-fetch-mode"]);const r=await fetch(t,{...e,headers:ae(e.headers)}).catch(n=>{throw new Error(`Failed to download ${t}: ${n}`,{cause:n})});if(e.validateStatus&&r.status>=400)throw new Error(`Failed to fetch ${t}: ${r.status} ${r.statusText}`);return r}function nt(){const t=process.env.XDG_CACHE_HOME?p(process.env.XDG_CACHE_HOME,"giget"):p(Ee(),".cache/giget");if(process.platform==="win32"){const e=p(Q(),"giget");if(!m(e)&&m(t))try{ge(t,e)}catch{}return e}return t}function ae(t={}){const e={};for(const[r,n]of Object.entries(t))n&&(e[r.toLowerCase()]=n);return e}const st=(t,e)=>{const r=ot(t);return{name:r.name,version:r.subdir?`${r.version||"default"}-${r.subdir.replaceAll("/","-")}`:r.version,tar:({auth:n}={})=>it(r,n??e.auth)}};function ot(t,e={}){const r=e.cwd??process.cwd();let n=t.replace(/#.*$/,""),s;if(/^[./]/.test(t))n=p(r,n);else if(/^https?:\/\//.test(n)){const l=/^(https?:\/\/[^/]+)\/([\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(n);if(l){const[,f,h,g]=l;n=`${f}/${h}`,g&&(s=g)}}else if(n.includes("@")){const l=/^(.*?:[\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(n);if(l){const[,f,h]=l;n=f,h&&(s=h)}}else{const l={"github:":"https://github.com/","gh:":"https://github.com/","gitlab:":"https://gitlab.com/","bitbucket:":"https://bitbucket.org/","sourcehut:":"https://git.sr.ht/~"},f=/^(.+?:)/.exec(n)?.at(1);f&&l[f]?n=n.replace(f,l[f]):f||(n=`${(process.env.GIGET_GIT_HOST||"https://github.com/").replace(/\/$/,"")}/${n}`);const h=/^(https?:\/\/[^/]+\/~?[\w.-]+\/[\w.-]+?)(?:\.git)?(?:\/(.+))?$/.exec(n);if(h){const[,g,u]=h;n=g,u&&(s=u)}}const o=n.replace(/^https?:\/\//,"").replace(/^.+@/,"").replace(/(\.git)?(#.*)?$/,"").replace(/^\W+/,"").replaceAll(/[:/]/g,"-"),[i,a]=/#(.+)$/.exec(t)?.at(1)?.split(":")??[],c=i||void 0,d=a||s;return{uri:n,name:o,...c&&{version:c},...d&&{subdir:d}}}async function it(t,e){const r=await ve(j(Q(),"giget-git-"));if(e&&/[\r\n]/.test(e))throw new Error("Auth token must not contain newline characters");const n={...process.env,GIT_TERMINAL_PROMPT:"0"};e&&(n.GIT_CONFIG_COUNT="1",n.GIT_CONFIG_KEY_0="http.extraHeader",n.GIT_CONFIG_VALUE_0=`Authorization: Bearer ${e}`);const s={env:n,timeout:6e4},o=at(),i=c=>H(c,s,o),a=c=>H(c,{...s,cwd:r},o);try{const c=["clone","--progress","--depth","1"];t.subdir&&c.push("--filter=blob:none","--sparse","--no-checkout"),t.version&&c.push("--branch",t.version),c.push("--",t.uri,r);try{o.update("Cloning..."),await i(c),o.update("Cloned.")}catch(u){if(!t.version)throw u;v("Shallow clone failed, falling back to full clone:",u),o.update("Shallow clone failed, cloning..."),await x(r,{recursive:!0,force:!0}),await O(r,{recursive:!0}),await a(["init"]),await a(["remote","add","origin",t.uri]),await a(["fetch","origin"]),await a(["checkout",t.version]),o.update("Fetched.")}t.subdir&&(o.update(`Sparse checkout ${t.subdir}...`),await a(["sparse-checkout","set",t.subdir]),await a(["checkout"])),o.update("Packing...");const d=t.subdir?j(r,t.subdir):r,{create:l}=await import("../packem_chunks/tar.js").then(u=>u.index_min_exports);o.done();const f=l({gzip:!0,cwd:d,filter:u=>!u.startsWith(".git/")&&u!==".git"&&!u.startsWith("./.git/")&&u!=="./.git"},["."]).pipe(new q);let h=!1;const g=()=>{h||(h=!0,x(r,{recursive:!0,force:!0}))};return f.on("end",g),f.on("error",g),f.on("close",g),f}catch(c){throw o.done(),await x(r,{recursive:!0,force:!0}),c}}const U=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"];function H(t,e,r){return new Promise((n,s)=>{const o=Y("git",t,{...e,stdio:["ignore","pipe","pipe"]});o.stdout.resume();let i="";o.stderr?.on("data",a=>{const c=a.toString();for(const d of c.split(/[\r\n]/)){const l=d.trim();l&&(i=l)}r&&r.update(i)}),o.on("close",a=>{a===0?n(i):s(new Error(`git ${t[0]} exited with code ${a}. Is git installed?`))}),o.on("error",a=>{a.code==="ENOENT"?s(new Error("git is not installed or not found in PATH")):s(a)})})}function at(){if(!process.stderr.isTTY)return{update(s){},done(){}};let t="",e=0;const r=()=>{const s=U[e%U.length];e++,process.stderr.write(`\x1B[2K\r\x1B[2m${s} ${t}\x1B[0m`)},n=setInterval(r,80);return{update(s){t=s,r()},done(){clearInterval(n),process.stderr.write("\x1B[2K\r")}}}const N=async(t,e)=>{if(t.endsWith(".json"))return await L(t,e);const r=new URL(t);let n=se(r.pathname);try{const s=await k(r.href,{method:"HEAD",validateStatus:!0,headers:{authorization:e.auth?`Bearer ${e.auth}`:void 0}});if((s.headers.get("content-type")||"").includes("application/json"))return await L(t,e);const o=s.headers.get("content-disposition")?.match(/filename="?(.+)"?/)?.[1];o&&(n=o.split(".")[0])}catch(s){v(`Failed to fetch HEAD for ${r.href}:`,s)}return{name:`${n}-${r.href.slice(0,8)}`,version:"",subdir:"",tar:r.href,defaultDir:n,headers:{Authorization:e.auth?`Bearer ${e.auth}`:void 0}}},L=async(t,e)=>{const r=await(await k(t,{validateStatus:!0,headers:{authorization:e.auth?`Bearer ${e.auth}`:void 0}})).json();if(!r.tar||!r.name)throw new Error(`Invalid template info from ${t}. name or tar fields are missing!`);return r},W=(t,e)=>{const r=A(t),n=process.env.GIGET_GITHUB_URL||"https://api.github.com";return{name:r.repo.replace("/","-"),version:r.ref,subdir:r.subdir,headers:{Authorization:e.auth?`Bearer ${e.auth}`:void 0,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"},url:`${n.replace("api.github.com","github.com")}/${r.repo}/tree/${r.ref}${r.subdir}`,tar:`${n}/repos/${r.repo}/tarball/${r.ref}`}},ct=(t,e)=>{const r=A(t,{expandRepo:!0}),n=process.env.GIGET_GITLAB_URL||"https://gitlab.com";return{name:r.repo.replace("/","-"),version:r.ref,subdir:r.subdir,headers:{authorization:e.auth?`Bearer ${e.auth}`:void 0,"sec-fetch-mode":"same-origin"},url:`${n}/${r.repo}/tree/${r.ref}${r.subdir}`,tar:`${n}/${r.repo}/-/archive/${r.ref}.tar.gz`}},lt=(t,e)=>{const r=A(t);return{name:r.repo.replace("/","-"),version:r.ref,subdir:r.subdir,headers:{authorization:e.auth?`Bearer ${e.auth}`:void 0},url:`https://bitbucket.com/${r.repo}/src/${r.ref}${r.subdir}`,tar:`https://bitbucket.org/${r.repo}/get/${r.ref}.tar.gz`}},ut=(t,e)=>{const r=A(t);return{name:r.repo.replace("/","-"),version:r.ref,subdir:r.subdir,headers:{authorization:e.auth?`Bearer ${e.auth}`:void 0},url:`https://git.sr.ht/~${r.repo}/tree/${r.ref}/item${r.subdir}`,tar:`https://git.sr.ht/~${r.repo}/archive/${r.ref}.tar.gz`}},dt={http:N,https:N,git:st,github:W,gh:W,gitlab:ct,bitbucket:lt,sourcehut:ut},ht="https://raw.githubusercontent.com/unjs/giget/main/templates",ft=(t=ht,e={})=>(async r=>{const n=Date.now(),s=`${t}/${r}.json`,o=await k(s,{headers:{authorization:e.auth?`Bearer ${e.auth}`:void 0}});if(o.status>=400)throw new Error(`Failed to download ${r} template info from ${s}: ${o.status} ${o.statusText}`);const i=await o.json();if(!i.tar||!i.name)throw new Error(`Invalid template info from ${s}. name or tar fields are missing!`);return v(`Fetched ${r} template info from ${s} in ${Date.now()-n}ms`),i}),pt=/^([\w+-.]+):/;function mt(t){if(!t)return;if(typeof t=="function")return t;const e=globalThis.process.getBuiltinModule?.("node:path")?.matchesGlob;if(typeof e!="function")throw new TypeError("Ignore patterns require `path.matchesGlob` which is supported in Node.js v22.5.0, v20.17.0 or later.");return r=>t.some(n=>e(r,n))}async function wt(t,e={}){const r=mt(e.ignore);e.registry=process.env.GIGET_REGISTRY??e.registry,e.auth=process.env.GIGET_AUTH??e.auth;const n=e.registry===!1?void 0:ft(e.registry,{auth:e.auth});let s=e.provider||(n?"registry":"github"),o=t;const i=t.match(pt);i&&(s=i[1],o=t.slice(i[0].length),(s==="http"||s==="https")&&(o=t)),s.endsWith("+git")&&(o=`${s.slice(0,-4)}:${o}`,s="git");const a=e.providers?.[s]||dt[s]||n;if(!a)throw new Error(`Unsupported provider: ${s}`);const c=await Promise.resolve().then(()=>a(o,{auth:e.auth})).catch(u=>{throw new Error(`Failed to download template from ${s}: ${u.message}`)});if(!c)throw new Error(`Failed to resolve template from ${s}`);c.name=(c.name||"template").replace(/[^\da-z-]/gi,"-"),c.defaultDir=(c.defaultDir||c.name).replace(/[^\da-z-]/gi,"-");const d=p(p(nt(),s,c.name),(c.version||c.name)+".tar.gz");if(e.preferOffline&&m(d)&&(e.offline=!0),!e.offline){await O(ne(d),{recursive:!0});const u=Date.now();if(typeof c.tar=="function"){const b=c.tar;await(async()=>{const $=await b({auth:e.auth});await J($ instanceof z?$:z.fromWeb($),V(d))})().catch($=>{if(!m(d))throw $;v("Download error. Using cached version:",$),e.offline=!0})}else await et(c.tar,d,{headers:{Authorization:e.auth?`Bearer ${e.auth}`:void 0,...ae(c.headers)}}).catch(b=>{if(!m(d))throw b;v("Download error. Using cached version:",b),e.offline=!0});v(`Downloaded to ${d} in ${Date.now()-u}ms`)}if(!m(d))throw new Error(`Tarball not found: ${d} (offline: ${e.offline})`);const l=p(p(e.cwd||"."),e.dir||c.defaultDir);if(e.forceClean&&await x(l,{recursive:!0,force:!0}),!e.force&&m(l)&&me(l).length>0)throw new Error(`Destination ${l} already exists.`);await O(l,{recursive:!0});const f=Date.now(),h=c.subdir?.replace(/^\//,"")||"",{extract:g}=await import("../packem_chunks/tar.js").then(u=>u.index_min_exports);if(await g({file:d,cwd:l,onReadEntry(u){u.path=u.path.split("/").splice(1).join("/"),h&&(u.path.startsWith(h+"/")?u.path=u.path.slice(h.length):u.path=""),r&&u.path&&r(u.path.replace(/^\//,""))&&(u.path="")}}),v(`Extracted to ${l} in ${Date.now()-f}ms`),e.install){v("Installing dependencies...");const{installDependencies:u}=await Promise.resolve().then(()=>Qe).then(b=>b.dist_exports);await u({cwd:l,silent:e.silent,...typeof e.install=="object"?e.install:{}})}return{...c,source:o,dir:l}}export{xe as _,wt as d};
|