@stricli/core 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +12 -12
- package/dist/index.d.cts +42 -12
- package/dist/index.d.ts +42 -12
- package/dist/index.js +12 -12
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
"use strict";var ie=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var je=Object.prototype.hasOwnProperty;var Ue=(e,t)=>{for(var n in t)ie(e,n,{get:t[n],enumerable:!0})},qe=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ge(t))!je.call(e,r)&&r!==n&&ie(e,r,{get:()=>t[r],enumerable:!(a=Me(t,r))||a.enumerable});return e};var Ve=e=>qe(ie({},"__esModule",{value:!0}),e);var gn={};Ue(gn,{AliasNotFoundError:()=>k,ArgumentParseError:()=>I,ArgumentScannerError:()=>h,EnumValidationError:()=>U,ExitCode:()=>N,FlagNotFoundError:()=>$,InvalidNegatedFlagSyntaxError:()=>K,UnexpectedFlagError:()=>z,UnexpectedPositionalError:()=>q,UnsatisfiedFlagError:()=>O,UnsatisfiedPositionalError:()=>V,booleanParser:()=>pe,buildApplication:()=>Ne,buildChoiceParser:()=>Be,buildCommand:()=>ke,buildRouteMap:()=>De,formatMessageForArgumentScannerError:()=>ee,generateHelpTextForAllCommands:()=>Pe,looseBooleanParser:()=>Q,numberParser:()=>Z,proposeCompletions:()=>Oe,run:()=>fn,text_en:()=>me});module.exports=Ve(gn);function J(e,t){let n=e.env?.[t];return typeof n=="string"&&n!=="0"}var N={UnknownCommand:-5,InvalidArgument:-4,ContextLoadError:-3,CommandLoadError:-2,InternalError:-1,Success:0,CommandRunError:1};function M(e){return e.replace(/-./g,t=>t[1].toUpperCase())}function A(e){return Array.from(e).map((t,n)=>{let a=t.toUpperCase(),r=t.toLowerCase();return n===0||a!==t||a===r?t:`-${r}`}).join("")}function We(e){let t=new Map;return{get:(...n)=>t.get(n.join(","))??e,set:(n,...a)=>{t.set(a.join(","),n)}}}function He(e,t,n){let{threshold:a,weights:r}=n;if(e===t)return 0;let i=Math.abs(e.length-t.length);if(typeof a=="number"&&i>a)return 1/0;let o=We(1/0);o.set(0,-1,-1);for(let s=0;s<t.length;++s)o.set((s+1)*r.insertion,-1,s);for(let s=0;s<e.length;++s)o.set((s+1)*r.deletion,s,-1);let d=-1/0;for(let s=0;s<e.length;++s){let u=1/0;for(let l=0;l<=t.length-1;++l){let p=e[s]===t[l]?0:1,c=[o.get(s-1,l)+r.deletion,o.get(s,l-1)+r.insertion,o.get(s-1,l-1)+p*r.substitution];e[s]===t[l-1]&&e[s-1]===t[l]&&c.push(o.get(s-2,l-2)+p*r.transposition);let f=Math.min(...c);o.set(f,s,l),f<u&&(u=f)}if(u>a){if(d>a)return 1/0;d=u}else d=-1/0}let m=o.get(e.length-1,t.length-1);return m>a?1/0:m}function _e(e,t,n){let a=e[1]-t[1];if(a!==0)return a;let r=e[0].startsWith(n),i=t[0].startsWith(n);return r&&!i?-1:!r&&i?1:e[0].localeCompare(t[0])}function G(e,t,n){let a=t.map(i=>[i,He(e,i,n)]).filter(([,i])=>i<=n.threshold),r=Math.min(...a.map(([,i])=>i));return a.filter(([,i])=>i===r).sort((i,o)=>_e(i,o,e)).map(([i])=>i)}var x=class extends Error{};function H(e){return e instanceof Error?e.stack??String(e):String(e)}function Ke(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r<a;++r)n[r]=Math.max(e[r],t[r]);return n}function L(e,t){if(e.length===0)return[];let n=Array(Math.max(...e.map(r=>r.length))).fill(0,0),a=e.reduce((r,i)=>{let o=i.map(d=>d.length);return Ke(r,o)},n);return e.map(r=>{let i=(r[0]??"").padEnd(a[0]);return r.slice(1).reduce((o,d,m,s)=>{let u=s.length===m+1?d:d.padEnd(a[m+1]);return[...o,t?.[m]??" ",u]},[i]).join("").trimEnd()})}function _(e,t){if(e.length<=1)return e[0]??"";if(e.length===2)return e.join(` ${t.conjunction} `);let n=e.slice(0,e.length-1).join(", ");return t.serialComma&&(n+=","),[n,t.conjunction,e[e.length-1]].join(" ")}function ze(e,t){return e.reduce((n,a)=>{let r=t(a),i=n[r]??[];return i.push(a),n[r]=i,n},{})}function ue(e,t){return ze(e,n=>n[t])}async function Y(e){let t=await Promise.allSettled(e),n=ue(t,"status");return n.rejected&&n.rejected.length>0?{status:"rejected",reasons:n.rejected.map(a=>a.reason)}:{status:"fulfilled",value:n.fulfilled?.map(a=>a.value)??[]}}var pe=e=>{switch(e.toLowerCase()){case"true":return!0;case"false":return!1}throw new SyntaxError(`Cannot convert ${e} to a boolean`)},Je=new Set(["true","t","yes","y","on","1"]),Ye=new Set(["false","f","no","n","off","0"]),Q=e=>{let t=e.toLowerCase();if(Je.has(t))return!0;if(Ye.has(t))return!1;throw new SyntaxError(`Cannot convert ${e} to a boolean`)};var Z=e=>{let t=Number(e);if(Number.isNaN(t))throw new SyntaxError(`Cannot convert ${e} to a number`);return t};var h=class extends x{_brand};function ee(e,t){let n=e.constructor.name,a=t[n];return a?a(e):e.message}function Qe(e,t,n){return Object.fromEntries(Object.entries(t).map(([a,r])=>{let i=r,o=e[i];if(!o){let d=X(i,n);throw new $(d,[],a)}return[a,[i,o]]}))}var $=class extends h{input;corrections;aliasName;constructor(t,n,a){let r=`No flag registered for --${t}`;if(a)r+=` (aliased from -${a})`;else if(n.length>0){let i=_(n.map(o=>`--${o}`),{kind:"conjunctive",conjunction:"or",serialComma:!0});r+=`, did you mean ${i}?`}super(r),this.input=t,this.corrections=n,this.aliasName=a}},k=class extends h{input;constructor(t){super(`No alias registered for -${t}`),this.input=t}};function se(e,t){return e.placeholder?e.placeholder:typeof t=="number"?`arg${t}`:"args"}function X(e,t){return t==="allow-kebab-for-camel"?A(e):e}var I=class extends h{externalFlagNameOrPlaceholder;input;exception;constructor(t,n,a){super(`Failed to parse "${n}" for ${t}: ${a instanceof Error?a.message:String(a)}`),this.externalFlagNameOrPlaceholder=t,this.input=n,this.exception=a}};function j(e,t,n,a){try{return t.parse.call(a,n)}catch(r){throw new I(e,n,r)}}var U=class extends h{externalFlagName;input;values;constructor(t,n,a,r){let i=`Expected "${n}" to be one of (${a.join("|")})`;if(r.length>0){let o=_(r.map(d=>`"${d}"`),{kind:"conjunctive",conjunction:"or",serialComma:!0});i+=`, did you mean ${o}?`}super(i),this.externalFlagName=t,this.input=n,this.values=a}},O=class extends h{externalFlagName;nextFlagName;constructor(t,n){let a=`Expected input for flag --${t}`;n&&(a+=` but encountered --${n} instead`),super(a),this.externalFlagName=t,this.nextFlagName=n}},q=class extends h{expectedCount;input;constructor(t,n){super(`Too many arguments, expected ${t} but encountered "${n}"`),this.expectedCount=t,this.input=n}},V=class extends h{placeholder;limit;constructor(t,n){let a;n?(a=`Expected at least ${n[0]} argument(s) for ${t}`,n[1]===0?a+=" but found none":a+=` but only found ${n[1]}`):a=`Expected argument for ${t}`,super(a),this.placeholder=t,this.limit=n}};function ce(e){if(e.startsWith("no")&&e.length>2){if(e[2]==="-")return e.slice(4);let t=e[2],n=t.toUpperCase();return t!==n?void 0:t.toLowerCase()+e.slice(3)}}function ge(e,t,n){let a=e,r=t[a];if(!r){let o=ce(a);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}let i=M(e);if(n.caseStyle==="allow-kebab-for-camel"&&!r){if(r=t[i],r)return{namedFlag:[i,r]};let o=ce(i);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}if(!r){if(i in t)throw new $(e,[i]);let o=A(e);if(o in t)throw new $(e,[o]);let d=G(a,Object.keys(t),n.distanceOptions);throw new $(e,d)}return{namedFlag:[a,r]}}function fe(e){return e.namedFlag[1].kind==="boolean"||e.namedFlag[1].kind==="counter"}var Ce=/^-([a-z]+)$/i,Ze=/^--([a-z][a-z-]+)$/i;function en(e,t,n,a){let r=Ce.exec(e);if(r){let o=r[1];return Array.from(o).map(d=>{let m=d,s=n[m];if(!s)throw new k(m);return{namedFlag:s}})}let i=Ze.exec(e);if(i){let o=i[1];return[ge(o,t,a)]}return[]}var nn=/^--([a-z][a-z-.\d_]+)=(.+)$/i,tn=/^-([a-z])=(.+)$/i,K=class extends h{externalFlagName;valueText;constructor(t,n){super(`Cannot negate flag --${t} and pass "${n}" as value`),this.externalFlagName=t,this.valueText=n}};function rn(e,t,n,a){let r=nn.exec(e);if(r){let o=r[1],{namedFlag:d,negated:m}=ge(o,t,a),s=r[2];if(m)throw new K(o,s);return[d,s]}let i=tn.exec(e);if(i){let o=i[1],d=n[o];if(!d)throw new k(o);let m=i[2];return[d,m]}}async function on(e,t,n,a,r){if(!n){if("default"in t&&typeof t.default<"u")return t.kind==="boolean"||t.kind==="enum"?t.default:j(e,t,t.default,r);if(t.optional)return;if(t.kind==="boolean")return!1;if(t.kind==="counter")return 0;throw new O(e)}if(t.kind==="counter")return n.reduce((o,d)=>{try{return o+Z.call(r,d)}catch(m){throw new I(e,d,m)}},0);if("variadic"in t&&t.variadic){if(t.kind==="enum"){for(let o of n)if(!t.values.includes(o)){let d=G(o,t.values,a.distanceOptions);throw new U(e,o,t.values,d)}return n}return Promise.all(n.map(o=>j(e,t,o,r)))}let i=n[0];if(t.kind==="boolean")try{return Q.call(r,i)}catch(o){throw new I(e,i,o)}if(t.kind==="enum"){if(!t.values.includes(i)){let o=G(i,t.values,a.distanceOptions);throw new U(e,i,t.values,o)}return i}return j(e,t,i,r)}var z=class extends h{externalFlagName;previousInput;input;constructor(t,n,a){super(`Too many arguments for --${t}, encountered "${a}" after "${n}"`),this.externalFlagName=t,this.previousInput=n,this.input=a}};function ye(e){return e.kind==="counter"?!0:"variadic"in e?!!e.variadic:!1}function v(e,t,n,a){let r=e.get(n[0])??[];if(r.length>0&&!ye(n[1])){let i=X(n[0],t);throw new z(i,r[0],a)}e.set(n[0],[...r,a])}function le(e,t,n){if(t.get(n)){let r=e[n];return!ye(r)}return!1}function ne(e,t){let{flags:n={},aliases:a={},positional:r={kind:"tuple",parameters:[]}}=e,i=Qe(n,a,t.caseStyle),o=[],d=new Map,m=0,s,u=!1;return{next:l=>{if(!u&&t.allowArgumentEscapeSequence&&l==="--"){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)v(d,t.caseStyle,s,""),s=void 0;else{let p=X(s[0],t.caseStyle);throw new O(p)}u=!0;return}if(!u){let p=rn(l,n,i,t);if(p){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)v(d,t.caseStyle,s,""),s=void 0;else{let f=X(s[0],t.caseStyle),T=X(p[0][0],t.caseStyle);throw new O(f,T)}v(d,t.caseStyle,...p);return}let c=en(l,n,i,t);if(c.length>0){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)v(d,t.caseStyle,s,""),s=void 0;else{let f=X(s[0],t.caseStyle),T=X(c[0].namedFlag[0],t.caseStyle);throw new O(f,T)}if(c.every(fe))for(let f of c)f.namedFlag[1].kind==="boolean"?v(d,t.caseStyle,f.namedFlag,f.negated?"false":"true"):v(d,t.caseStyle,f.namedFlag,"1");else if(c.length>1){let f=c.find(E=>!fe(E)),T=X(f.namedFlag[0],t.caseStyle);throw new O(T)}else s=c[0].namedFlag;return}}if(s)v(d,t.caseStyle,s,l),s=void 0;else{if(r.kind==="tuple"){if(m>=r.parameters.length)throw new q(r.parameters.length,l)}else if(typeof r.maximum=="number"&&m>=r.maximum)throw new q(r.maximum,l);o[m]=l,++m}},parseArguments:async l=>{let p=[],c;r.kind==="array"?(typeof r.minimum=="number"&&m<r.minimum&&p.push(new V(se(r.parameter),[r.minimum,m])),c=Y(o.map(async(g,C)=>{let y=se(r.parameter,C+1);return j(y,r.parameter,g,l)}))):c=Y(r.parameters.map(async(g,C)=>{let y=se(g,C+1),b=o[C];if(typeof b!="string"){if(typeof g.default=="string")return j(y,g,g.default,l);if(g.optional)return;throw new V(y)}return j(y,g,b,l)})),s&&s[1].kind==="parsed"&&s[1].inferEmpty&&(v(d,t.caseStyle,s,""),s=void 0);let f=Y(Object.entries(n).map(async g=>{let[C,y]=g,b=X(C,t.caseStyle);if(s&&s[0]===C)throw new O(b);let P=d.get(C),w=await on(b,y,P,t,l);return[C,w]})),[T,E]=await Promise.all([c,f]);if(T.status==="rejected")for(let g of T.reasons)p.push(g);if(E.status==="rejected")for(let g of E.reasons)p.push(g);if(p.length>0)return{success:!1,errors:p};if(T.status==="rejected")throw new x("Unknown failure while scanning positional arguments");if(E.status==="rejected")throw new x("Unknown failure while scanning flag arguments");return{success:!0,arguments:[Object.fromEntries(E.value),...T.value]}},proposeCompletions:async({partial:l,completionConfig:p,text:c,context:f,includeVersionFlag:T})=>{if(s){let F=s[1],g;return F.kind==="enum"?g=F.values:F.proposeCompletions?g=await F.proposeCompletions.call(f,l):g=[],g.map(C=>({kind:"argument:value",completion:C,brief:F.brief})).filter(({completion:C})=>C.startsWith(l))}let E=[];if(!u){let F=Ce.exec(l);if(p.includeAliases){if(l===""||l==="-"){let g=Object.entries(a).filter(C=>!le(n,d,C[1]));for(let[C]of g){let y=i[C];y&&E.push({kind:"argument:flag",completion:`-${C}`,brief:y[1].brief})}}else if(F){let g=Array.from(F[1]);if(g.includes("h"))return[];if(T&&g.includes("v"))return[];let C=new Map(d);for(let P of g){let w=i[P];if(!w)throw new k(P);v(C,t.caseStyle,w,w[1].kind==="boolean"?"true":"1")}let y=g[g.length-1];if(y){let P=i[y];P&&E.push({kind:"argument:flag",completion:l,brief:P[1].brief})}let b=Object.entries(a).filter(P=>!le(n,C,P[1]));for(let[P]of b){let w=i[P];w&&E.push({kind:"argument:flag",completion:`${l}${P}`,brief:w[1].brief})}}}if(l===""||l==="-"||l.startsWith("--")){t.allowArgumentEscapeSequence&&E.push({kind:"argument:flag",completion:"--",brief:c.briefs.argumentEscapeSequence});let g=Object.entries(n).filter(([y])=>!le(n,d,y));t.caseStyle==="allow-kebab-for-camel"&&(g=g.map(([y,b])=>[A(y),b]));let C=g.map(([y,b])=>[`--${y}`,b]).filter(([y])=>y.startsWith(l));E.push(...C.map(([y,b])=>({kind:"argument:flag",completion:y,brief:b.brief})))}}if(r.kind==="array"){if(r.parameter.proposeCompletions&&(typeof r.maximum!="number"||m<r.maximum)){let F=await r.parameter.proposeCompletions.call(f,l);E.push(...F.map(g=>({kind:"argument:value",completion:g,brief:r.parameter.brief})))}}else{let F=r.parameters[m];if(F?.proposeCompletions){let g=await F.proposeCompletions.call(f,l);E.push(...g.map(C=>({kind:"argument:value",completion:C,brief:F.brief})))}}return E.filter(({completion:F})=>F.startsWith(l))}}}function xe(e,t,n){let a=t==="allow-kebab-for-camel"?"convert-camel-to-kebab":t,r=e.getAllEntries();return n.includeHiddenRoutes||(r=r.filter(i=>!i.hidden)),r.flatMap(i=>{let o=i.name[a];return n.includeAliases?[o,...i.aliases]:[o]})}var me={headers:{usage:"USAGE",aliases:"ALIASES",commands:"COMMANDS",flags:"FLAGS",arguments:"ARGUMENTS"},keywords:{default:"default ="},briefs:{help:"Print help information and exit",helpAll:"Print help information (including hidden commands/flags) and exit",version:"Print version information and exit",argumentEscapeSequence:"All subsequent inputs should be interpreted as arguments"},noCommandRegisteredForInput:({input:e,corrections:t})=>{let n=`No command registered for \`${e}\``;if(t.length>0){let a=_(t,{kind:"conjunctive",conjunction:"or",serialComma:!0});return`${n}, did you mean ${a}?`}else return n},noTextAvailableForLocale:({requestedLocale:e,defaultLocale:t})=>`Application does not support "${e}" locale, defaulting to "${t}"`,exceptionWhileParsingArguments:e=>e instanceof h?ee(e,{}):`Unable to parse arguments, ${H(e)}`,exceptionWhileLoadingCommandFunction:e=>`Unable to load command function, ${H(e)}`,exceptionWhileLoadingCommandContext:e=>`Unable to load command context, ${H(e)}`,exceptionWhileRunningCommand:e=>`Command failed, ${H(e)}`,commandErrorResult:e=>e.message,currentVersionIsNotLatest:({currentVersion:e,latestVersion:t,upgradeCommand:n})=>n?`Latest available version is ${t} (currently running ${e}), upgrade with "${n}"`:`Latest available version is ${t} (currently running ${e})`};function Te(e){if(e.startsWith("en"))return me}function S(e,t,n){return!n.disableAnsiColor&&!J(e,"STRICLI_NO_COLOR")&&(t.getColorDepth?.(e.env)??1)>=4}async function Fe({loader:e,parameters:t},{context:n,inputs:a,scannerConfig:r,errorFormatting:i,documentationConfig:o,determineExitCode:d}){let m=e(),s;try{let l=ne(t,r);for(let c of a)l.next(c);let p=await l.parseArguments(n);if(p.success)s=p.arguments;else{let c=S(n.process,n.process.stderr,o);for(let f of p.errors){let T=i.exceptionWhileParsingArguments(f,c);n.process.stderr.write(c?`\x1B[1m\x1B[31m${T}\x1B[39m\x1B[22m
|
|
1
|
+
"use strict";var ie=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var je=Object.getOwnPropertyNames;var Ue=Object.prototype.hasOwnProperty;var qe=(e,t)=>{for(var n in t)ie(e,n,{get:t[n],enumerable:!0})},Ve=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of je(t))!Ue.call(e,r)&&r!==n&&ie(e,r,{get:()=>t[r],enumerable:!(a=Ge(t,r))||a.enumerable});return e};var We=e=>Ve(ie({},"__esModule",{value:!0}),e);var yn={};qe(yn,{AliasNotFoundError:()=>k,ArgumentParseError:()=>I,ArgumentScannerError:()=>A,EnumValidationError:()=>U,ExitCode:()=>h,FlagNotFoundError:()=>$,InvalidNegatedFlagSyntaxError:()=>K,UnexpectedFlagError:()=>z,UnexpectedPositionalError:()=>q,UnsatisfiedFlagError:()=>O,UnsatisfiedPositionalError:()=>V,booleanParser:()=>pe,buildApplication:()=>be,buildChoiceParser:()=>Be,buildCommand:()=>Ie,buildRouteMap:()=>De,formatMessageForArgumentScannerError:()=>ee,generateHelpTextForAllCommands:()=>Se,looseBooleanParser:()=>Q,numberParser:()=>Z,proposeCompletions:()=>ve,run:()=>Cn,text_en:()=>me});module.exports=We(yn);function J(e,t){let n=e.env?.[t];return typeof n=="string"&&n!=="0"}var h={UnknownCommand:-5,InvalidArgument:-4,ContextLoadError:-3,CommandLoadError:-2,InternalError:-1,Success:0,CommandRunError:1};function D(e){return e.replace(/-./g,t=>t[1].toUpperCase())}function F(e){return Array.from(e).map((t,n)=>{let a=t.toUpperCase(),r=t.toLowerCase();return n===0||a!==t||a===r?t:`-${r}`}).join("")}function He(e){let t=new Map;return{get:(...n)=>t.get(n.join(","))??e,set:(n,...a)=>{t.set(a.join(","),n)}}}function _e(e,t,n){let{threshold:a,weights:r}=n;if(e===t)return 0;let i=Math.abs(e.length-t.length);if(typeof a=="number"&&i>a)return 1/0;let o=He(1/0);o.set(0,-1,-1);for(let s=0;s<t.length;++s)o.set((s+1)*r.insertion,-1,s);for(let s=0;s<e.length;++s)o.set((s+1)*r.deletion,s,-1);let d=-1/0;for(let s=0;s<e.length;++s){let u=1/0;for(let l=0;l<=t.length-1;++l){let p=e[s]===t[l]?0:1,c=[o.get(s-1,l)+r.deletion,o.get(s,l-1)+r.insertion,o.get(s-1,l-1)+p*r.substitution];e[s]===t[l-1]&&e[s-1]===t[l]&&c.push(o.get(s-2,l-2)+p*r.transposition);let f=Math.min(...c);o.set(f,s,l),f<u&&(u=f)}if(u>a){if(d>a)return 1/0;d=u}else d=-1/0}let m=o.get(e.length-1,t.length-1);return m>a?1/0:m}function Ke(e,t,n){let a=e[1]-t[1];if(a!==0)return a;let r=e[0].startsWith(n),i=t[0].startsWith(n);return r&&!i?-1:!r&&i?1:e[0].localeCompare(t[0])}function G(e,t,n){let a=t.map(i=>[i,_e(e,i,n)]).filter(([,i])=>i<=n.threshold),r=Math.min(...a.map(([,i])=>i));return a.filter(([,i])=>i===r).sort((i,o)=>Ke(i,o,e)).map(([i])=>i)}var C=class extends Error{};function H(e){return e instanceof Error?e.stack??String(e):String(e)}function ze(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r<a;++r)n[r]=Math.max(e[r],t[r]);return n}function L(e,t){if(e.length===0)return[];let n=Array(Math.max(...e.map(r=>r.length))).fill(0,0),a=e.reduce((r,i)=>{let o=i.map(d=>d.length);return ze(r,o)},n);return e.map(r=>{let i=(r[0]??"").padEnd(a[0]);return r.slice(1).reduce((o,d,m,s)=>{let u=s.length===m+1?d:d.padEnd(a[m+1]);return[...o,t?.[m]??" ",u]},[i]).join("").trimEnd()})}function _(e,t){if(e.length<=1)return e[0]??"";if(e.length===2)return e.join(` ${t.conjunction} `);let n=e.slice(0,e.length-1).join(", ");return t.serialComma&&(n+=","),[n,t.conjunction,e[e.length-1]].join(" ")}function Je(e,t){return e.reduce((n,a)=>{let r=t(a),i=n[r]??[];return i.push(a),n[r]=i,n},{})}function ue(e,t){return Je(e,n=>n[t])}async function Y(e){let t=await Promise.allSettled(e),n=ue(t,"status");return n.rejected&&n.rejected.length>0?{status:"rejected",reasons:n.rejected.map(a=>a.reason)}:{status:"fulfilled",value:n.fulfilled?.map(a=>a.value)??[]}}var pe=e=>{switch(e.toLowerCase()){case"true":return!0;case"false":return!1}throw new SyntaxError(`Cannot convert ${e} to a boolean`)},Ye=new Set(["true","t","yes","y","on","1"]),Qe=new Set(["false","f","no","n","off","0"]),Q=e=>{let t=e.toLowerCase();if(Ye.has(t))return!0;if(Qe.has(t))return!1;throw new SyntaxError(`Cannot convert ${e} to a boolean`)};var Z=e=>{let t=Number(e);if(Number.isNaN(t))throw new SyntaxError(`Cannot convert ${e} to a number`);return t};var A=class extends C{_brand};function ee(e,t){let n=e.constructor.name,a=t[n];return a?a(e):e.message}function Ze(e,t,n){return Object.fromEntries(Object.entries(t).map(([a,r])=>{let i=r,o=e[i];if(!o){let d=w(i,n);throw new $(d,[],a)}return[a,[i,o]]}))}var $=class extends A{input;corrections;aliasName;constructor(t,n,a){let r=`No flag registered for --${t}`;if(a)r+=` (aliased from -${a})`;else if(n.length>0){let i=_(n.map(o=>`--${o}`),{kind:"conjunctive",conjunction:"or",serialComma:!0});r+=`, did you mean ${i}?`}super(r),this.input=t,this.corrections=n,this.aliasName=a}},k=class extends A{input;constructor(t){super(`No alias registered for -${t}`),this.input=t}};function se(e,t){return e.placeholder?e.placeholder:typeof t=="number"?`arg${t}`:"args"}function w(e,t){return t==="allow-kebab-for-camel"?F(e):e}var I=class extends A{externalFlagNameOrPlaceholder;input;exception;constructor(t,n,a){super(`Failed to parse "${n}" for ${t}: ${a instanceof Error?a.message:String(a)}`),this.externalFlagNameOrPlaceholder=t,this.input=n,this.exception=a}};function j(e,t,n,a){try{return t.parse.call(a,n)}catch(r){throw new I(e,n,r)}}var U=class extends A{externalFlagName;input;values;constructor(t,n,a,r){let i=`Expected "${n}" to be one of (${a.join("|")})`;if(r.length>0){let o=_(r.map(d=>`"${d}"`),{kind:"conjunctive",conjunction:"or",serialComma:!0});i+=`, did you mean ${o}?`}super(i),this.externalFlagName=t,this.input=n,this.values=a}},O=class extends A{externalFlagName;nextFlagName;constructor(t,n){let a=`Expected input for flag --${t}`;n&&(a+=` but encountered --${n} instead`),super(a),this.externalFlagName=t,this.nextFlagName=n}},q=class extends A{expectedCount;input;constructor(t,n){super(`Too many arguments, expected ${t} but encountered "${n}"`),this.expectedCount=t,this.input=n}},V=class extends A{placeholder;limit;constructor(t,n){let a;n?(a=`Expected at least ${n[0]} argument(s) for ${t}`,n[1]===0?a+=" but found none":a+=` but only found ${n[1]}`):a=`Expected argument for ${t}`,super(a),this.placeholder=t,this.limit=n}};function ce(e){if(e.startsWith("no")&&e.length>2){if(e[2]==="-")return e.slice(4);let t=e[2],n=t.toUpperCase();return t!==n?void 0:t.toLowerCase()+e.slice(3)}}function ge(e,t,n){let a=e,r=t[a];if(!r){let o=ce(a);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}let i=D(e);if(n.caseStyle==="allow-kebab-for-camel"&&!r){if(r=t[i],r)return{namedFlag:[i,r]};let o=ce(i);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}if(!r){if(i in t)throw new $(e,[i]);let o=F(e);if(o in t)throw new $(e,[o]);let d=G(a,Object.keys(t),n.distanceOptions);throw new $(e,d)}return{namedFlag:[a,r]}}function fe(e){return e.namedFlag[1].kind==="boolean"||e.namedFlag[1].kind==="counter"}var Ce=/^-([a-z]+)$/i,en=/^--([a-z][a-z-.\d_]+)$/i;function nn(e,t,n,a){let r=Ce.exec(e);if(r){let o=r[1];return Array.from(o).map(d=>{let m=d,s=n[m];if(!s)throw new k(m);return{namedFlag:s}})}let i=en.exec(e);if(i){let o=i[1];return[ge(o,t,a)]}return[]}var tn=/^--([a-z][a-z-.\d_]+)=(.+)$/i,rn=/^-([a-z])=(.+)$/i,K=class extends A{externalFlagName;valueText;constructor(t,n){super(`Cannot negate flag --${t} and pass "${n}" as value`),this.externalFlagName=t,this.valueText=n}};function on(e,t,n,a){let r=tn.exec(e);if(r){let o=r[1],{namedFlag:d,negated:m}=ge(o,t,a),s=r[2];if(m)throw new K(o,s);return[d,s]}let i=rn.exec(e);if(i){let o=i[1],d=n[o];if(!d)throw new k(o);let m=i[2];return[d,m]}}async function an(e,t,n,a,r){if(!n){if("default"in t&&typeof t.default<"u")return t.kind==="boolean"||t.kind==="enum"?t.default:j(e,t,t.default,r);if(t.optional)return;if(t.kind==="boolean")return!1;if(t.kind==="counter")return 0;throw new O(e)}if(t.kind==="counter")return n.reduce((o,d)=>{try{return o+Z.call(r,d)}catch(m){throw new I(e,d,m)}},0);if("variadic"in t&&t.variadic){if(t.kind==="enum"){for(let o of n)if(!t.values.includes(o)){let d=G(o,t.values,a.distanceOptions);throw new U(e,o,t.values,d)}return n}return Promise.all(n.map(o=>j(e,t,o,r)))}let i=n[0];if(t.kind==="boolean")try{return Q.call(r,i)}catch(o){throw new I(e,i,o)}if(t.kind==="enum"){if(!t.values.includes(i)){let o=G(i,t.values,a.distanceOptions);throw new U(e,i,t.values,o)}return i}return j(e,t,i,r)}var z=class extends A{externalFlagName;previousInput;input;constructor(t,n,a){super(`Too many arguments for --${t}, encountered "${a}" after "${n}"`),this.externalFlagName=t,this.previousInput=n,this.input=a}};function ye(e){return e.kind==="counter"?!0:"variadic"in e?!!e.variadic:!1}function B(e,t,[n,a],r){let i=e.get(n)??[];if(i.length>0&&!ye(a)){let o=w(n,t);throw new z(o,i[0],r)}if("variadic"in a&&typeof a.variadic=="string"){let o=r.split(a.variadic);e.set(n,[...i,...o])}else e.set(n,[...i,r])}function le(e,t,n){if(t.get(n)){let r=e[n];return!ye(r)}return!1}function ne(e,t){let{flags:n={},aliases:a={},positional:r={kind:"tuple",parameters:[]}}=e,i=Ze(n,a,t.caseStyle),o=[],d=new Map,m=0,s,u=!1;return{next:l=>{if(!u&&t.allowArgumentEscapeSequence&&l==="--"){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)B(d,t.caseStyle,s,""),s=void 0;else{let p=w(s[0],t.caseStyle);throw new O(p)}u=!0;return}if(!u){let p=on(l,n,i,t);if(p){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)B(d,t.caseStyle,s,""),s=void 0;else{let f=w(s[0],t.caseStyle),T=w(p[0][0],t.caseStyle);throw new O(f,T)}B(d,t.caseStyle,...p);return}let c=nn(l,n,i,t);if(c.length>0){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)B(d,t.caseStyle,s,""),s=void 0;else{let f=w(s[0],t.caseStyle),T=w(c[0].namedFlag[0],t.caseStyle);throw new O(f,T)}if(c.every(fe))for(let f of c)f.namedFlag[1].kind==="boolean"?B(d,t.caseStyle,f.namedFlag,f.negated?"false":"true"):B(d,t.caseStyle,f.namedFlag,"1");else if(c.length>1){let f=c.find(E=>!fe(E)),T=w(f.namedFlag[0],t.caseStyle);throw new O(T)}else s=c[0].namedFlag;return}}if(s)B(d,t.caseStyle,s,l),s=void 0;else{if(r.kind==="tuple"){if(m>=r.parameters.length)throw new q(r.parameters.length,l)}else if(typeof r.maximum=="number"&&m>=r.maximum)throw new q(r.maximum,l);o[m]=l,++m}},parseArguments:async l=>{let p=[],c;r.kind==="array"?(typeof r.minimum=="number"&&m<r.minimum&&p.push(new V(se(r.parameter),[r.minimum,m])),c=Y(o.map(async(g,x)=>{let y=se(r.parameter,x+1);return j(y,r.parameter,g,l)}))):c=Y(r.parameters.map(async(g,x)=>{let y=se(g,x+1),N=o[x];if(typeof N!="string"){if(typeof g.default=="string")return j(y,g,g.default,l);if(g.optional)return;throw new V(y)}return j(y,g,N,l)})),s&&s[1].kind==="parsed"&&s[1].inferEmpty&&(B(d,t.caseStyle,s,""),s=void 0);let f=Y(Object.entries(n).map(async g=>{let[x,y]=g,N=w(x,t.caseStyle);if(s&&s[0]===x)throw new O(N);let b=d.get(x),X=await an(N,y,b,t,l);return[x,X]})),[T,E]=await Promise.all([c,f]);if(T.status==="rejected")for(let g of T.reasons)p.push(g);if(E.status==="rejected")for(let g of E.reasons)p.push(g);if(p.length>0)return{success:!1,errors:p};if(T.status==="rejected")throw new C("Unknown failure while scanning positional arguments");if(E.status==="rejected")throw new C("Unknown failure while scanning flag arguments");return{success:!0,arguments:[Object.fromEntries(E.value),...T.value]}},proposeCompletions:async({partial:l,completionConfig:p,text:c,context:f,includeVersionFlag:T})=>{if(s)return xe(s[1],f,l);let E=[];if(!u){let S=Ce.exec(l);if(p.includeAliases){if(l===""||l==="-"){let g=Object.entries(a).filter(x=>!le(n,d,x[1]));for(let[x]of g){let y=i[x];y&&E.push({kind:"argument:flag",completion:`-${x}`,brief:y[1].brief})}}else if(S){let g=Array.from(S[1]);if(g.includes("h"))return[];if(T&&g.includes("v"))return[];let x=new Map(d);for(let b of g){let X=i[b];if(!X)throw new k(b);B(x,t.caseStyle,X,X[1].kind==="boolean"?"true":"1")}let y=g[g.length-1];if(y){let b=i[y];b&&E.push({kind:"argument:flag",completion:l,brief:b[1].brief})}let N=Object.entries(a).filter(b=>!le(n,x,b[1]));for(let[b]of N){let X=i[b];X&&E.push({kind:"argument:flag",completion:`${l}${b}`,brief:X[1].brief})}}}if(l===""||l==="-"||l.startsWith("--")){t.allowArgumentEscapeSequence&&E.push({kind:"argument:flag",completion:"--",brief:c.briefs.argumentEscapeSequence});let g=Object.entries(n).filter(([y])=>!le(n,d,y));t.caseStyle==="allow-kebab-for-camel"&&(g=g.map(([y,N])=>[F(y),N]));let x=g.map(([y,N])=>[`--${y}`,N]).filter(([y])=>y.startsWith(l));E.push(...x.map(([y,N])=>({kind:"argument:flag",completion:y,brief:N.brief})))}}if(r.kind==="array"){if(r.parameter.proposeCompletions&&(typeof r.maximum!="number"||m<r.maximum)){let S=await r.parameter.proposeCompletions.call(f,l);E.push(...S.map(g=>({kind:"argument:value",completion:g,brief:r.parameter.brief})))}}else{let S=r.parameters[m];if(S?.proposeCompletions){let g=await S.proposeCompletions.call(f,l);E.push(...g.map(x=>({kind:"argument:value",completion:x,brief:S.brief})))}}return E.filter(({completion:S})=>S.startsWith(l))}}}async function xe(e,t,n){if(typeof e.variadic=="string"&&n.endsWith(e.variadic))return xe(e,t,"");let a;return e.kind==="enum"?a=e.values:e.proposeCompletions?a=await e.proposeCompletions.call(t,n):a=[],a.map(r=>({kind:"argument:value",completion:r,brief:e.brief})).filter(({completion:r})=>r.startsWith(n))}function Te(e,t,n){let a=t==="allow-kebab-for-camel"?"convert-camel-to-kebab":t,r=e.getAllEntries();return n.includeHiddenRoutes||(r=r.filter(i=>!i.hidden)),r.flatMap(i=>{let o=i.name[a];return n.includeAliases?[o,...i.aliases]:[o]})}var me={headers:{usage:"USAGE",aliases:"ALIASES",commands:"COMMANDS",flags:"FLAGS",arguments:"ARGUMENTS"},keywords:{default:"default =",separator:"separator ="},briefs:{help:"Print help information and exit",helpAll:"Print help information (including hidden commands/flags) and exit",version:"Print version information and exit",argumentEscapeSequence:"All subsequent inputs should be interpreted as arguments"},noCommandRegisteredForInput:({input:e,corrections:t})=>{let n=`No command registered for \`${e}\``;if(t.length>0){let a=_(t,{kind:"conjunctive",conjunction:"or",serialComma:!0});return`${n}, did you mean ${a}?`}else return n},noTextAvailableForLocale:({requestedLocale:e,defaultLocale:t})=>`Application does not support "${e}" locale, defaulting to "${t}"`,exceptionWhileParsingArguments:e=>e instanceof A?ee(e,{}):`Unable to parse arguments, ${H(e)}`,exceptionWhileLoadingCommandFunction:e=>`Unable to load command function, ${H(e)}`,exceptionWhileLoadingCommandContext:e=>`Unable to load command context, ${H(e)}`,exceptionWhileRunningCommand:e=>`Command failed, ${H(e)}`,commandErrorResult:e=>e.message,currentVersionIsNotLatest:({currentVersion:e,latestVersion:t,upgradeCommand:n})=>n?`Latest available version is ${t} (currently running ${e}), upgrade with "${n}"`:`Latest available version is ${t} (currently running ${e})`};function Fe(e){if(e.startsWith("en"))return me}function P(e,t,n){return!n.disableAnsiColor&&!J(e,"STRICLI_NO_COLOR")&&(t.getColorDepth?.(e.env)??1)>=4}async function Ee({loader:e,parameters:t},{context:n,inputs:a,scannerConfig:r,errorFormatting:i,documentationConfig:o,determineExitCode:d}){let m=e(),s;try{let l=ne(t,r);for(let c of a)l.next(c);let p=await l.parseArguments(n);if(p.success)s=p.arguments;else{let c=P(n.process,n.process.stderr,o);for(let f of p.errors){let T=i.exceptionWhileParsingArguments(f,c);n.process.stderr.write(c?`\x1B[1m\x1B[31m${T}\x1B[39m\x1B[22m
|
|
2
2
|
`:`${T}
|
|
3
|
-
`)}return
|
|
3
|
+
`)}return h.InvalidArgument}}catch(l){let p=P(n.process,n.process.stderr,o),c=i.exceptionWhileParsingArguments(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
4
4
|
`:`${c}
|
|
5
|
-
`),
|
|
5
|
+
`),h.InvalidArgument}let u;try{let l=await m;typeof l=="function"?u=l:u=l.default}catch(l){let p=P(n.process,n.process.stderr,o),c=i.exceptionWhileLoadingCommandFunction(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
6
6
|
`:`${c}
|
|
7
|
-
`),
|
|
7
|
+
`),h.CommandLoadError}try{let l=await u.call(n,...s);if(l instanceof Error){let p=P(n.process,n.process.stderr,o),c=i.commandErrorResult(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
8
8
|
`:`${c}
|
|
9
|
-
`),d?d(l):
|
|
9
|
+
`),d?d(l):h.CommandRunError}}catch(l){let p=P(n.process,n.process.stderr,o),c=i.exceptionWhileRunningCommand(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
10
10
|
`:`${c}
|
|
11
|
-
`),d?d(l):
|
|
11
|
+
`),d?d(l):h.CommandRunError}return h.Success}var R=Symbol("RouteMap");var v=Symbol("Command");function te(e,t,n){let a=[...n],r=[],i,o=e,d,m=!0,s=!1;return{next:u=>{if(u==="--help"||u==="-h"){s=!0,d||(d=o);return}else if(u==="--helpAll"||u==="--help-all"||u==="-H"){s="all",d||(d=o);return}if(d){r.push(u);return}if(o.kind===v){d=o,r.push(u);return}let l=D(u),p=u,c=o.getRoutingTargetForInput(p);if(t.caseStyle==="allow-kebab-for-camel"&&!c&&(c=o.getRoutingTargetForInput(l),c&&(p=l)),!c){let f=o.getDefaultCommand();if(f){m=!1,i=[o,""],r.push(u),o=f;return}return{input:u,routeMap:o}}m=!1,i=[o,u],o=c,a.push(u)},finish:()=>{if(d=d??o,d.kind===R&&!s){let l=d.getDefaultCommand();l&&(i=[d,""],d=l,m=!1)}let u=i?i[0].getOtherAliasesForInput(i[1],t.caseStyle):{original:[],"convert-camel-to-kebab":[]};return{target:d,unprocessedInputs:r,helpRequested:s,prefix:a,rootLevel:m,aliases:u}}}}async function Ae({root:e,defaultText:t,config:n},a,r){let i=t;if(r.locale){let l=n.localization.loadText(r.locale);if(l)i=l;else{let p=P(r.process,r.process.stderr,n.documentation),c=i.noTextAvailableForLocale({requestedLocale:r.locale,defaultLocale:n.localization.defaultLocale,ansiColor:p});r.process.stderr.write(p?`\x1B[1m\x1B[33m${c}\x1B[39m\x1B[22m
|
|
12
12
|
`:`${c}
|
|
13
|
-
`)}}if(n.versionInfo?.getLatestVersion&&!J(r.process,"STRICLI_SKIP_VERSION_CHECK")){let l;"currentVersion"in n.versionInfo?l=n.versionInfo.currentVersion:l=await n.versionInfo.getCurrentVersion.call(r);let p=await n.versionInfo.getLatestVersion.call(r,l);if(p&&l!==p){let c=
|
|
13
|
+
`)}}if(n.versionInfo?.getLatestVersion&&!J(r.process,"STRICLI_SKIP_VERSION_CHECK")){let l;"currentVersion"in n.versionInfo?l=n.versionInfo.currentVersion:l=await n.versionInfo.getCurrentVersion.call(r);let p=await n.versionInfo.getLatestVersion.call(r,l);if(p&&l!==p){let c=P(r.process,r.process.stderr,n.documentation),f=i.currentVersionIsNotLatest({currentVersion:l,latestVersion:p,upgradeCommand:n.versionInfo.upgradeCommand,ansiColor:c});r.process.stderr.write(c?`\x1B[1m\x1B[33m${f}\x1B[39m\x1B[22m
|
|
14
14
|
`:`${f}
|
|
15
15
|
`)}}let o=a.slice();if(n.versionInfo&&(o[0]==="--version"||o[0]==="-v")){let l;return"currentVersion"in n.versionInfo?l=n.versionInfo.currentVersion:l=await n.versionInfo.getCurrentVersion.call(r),r.process.stdout.write(l+`
|
|
16
|
-
`),
|
|
16
|
+
`),h.Success}let d=te(e,n.scanner,[n.name]),m;for(;o.length>0&&!m;){let l=o.shift();m=d.next(l)}if(m){let l=Te(m.routeMap,n.scanner.caseStyle,n.completion),p=G(m.input,l,n.scanner.distanceOptions).map(T=>`\`${T}\``),c=P(r.process,r.process.stderr,n.documentation),f=i.noCommandRegisteredForInput({input:m.input,corrections:p,ansiColor:c});return r.process.stderr.write(c?`\x1B[1m\x1B[31m${f}\x1B[39m\x1B[22m
|
|
17
17
|
`:`${f}
|
|
18
|
-
`),
|
|
19
|
-
${u}`}else yield` ${re(e,n)}`;for(let s of ae(n))yield` ${d} ${s}`;if(yield"",yield r??a,n.aliases&&n.aliases.length>0){let s=n.prefix.slice(0,-1).join(" ");yield"",yield n.ansiColor?`\x1B[1m${o.aliases}\x1B[22m`:o.aliases;for(let u of n.aliases)yield` ${s} ${u}`}yield"",yield n.ansiColor?`\x1B[1m${o.flags}\x1B[22m`:o.flags;for(let s of oe(e.flags??{},e.aliases??{},n))yield` ${s}`;let m=e.positional??{kind:"tuple",parameters:[]};if(m.kind==="array"||m.parameters.length>0){yield"",yield n.ansiColor?`\x1B[1m${o.arguments}\x1B[22m`:o.arguments;for(let s of
|
|
18
|
+
`),h.UnknownCommand}let s=d.finish();if(s.helpRequested||s.target.kind===R){let l=P(r.process,r.process.stdout,n.documentation);return r.process.stdout.write(s.target.formatHelp({prefix:s.prefix,includeVersionFlag:!!n.versionInfo&&s.rootLevel,includeArgumentEscapeSequenceFlag:n.scanner.allowArgumentEscapeSequence,includeHelpAllFlag:s.helpRequested==="all"||n.documentation.alwaysShowHelpAllFlag,includeHidden:s.helpRequested==="all",config:n.documentation,aliases:s.aliases[n.documentation.caseStyle],text:i,ansiColor:l})),h.Success}let u;if("forCommand"in r)try{u=await r.forCommand({prefix:s.prefix})}catch(l){let p=P(r.process,r.process.stderr,n.documentation),c=i.exceptionWhileLoadingCommandContext(l,p);return r.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m`:c),h.ContextLoadError}else u=r;return Ee(s.target,{context:u,inputs:s.unprocessedInputs,scannerConfig:n.scanner,documentationConfig:n.documentation,errorFormatting:i,determineExitCode:n.determineExitCode})}function W(e,t){return t==="convert-camel-to-kebab"?F(e):e}function he(e,t){return t==="convert-camel-to-kebab"?`no-${F(e)}`:`no${e[0].toUpperCase()}${e.slice(1)}`}function Ne(e){let t=e.scanner?.caseStyle??"original",n;if(e.documentation?.caseStyle){if(t==="original"&&e.documentation.caseStyle==="convert-camel-to-kebab")throw new C("Cannot convert route and flag names on display but scan as original");n=e.documentation.caseStyle}else t==="allow-kebab-for-camel"?n="convert-camel-to-kebab":n=t;let a={caseStyle:t,allowArgumentEscapeSequence:e.scanner?.allowArgumentEscapeSequence??!1,distanceOptions:e.scanner?.distanceOptions??{threshold:7,weights:{insertion:1,deletion:3,substitution:2,transposition:0}}},r={alwaysShowHelpAllFlag:e.documentation?.alwaysShowHelpAllFlag??!1,useAliasInUsageLine:e.documentation?.useAliasInUsageLine??!1,onlyRequiredInUsageLine:e.documentation?.onlyRequiredInUsageLine??!1,caseStyle:n,disableAnsiColor:e.documentation?.disableAnsiColor??!1},i={includeAliases:e.completion?.includeAliases??r.useAliasInUsageLine,includeHiddenRoutes:e.completion?.includeHiddenRoutes??!1,...e.completion};return{...e,scanner:a,completion:i,documentation:r,localization:{defaultLocale:"en",loadText:Fe,...e.localization}}}function be(e,t){let n=Ne(t);if(e.kind===v&&n.versionInfo){if(e.usesFlag("version"))throw new C("Unable to use command with flag --version as root when version info is supplied");if(e.usesFlag("v"))throw new C("Unable to use command with alias -v as root when version info is supplied")}let a=n.localization.loadText(n.localization.defaultLocale);if(!a)throw new C(`No text available for the default locale "${n.localization.defaultLocale}"`);return{root:e,config:n,defaultText:a}}function*Pe(e,t,n){for(let a of e.getAllEntries()){if(a.hidden)continue;let r=a.name[n],i=[...t,r];a.target.kind===R?yield*Pe(a.target,i,n):yield[i,a.target,a.aliases]}}function Se({root:e,defaultText:t,config:n},a){let r=t;if(a){let o=n.localization.loadText(a);if(o)r=o;else throw new C(`Application does not support "${a}" locale`)}let i=[];return e.kind===v?i.push([[n.name],e,[]]):i.push(...Pe(e,[n.name],n.documentation.caseStyle)),i.map(([o,d,m])=>[o.join(" "),d.formatHelp({prefix:o,config:n.documentation,includeVersionFlag:!!n.versionInfo&&o.length===1,includeArgumentEscapeSequenceFlag:n.scanner.allowArgumentEscapeSequence,includeHelpAllFlag:n.documentation.alwaysShowHelpAllFlag,includeHidden:!1,aliases:m,text:r,ansiColor:!1})])}async function Re({parameters:e},t){try{let n=ne(e,t.scannerConfig);for(let a of t.inputs)n.next(a);return await n.proposeCompletions(t)}catch{return[]}}async function Oe(e,{partial:t,scannerConfig:n,completionConfig:a}){let r=e.getAllEntries();a.includeHiddenRoutes||(r=r.filter(o=>!o.hidden));let i=n.caseStyle==="allow-kebab-for-camel"?"convert-camel-to-kebab":n.caseStyle;return r.flatMap(o=>{let d=o.target.kind===v?"routing-target:command":"routing-target:route-map",m=o.target.brief,s={kind:d,completion:o.name[i],brief:m};return a.includeAliases?[s,...o.aliases.map(u=>({kind:d,completion:u,brief:m}))]:[s]}).filter(({completion:o})=>o.startsWith(t))}async function ve({root:e,config:t,defaultText:n},a,r){if(a.length===0)return[];let i=te(e,t.scanner,[]),o=a.slice(0,-1),d;for(;o.length>0&&!d;){let l=o.shift();d=i.next(l)}if(d)return[];let m=i.finish();if(m.helpRequested)return[];let s;if("forCommand"in r)try{s=await r.forCommand({prefix:m.prefix})}catch{return[]}else s=r;let u=a[a.length-1];return m.target.kind===R?Oe(m.target,{context:s,partial:u,scannerConfig:t.scanner,completionConfig:t.completion}):Re(m.target,{context:s,inputs:m.unprocessedInputs,partial:u,scannerConfig:t.scanner,completionConfig:t.completion,text:n,includeVersionFlag:!!t.versionInfo&&m.rootLevel})}function sn(e,t){return e.includes(t)}function Be(e){return t=>{if(!sn(e,t))throw new SyntaxError(`${t} is not one of (${e.join("|")})`);return t}}function de(e){return"default"in e&&typeof e.default<"u"}function M(e){return e.optional??de(e)}function we(e){return`(${e})`}function Xe(e){return`[${e}]`}function $e(e){return`${e}...`}function ln(e){return`<${e}>`}function mn(e){return`[<${e}>]`}function dn(e){return`<${e}>...`}function re(e,t){let n=Object.entries(e.flags??{}).filter(([,i])=>!(i.hidden||t.config.onlyRequiredInUsageLine&&M(i))).map(([i,o])=>{let d=t.config.caseStyle==="convert-camel-to-kebab"?`--${F(i)}`:`--${i}`;if(e.aliases&&t.config.useAliasInUsageLine){let s=Object.entries(e.aliases).filter(u=>u[1]===i);s.length===1&&s[0]&&(d=`-${s[0][0]}`)}if(o.kind==="boolean")return[o,d];if(o.kind==="enum"&&typeof o.placeholder!="string")return[o,`${d} ${o.values.join("|")}`];let m=o.placeholder??"value";return[o,`${d} ${m}`]}).map(([i,o])=>i.kind==="parsed"&&i.variadic?M(i)?$e(Xe(o)):$e(we(o)):M(i)?Xe(o):we(o)),a=[],r=e.positional;if(r)if(r.kind==="array")a=[dn(r.parameter.placeholder??"args")];else{let i=r.parameters;t.config.onlyRequiredInUsageLine&&(i=i.filter(o=>!o.optional&&typeof o.default>"u")),a=i.map((o,d)=>{let m=o.placeholder??`arg${d+1}`;return o.optional||typeof o.default<"u"?mn(m):ln(m)})}return[...t.prefix,...n,...a].join(" ")}function oe(e,t,n){let{keywords:a,briefs:r}=n.text,i=Object.entries(e).filter(([,m])=>!(m.hidden&&!n.includeHidden)),o=i.some(([,m])=>M(m)),d=i.map(([m,s])=>{let u=Object.entries(t).filter(f=>f[1]===m).map(([f])=>`-${f}`),l="--"+W(m,n.config.caseStyle);if(s.kind==="boolean"&&s.default!==!1){let f=he(m,n.config.caseStyle);l=`${l}/--${f}`}M(s)?l=`[${l}]`:o&&(l=` ${l}`),s.kind==="parsed"&&s.variadic&&(l=`${l}...`);let p=[];if(s.kind==="enum"){let f=s.values.join("|");p.push(f)}if(de(s)){let f=n.ansiColor?`\x1B[90m${a.default}\x1B[39m`:a.default;p.push(`${f} ${s.default===""?'""':String(s.default)}`)}if("variadic"in s&&typeof s.variadic=="string"){let f=n.ansiColor?`\x1B[90m${a.separator}\x1B[39m`:a.separator;p.push(`${f} ${s.variadic}`)}let c=p.length>0?`[${p.join(", ")}]`:void 0;return{aliases:u.join(" "),flagName:l,brief:s.brief,suffix:c,hidden:s.hidden}});if(d.push({aliases:"-h",flagName:o?" --help":"--help",brief:r.help}),n.includeHelpAllFlag){let m=W("helpAll",n.config.caseStyle);d.push({aliases:"-H",flagName:o?` --${m}`:`--${m}`,brief:r.helpAll,hidden:!n.config.alwaysShowHelpAllFlag})}return n.includeVersionFlag&&d.push({aliases:"-v",flagName:o?" --version":"--version",brief:r.version}),n.includeArgumentEscapeSequenceFlag&&d.push({aliases:"",flagName:o?" --":"--",brief:r.argumentEscapeSequence}),L(d.map(m=>n.ansiColor?[m.hidden?`\x1B[90m${m.aliases}\x1B[39m`:`\x1B[97m${m.aliases}\x1B[39m`,m.hidden?`\x1B[90m${m.flagName}\x1B[39m`:`\x1B[97m${m.flagName}\x1B[39m`,m.hidden?`\x1B[90m${m.brief}\x1B[39m`:`\x1B[03m${m.brief}\x1B[23m`,m.suffix??""]:[m.aliases,m.flagName,m.brief,m.suffix??""]),[" "," "," "])}function*ae(e){if(yield e.config.useAliasInUsageLine?"-h":"--help",e.includeHelpAllFlag){let t=W("helpAll",e.config.caseStyle);yield e.config.useAliasInUsageLine?"-H":`--${t}`}e.includeVersionFlag&&(yield e.config.useAliasInUsageLine?"-v":"--version")}function Le(e,t){if(e.kind==="array"){let r=e.parameter.placeholder??"args",i=t.ansiColor?`\x1B[97m${r}...\x1B[39m`:`${r}...`,o=t.ansiColor?`\x1B[3m${e.parameter.brief}\x1B[23m`:e.parameter.brief;return L([[i,o]],[" "])}let{keywords:n}=t.text,a=e.parameters.some(r=>r.optional);return L(e.parameters.map((r,i)=>{let o=r.placeholder??`arg${i+1}`,d;return r.optional?o=`[${o}]`:a&&(o=` ${o}`),r.default&&(d=`[${t.ansiColor?`\x1B[90m${n.default}\x1B[39m`:n.default} ${r.default}]`),[t.ansiColor?`\x1B[97m${o}\x1B[39m`:o,t.ansiColor?`\x1B[3m${r.brief}\x1B[23m`:r.brief,d??""]}),[" "," "])}function*ke(e,t,n){let{brief:a,fullDescription:r,customUsage:i}=t,{headers:o}=n.text,d=n.prefix.join(" ");if(yield n.ansiColor?`\x1B[1m${o.usage}\x1B[22m`:o.usage,i)for(let s of i)if(typeof s=="string")yield` ${d} ${s}`;else{let u=n.ansiColor?`\x1B[3m${s.brief}\x1B[23m`:s.brief;yield` ${d} ${s.input}
|
|
19
|
+
${u}`}else yield` ${re(e,n)}`;for(let s of ae(n))yield` ${d} ${s}`;if(yield"",yield r??a,n.aliases&&n.aliases.length>0){let s=n.prefix.slice(0,-1).join(" ");yield"",yield n.ansiColor?`\x1B[1m${o.aliases}\x1B[22m`:o.aliases;for(let u of n.aliases)yield` ${s} ${u}`}yield"",yield n.ansiColor?`\x1B[1m${o.flags}\x1B[22m`:o.flags;for(let s of oe(e.flags??{},e.aliases??{},n))yield` ${s}`;let m=e.positional??{kind:"tuple",parameters:[]};if(m.kind==="array"||m.parameters.length>0){yield"",yield n.ansiColor?`\x1B[1m${o.arguments}\x1B[22m`:o.arguments;for(let s of Le(m,n))yield` ${s}`}}function un(e,t){for(let n of t)if(n in e)throw new C(`Unable to use reserved flag --${n}`)}function pn(e,t){for(let n of t)if(n in e)throw new C(`Unable to use reserved alias -${n}`)}function*cn(e){yield`no-${F(e)}`,yield`no${e[0].toUpperCase()}${e.slice(1)}`}function fn(e){let t=Object.entries(e).filter(([,n])=>n.kind==="boolean"&&!n.optional);for(let[n]of t)for(let a of cn(n))if(a in e)throw new C(`Unable to allow negation for --${n} as it conflicts with --${a}`)}function gn(e){for(let[t,n]of Object.entries(e))if("variadic"in n&&typeof n.variadic=="string"){if(n.variadic.length<1)throw new C(`Unable to use "" as variadic separator for --${t} as it is empty`);if(/\s/.test(n.variadic))throw new C(`Unable to use "${n.variadic}" as variadic separator for --${t} as it contains whitespace`)}}function Ie(e){let{flags:t={},aliases:n={}}=e.parameters;un(t,["help","helpAll","help-all"]),pn(n,["h","H"]),fn(t),gn(t);let a;return"func"in e?a=async()=>e.func:a=e.loader,{kind:v,loader:a,parameters:e.parameters,get brief(){return e.docs.brief},formatUsageLine:r=>re(e.parameters,r),formatHelp:r=>[...ke(e.parameters,e.docs,r)].join(`
|
|
20
20
|
`)+`
|
|
21
|
-
`,usesFlag:r=>r in t||r in n}}function*
|
|
21
|
+
`,usesFlag:r=>r in t||r in n}}function*Me(e,t,n){let{brief:a,fullDescription:r,hideRoute:i}=t,{headers:o}=n.text;yield n.ansiColor?`\x1B[1m${o.usage}\x1B[22m`:o.usage;for(let[l,p]of Object.entries(e))if(!i||!i[l]||n.includeHidden){let c=n.config.caseStyle==="convert-camel-to-kebab"?F(l):l;yield` ${p.formatUsageLine({...n,prefix:[...n.prefix,c]})}`}let d=n.prefix.join(" ");for(let l of ae(n))yield` ${d} ${l}`;if(yield"",yield r??a,n.aliases&&n.aliases.length>0){let l=n.prefix.slice(0,-1).join(" ");yield"",yield n.ansiColor?`\x1B[1m${o.aliases}\x1B[22m`:o.aliases;for(let p of n.aliases)yield` ${l} ${p}`}yield"",yield n.ansiColor?`\x1B[1m${o.flags}\x1B[22m`:o.flags;for(let l of oe({},{},n))yield` ${l}`;yield"",yield n.ansiColor?`\x1B[1m${o.commands}\x1B[22m`:o.commands;let s=Object.entries(e).filter(([l])=>!i||!i[l]||n.includeHidden).map(([l,p])=>({routeName:W(l,n.config.caseStyle),brief:p.brief,hidden:i&&i[l]})),u=L(s.map(l=>n.ansiColor?[l.hidden?`\x1B[90m${l.routeName}\x1B[39m`:`\x1B[97m${l.routeName}\x1B[39m`,l.hidden?`\x1B[90m${l.brief}\x1B[39m`:`\x1B[03m${l.brief}\x1B[23m`]:[l.routeName,l.brief]),[" "]);for(let l of u)yield` ${l}`}function De({routes:e,defaultCommand:t,docs:n,aliases:a}){if(Object.entries(e).length===0)throw new C("Route map must contain at least one route");let r=a??{},i=new Map;for(let[m,s]of Object.entries(r)){if(m in e)throw new C(`Cannot use "${m}" as an alias when a route with that name already exists`);let u=i.get(s)??[];i.set(s,[...u,m])}let o=t?e[t]:void 0;if(o&&o.kind===R)throw new C(`Cannot use "${t}" as the default command because it is not a Command`);let d=m=>{if(m in r)return r[m];if(m in e)return m};return{kind:R,get brief(){return n.brief},formatUsageLine(m){let s=this.getAllEntries().filter(u=>!u.hidden).map(u=>u.name[m.config.caseStyle]);return`${m.prefix.join(" ")} ${s.join("|")} ...`},formatHelp:m=>[...Me(e,n,m)].join(`
|
|
22
22
|
`)+`
|
|
23
|
-
`,getDefaultCommand:()=>o,getOtherAliasesForInput:(m,s)=>{if(t){if(m===t)return{original:[""],"convert-camel-to-kebab":[""]};if(m==="")return{original:[t],"convert-camel-to-kebab":[t]}}let u=
|
|
23
|
+
`,getDefaultCommand:()=>o,getOtherAliasesForInput:(m,s)=>{if(t){if(m===t)return{original:[""],"convert-camel-to-kebab":[""]};if(m==="")return{original:[t],"convert-camel-to-kebab":[t]}}let u=D(m),l=d(m);if(!l&&s==="allow-kebab-for-camel"&&(l=d(u)),!l)return{original:[],"convert-camel-to-kebab":[]};let p=[l,...i.get(l)??[]].filter(c=>c!==m&&c!==u);return{original:p,"convert-camel-to-kebab":p.map(F)}},getRoutingTargetForInput:m=>{let s=m in r?r[m]:m;return e[s]},getAllEntries(){let m=n.hideRoute;return Object.entries(e).map(([s,u])=>({name:{original:s,"convert-camel-to-kebab":F(s)},target:u,aliases:i.get(s)??[],hidden:m?.[s]??!1}))}}}async function Cn(e,t,n){let a=await Ae(e,t,n);n.process.exitCode=a}0&&(module.exports={AliasNotFoundError,ArgumentParseError,ArgumentScannerError,EnumValidationError,ExitCode,FlagNotFoundError,InvalidNegatedFlagSyntaxError,UnexpectedFlagError,UnexpectedPositionalError,UnsatisfiedFlagError,UnsatisfiedPositionalError,booleanParser,buildApplication,buildChoiceParser,buildCommand,buildRouteMap,formatMessageForArgumentScannerError,generateHelpTextForAllCommands,looseBooleanParser,numberParser,proposeCompletions,run,text_en});
|
package/dist/index.d.cts
CHANGED
|
@@ -94,9 +94,15 @@ interface DocumentationKeywords {
|
|
|
94
94
|
/**
|
|
95
95
|
* Keyword to be included when flags or arguments have a default value.
|
|
96
96
|
*
|
|
97
|
-
* Defaults to `"default"`.
|
|
97
|
+
* Defaults to `"default ="`.
|
|
98
98
|
*/
|
|
99
99
|
readonly default: string;
|
|
100
|
+
/**
|
|
101
|
+
* Keyword to be included when flags are variadic and have a defined separator.
|
|
102
|
+
*
|
|
103
|
+
* Defaults to `"separator ="`.
|
|
104
|
+
*/
|
|
105
|
+
readonly separator: string;
|
|
100
106
|
}
|
|
101
107
|
/**
|
|
102
108
|
* Section header strings used to build help text.
|
|
@@ -658,7 +664,7 @@ interface BaseEnumFlagParameter<T extends string> extends BaseFlagParameter {
|
|
|
658
664
|
readonly default?: T;
|
|
659
665
|
readonly optional?: boolean;
|
|
660
666
|
readonly hidden?: boolean;
|
|
661
|
-
readonly variadic?: boolean;
|
|
667
|
+
readonly variadic?: boolean | string;
|
|
662
668
|
}
|
|
663
669
|
interface RequiredEnumFlagParameter<T extends string> extends BaseEnumFlagParameter<T> {
|
|
664
670
|
/**
|
|
@@ -704,8 +710,12 @@ interface OptionalVariadicEnumFlagParameter<T extends string> extends BaseEnumFl
|
|
|
704
710
|
readonly hidden?: false;
|
|
705
711
|
/**
|
|
706
712
|
* Parameter extends array and must be set as variadic.
|
|
713
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
714
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
715
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
716
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
707
717
|
*/
|
|
708
|
-
readonly variadic: true;
|
|
718
|
+
readonly variadic: true | string;
|
|
709
719
|
}
|
|
710
720
|
interface RequiredVariadicEnumFlagParameter<T extends string> extends BaseEnumFlagParameter<T> {
|
|
711
721
|
/**
|
|
@@ -723,8 +733,12 @@ interface RequiredVariadicEnumFlagParameter<T extends string> extends BaseEnumFl
|
|
|
723
733
|
readonly hidden?: false;
|
|
724
734
|
/**
|
|
725
735
|
* Parameter extends array and must be set as variadic.
|
|
736
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
737
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
738
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
739
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
726
740
|
*/
|
|
727
|
-
readonly variadic: true;
|
|
741
|
+
readonly variadic: true | string;
|
|
728
742
|
}
|
|
729
743
|
interface BaseParsedFlagParameter<T, CONTEXT extends CommandContext> extends ParsedParameter<T, CONTEXT>, BaseFlagParameter {
|
|
730
744
|
/**
|
|
@@ -740,7 +754,7 @@ interface BaseParsedFlagParameter<T, CONTEXT extends CommandContext> extends Par
|
|
|
740
754
|
*/
|
|
741
755
|
readonly inferEmpty?: boolean;
|
|
742
756
|
readonly optional?: boolean;
|
|
743
|
-
readonly variadic?: boolean;
|
|
757
|
+
readonly variadic?: boolean | string;
|
|
744
758
|
readonly hidden?: boolean;
|
|
745
759
|
}
|
|
746
760
|
type RequiredParsedFlagParameter<T, CONTEXT extends CommandContext> = BaseParsedFlagParameter<T, CONTEXT> & {
|
|
@@ -795,8 +809,12 @@ interface OptionalVariadicParsedFlagParameter<T, CONTEXT extends CommandContext>
|
|
|
795
809
|
readonly optional: true;
|
|
796
810
|
/**
|
|
797
811
|
* Parameter extends array and must be set as variadic.
|
|
812
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
813
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
814
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
815
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
798
816
|
*/
|
|
799
|
-
readonly variadic: true;
|
|
817
|
+
readonly variadic: true | string;
|
|
800
818
|
/**
|
|
801
819
|
* Default values are not supported for variadic parameters.
|
|
802
820
|
*/
|
|
@@ -810,8 +828,12 @@ interface RequiredVariadicParsedFlagParameter<T, CONTEXT extends CommandContext>
|
|
|
810
828
|
readonly optional?: false;
|
|
811
829
|
/**
|
|
812
830
|
* Parameter extends array and must be set as variadic.
|
|
831
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
832
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
833
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
834
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
813
835
|
*/
|
|
814
|
-
readonly variadic: true;
|
|
836
|
+
readonly variadic: true | string;
|
|
815
837
|
/**
|
|
816
838
|
* Default values are not supported for variadic parameters.
|
|
817
839
|
*/
|
|
@@ -827,10 +849,9 @@ type TypedFlagParameter<T, CONTEXT extends CommandContext = CommandContext> = un
|
|
|
827
849
|
type FlagParameter<CONTEXT extends CommandContext> = BooleanFlagParameter | CounterFlagParameter | BaseEnumFlagParameter<string> | BaseParsedFlagParameter<unknown, CONTEXT>;
|
|
828
850
|
/**
|
|
829
851
|
* Definition of flags for each named parameter.
|
|
830
|
-
* Required properties may vary depending on the type argument `T`.
|
|
831
852
|
*/
|
|
832
853
|
type FlagParametersForType<T, CONTEXT extends CommandContext = CommandContext> = {
|
|
833
|
-
readonly [K in keyof T]
|
|
854
|
+
readonly [K in keyof T]-?: TypedFlagParameter<T[K], CONTEXT>;
|
|
834
855
|
};
|
|
835
856
|
/**
|
|
836
857
|
* Definition of flags for each named parameter.
|
|
@@ -858,6 +879,9 @@ type UppercaseLetter = Capitalize<LowercaseLetter>;
|
|
|
858
879
|
type ReservedAlias = "h";
|
|
859
880
|
type AvailableAlias = Exclude<LowercaseLetter | UppercaseLetter, ReservedAlias>;
|
|
860
881
|
type Aliases<T> = Readonly<Partial<Record<AvailableAlias, T>>>;
|
|
882
|
+
/**
|
|
883
|
+
* Root constraint for all flag type parameters.
|
|
884
|
+
*/
|
|
861
885
|
type BaseFlags = Readonly<Record<string, unknown>>;
|
|
862
886
|
interface TypedCommandFlagParameters_<FLAGS extends BaseFlags, CONTEXT extends CommandContext> {
|
|
863
887
|
/**
|
|
@@ -869,7 +893,9 @@ interface TypedCommandFlagParameters_<FLAGS extends BaseFlags, CONTEXT extends C
|
|
|
869
893
|
*/
|
|
870
894
|
readonly aliases?: Aliases<keyof FLAGS & string>;
|
|
871
895
|
}
|
|
872
|
-
type TypedCommandFlagParameters<FLAGS extends BaseFlags, CONTEXT extends CommandContext> =
|
|
896
|
+
type TypedCommandFlagParameters<FLAGS extends BaseFlags, CONTEXT extends CommandContext> = [
|
|
897
|
+
keyof FLAGS
|
|
898
|
+
] extends [never] ? Partial<TypedCommandFlagParameters_<FLAGS, CONTEXT>> : TypedCommandFlagParameters_<FLAGS, CONTEXT>;
|
|
873
899
|
interface TypedCommandPositionalParameters_<ARGS extends BaseArgs, CONTEXT extends CommandContext> {
|
|
874
900
|
/**
|
|
875
901
|
* Typed definitions for all positional parameters.
|
|
@@ -939,6 +965,10 @@ interface PositionalParameterTuple<T> {
|
|
|
939
965
|
readonly kind: "tuple";
|
|
940
966
|
readonly parameters: T;
|
|
941
967
|
}
|
|
968
|
+
/**
|
|
969
|
+
* Root constraint for all positional argument type parameters.
|
|
970
|
+
* This is used to ensure that positional parameters are always defined as an array or tuple.
|
|
971
|
+
*/
|
|
942
972
|
type BaseArgs = readonly unknown[];
|
|
943
973
|
/**
|
|
944
974
|
* Definition of all positional parameters.
|
|
@@ -1338,7 +1368,7 @@ type CommandBuilderArguments<FLAGS extends BaseFlags, ARGS extends BaseArgs, CON
|
|
|
1338
1368
|
/**
|
|
1339
1369
|
* Build command from loader or local function as action with associated parameters and documentation.
|
|
1340
1370
|
*/
|
|
1341
|
-
declare function buildCommand<const FLAGS extends Readonly<Partial<Record<keyof FLAGS, unknown
|
|
1371
|
+
declare function buildCommand<const FLAGS extends Readonly<Partial<Record<keyof FLAGS, unknown>>> = NonNullable<unknown>, const ARGS extends BaseArgs = [], const CONTEXT extends CommandContext = CommandContext>(builderArgs: CommandBuilderArguments<FLAGS, ARGS, CONTEXT>): Command<CONTEXT>;
|
|
1342
1372
|
|
|
1343
1373
|
/**
|
|
1344
1374
|
* Help documentation for route map.
|
|
@@ -1392,4 +1422,4 @@ declare function buildRouteMap<R extends string, CONTEXT extends CommandContext
|
|
|
1392
1422
|
|
|
1393
1423
|
declare function run<CONTEXT extends CommandContext>(app: Application<CONTEXT>, inputs: readonly string[], context: StricliDynamicCommandContext<CONTEXT>): Promise<void>;
|
|
1394
1424
|
|
|
1395
|
-
export { AliasNotFoundError, type Aliases, type Application, type ApplicationConfiguration, type ApplicationContext, type ApplicationErrorFormatting, type ApplicationText, ArgumentParseError, ArgumentScannerError, type Command, type CommandBuilderArguments, type CommandContext, type CommandInfo, type CompletionConfiguration, type DisplayCaseStyle, type DocumentationBriefs, type DocumentationConfiguration, type DocumentationHeaders, type DocumentationKeywords, type DocumentedCommand, EnumValidationError, type EnvironmentVariableName, ExitCode, FlagNotFoundError, type FlagParametersForType, type InputCompletion, type InputParser, InvalidNegatedFlagSyntaxError, type PartialApplicationConfiguration, type RouteMap, type RouteMapBuilderArguments, type ScannerCaseStyle, type ScannerConfiguration, type StricliCommandContextBuilder, type StricliDynamicCommandContext, type StricliProcess, type TypedCommandFlagParameters, type TypedCommandParameters, type TypedCommandPositionalParameters, type TypedFlagParameter, type TypedPositionalParameter, type TypedPositionalParameters, UnexpectedFlagError, UnexpectedPositionalError, UnsatisfiedFlagError, UnsatisfiedPositionalError, type VersionInfo, booleanParser, buildApplication, buildChoiceParser, buildCommand, buildRouteMap, formatMessageForArgumentScannerError, generateHelpTextForAllCommands, looseBooleanParser, numberParser, proposeCompletionsForApplication as proposeCompletions, run, text_en };
|
|
1425
|
+
export { AliasNotFoundError, type Aliases, type Application, type ApplicationConfiguration, type ApplicationContext, type ApplicationErrorFormatting, type ApplicationText, ArgumentParseError, ArgumentScannerError, type BaseArgs, type BaseFlags, type Command, type CommandBuilderArguments, type CommandContext, type CommandFunction, type CommandFunctionLoader, type CommandInfo, type CommandModule, type CompletionConfiguration, type DisplayCaseStyle, type DocumentationBriefs, type DocumentationConfiguration, type DocumentationHeaders, type DocumentationKeywords, type DocumentedCommand, EnumValidationError, type EnvironmentVariableName, ExitCode, FlagNotFoundError, type FlagParametersForType, type InputCompletion, type InputParser, InvalidNegatedFlagSyntaxError, type PartialApplicationConfiguration, type RouteMap, type RouteMapBuilderArguments, type ScannerCaseStyle, type ScannerConfiguration, type StricliCommandContextBuilder, type StricliDynamicCommandContext, type StricliProcess, type TypedCommandFlagParameters, type TypedCommandParameters, type TypedCommandPositionalParameters, type TypedFlagParameter, type TypedPositionalParameter, type TypedPositionalParameters, UnexpectedFlagError, UnexpectedPositionalError, UnsatisfiedFlagError, UnsatisfiedPositionalError, type VersionInfo, booleanParser, buildApplication, buildChoiceParser, buildCommand, buildRouteMap, formatMessageForArgumentScannerError, generateHelpTextForAllCommands, looseBooleanParser, numberParser, proposeCompletionsForApplication as proposeCompletions, run, text_en };
|
package/dist/index.d.ts
CHANGED
|
@@ -94,9 +94,15 @@ interface DocumentationKeywords {
|
|
|
94
94
|
/**
|
|
95
95
|
* Keyword to be included when flags or arguments have a default value.
|
|
96
96
|
*
|
|
97
|
-
* Defaults to `"default"`.
|
|
97
|
+
* Defaults to `"default ="`.
|
|
98
98
|
*/
|
|
99
99
|
readonly default: string;
|
|
100
|
+
/**
|
|
101
|
+
* Keyword to be included when flags are variadic and have a defined separator.
|
|
102
|
+
*
|
|
103
|
+
* Defaults to `"separator ="`.
|
|
104
|
+
*/
|
|
105
|
+
readonly separator: string;
|
|
100
106
|
}
|
|
101
107
|
/**
|
|
102
108
|
* Section header strings used to build help text.
|
|
@@ -658,7 +664,7 @@ interface BaseEnumFlagParameter<T extends string> extends BaseFlagParameter {
|
|
|
658
664
|
readonly default?: T;
|
|
659
665
|
readonly optional?: boolean;
|
|
660
666
|
readonly hidden?: boolean;
|
|
661
|
-
readonly variadic?: boolean;
|
|
667
|
+
readonly variadic?: boolean | string;
|
|
662
668
|
}
|
|
663
669
|
interface RequiredEnumFlagParameter<T extends string> extends BaseEnumFlagParameter<T> {
|
|
664
670
|
/**
|
|
@@ -704,8 +710,12 @@ interface OptionalVariadicEnumFlagParameter<T extends string> extends BaseEnumFl
|
|
|
704
710
|
readonly hidden?: false;
|
|
705
711
|
/**
|
|
706
712
|
* Parameter extends array and must be set as variadic.
|
|
713
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
714
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
715
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
716
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
707
717
|
*/
|
|
708
|
-
readonly variadic: true;
|
|
718
|
+
readonly variadic: true | string;
|
|
709
719
|
}
|
|
710
720
|
interface RequiredVariadicEnumFlagParameter<T extends string> extends BaseEnumFlagParameter<T> {
|
|
711
721
|
/**
|
|
@@ -723,8 +733,12 @@ interface RequiredVariadicEnumFlagParameter<T extends string> extends BaseEnumFl
|
|
|
723
733
|
readonly hidden?: false;
|
|
724
734
|
/**
|
|
725
735
|
* Parameter extends array and must be set as variadic.
|
|
736
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
737
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
738
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
739
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
726
740
|
*/
|
|
727
|
-
readonly variadic: true;
|
|
741
|
+
readonly variadic: true | string;
|
|
728
742
|
}
|
|
729
743
|
interface BaseParsedFlagParameter<T, CONTEXT extends CommandContext> extends ParsedParameter<T, CONTEXT>, BaseFlagParameter {
|
|
730
744
|
/**
|
|
@@ -740,7 +754,7 @@ interface BaseParsedFlagParameter<T, CONTEXT extends CommandContext> extends Par
|
|
|
740
754
|
*/
|
|
741
755
|
readonly inferEmpty?: boolean;
|
|
742
756
|
readonly optional?: boolean;
|
|
743
|
-
readonly variadic?: boolean;
|
|
757
|
+
readonly variadic?: boolean | string;
|
|
744
758
|
readonly hidden?: boolean;
|
|
745
759
|
}
|
|
746
760
|
type RequiredParsedFlagParameter<T, CONTEXT extends CommandContext> = BaseParsedFlagParameter<T, CONTEXT> & {
|
|
@@ -795,8 +809,12 @@ interface OptionalVariadicParsedFlagParameter<T, CONTEXT extends CommandContext>
|
|
|
795
809
|
readonly optional: true;
|
|
796
810
|
/**
|
|
797
811
|
* Parameter extends array and must be set as variadic.
|
|
812
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
813
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
814
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
815
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
798
816
|
*/
|
|
799
|
-
readonly variadic: true;
|
|
817
|
+
readonly variadic: true | string;
|
|
800
818
|
/**
|
|
801
819
|
* Default values are not supported for variadic parameters.
|
|
802
820
|
*/
|
|
@@ -810,8 +828,12 @@ interface RequiredVariadicParsedFlagParameter<T, CONTEXT extends CommandContext>
|
|
|
810
828
|
readonly optional?: false;
|
|
811
829
|
/**
|
|
812
830
|
* Parameter extends array and must be set as variadic.
|
|
831
|
+
* Also supports using an arbitrary string as a separator for individual inputs.
|
|
832
|
+
* For example, `variadic: ","` will scan `--flag a,b,c` as `["a", "b", "c"]`.
|
|
833
|
+
* If no separator is provided, the default behavior is to parse the input as a single string.
|
|
834
|
+
* The separator cannot be the empty string or contain any whitespace.
|
|
813
835
|
*/
|
|
814
|
-
readonly variadic: true;
|
|
836
|
+
readonly variadic: true | string;
|
|
815
837
|
/**
|
|
816
838
|
* Default values are not supported for variadic parameters.
|
|
817
839
|
*/
|
|
@@ -827,10 +849,9 @@ type TypedFlagParameter<T, CONTEXT extends CommandContext = CommandContext> = un
|
|
|
827
849
|
type FlagParameter<CONTEXT extends CommandContext> = BooleanFlagParameter | CounterFlagParameter | BaseEnumFlagParameter<string> | BaseParsedFlagParameter<unknown, CONTEXT>;
|
|
828
850
|
/**
|
|
829
851
|
* Definition of flags for each named parameter.
|
|
830
|
-
* Required properties may vary depending on the type argument `T`.
|
|
831
852
|
*/
|
|
832
853
|
type FlagParametersForType<T, CONTEXT extends CommandContext = CommandContext> = {
|
|
833
|
-
readonly [K in keyof T]
|
|
854
|
+
readonly [K in keyof T]-?: TypedFlagParameter<T[K], CONTEXT>;
|
|
834
855
|
};
|
|
835
856
|
/**
|
|
836
857
|
* Definition of flags for each named parameter.
|
|
@@ -858,6 +879,9 @@ type UppercaseLetter = Capitalize<LowercaseLetter>;
|
|
|
858
879
|
type ReservedAlias = "h";
|
|
859
880
|
type AvailableAlias = Exclude<LowercaseLetter | UppercaseLetter, ReservedAlias>;
|
|
860
881
|
type Aliases<T> = Readonly<Partial<Record<AvailableAlias, T>>>;
|
|
882
|
+
/**
|
|
883
|
+
* Root constraint for all flag type parameters.
|
|
884
|
+
*/
|
|
861
885
|
type BaseFlags = Readonly<Record<string, unknown>>;
|
|
862
886
|
interface TypedCommandFlagParameters_<FLAGS extends BaseFlags, CONTEXT extends CommandContext> {
|
|
863
887
|
/**
|
|
@@ -869,7 +893,9 @@ interface TypedCommandFlagParameters_<FLAGS extends BaseFlags, CONTEXT extends C
|
|
|
869
893
|
*/
|
|
870
894
|
readonly aliases?: Aliases<keyof FLAGS & string>;
|
|
871
895
|
}
|
|
872
|
-
type TypedCommandFlagParameters<FLAGS extends BaseFlags, CONTEXT extends CommandContext> =
|
|
896
|
+
type TypedCommandFlagParameters<FLAGS extends BaseFlags, CONTEXT extends CommandContext> = [
|
|
897
|
+
keyof FLAGS
|
|
898
|
+
] extends [never] ? Partial<TypedCommandFlagParameters_<FLAGS, CONTEXT>> : TypedCommandFlagParameters_<FLAGS, CONTEXT>;
|
|
873
899
|
interface TypedCommandPositionalParameters_<ARGS extends BaseArgs, CONTEXT extends CommandContext> {
|
|
874
900
|
/**
|
|
875
901
|
* Typed definitions for all positional parameters.
|
|
@@ -939,6 +965,10 @@ interface PositionalParameterTuple<T> {
|
|
|
939
965
|
readonly kind: "tuple";
|
|
940
966
|
readonly parameters: T;
|
|
941
967
|
}
|
|
968
|
+
/**
|
|
969
|
+
* Root constraint for all positional argument type parameters.
|
|
970
|
+
* This is used to ensure that positional parameters are always defined as an array or tuple.
|
|
971
|
+
*/
|
|
942
972
|
type BaseArgs = readonly unknown[];
|
|
943
973
|
/**
|
|
944
974
|
* Definition of all positional parameters.
|
|
@@ -1338,7 +1368,7 @@ type CommandBuilderArguments<FLAGS extends BaseFlags, ARGS extends BaseArgs, CON
|
|
|
1338
1368
|
/**
|
|
1339
1369
|
* Build command from loader or local function as action with associated parameters and documentation.
|
|
1340
1370
|
*/
|
|
1341
|
-
declare function buildCommand<const FLAGS extends Readonly<Partial<Record<keyof FLAGS, unknown
|
|
1371
|
+
declare function buildCommand<const FLAGS extends Readonly<Partial<Record<keyof FLAGS, unknown>>> = NonNullable<unknown>, const ARGS extends BaseArgs = [], const CONTEXT extends CommandContext = CommandContext>(builderArgs: CommandBuilderArguments<FLAGS, ARGS, CONTEXT>): Command<CONTEXT>;
|
|
1342
1372
|
|
|
1343
1373
|
/**
|
|
1344
1374
|
* Help documentation for route map.
|
|
@@ -1392,4 +1422,4 @@ declare function buildRouteMap<R extends string, CONTEXT extends CommandContext
|
|
|
1392
1422
|
|
|
1393
1423
|
declare function run<CONTEXT extends CommandContext>(app: Application<CONTEXT>, inputs: readonly string[], context: StricliDynamicCommandContext<CONTEXT>): Promise<void>;
|
|
1394
1424
|
|
|
1395
|
-
export { AliasNotFoundError, type Aliases, type Application, type ApplicationConfiguration, type ApplicationContext, type ApplicationErrorFormatting, type ApplicationText, ArgumentParseError, ArgumentScannerError, type Command, type CommandBuilderArguments, type CommandContext, type CommandInfo, type CompletionConfiguration, type DisplayCaseStyle, type DocumentationBriefs, type DocumentationConfiguration, type DocumentationHeaders, type DocumentationKeywords, type DocumentedCommand, EnumValidationError, type EnvironmentVariableName, ExitCode, FlagNotFoundError, type FlagParametersForType, type InputCompletion, type InputParser, InvalidNegatedFlagSyntaxError, type PartialApplicationConfiguration, type RouteMap, type RouteMapBuilderArguments, type ScannerCaseStyle, type ScannerConfiguration, type StricliCommandContextBuilder, type StricliDynamicCommandContext, type StricliProcess, type TypedCommandFlagParameters, type TypedCommandParameters, type TypedCommandPositionalParameters, type TypedFlagParameter, type TypedPositionalParameter, type TypedPositionalParameters, UnexpectedFlagError, UnexpectedPositionalError, UnsatisfiedFlagError, UnsatisfiedPositionalError, type VersionInfo, booleanParser, buildApplication, buildChoiceParser, buildCommand, buildRouteMap, formatMessageForArgumentScannerError, generateHelpTextForAllCommands, looseBooleanParser, numberParser, proposeCompletionsForApplication as proposeCompletions, run, text_en };
|
|
1425
|
+
export { AliasNotFoundError, type Aliases, type Application, type ApplicationConfiguration, type ApplicationContext, type ApplicationErrorFormatting, type ApplicationText, ArgumentParseError, ArgumentScannerError, type BaseArgs, type BaseFlags, type Command, type CommandBuilderArguments, type CommandContext, type CommandFunction, type CommandFunctionLoader, type CommandInfo, type CommandModule, type CompletionConfiguration, type DisplayCaseStyle, type DocumentationBriefs, type DocumentationConfiguration, type DocumentationHeaders, type DocumentationKeywords, type DocumentedCommand, EnumValidationError, type EnvironmentVariableName, ExitCode, FlagNotFoundError, type FlagParametersForType, type InputCompletion, type InputParser, InvalidNegatedFlagSyntaxError, type PartialApplicationConfiguration, type RouteMap, type RouteMapBuilderArguments, type ScannerCaseStyle, type ScannerConfiguration, type StricliCommandContextBuilder, type StricliDynamicCommandContext, type StricliProcess, type TypedCommandFlagParameters, type TypedCommandParameters, type TypedCommandPositionalParameters, type TypedFlagParameter, type TypedPositionalParameter, type TypedPositionalParameters, UnexpectedFlagError, UnexpectedPositionalError, UnsatisfiedFlagError, UnsatisfiedPositionalError, type VersionInfo, booleanParser, buildApplication, buildChoiceParser, buildCommand, buildRouteMap, formatMessageForArgumentScannerError, generateHelpTextForAllCommands, looseBooleanParser, numberParser, proposeCompletionsForApplication as proposeCompletions, run, text_en };
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
function K(e,t){let n=e.env?.[t];return typeof n=="string"&&n!=="0"}var b={UnknownCommand:-5,InvalidArgument:-4,ContextLoadError:-3,CommandLoadError:-2,InternalError:-1,Success:0,CommandRunError:1};function I(e){return e.replace(/-./g,t=>t[1].toUpperCase())}function A(e){return Array.from(e).map((t,n)=>{let a=t.toUpperCase(),r=t.toLowerCase();return n===0||a!==t||a===r?t:`-${r}`}).join("")}function ve(e){let t=new Map;return{get:(...n)=>t.get(n.join(","))??e,set:(n,...a)=>{t.set(a.join(","),n)}}}function Xe(e,t,n){let{threshold:a,weights:r}=n;if(e===t)return 0;let i=Math.abs(e.length-t.length);if(typeof a=="number"&&i>a)return 1/0;let o=ve(1/0);o.set(0,-1,-1);for(let s=0;s<t.length;++s)o.set((s+1)*r.insertion,-1,s);for(let s=0;s<e.length;++s)o.set((s+1)*r.deletion,s,-1);let d=-1/0;for(let s=0;s<e.length;++s){let u=1/0;for(let l=0;l<=t.length-1;++l){let p=e[s]===t[l]?0:1,c=[o.get(s-1,l)+r.deletion,o.get(s,l-1)+r.insertion,o.get(s-1,l-1)+p*r.substitution];e[s]===t[l-1]&&e[s-1]===t[l]&&c.push(o.get(s-2,l-2)+p*r.transposition);let f=Math.min(...c);o.set(f,s,l),f<u&&(u=f)}if(u>a){if(d>a)return 1/0;d=u}else d=-1/0}let m=o.get(e.length-1,t.length-1);return m>a?1/0:m}function we(e,t,n){let a=e[1]-t[1];if(a!==0)return a;let r=e[0].startsWith(n),i=t[0].startsWith(n);return r&&!i?-1:!r&&i?1:e[0].localeCompare(t[0])}function D(e,t,n){let a=t.map(i=>[i,Xe(e,i,n)]).filter(([,i])=>i<=n.threshold),r=Math.min(...a.map(([,i])=>i));return a.filter(([,i])=>i===r).sort((i,o)=>we(i,o,e)).map(([i])=>i)}var x=class extends Error{};function q(e){return e instanceof Error?e.stack??String(e):String(e)}function $e(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r<a;++r)n[r]=Math.max(e[r],t[r]);return n}function $(e,t){if(e.length===0)return[];let n=Array(Math.max(...e.map(r=>r.length))).fill(0,0),a=e.reduce((r,i)=>{let o=i.map(d=>d.length);return $e(r,o)},n);return e.map(r=>{let i=(r[0]??"").padEnd(a[0]);return r.slice(1).reduce((o,d,m,s)=>{let u=s.length===m+1?d:d.padEnd(a[m+1]);return[...o,t?.[m]??" ",u]},[i]).join("").trimEnd()})}function V(e,t){if(e.length<=1)return e[0]??"";if(e.length===2)return e.join(` ${t.conjunction} `);let n=e.slice(0,e.length-1).join(", ");return t.serialComma&&(n+=","),[n,t.conjunction,e[e.length-1]].join(" ")}function Le(e,t){return e.reduce((n,a)=>{let r=t(a),i=n[r]??[];return i.push(a),n[r]=i,n},{})}function me(e,t){return Le(e,n=>n[t])}async function z(e){let t=await Promise.allSettled(e),n=me(t,"status");return n.rejected&&n.rejected.length>0?{status:"rejected",reasons:n.rejected.map(a=>a.reason)}:{status:"fulfilled",value:n.fulfilled?.map(a=>a.value)??[]}}var ke=e=>{switch(e.toLowerCase()){case"true":return!0;case"false":return!1}throw new SyntaxError(`Cannot convert ${e} to a boolean`)},Ie=new Set(["true","t","yes","y","on","1"]),De=new Set(["false","f","no","n","off","0"]),re=e=>{let t=e.toLowerCase();if(Ie.has(t))return!0;if(De.has(t))return!1;throw new SyntaxError(`Cannot convert ${e} to a boolean`)};var oe=e=>{let t=Number(e);if(Number.isNaN(t))throw new SyntaxError(`Cannot convert ${e} to a number`);return t};var h=class extends x{_brand};function se(e,t){let n=e.constructor.name,a=t[n];return a?a(e):e.message}function Me(e,t,n){return Object.fromEntries(Object.entries(t).map(([a,r])=>{let i=r,o=e[i];if(!o){let d=v(i,n);throw new L(d,[],a)}return[a,[i,o]]}))}var L=class extends h{input;corrections;aliasName;constructor(t,n,a){let r=`No flag registered for --${t}`;if(a)r+=` (aliased from -${a})`;else if(n.length>0){let i=V(n.map(o=>`--${o}`),{kind:"conjunctive",conjunction:"or",serialComma:!0});r+=`, did you mean ${i}?`}super(r),this.input=t,this.corrections=n,this.aliasName=a}},G=class extends h{input;constructor(t){super(`No alias registered for -${t}`),this.input=t}};function ae(e,t){return e.placeholder?e.placeholder:typeof t=="number"?`arg${t}`:"args"}function v(e,t){return t==="allow-kebab-for-camel"?A(e):e}var j=class extends h{externalFlagNameOrPlaceholder;input;exception;constructor(t,n,a){super(`Failed to parse "${n}" for ${t}: ${a instanceof Error?a.message:String(a)}`),this.externalFlagNameOrPlaceholder=t,this.input=n,this.exception=a}};function M(e,t,n,a){try{return t.parse.call(a,n)}catch(r){throw new j(e,n,r)}}var W=class extends h{externalFlagName;input;values;constructor(t,n,a,r){let i=`Expected "${n}" to be one of (${a.join("|")})`;if(r.length>0){let o=V(r.map(d=>`"${d}"`),{kind:"conjunctive",conjunction:"or",serialComma:!0});i+=`, did you mean ${o}?`}super(i),this.externalFlagName=t,this.input=n,this.values=a}},X=class extends h{externalFlagName;nextFlagName;constructor(t,n){let a=`Expected input for flag --${t}`;n&&(a+=` but encountered --${n} instead`),super(a),this.externalFlagName=t,this.nextFlagName=n}},H=class extends h{expectedCount;input;constructor(t,n){super(`Too many arguments, expected ${t} but encountered "${n}"`),this.expectedCount=t,this.input=n}},_=class extends h{placeholder;limit;constructor(t,n){let a;n?(a=`Expected at least ${n[0]} argument(s) for ${t}`,n[1]===0?a+=" but found none":a+=` but only found ${n[1]}`):a=`Expected argument for ${t}`,super(a),this.placeholder=t,this.limit=n}};function de(e){if(e.startsWith("no")&&e.length>2){if(e[2]==="-")return e.slice(4);let t=e[2],n=t.toUpperCase();return t!==n?void 0:t.toLowerCase()+e.slice(3)}}function pe(e,t,n){let a=e,r=t[a];if(!r){let o=de(a);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}let i=I(e);if(n.caseStyle==="allow-kebab-for-camel"&&!r){if(r=t[i],r)return{namedFlag:[i,r]};let o=de(i);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}if(!r){if(i in t)throw new L(e,[i]);let o=A(e);if(o in t)throw new L(e,[o]);let d=D(a,Object.keys(t),n.distanceOptions);throw new L(e,d)}return{namedFlag:[a,r]}}function ue(e){return e.namedFlag[1].kind==="boolean"||e.namedFlag[1].kind==="counter"}var ce=/^-([a-z]+)$/i,Ge=/^--([a-z][a-z-]+)$/i;function je(e,t,n,a){let r=ce.exec(e);if(r){let o=r[1];return Array.from(o).map(d=>{let m=d,s=n[m];if(!s)throw new G(m);return{namedFlag:s}})}let i=Ge.exec(e);if(i){let o=i[1];return[pe(o,t,a)]}return[]}var Ue=/^--([a-z][a-z-.\d_]+)=(.+)$/i,qe=/^-([a-z])=(.+)$/i,J=class extends h{externalFlagName;valueText;constructor(t,n){super(`Cannot negate flag --${t} and pass "${n}" as value`),this.externalFlagName=t,this.valueText=n}};function Ve(e,t,n,a){let r=Ue.exec(e);if(r){let o=r[1],{namedFlag:d,negated:m}=pe(o,t,a),s=r[2];if(m)throw new J(o,s);return[d,s]}let i=qe.exec(e);if(i){let o=i[1],d=n[o];if(!d)throw new G(o);let m=i[2];return[d,m]}}async function We(e,t,n,a,r){if(!n){if("default"in t&&typeof t.default<"u")return t.kind==="boolean"||t.kind==="enum"?t.default:M(e,t,t.default,r);if(t.optional)return;if(t.kind==="boolean")return!1;if(t.kind==="counter")return 0;throw new X(e)}if(t.kind==="counter")return n.reduce((o,d)=>{try{return o+oe.call(r,d)}catch(m){throw new j(e,d,m)}},0);if("variadic"in t&&t.variadic){if(t.kind==="enum"){for(let o of n)if(!t.values.includes(o)){let d=D(o,t.values,a.distanceOptions);throw new W(e,o,t.values,d)}return n}return Promise.all(n.map(o=>M(e,t,o,r)))}let i=n[0];if(t.kind==="boolean")try{return re.call(r,i)}catch(o){throw new j(e,i,o)}if(t.kind==="enum"){if(!t.values.includes(i)){let o=D(i,t.values,a.distanceOptions);throw new W(e,i,t.values,o)}return i}return M(e,t,i,r)}var Y=class extends h{externalFlagName;previousInput;input;constructor(t,n,a){super(`Too many arguments for --${t}, encountered "${a}" after "${n}"`),this.externalFlagName=t,this.previousInput=n,this.input=a}};function fe(e){return e.kind==="counter"?!0:"variadic"in e?!!e.variadic:!1}function B(e,t,n,a){let r=e.get(n[0])??[];if(r.length>0&&!fe(n[1])){let i=v(n[0],t);throw new Y(i,r[0],a)}e.set(n[0],[...r,a])}function ie(e,t,n){if(t.get(n)){let r=e[n];return!fe(r)}return!1}function Q(e,t){let{flags:n={},aliases:a={},positional:r={kind:"tuple",parameters:[]}}=e,i=Me(n,a,t.caseStyle),o=[],d=new Map,m=0,s,u=!1;return{next:l=>{if(!u&&t.allowArgumentEscapeSequence&&l==="--"){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)B(d,t.caseStyle,s,""),s=void 0;else{let p=v(s[0],t.caseStyle);throw new X(p)}u=!0;return}if(!u){let p=Ve(l,n,i,t);if(p){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)B(d,t.caseStyle,s,""),s=void 0;else{let f=v(s[0],t.caseStyle),T=v(p[0][0],t.caseStyle);throw new X(f,T)}B(d,t.caseStyle,...p);return}let c=je(l,n,i,t);if(c.length>0){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)B(d,t.caseStyle,s,""),s=void 0;else{let f=v(s[0],t.caseStyle),T=v(c[0].namedFlag[0],t.caseStyle);throw new X(f,T)}if(c.every(ue))for(let f of c)f.namedFlag[1].kind==="boolean"?B(d,t.caseStyle,f.namedFlag,f.negated?"false":"true"):B(d,t.caseStyle,f.namedFlag,"1");else if(c.length>1){let f=c.find(E=>!ue(E)),T=v(f.namedFlag[0],t.caseStyle);throw new X(T)}else s=c[0].namedFlag;return}}if(s)B(d,t.caseStyle,s,l),s=void 0;else{if(r.kind==="tuple"){if(m>=r.parameters.length)throw new H(r.parameters.length,l)}else if(typeof r.maximum=="number"&&m>=r.maximum)throw new H(r.maximum,l);o[m]=l,++m}},parseArguments:async l=>{let p=[],c;r.kind==="array"?(typeof r.minimum=="number"&&m<r.minimum&&p.push(new _(ae(r.parameter),[r.minimum,m])),c=z(o.map(async(g,C)=>{let y=ae(r.parameter,C+1);return M(y,r.parameter,g,l)}))):c=z(r.parameters.map(async(g,C)=>{let y=ae(g,C+1),N=o[C];if(typeof N!="string"){if(typeof g.default=="string")return M(y,g,g.default,l);if(g.optional)return;throw new _(y)}return M(y,g,N,l)})),s&&s[1].kind==="parsed"&&s[1].inferEmpty&&(B(d,t.caseStyle,s,""),s=void 0);let f=z(Object.entries(n).map(async g=>{let[C,y]=g,N=v(C,t.caseStyle);if(s&&s[0]===C)throw new X(N);let P=d.get(C),w=await We(N,y,P,t,l);return[C,w]})),[T,E]=await Promise.all([c,f]);if(T.status==="rejected")for(let g of T.reasons)p.push(g);if(E.status==="rejected")for(let g of E.reasons)p.push(g);if(p.length>0)return{success:!1,errors:p};if(T.status==="rejected")throw new x("Unknown failure while scanning positional arguments");if(E.status==="rejected")throw new x("Unknown failure while scanning flag arguments");return{success:!0,arguments:[Object.fromEntries(E.value),...T.value]}},proposeCompletions:async({partial:l,completionConfig:p,text:c,context:f,includeVersionFlag:T})=>{if(s){let F=s[1],g;return F.kind==="enum"?g=F.values:F.proposeCompletions?g=await F.proposeCompletions.call(f,l):g=[],g.map(C=>({kind:"argument:value",completion:C,brief:F.brief})).filter(({completion:C})=>C.startsWith(l))}let E=[];if(!u){let F=ce.exec(l);if(p.includeAliases){if(l===""||l==="-"){let g=Object.entries(a).filter(C=>!ie(n,d,C[1]));for(let[C]of g){let y=i[C];y&&E.push({kind:"argument:flag",completion:`-${C}`,brief:y[1].brief})}}else if(F){let g=Array.from(F[1]);if(g.includes("h"))return[];if(T&&g.includes("v"))return[];let C=new Map(d);for(let P of g){let w=i[P];if(!w)throw new G(P);B(C,t.caseStyle,w,w[1].kind==="boolean"?"true":"1")}let y=g[g.length-1];if(y){let P=i[y];P&&E.push({kind:"argument:flag",completion:l,brief:P[1].brief})}let N=Object.entries(a).filter(P=>!ie(n,C,P[1]));for(let[P]of N){let w=i[P];w&&E.push({kind:"argument:flag",completion:`${l}${P}`,brief:w[1].brief})}}}if(l===""||l==="-"||l.startsWith("--")){t.allowArgumentEscapeSequence&&E.push({kind:"argument:flag",completion:"--",brief:c.briefs.argumentEscapeSequence});let g=Object.entries(n).filter(([y])=>!ie(n,d,y));t.caseStyle==="allow-kebab-for-camel"&&(g=g.map(([y,N])=>[A(y),N]));let C=g.map(([y,N])=>[`--${y}`,N]).filter(([y])=>y.startsWith(l));E.push(...C.map(([y,N])=>({kind:"argument:flag",completion:y,brief:N.brief})))}}if(r.kind==="array"){if(r.parameter.proposeCompletions&&(typeof r.maximum!="number"||m<r.maximum)){let F=await r.parameter.proposeCompletions.call(f,l);E.push(...F.map(g=>({kind:"argument:value",completion:g,brief:r.parameter.brief})))}}else{let F=r.parameters[m];if(F?.proposeCompletions){let g=await F.proposeCompletions.call(f,l);E.push(...g.map(C=>({kind:"argument:value",completion:C,brief:F.brief})))}}return E.filter(({completion:F})=>F.startsWith(l))}}}function ge(e,t,n){let a=t==="allow-kebab-for-camel"?"convert-camel-to-kebab":t,r=e.getAllEntries();return n.includeHiddenRoutes||(r=r.filter(i=>!i.hidden)),r.flatMap(i=>{let o=i.name[a];return n.includeAliases?[o,...i.aliases]:[o]})}var Ce={headers:{usage:"USAGE",aliases:"ALIASES",commands:"COMMANDS",flags:"FLAGS",arguments:"ARGUMENTS"},keywords:{default:"default ="},briefs:{help:"Print help information and exit",helpAll:"Print help information (including hidden commands/flags) and exit",version:"Print version information and exit",argumentEscapeSequence:"All subsequent inputs should be interpreted as arguments"},noCommandRegisteredForInput:({input:e,corrections:t})=>{let n=`No command registered for \`${e}\``;if(t.length>0){let a=V(t,{kind:"conjunctive",conjunction:"or",serialComma:!0});return`${n}, did you mean ${a}?`}else return n},noTextAvailableForLocale:({requestedLocale:e,defaultLocale:t})=>`Application does not support "${e}" locale, defaulting to "${t}"`,exceptionWhileParsingArguments:e=>e instanceof h?se(e,{}):`Unable to parse arguments, ${q(e)}`,exceptionWhileLoadingCommandFunction:e=>`Unable to load command function, ${q(e)}`,exceptionWhileLoadingCommandContext:e=>`Unable to load command context, ${q(e)}`,exceptionWhileRunningCommand:e=>`Command failed, ${q(e)}`,commandErrorResult:e=>e.message,currentVersionIsNotLatest:({currentVersion:e,latestVersion:t,upgradeCommand:n})=>n?`Latest available version is ${t} (currently running ${e}), upgrade with "${n}"`:`Latest available version is ${t} (currently running ${e})`};function ye(e){if(e.startsWith("en"))return Ce}function S(e,t,n){return!n.disableAnsiColor&&!K(e,"STRICLI_NO_COLOR")&&(t.getColorDepth?.(e.env)??1)>=4}async function xe({loader:e,parameters:t},{context:n,inputs:a,scannerConfig:r,errorFormatting:i,documentationConfig:o,determineExitCode:d}){let m=e(),s;try{let l=Q(t,r);for(let c of a)l.next(c);let p=await l.parseArguments(n);if(p.success)s=p.arguments;else{let c=S(n.process,n.process.stderr,o);for(let f of p.errors){let T=i.exceptionWhileParsingArguments(f,c);n.process.stderr.write(c?`\x1B[1m\x1B[31m${T}\x1B[39m\x1B[22m
|
|
1
|
+
function K(e,t){let n=e.env?.[t];return typeof n=="string"&&n!=="0"}var N={UnknownCommand:-5,InvalidArgument:-4,ContextLoadError:-3,CommandLoadError:-2,InternalError:-1,Success:0,CommandRunError:1};function I(e){return e.replace(/-./g,t=>t[1].toUpperCase())}function F(e){return Array.from(e).map((t,n)=>{let a=t.toUpperCase(),r=t.toLowerCase();return n===0||a!==t||a===r?t:`-${r}`}).join("")}function we(e){let t=new Map;return{get:(...n)=>t.get(n.join(","))??e,set:(n,...a)=>{t.set(a.join(","),n)}}}function Xe(e,t,n){let{threshold:a,weights:r}=n;if(e===t)return 0;let i=Math.abs(e.length-t.length);if(typeof a=="number"&&i>a)return 1/0;let o=we(1/0);o.set(0,-1,-1);for(let s=0;s<t.length;++s)o.set((s+1)*r.insertion,-1,s);for(let s=0;s<e.length;++s)o.set((s+1)*r.deletion,s,-1);let d=-1/0;for(let s=0;s<e.length;++s){let u=1/0;for(let l=0;l<=t.length-1;++l){let p=e[s]===t[l]?0:1,c=[o.get(s-1,l)+r.deletion,o.get(s,l-1)+r.insertion,o.get(s-1,l-1)+p*r.substitution];e[s]===t[l-1]&&e[s-1]===t[l]&&c.push(o.get(s-2,l-2)+p*r.transposition);let f=Math.min(...c);o.set(f,s,l),f<u&&(u=f)}if(u>a){if(d>a)return 1/0;d=u}else d=-1/0}let m=o.get(e.length-1,t.length-1);return m>a?1/0:m}function $e(e,t,n){let a=e[1]-t[1];if(a!==0)return a;let r=e[0].startsWith(n),i=t[0].startsWith(n);return r&&!i?-1:!r&&i?1:e[0].localeCompare(t[0])}function M(e,t,n){let a=t.map(i=>[i,Xe(e,i,n)]).filter(([,i])=>i<=n.threshold),r=Math.min(...a.map(([,i])=>i));return a.filter(([,i])=>i===r).sort((i,o)=>$e(i,o,e)).map(([i])=>i)}var C=class extends Error{};function q(e){return e instanceof Error?e.stack??String(e):String(e)}function Le(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r<a;++r)n[r]=Math.max(e[r],t[r]);return n}function $(e,t){if(e.length===0)return[];let n=Array(Math.max(...e.map(r=>r.length))).fill(0,0),a=e.reduce((r,i)=>{let o=i.map(d=>d.length);return Le(r,o)},n);return e.map(r=>{let i=(r[0]??"").padEnd(a[0]);return r.slice(1).reduce((o,d,m,s)=>{let u=s.length===m+1?d:d.padEnd(a[m+1]);return[...o,t?.[m]??" ",u]},[i]).join("").trimEnd()})}function V(e,t){if(e.length<=1)return e[0]??"";if(e.length===2)return e.join(` ${t.conjunction} `);let n=e.slice(0,e.length-1).join(", ");return t.serialComma&&(n+=","),[n,t.conjunction,e[e.length-1]].join(" ")}function ke(e,t){return e.reduce((n,a)=>{let r=t(a),i=n[r]??[];return i.push(a),n[r]=i,n},{})}function me(e,t){return ke(e,n=>n[t])}async function z(e){let t=await Promise.allSettled(e),n=me(t,"status");return n.rejected&&n.rejected.length>0?{status:"rejected",reasons:n.rejected.map(a=>a.reason)}:{status:"fulfilled",value:n.fulfilled?.map(a=>a.value)??[]}}var Ie=e=>{switch(e.toLowerCase()){case"true":return!0;case"false":return!1}throw new SyntaxError(`Cannot convert ${e} to a boolean`)},Me=new Set(["true","t","yes","y","on","1"]),De=new Set(["false","f","no","n","off","0"]),re=e=>{let t=e.toLowerCase();if(Me.has(t))return!0;if(De.has(t))return!1;throw new SyntaxError(`Cannot convert ${e} to a boolean`)};var oe=e=>{let t=Number(e);if(Number.isNaN(t))throw new SyntaxError(`Cannot convert ${e} to a number`);return t};var A=class extends C{_brand};function se(e,t){let n=e.constructor.name,a=t[n];return a?a(e):e.message}function Ge(e,t,n){return Object.fromEntries(Object.entries(t).map(([a,r])=>{let i=r,o=e[i];if(!o){let d=B(i,n);throw new L(d,[],a)}return[a,[i,o]]}))}var L=class extends A{input;corrections;aliasName;constructor(t,n,a){let r=`No flag registered for --${t}`;if(a)r+=` (aliased from -${a})`;else if(n.length>0){let i=V(n.map(o=>`--${o}`),{kind:"conjunctive",conjunction:"or",serialComma:!0});r+=`, did you mean ${i}?`}super(r),this.input=t,this.corrections=n,this.aliasName=a}},G=class extends A{input;constructor(t){super(`No alias registered for -${t}`),this.input=t}};function ae(e,t){return e.placeholder?e.placeholder:typeof t=="number"?`arg${t}`:"args"}function B(e,t){return t==="allow-kebab-for-camel"?F(e):e}var j=class extends A{externalFlagNameOrPlaceholder;input;exception;constructor(t,n,a){super(`Failed to parse "${n}" for ${t}: ${a instanceof Error?a.message:String(a)}`),this.externalFlagNameOrPlaceholder=t,this.input=n,this.exception=a}};function D(e,t,n,a){try{return t.parse.call(a,n)}catch(r){throw new j(e,n,r)}}var W=class extends A{externalFlagName;input;values;constructor(t,n,a,r){let i=`Expected "${n}" to be one of (${a.join("|")})`;if(r.length>0){let o=V(r.map(d=>`"${d}"`),{kind:"conjunctive",conjunction:"or",serialComma:!0});i+=`, did you mean ${o}?`}super(i),this.externalFlagName=t,this.input=n,this.values=a}},w=class extends A{externalFlagName;nextFlagName;constructor(t,n){let a=`Expected input for flag --${t}`;n&&(a+=` but encountered --${n} instead`),super(a),this.externalFlagName=t,this.nextFlagName=n}},H=class extends A{expectedCount;input;constructor(t,n){super(`Too many arguments, expected ${t} but encountered "${n}"`),this.expectedCount=t,this.input=n}},_=class extends A{placeholder;limit;constructor(t,n){let a;n?(a=`Expected at least ${n[0]} argument(s) for ${t}`,n[1]===0?a+=" but found none":a+=` but only found ${n[1]}`):a=`Expected argument for ${t}`,super(a),this.placeholder=t,this.limit=n}};function de(e){if(e.startsWith("no")&&e.length>2){if(e[2]==="-")return e.slice(4);let t=e[2],n=t.toUpperCase();return t!==n?void 0:t.toLowerCase()+e.slice(3)}}function pe(e,t,n){let a=e,r=t[a];if(!r){let o=de(a);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}let i=I(e);if(n.caseStyle==="allow-kebab-for-camel"&&!r){if(r=t[i],r)return{namedFlag:[i,r]};let o=de(i);if(o&&(r=t[o],r&&r.kind=="boolean"))return{namedFlag:[o,r],negated:!0}}if(!r){if(i in t)throw new L(e,[i]);let o=F(e);if(o in t)throw new L(e,[o]);let d=M(a,Object.keys(t),n.distanceOptions);throw new L(e,d)}return{namedFlag:[a,r]}}function ue(e){return e.namedFlag[1].kind==="boolean"||e.namedFlag[1].kind==="counter"}var ce=/^-([a-z]+)$/i,je=/^--([a-z][a-z-.\d_]+)$/i;function Ue(e,t,n,a){let r=ce.exec(e);if(r){let o=r[1];return Array.from(o).map(d=>{let m=d,s=n[m];if(!s)throw new G(m);return{namedFlag:s}})}let i=je.exec(e);if(i){let o=i[1];return[pe(o,t,a)]}return[]}var qe=/^--([a-z][a-z-.\d_]+)=(.+)$/i,Ve=/^-([a-z])=(.+)$/i,J=class extends A{externalFlagName;valueText;constructor(t,n){super(`Cannot negate flag --${t} and pass "${n}" as value`),this.externalFlagName=t,this.valueText=n}};function We(e,t,n,a){let r=qe.exec(e);if(r){let o=r[1],{namedFlag:d,negated:m}=pe(o,t,a),s=r[2];if(m)throw new J(o,s);return[d,s]}let i=Ve.exec(e);if(i){let o=i[1],d=n[o];if(!d)throw new G(o);let m=i[2];return[d,m]}}async function He(e,t,n,a,r){if(!n){if("default"in t&&typeof t.default<"u")return t.kind==="boolean"||t.kind==="enum"?t.default:D(e,t,t.default,r);if(t.optional)return;if(t.kind==="boolean")return!1;if(t.kind==="counter")return 0;throw new w(e)}if(t.kind==="counter")return n.reduce((o,d)=>{try{return o+oe.call(r,d)}catch(m){throw new j(e,d,m)}},0);if("variadic"in t&&t.variadic){if(t.kind==="enum"){for(let o of n)if(!t.values.includes(o)){let d=M(o,t.values,a.distanceOptions);throw new W(e,o,t.values,d)}return n}return Promise.all(n.map(o=>D(e,t,o,r)))}let i=n[0];if(t.kind==="boolean")try{return re.call(r,i)}catch(o){throw new j(e,i,o)}if(t.kind==="enum"){if(!t.values.includes(i)){let o=M(i,t.values,a.distanceOptions);throw new W(e,i,t.values,o)}return i}return D(e,t,i,r)}var Y=class extends A{externalFlagName;previousInput;input;constructor(t,n,a){super(`Too many arguments for --${t}, encountered "${a}" after "${n}"`),this.externalFlagName=t,this.previousInput=n,this.input=a}};function fe(e){return e.kind==="counter"?!0:"variadic"in e?!!e.variadic:!1}function v(e,t,[n,a],r){let i=e.get(n)??[];if(i.length>0&&!fe(a)){let o=B(n,t);throw new Y(o,i[0],r)}if("variadic"in a&&typeof a.variadic=="string"){let o=r.split(a.variadic);e.set(n,[...i,...o])}else e.set(n,[...i,r])}function ie(e,t,n){if(t.get(n)){let r=e[n];return!fe(r)}return!1}function Q(e,t){let{flags:n={},aliases:a={},positional:r={kind:"tuple",parameters:[]}}=e,i=Ge(n,a,t.caseStyle),o=[],d=new Map,m=0,s,u=!1;return{next:l=>{if(!u&&t.allowArgumentEscapeSequence&&l==="--"){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)v(d,t.caseStyle,s,""),s=void 0;else{let p=B(s[0],t.caseStyle);throw new w(p)}u=!0;return}if(!u){let p=We(l,n,i,t);if(p){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)v(d,t.caseStyle,s,""),s=void 0;else{let f=B(s[0],t.caseStyle),T=B(p[0][0],t.caseStyle);throw new w(f,T)}v(d,t.caseStyle,...p);return}let c=Ue(l,n,i,t);if(c.length>0){if(s)if(s[1].kind==="parsed"&&s[1].inferEmpty)v(d,t.caseStyle,s,""),s=void 0;else{let f=B(s[0],t.caseStyle),T=B(c[0].namedFlag[0],t.caseStyle);throw new w(f,T)}if(c.every(ue))for(let f of c)f.namedFlag[1].kind==="boolean"?v(d,t.caseStyle,f.namedFlag,f.negated?"false":"true"):v(d,t.caseStyle,f.namedFlag,"1");else if(c.length>1){let f=c.find(E=>!ue(E)),T=B(f.namedFlag[0],t.caseStyle);throw new w(T)}else s=c[0].namedFlag;return}}if(s)v(d,t.caseStyle,s,l),s=void 0;else{if(r.kind==="tuple"){if(m>=r.parameters.length)throw new H(r.parameters.length,l)}else if(typeof r.maximum=="number"&&m>=r.maximum)throw new H(r.maximum,l);o[m]=l,++m}},parseArguments:async l=>{let p=[],c;r.kind==="array"?(typeof r.minimum=="number"&&m<r.minimum&&p.push(new _(ae(r.parameter),[r.minimum,m])),c=z(o.map(async(g,x)=>{let y=ae(r.parameter,x+1);return D(y,r.parameter,g,l)}))):c=z(r.parameters.map(async(g,x)=>{let y=ae(g,x+1),h=o[x];if(typeof h!="string"){if(typeof g.default=="string")return D(y,g,g.default,l);if(g.optional)return;throw new _(y)}return D(y,g,h,l)})),s&&s[1].kind==="parsed"&&s[1].inferEmpty&&(v(d,t.caseStyle,s,""),s=void 0);let f=z(Object.entries(n).map(async g=>{let[x,y]=g,h=B(x,t.caseStyle);if(s&&s[0]===x)throw new w(h);let b=d.get(x),X=await He(h,y,b,t,l);return[x,X]})),[T,E]=await Promise.all([c,f]);if(T.status==="rejected")for(let g of T.reasons)p.push(g);if(E.status==="rejected")for(let g of E.reasons)p.push(g);if(p.length>0)return{success:!1,errors:p};if(T.status==="rejected")throw new C("Unknown failure while scanning positional arguments");if(E.status==="rejected")throw new C("Unknown failure while scanning flag arguments");return{success:!0,arguments:[Object.fromEntries(E.value),...T.value]}},proposeCompletions:async({partial:l,completionConfig:p,text:c,context:f,includeVersionFlag:T})=>{if(s)return ge(s[1],f,l);let E=[];if(!u){let S=ce.exec(l);if(p.includeAliases){if(l===""||l==="-"){let g=Object.entries(a).filter(x=>!ie(n,d,x[1]));for(let[x]of g){let y=i[x];y&&E.push({kind:"argument:flag",completion:`-${x}`,brief:y[1].brief})}}else if(S){let g=Array.from(S[1]);if(g.includes("h"))return[];if(T&&g.includes("v"))return[];let x=new Map(d);for(let b of g){let X=i[b];if(!X)throw new G(b);v(x,t.caseStyle,X,X[1].kind==="boolean"?"true":"1")}let y=g[g.length-1];if(y){let b=i[y];b&&E.push({kind:"argument:flag",completion:l,brief:b[1].brief})}let h=Object.entries(a).filter(b=>!ie(n,x,b[1]));for(let[b]of h){let X=i[b];X&&E.push({kind:"argument:flag",completion:`${l}${b}`,brief:X[1].brief})}}}if(l===""||l==="-"||l.startsWith("--")){t.allowArgumentEscapeSequence&&E.push({kind:"argument:flag",completion:"--",brief:c.briefs.argumentEscapeSequence});let g=Object.entries(n).filter(([y])=>!ie(n,d,y));t.caseStyle==="allow-kebab-for-camel"&&(g=g.map(([y,h])=>[F(y),h]));let x=g.map(([y,h])=>[`--${y}`,h]).filter(([y])=>y.startsWith(l));E.push(...x.map(([y,h])=>({kind:"argument:flag",completion:y,brief:h.brief})))}}if(r.kind==="array"){if(r.parameter.proposeCompletions&&(typeof r.maximum!="number"||m<r.maximum)){let S=await r.parameter.proposeCompletions.call(f,l);E.push(...S.map(g=>({kind:"argument:value",completion:g,brief:r.parameter.brief})))}}else{let S=r.parameters[m];if(S?.proposeCompletions){let g=await S.proposeCompletions.call(f,l);E.push(...g.map(x=>({kind:"argument:value",completion:x,brief:S.brief})))}}return E.filter(({completion:S})=>S.startsWith(l))}}}async function ge(e,t,n){if(typeof e.variadic=="string"&&n.endsWith(e.variadic))return ge(e,t,"");let a;return e.kind==="enum"?a=e.values:e.proposeCompletions?a=await e.proposeCompletions.call(t,n):a=[],a.map(r=>({kind:"argument:value",completion:r,brief:e.brief})).filter(({completion:r})=>r.startsWith(n))}function Ce(e,t,n){let a=t==="allow-kebab-for-camel"?"convert-camel-to-kebab":t,r=e.getAllEntries();return n.includeHiddenRoutes||(r=r.filter(i=>!i.hidden)),r.flatMap(i=>{let o=i.name[a];return n.includeAliases?[o,...i.aliases]:[o]})}var ye={headers:{usage:"USAGE",aliases:"ALIASES",commands:"COMMANDS",flags:"FLAGS",arguments:"ARGUMENTS"},keywords:{default:"default =",separator:"separator ="},briefs:{help:"Print help information and exit",helpAll:"Print help information (including hidden commands/flags) and exit",version:"Print version information and exit",argumentEscapeSequence:"All subsequent inputs should be interpreted as arguments"},noCommandRegisteredForInput:({input:e,corrections:t})=>{let n=`No command registered for \`${e}\``;if(t.length>0){let a=V(t,{kind:"conjunctive",conjunction:"or",serialComma:!0});return`${n}, did you mean ${a}?`}else return n},noTextAvailableForLocale:({requestedLocale:e,defaultLocale:t})=>`Application does not support "${e}" locale, defaulting to "${t}"`,exceptionWhileParsingArguments:e=>e instanceof A?se(e,{}):`Unable to parse arguments, ${q(e)}`,exceptionWhileLoadingCommandFunction:e=>`Unable to load command function, ${q(e)}`,exceptionWhileLoadingCommandContext:e=>`Unable to load command context, ${q(e)}`,exceptionWhileRunningCommand:e=>`Command failed, ${q(e)}`,commandErrorResult:e=>e.message,currentVersionIsNotLatest:({currentVersion:e,latestVersion:t,upgradeCommand:n})=>n?`Latest available version is ${t} (currently running ${e}), upgrade with "${n}"`:`Latest available version is ${t} (currently running ${e})`};function xe(e){if(e.startsWith("en"))return ye}function P(e,t,n){return!n.disableAnsiColor&&!K(e,"STRICLI_NO_COLOR")&&(t.getColorDepth?.(e.env)??1)>=4}async function Te({loader:e,parameters:t},{context:n,inputs:a,scannerConfig:r,errorFormatting:i,documentationConfig:o,determineExitCode:d}){let m=e(),s;try{let l=Q(t,r);for(let c of a)l.next(c);let p=await l.parseArguments(n);if(p.success)s=p.arguments;else{let c=P(n.process,n.process.stderr,o);for(let f of p.errors){let T=i.exceptionWhileParsingArguments(f,c);n.process.stderr.write(c?`\x1B[1m\x1B[31m${T}\x1B[39m\x1B[22m
|
|
2
2
|
`:`${T}
|
|
3
|
-
`)}return
|
|
3
|
+
`)}return N.InvalidArgument}}catch(l){let p=P(n.process,n.process.stderr,o),c=i.exceptionWhileParsingArguments(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
4
4
|
`:`${c}
|
|
5
|
-
`),
|
|
5
|
+
`),N.InvalidArgument}let u;try{let l=await m;typeof l=="function"?u=l:u=l.default}catch(l){let p=P(n.process,n.process.stderr,o),c=i.exceptionWhileLoadingCommandFunction(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
6
6
|
`:`${c}
|
|
7
|
-
`),
|
|
7
|
+
`),N.CommandLoadError}try{let l=await u.call(n,...s);if(l instanceof Error){let p=P(n.process,n.process.stderr,o),c=i.commandErrorResult(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
8
8
|
`:`${c}
|
|
9
|
-
`),d?d(l):
|
|
9
|
+
`),d?d(l):N.CommandRunError}}catch(l){let p=P(n.process,n.process.stderr,o),c=i.exceptionWhileRunningCommand(l,p);return n.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m
|
|
10
10
|
`:`${c}
|
|
11
|
-
`),d?d(l):
|
|
11
|
+
`),d?d(l):N.CommandRunError}return N.Success}var R=Symbol("RouteMap");var O=Symbol("Command");function Z(e,t,n){let a=[...n],r=[],i,o=e,d,m=!0,s=!1;return{next:u=>{if(u==="--help"||u==="-h"){s=!0,d||(d=o);return}else if(u==="--helpAll"||u==="--help-all"||u==="-H"){s="all",d||(d=o);return}if(d){r.push(u);return}if(o.kind===O){d=o,r.push(u);return}let l=I(u),p=u,c=o.getRoutingTargetForInput(p);if(t.caseStyle==="allow-kebab-for-camel"&&!c&&(c=o.getRoutingTargetForInput(l),c&&(p=l)),!c){let f=o.getDefaultCommand();if(f){m=!1,i=[o,""],r.push(u),o=f;return}return{input:u,routeMap:o}}m=!1,i=[o,u],o=c,a.push(u)},finish:()=>{if(d=d??o,d.kind===R&&!s){let l=d.getDefaultCommand();l&&(i=[d,""],d=l,m=!1)}let u=i?i[0].getOtherAliasesForInput(i[1],t.caseStyle):{original:[],"convert-camel-to-kebab":[]};return{target:d,unprocessedInputs:r,helpRequested:s,prefix:a,rootLevel:m,aliases:u}}}}async function Fe({root:e,defaultText:t,config:n},a,r){let i=t;if(r.locale){let l=n.localization.loadText(r.locale);if(l)i=l;else{let p=P(r.process,r.process.stderr,n.documentation),c=i.noTextAvailableForLocale({requestedLocale:r.locale,defaultLocale:n.localization.defaultLocale,ansiColor:p});r.process.stderr.write(p?`\x1B[1m\x1B[33m${c}\x1B[39m\x1B[22m
|
|
12
12
|
`:`${c}
|
|
13
|
-
`)}}if(n.versionInfo?.getLatestVersion&&!K(r.process,"STRICLI_SKIP_VERSION_CHECK")){let l;"currentVersion"in n.versionInfo?l=n.versionInfo.currentVersion:l=await n.versionInfo.getCurrentVersion.call(r);let p=await n.versionInfo.getLatestVersion.call(r,l);if(p&&l!==p){let c=
|
|
13
|
+
`)}}if(n.versionInfo?.getLatestVersion&&!K(r.process,"STRICLI_SKIP_VERSION_CHECK")){let l;"currentVersion"in n.versionInfo?l=n.versionInfo.currentVersion:l=await n.versionInfo.getCurrentVersion.call(r);let p=await n.versionInfo.getLatestVersion.call(r,l);if(p&&l!==p){let c=P(r.process,r.process.stderr,n.documentation),f=i.currentVersionIsNotLatest({currentVersion:l,latestVersion:p,upgradeCommand:n.versionInfo.upgradeCommand,ansiColor:c});r.process.stderr.write(c?`\x1B[1m\x1B[33m${f}\x1B[39m\x1B[22m
|
|
14
14
|
`:`${f}
|
|
15
15
|
`)}}let o=a.slice();if(n.versionInfo&&(o[0]==="--version"||o[0]==="-v")){let l;return"currentVersion"in n.versionInfo?l=n.versionInfo.currentVersion:l=await n.versionInfo.getCurrentVersion.call(r),r.process.stdout.write(l+`
|
|
16
|
-
`),
|
|
16
|
+
`),N.Success}let d=Z(e,n.scanner,[n.name]),m;for(;o.length>0&&!m;){let l=o.shift();m=d.next(l)}if(m){let l=Ce(m.routeMap,n.scanner.caseStyle,n.completion),p=M(m.input,l,n.scanner.distanceOptions).map(T=>`\`${T}\``),c=P(r.process,r.process.stderr,n.documentation),f=i.noCommandRegisteredForInput({input:m.input,corrections:p,ansiColor:c});return r.process.stderr.write(c?`\x1B[1m\x1B[31m${f}\x1B[39m\x1B[22m
|
|
17
17
|
`:`${f}
|
|
18
|
-
`),
|
|
19
|
-
${u}`}else yield` ${ee(e,n)}`;for(let s of te(n))yield` ${d} ${s}`;if(yield"",yield r??a,n.aliases&&n.aliases.length>0){let s=n.prefix.slice(0,-1).join(" ");yield"",yield n.ansiColor?`\x1B[1m${o.aliases}\x1B[22m`:o.aliases;for(let u of n.aliases)yield` ${s} ${u}`}yield"",yield n.ansiColor?`\x1B[1m${o.flags}\x1B[22m`:o.flags;for(let s of ne(e.flags??{},e.aliases??{},n))yield` ${s}`;let m=e.positional??{kind:"tuple",parameters:[]};if(m.kind==="array"||m.parameters.length>0){yield"",yield n.ansiColor?`\x1B[1m${o.arguments}\x1B[22m`:o.arguments;for(let s of
|
|
18
|
+
`),N.UnknownCommand}let s=d.finish();if(s.helpRequested||s.target.kind===R){let l=P(r.process,r.process.stdout,n.documentation);return r.process.stdout.write(s.target.formatHelp({prefix:s.prefix,includeVersionFlag:!!n.versionInfo&&s.rootLevel,includeArgumentEscapeSequenceFlag:n.scanner.allowArgumentEscapeSequence,includeHelpAllFlag:s.helpRequested==="all"||n.documentation.alwaysShowHelpAllFlag,includeHidden:s.helpRequested==="all",config:n.documentation,aliases:s.aliases[n.documentation.caseStyle],text:i,ansiColor:l})),N.Success}let u;if("forCommand"in r)try{u=await r.forCommand({prefix:s.prefix})}catch(l){let p=P(r.process,r.process.stderr,n.documentation),c=i.exceptionWhileLoadingCommandContext(l,p);return r.process.stderr.write(p?`\x1B[1m\x1B[31m${c}\x1B[39m\x1B[22m`:c),N.ContextLoadError}else u=r;return Te(s.target,{context:u,inputs:s.unprocessedInputs,scannerConfig:n.scanner,documentationConfig:n.documentation,errorFormatting:i,determineExitCode:n.determineExitCode})}function U(e,t){return t==="convert-camel-to-kebab"?F(e):e}function Ee(e,t){return t==="convert-camel-to-kebab"?`no-${F(e)}`:`no${e[0].toUpperCase()}${e.slice(1)}`}function Ae(e){let t=e.scanner?.caseStyle??"original",n;if(e.documentation?.caseStyle){if(t==="original"&&e.documentation.caseStyle==="convert-camel-to-kebab")throw new C("Cannot convert route and flag names on display but scan as original");n=e.documentation.caseStyle}else t==="allow-kebab-for-camel"?n="convert-camel-to-kebab":n=t;let a={caseStyle:t,allowArgumentEscapeSequence:e.scanner?.allowArgumentEscapeSequence??!1,distanceOptions:e.scanner?.distanceOptions??{threshold:7,weights:{insertion:1,deletion:3,substitution:2,transposition:0}}},r={alwaysShowHelpAllFlag:e.documentation?.alwaysShowHelpAllFlag??!1,useAliasInUsageLine:e.documentation?.useAliasInUsageLine??!1,onlyRequiredInUsageLine:e.documentation?.onlyRequiredInUsageLine??!1,caseStyle:n,disableAnsiColor:e.documentation?.disableAnsiColor??!1},i={includeAliases:e.completion?.includeAliases??r.useAliasInUsageLine,includeHiddenRoutes:e.completion?.includeHiddenRoutes??!1,...e.completion};return{...e,scanner:a,completion:i,documentation:r,localization:{defaultLocale:"en",loadText:xe,...e.localization}}}function _e(e,t){let n=Ae(t);if(e.kind===O&&n.versionInfo){if(e.usesFlag("version"))throw new C("Unable to use command with flag --version as root when version info is supplied");if(e.usesFlag("v"))throw new C("Unable to use command with alias -v as root when version info is supplied")}let a=n.localization.loadText(n.localization.defaultLocale);if(!a)throw new C(`No text available for the default locale "${n.localization.defaultLocale}"`);return{root:e,config:n,defaultText:a}}function*he(e,t,n){for(let a of e.getAllEntries()){if(a.hidden)continue;let r=a.name[n],i=[...t,r];a.target.kind===R?yield*he(a.target,i,n):yield[i,a.target,a.aliases]}}function Ke({root:e,defaultText:t,config:n},a){let r=t;if(a){let o=n.localization.loadText(a);if(o)r=o;else throw new C(`Application does not support "${a}" locale`)}let i=[];return e.kind===O?i.push([[n.name],e,[]]):i.push(...he(e,[n.name],n.documentation.caseStyle)),i.map(([o,d,m])=>[o.join(" "),d.formatHelp({prefix:o,config:n.documentation,includeVersionFlag:!!n.versionInfo&&o.length===1,includeArgumentEscapeSequenceFlag:n.scanner.allowArgumentEscapeSequence,includeHelpAllFlag:n.documentation.alwaysShowHelpAllFlag,includeHidden:!1,aliases:m,text:r,ansiColor:!1})])}async function Ne({parameters:e},t){try{let n=Q(e,t.scannerConfig);for(let a of t.inputs)n.next(a);return await n.proposeCompletions(t)}catch{return[]}}async function be(e,{partial:t,scannerConfig:n,completionConfig:a}){let r=e.getAllEntries();a.includeHiddenRoutes||(r=r.filter(o=>!o.hidden));let i=n.caseStyle==="allow-kebab-for-camel"?"convert-camel-to-kebab":n.caseStyle;return r.flatMap(o=>{let d=o.target.kind===O?"routing-target:command":"routing-target:route-map",m=o.target.brief,s={kind:d,completion:o.name[i],brief:m};return a.includeAliases?[s,...o.aliases.map(u=>({kind:d,completion:u,brief:m}))]:[s]}).filter(({completion:o})=>o.startsWith(t))}async function ze({root:e,config:t,defaultText:n},a,r){if(a.length===0)return[];let i=Z(e,t.scanner,[]),o=a.slice(0,-1),d;for(;o.length>0&&!d;){let l=o.shift();d=i.next(l)}if(d)return[];let m=i.finish();if(m.helpRequested)return[];let s;if("forCommand"in r)try{s=await r.forCommand({prefix:m.prefix})}catch{return[]}else s=r;let u=a[a.length-1];return m.target.kind===R?be(m.target,{context:s,partial:u,scannerConfig:t.scanner,completionConfig:t.completion}):Ne(m.target,{context:s,inputs:m.unprocessedInputs,partial:u,scannerConfig:t.scanner,completionConfig:t.completion,text:n,includeVersionFlag:!!t.versionInfo&&m.rootLevel})}function Je(e,t){return e.includes(t)}function Ye(e){return t=>{if(!Je(e,t))throw new SyntaxError(`${t} is not one of (${e.join("|")})`);return t}}function le(e){return"default"in e&&typeof e.default<"u"}function k(e){return e.optional??le(e)}function Pe(e){return`(${e})`}function Se(e){return`[${e}]`}function Re(e){return`${e}...`}function Qe(e){return`<${e}>`}function Ze(e){return`[<${e}>]`}function en(e){return`<${e}>...`}function ee(e,t){let n=Object.entries(e.flags??{}).filter(([,i])=>!(i.hidden||t.config.onlyRequiredInUsageLine&&k(i))).map(([i,o])=>{let d=t.config.caseStyle==="convert-camel-to-kebab"?`--${F(i)}`:`--${i}`;if(e.aliases&&t.config.useAliasInUsageLine){let s=Object.entries(e.aliases).filter(u=>u[1]===i);s.length===1&&s[0]&&(d=`-${s[0][0]}`)}if(o.kind==="boolean")return[o,d];if(o.kind==="enum"&&typeof o.placeholder!="string")return[o,`${d} ${o.values.join("|")}`];let m=o.placeholder??"value";return[o,`${d} ${m}`]}).map(([i,o])=>i.kind==="parsed"&&i.variadic?k(i)?Re(Se(o)):Re(Pe(o)):k(i)?Se(o):Pe(o)),a=[],r=e.positional;if(r)if(r.kind==="array")a=[en(r.parameter.placeholder??"args")];else{let i=r.parameters;t.config.onlyRequiredInUsageLine&&(i=i.filter(o=>!o.optional&&typeof o.default>"u")),a=i.map((o,d)=>{let m=o.placeholder??`arg${d+1}`;return o.optional||typeof o.default<"u"?Ze(m):Qe(m)})}return[...t.prefix,...n,...a].join(" ")}function ne(e,t,n){let{keywords:a,briefs:r}=n.text,i=Object.entries(e).filter(([,m])=>!(m.hidden&&!n.includeHidden)),o=i.some(([,m])=>k(m)),d=i.map(([m,s])=>{let u=Object.entries(t).filter(f=>f[1]===m).map(([f])=>`-${f}`),l="--"+U(m,n.config.caseStyle);if(s.kind==="boolean"&&s.default!==!1){let f=Ee(m,n.config.caseStyle);l=`${l}/--${f}`}k(s)?l=`[${l}]`:o&&(l=` ${l}`),s.kind==="parsed"&&s.variadic&&(l=`${l}...`);let p=[];if(s.kind==="enum"){let f=s.values.join("|");p.push(f)}if(le(s)){let f=n.ansiColor?`\x1B[90m${a.default}\x1B[39m`:a.default;p.push(`${f} ${s.default===""?'""':String(s.default)}`)}if("variadic"in s&&typeof s.variadic=="string"){let f=n.ansiColor?`\x1B[90m${a.separator}\x1B[39m`:a.separator;p.push(`${f} ${s.variadic}`)}let c=p.length>0?`[${p.join(", ")}]`:void 0;return{aliases:u.join(" "),flagName:l,brief:s.brief,suffix:c,hidden:s.hidden}});if(d.push({aliases:"-h",flagName:o?" --help":"--help",brief:r.help}),n.includeHelpAllFlag){let m=U("helpAll",n.config.caseStyle);d.push({aliases:"-H",flagName:o?` --${m}`:`--${m}`,brief:r.helpAll,hidden:!n.config.alwaysShowHelpAllFlag})}return n.includeVersionFlag&&d.push({aliases:"-v",flagName:o?" --version":"--version",brief:r.version}),n.includeArgumentEscapeSequenceFlag&&d.push({aliases:"",flagName:o?" --":"--",brief:r.argumentEscapeSequence}),$(d.map(m=>n.ansiColor?[m.hidden?`\x1B[90m${m.aliases}\x1B[39m`:`\x1B[97m${m.aliases}\x1B[39m`,m.hidden?`\x1B[90m${m.flagName}\x1B[39m`:`\x1B[97m${m.flagName}\x1B[39m`,m.hidden?`\x1B[90m${m.brief}\x1B[39m`:`\x1B[03m${m.brief}\x1B[23m`,m.suffix??""]:[m.aliases,m.flagName,m.brief,m.suffix??""]),[" "," "," "])}function*te(e){if(yield e.config.useAliasInUsageLine?"-h":"--help",e.includeHelpAllFlag){let t=U("helpAll",e.config.caseStyle);yield e.config.useAliasInUsageLine?"-H":`--${t}`}e.includeVersionFlag&&(yield e.config.useAliasInUsageLine?"-v":"--version")}function Oe(e,t){if(e.kind==="array"){let r=e.parameter.placeholder??"args",i=t.ansiColor?`\x1B[97m${r}...\x1B[39m`:`${r}...`,o=t.ansiColor?`\x1B[3m${e.parameter.brief}\x1B[23m`:e.parameter.brief;return $([[i,o]],[" "])}let{keywords:n}=t.text,a=e.parameters.some(r=>r.optional);return $(e.parameters.map((r,i)=>{let o=r.placeholder??`arg${i+1}`,d;return r.optional?o=`[${o}]`:a&&(o=` ${o}`),r.default&&(d=`[${t.ansiColor?`\x1B[90m${n.default}\x1B[39m`:n.default} ${r.default}]`),[t.ansiColor?`\x1B[97m${o}\x1B[39m`:o,t.ansiColor?`\x1B[3m${r.brief}\x1B[23m`:r.brief,d??""]}),[" "," "])}function*ve(e,t,n){let{brief:a,fullDescription:r,customUsage:i}=t,{headers:o}=n.text,d=n.prefix.join(" ");if(yield n.ansiColor?`\x1B[1m${o.usage}\x1B[22m`:o.usage,i)for(let s of i)if(typeof s=="string")yield` ${d} ${s}`;else{let u=n.ansiColor?`\x1B[3m${s.brief}\x1B[23m`:s.brief;yield` ${d} ${s.input}
|
|
19
|
+
${u}`}else yield` ${ee(e,n)}`;for(let s of te(n))yield` ${d} ${s}`;if(yield"",yield r??a,n.aliases&&n.aliases.length>0){let s=n.prefix.slice(0,-1).join(" ");yield"",yield n.ansiColor?`\x1B[1m${o.aliases}\x1B[22m`:o.aliases;for(let u of n.aliases)yield` ${s} ${u}`}yield"",yield n.ansiColor?`\x1B[1m${o.flags}\x1B[22m`:o.flags;for(let s of ne(e.flags??{},e.aliases??{},n))yield` ${s}`;let m=e.positional??{kind:"tuple",parameters:[]};if(m.kind==="array"||m.parameters.length>0){yield"",yield n.ansiColor?`\x1B[1m${o.arguments}\x1B[22m`:o.arguments;for(let s of Oe(m,n))yield` ${s}`}}function nn(e,t){for(let n of t)if(n in e)throw new C(`Unable to use reserved flag --${n}`)}function tn(e,t){for(let n of t)if(n in e)throw new C(`Unable to use reserved alias -${n}`)}function*rn(e){yield`no-${F(e)}`,yield`no${e[0].toUpperCase()}${e.slice(1)}`}function on(e){let t=Object.entries(e).filter(([,n])=>n.kind==="boolean"&&!n.optional);for(let[n]of t)for(let a of rn(n))if(a in e)throw new C(`Unable to allow negation for --${n} as it conflicts with --${a}`)}function an(e){for(let[t,n]of Object.entries(e))if("variadic"in n&&typeof n.variadic=="string"){if(n.variadic.length<1)throw new C(`Unable to use "" as variadic separator for --${t} as it is empty`);if(/\s/.test(n.variadic))throw new C(`Unable to use "${n.variadic}" as variadic separator for --${t} as it contains whitespace`)}}function sn(e){let{flags:t={},aliases:n={}}=e.parameters;nn(t,["help","helpAll","help-all"]),tn(n,["h","H"]),on(t),an(t);let a;return"func"in e?a=async()=>e.func:a=e.loader,{kind:O,loader:a,parameters:e.parameters,get brief(){return e.docs.brief},formatUsageLine:r=>ee(e.parameters,r),formatHelp:r=>[...ve(e.parameters,e.docs,r)].join(`
|
|
20
20
|
`)+`
|
|
21
|
-
`,usesFlag:r=>r in t||r in n}}function*Be(e,t,n){let{brief:a,fullDescription:r,hideRoute:i}=t,{headers:o}=n.text;yield n.ansiColor?`\x1B[1m${o.usage}\x1B[22m`:o.usage;for(let[l,p]of Object.entries(e))if(!i||!i[l]||n.includeHidden){let c=n.config.caseStyle==="convert-camel-to-kebab"?
|
|
21
|
+
`,usesFlag:r=>r in t||r in n}}function*Be(e,t,n){let{brief:a,fullDescription:r,hideRoute:i}=t,{headers:o}=n.text;yield n.ansiColor?`\x1B[1m${o.usage}\x1B[22m`:o.usage;for(let[l,p]of Object.entries(e))if(!i||!i[l]||n.includeHidden){let c=n.config.caseStyle==="convert-camel-to-kebab"?F(l):l;yield` ${p.formatUsageLine({...n,prefix:[...n.prefix,c]})}`}let d=n.prefix.join(" ");for(let l of te(n))yield` ${d} ${l}`;if(yield"",yield r??a,n.aliases&&n.aliases.length>0){let l=n.prefix.slice(0,-1).join(" ");yield"",yield n.ansiColor?`\x1B[1m${o.aliases}\x1B[22m`:o.aliases;for(let p of n.aliases)yield` ${l} ${p}`}yield"",yield n.ansiColor?`\x1B[1m${o.flags}\x1B[22m`:o.flags;for(let l of ne({},{},n))yield` ${l}`;yield"",yield n.ansiColor?`\x1B[1m${o.commands}\x1B[22m`:o.commands;let s=Object.entries(e).filter(([l])=>!i||!i[l]||n.includeHidden).map(([l,p])=>({routeName:U(l,n.config.caseStyle),brief:p.brief,hidden:i&&i[l]})),u=$(s.map(l=>n.ansiColor?[l.hidden?`\x1B[90m${l.routeName}\x1B[39m`:`\x1B[97m${l.routeName}\x1B[39m`,l.hidden?`\x1B[90m${l.brief}\x1B[39m`:`\x1B[03m${l.brief}\x1B[23m`]:[l.routeName,l.brief]),[" "]);for(let l of u)yield` ${l}`}function ln({routes:e,defaultCommand:t,docs:n,aliases:a}){if(Object.entries(e).length===0)throw new C("Route map must contain at least one route");let r=a??{},i=new Map;for(let[m,s]of Object.entries(r)){if(m in e)throw new C(`Cannot use "${m}" as an alias when a route with that name already exists`);let u=i.get(s)??[];i.set(s,[...u,m])}let o=t?e[t]:void 0;if(o&&o.kind===R)throw new C(`Cannot use "${t}" as the default command because it is not a Command`);let d=m=>{if(m in r)return r[m];if(m in e)return m};return{kind:R,get brief(){return n.brief},formatUsageLine(m){let s=this.getAllEntries().filter(u=>!u.hidden).map(u=>u.name[m.config.caseStyle]);return`${m.prefix.join(" ")} ${s.join("|")} ...`},formatHelp:m=>[...Be(e,n,m)].join(`
|
|
22
22
|
`)+`
|
|
23
|
-
`,getDefaultCommand:()=>o,getOtherAliasesForInput:(m,s)=>{if(t){if(m===t)return{original:[""],"convert-camel-to-kebab":[""]};if(m==="")return{original:[t],"convert-camel-to-kebab":[t]}}let u=I(m),l=d(m);if(!l&&s==="allow-kebab-for-camel"&&(l=d(u)),!l)return{original:[],"convert-camel-to-kebab":[]};let p=[l,...i.get(l)??[]].filter(c=>c!==m&&c!==u);return{original:p,"convert-camel-to-kebab":p.map(
|
|
23
|
+
`,getDefaultCommand:()=>o,getOtherAliasesForInput:(m,s)=>{if(t){if(m===t)return{original:[""],"convert-camel-to-kebab":[""]};if(m==="")return{original:[t],"convert-camel-to-kebab":[t]}}let u=I(m),l=d(m);if(!l&&s==="allow-kebab-for-camel"&&(l=d(u)),!l)return{original:[],"convert-camel-to-kebab":[]};let p=[l,...i.get(l)??[]].filter(c=>c!==m&&c!==u);return{original:p,"convert-camel-to-kebab":p.map(F)}},getRoutingTargetForInput:m=>{let s=m in r?r[m]:m;return e[s]},getAllEntries(){let m=n.hideRoute;return Object.entries(e).map(([s,u])=>({name:{original:s,"convert-camel-to-kebab":F(s)},target:u,aliases:i.get(s)??[],hidden:m?.[s]??!1}))}}}async function Yt(e,t,n){let a=await Fe(e,t,n);n.process.exitCode=a}export{G as AliasNotFoundError,j as ArgumentParseError,A as ArgumentScannerError,W as EnumValidationError,N as ExitCode,L as FlagNotFoundError,J as InvalidNegatedFlagSyntaxError,Y as UnexpectedFlagError,H as UnexpectedPositionalError,w as UnsatisfiedFlagError,_ as UnsatisfiedPositionalError,Ie as booleanParser,_e as buildApplication,Ye as buildChoiceParser,sn as buildCommand,ln as buildRouteMap,se as formatMessageForArgumentScannerError,Ke as generateHelpTextForAllCommands,re as looseBooleanParser,oe as numberParser,ze as proposeCompletions,Yt as run,ye as text_en};
|