@master4n/master-cli 3.0.0 → 3.0.1
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/bin/index.js +1 -1
- package/bin/index.js.map +1 -1
- package/package.json +1 -1
package/bin/index.js
CHANGED
|
@@ -32,5 +32,5 @@ var D,M,U;const R=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Numbe
|
|
|
32
32
|
* Copyright (c) 2016, Contributors
|
|
33
33
|
* SPDX-License-Identifier: ISC
|
|
34
34
|
*/
|
|
35
|
-
function(e){if(Array.isArray(e))return e.map(e=>"string"!=typeof e?e+"":e);e=e.trim();let t=0,n=null,o=null,r=null;const s=[];for(let a=0;a<e.length;a++)n=o,o=e.charAt(a)," "!==o||r?(o===r?r=null:"'"!==o&&'"'!==o||r||(r=o),s[t]||(s[t]=""),s[t]+=o):" "!==n&&t++;return s}(e),r="string"==typeof e,s=function(e){const t=[],n=Object.create(null);let o=!0;Object.keys(e).forEach(function(n){t.push([].concat(e[n],n))});for(;o;){o=!1;for(let e=0;e<t.length;e++)for(let n=e+1;n<t.length;n++){if(t[e].filter(function(e){return-1!==t[n].indexOf(e)}).length){t[e]=t[e].concat(t[n]),t.splice(n,1),o=!0;break}}}return t.forEach(function(e){const t=(e=e.filter(function(e,t,n){return n.indexOf(e)===t})).pop();void 0!==t&&"string"==typeof t&&(n[t]=e)}),n}(Object.assign(Object.create(null),n.alias)),a=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),i=Object.assign(Object.create(null),n.default),c=n.configObjects||[],l=n.envPrefix,u=a["populate--"],f=u?"--":"_",d=Object.create(null),p=Object.create(null),m=n.__||L.format,h={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},g=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,y=new RegExp("^--"+a["negation-prefix"]+"(.+)");[].concat(n.array||[]).filter(Boolean).forEach(function(e){const t="object"==typeof e?e.key:e,n=Object.keys(e).map(function(e){return{boolean:"bools",string:"strings",number:"numbers"}[e]}).filter(Boolean).pop();n&&(h[n][t]=!0),h.arrays[t]=!0,h.keys.push(t)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(e){h.bools[e]=!0,h.keys.push(e)}),[].concat(n.string||[]).filter(Boolean).forEach(function(e){h.strings[e]=!0,h.keys.push(e)}),[].concat(n.number||[]).filter(Boolean).forEach(function(e){h.numbers[e]=!0,h.keys.push(e)}),[].concat(n.count||[]).filter(Boolean).forEach(function(e){h.counts[e]=!0,h.keys.push(e)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(e){h.normalize[e]=!0,h.keys.push(e)}),"object"==typeof n.narg&&Object.entries(n.narg).forEach(([e,t])=>{"number"==typeof t&&(h.nargs[e]=t,h.keys.push(e))}),"object"==typeof n.coerce&&Object.entries(n.coerce).forEach(([e,t])=>{"function"==typeof t&&(h.coercions[e]=t,h.keys.push(e))}),void 0!==n.config&&(Array.isArray(n.config)||"string"==typeof n.config?[].concat(n.config).filter(Boolean).forEach(function(e){h.configs[e]=!0}):"object"==typeof n.config&&Object.entries(n.config).forEach(([e,t])=>{"boolean"!=typeof t&&"function"!=typeof t||(h.configs[e]=t)})),function(...e){e.forEach(function(e){Object.keys(e||{}).forEach(function(e){h.aliases[e]||(h.aliases[e]=[].concat(s[e]||[]),h.aliases[e].concat(e).forEach(function(t){if(/-/.test(t)&&a["camel-case-expansion"]){const n=z(t);n!==e&&-1===h.aliases[e].indexOf(n)&&(h.aliases[e].push(n),d[n]=!0)}}),h.aliases[e].concat(e).forEach(function(t){if(t.length>1&&/[A-Z]/.test(t)&&a["camel-case-expansion"]){const n=function(e,t){const n=e.toLowerCase();t=t||"-";let o="";for(let r=0;r<e.length;r++){const s=n.charAt(r),a=e.charAt(r);o+=s!==a&&r>0?`${t}${n.charAt(r)}`:a}return o}(t,"-");n!==e&&-1===h.aliases[e].indexOf(n)&&(h.aliases[e].push(n),d[n]=!0)}}),h.aliases[e].forEach(function(t){h.aliases[t]=[e].concat(h.aliases[e].filter(function(e){return t!==e}))}))})})}(n.key,s,n.default,h.arrays),Object.keys(i).forEach(function(e){(h.aliases[e]||[]).forEach(function(t){i[t]=i[e]})});let b=null;Object.keys(h.counts).find(e=>M(e,h.arrays)?(b=Error(m("Invalid configuration: %s, opts.count excludes opts.array.",e)),!0):!!M(e,h.nargs)&&(b=Error(m("Invalid configuration: %s, opts.count excludes opts.narg.",e)),!0));let v=[];const x=Object.assign(Object.create(null),{_:[]}),j={};for(let e=0;e<o.length;e++){const t=o[e],n=t.replace(/^-{3,}/,"---");let r,s,i,c,l,u;if("--"!==t&&/^-/.test(t)&&R(t))w(t);else{if(n.match(/^---+(=|$)/)){w(t);continue}if(t.match(/^--.+=/)||!a["short-option-groups"]&&t.match(/^-.+=/))c=t.match(/^--?([^=]+)=([\s\S]*)$/),null!==c&&Array.isArray(c)&&c.length>=3&&(M(c[1],h.arrays)?e=$(e,c[1],o,c[2]):!1!==M(c[1],h.nargs)?e=E(e,c[1],o,c[2]):S(c[1],c[2],!0));else if(t.match(y)&&a["boolean-negation"])c=t.match(y),null!==c&&Array.isArray(c)&&c.length>=2&&(s=c[1],S(s,!!M(s,h.arrays)&&[!1]));else if(t.match(/^--.+/)||!a["short-option-groups"]&&t.match(/^-[^-]+/))c=t.match(/^--?(.+)/),null!==c&&Array.isArray(c)&&c.length>=2&&(s=c[1],M(s,h.arrays)?e=$(e,s,o):!1!==M(s,h.nargs)?e=E(e,s,o):(l=o[e+1],void 0===l||l.match(/^-/)&&!l.match(g)||M(s,h.bools)||M(s,h.counts)?/^(true|false)$/.test(l)?(S(s,l),e++):S(s,P(s)):(S(s,l),e++)));else if(t.match(/^-.\..+=/))c=t.match(/^-([^=]+)=([\s\S]*)$/),null!==c&&Array.isArray(c)&&c.length>=3&&S(c[1],c[2]);else if(t.match(/^-.\..+/)&&!t.match(g))l=o[e+1],c=t.match(/^-(.\..+)/),null!==c&&Array.isArray(c)&&c.length>=2&&(s=c[1],void 0===l||l.match(/^-/)||M(s,h.bools)||M(s,h.counts)?S(s,P(s)):(S(s,l),e++));else if(t.match(/^-[^-]+/)&&!t.match(g)){i=t.slice(1,-1).split(""),r=!1;for(let n=0;n<i.length;n++){if(l=t.slice(n+2),i[n+1]&&"="===i[n+1]){u=t.slice(n+3),s=i[n],M(s,h.arrays)?e=$(e,s,o,u):!1!==M(s,h.nargs)?e=E(e,s,o,u):S(s,u),r=!0;break}if("-"!==l){if(/[A-Za-z]/.test(i[n])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(l)&&!1===M(l,h.bools)){S(i[n],l),r=!0;break}if(i[n+1]&&i[n+1].match(/\W/)){S(i[n],l),r=!0;break}S(i[n],P(i[n]))}else S(i[n],l)}s=t.slice(-1)[0],r||"-"===s||(M(s,h.arrays)?e=$(e,s,o):!1!==M(s,h.nargs)?e=E(e,s,o):(l=o[e+1],void 0===l||/^(-|--)[^-]/.test(l)&&!l.match(g)||M(s,h.bools)||M(s,h.counts)?/^(true|false)$/.test(l)?(S(s,l),e++):S(s,P(s)):(S(s,l),e++)))}else if(t.match(/^-[0-9]$/)&&t.match(g)&&M(t.slice(1),h.bools))s=t.slice(1),S(s,P(s));else{if("--"===t){v=o.slice(e+1);break}if(a["halt-at-non-option"]){v=o.slice(e);break}w(t)}}}function w(e){const t=N("_",e);"string"!=typeof t&&"number"!=typeof t||x._.push(t)}function E(e,t,n,o){let r,s=M(t,h.nargs);if(s="number"!=typeof s||isNaN(s)?1:s,0===s)return J(o)||(b=Error(m("Argument unexpected for: %s",t))),S(t,P(t)),e;let i=J(o)?0:1;if(a["nargs-eats-options"])n.length-(e+1)+i<s&&(b=Error(m("Not enough arguments following: %s",t))),i=s;else{for(r=e+1;r<n.length&&(!n[r].match(/^-[^0-9]/)||n[r].match(g)||R(n[r]));r++)i++;i<s&&(b=Error(m("Not enough arguments following: %s",t)))}let c=Math.min(i,s);for(!J(o)&&c>0&&(S(t,o),c--),r=e+1;r<c+e+1;r++)S(t,n[r]);return e+c}function $(e,t,n,o){let s=[],c=o||n[e+1];const l=M(t,h.nargs);if(M(t,h.bools)&&!/^(true|false)$/.test(c))s.push(!0);else if(J(c)||J(o)&&/^-/.test(c)&&!g.test(c)&&!R(c)){if(void 0!==i[t]){const e=i[t];s=Array.isArray(e)?e:[e]}}else{J(o)||s.push(k(t,o,!0));for(let o=e+1;o<n.length&&!(!a["greedy-arrays"]&&s.length>0||l&&"number"==typeof l&&s.length>=l)&&(c=n[o],!/^-/.test(c)||g.test(c)||R(c));o++)e=o,s.push(k(t,c,r))}return"number"==typeof l&&(l&&s.length<l||isNaN(l)&&0===s.length)&&(b=Error(m("Not enough arguments following: %s",t))),S(t,s),e}function S(e,t,n=r){if(/-/.test(e)&&a["camel-case-expansion"]){const t=e.split(".").map(function(e){return z(e)}).join(".");O(e,t)}const o=k(e,t,n),s=e.split(".");if(D(x,s,o),h.aliases[e]&&h.aliases[e].forEach(function(e){const t=e.split(".");D(x,t,o)}),s.length>1&&a["dot-notation"]&&(h.aliases[s[0]]||[]).forEach(function(t){let n=t.split(".");const r=[].concat(s);r.shift(),n=n.concat(r),(h.aliases[e]||[]).includes(n.join("."))||D(x,n,o)}),M(e,h.normalize)&&!M(e,h.arrays)){[e].concat(h.aliases[e]||[]).forEach(function(e){Object.defineProperty(j,e,{enumerable:!0,get:()=>t,set(e){t="string"==typeof e?L.normalize(e):e}})})}}function O(e,t){h.aliases[e]&&h.aliases[e].length||(h.aliases[e]=[t],d[t]=!0),h.aliases[t]&&h.aliases[t].length||O(t,e)}function k(e,t,n){n&&(t=function(e){return"string"!=typeof e||"'"!==e[0]&&'"'!==e[0]||e[e.length-1]!==e[0]?e:e.substring(1,e.length-1)}(t)),(M(e,h.bools)||M(e,h.counts))&&"string"==typeof t&&(t="true"===t);let o=Array.isArray(t)?t.map(function(t){return N(e,t)}):N(e,t);return M(e,h.counts)&&(J(o)||"boolean"==typeof o)&&(o=B()),M(e,h.normalize)&&M(e,h.arrays)&&(o=Array.isArray(t)?t.map(e=>L.normalize(e)):L.normalize(t)),o}function N(e,t){if(!a["parse-positional-numbers"]&&"_"===e)return t;if(!M(e,h.strings)&&!M(e,h.bools)&&!Array.isArray(t)){(null!=(n=t)&&("number"==typeof n||!!/^0x[0-9a-f]+$/i.test(n)||!/^0[^.]/.test(n)&&/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(n))&&a["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${t}`)))||!J(t)&&M(e,h.numbers))&&(t=Number(t))}var n;return t}function I(e,t){Object.keys(e).forEach(function(n){const o=e[n],r=t?t+"."+n:n;"object"==typeof o&&null!==o&&!Array.isArray(o)&&a["dot-notation"]?I(o,r):(!_(x,r.split("."))||M(r,h.arrays)&&a["combine-arrays"])&&S(r,o)})}function A(e,t){if(void 0===l)return;const n="string"==typeof l?l:"",o=L.env();Object.keys(o).forEach(function(r){if(""===n||0===r.lastIndexOf(n,0)){const s=r.split("__").map(function(e,t){return 0===t&&(e=e.substring(n.length)),z(e)});(t&&h.configs[s.join(".")]||!t)&&!_(e,s)&&S(s.join("."),o[r])}})}function T(e,t,n,o=!1){Object.keys(n).forEach(function(r){_(e,r.split("."))||(D(e,r.split("."),n[r]),o&&(p[r]=!0),(t[r]||[]).forEach(function(t){_(e,t.split("."))||D(e,t.split("."),n[r])}))})}function _(e,t){let n=e;a["dot-notation"]||(t=[t.join(".")]),t.slice(0,-1).forEach(function(e){n=n[e]||{}});const o=t[t.length-1];return"object"==typeof n&&o in n}function D(e,t,n){let o=e;a["dot-notation"]||(t=[t.join(".")]),t.slice(0,-1).forEach(function(e){e=C(e),"object"==typeof o&&void 0===o[e]&&(o[e]={}),"object"!=typeof o[e]||Array.isArray(o[e])?(Array.isArray(o[e])?o[e].push({}):o[e]=[o[e],{}],o=o[e][o[e].length-1]):o=o[e]});const r=C(t[t.length-1]),s=M(t.join("."),h.arrays),i=Array.isArray(n);let c=a["duplicate-arguments-array"];!c&&M(r,h.nargs)&&(c=!0,(!J(o[r])&&1===h.nargs[r]||Array.isArray(o[r])&&o[r].length===h.nargs[r])&&(o[r]=void 0)),n===B()?o[r]=B(o[r]):Array.isArray(o[r])?c&&s&&i?o[r]=a["flatten-duplicate-arrays"]?o[r].concat(n):(Array.isArray(o[r][0])?o[r]:[o[r]]).concat([n]):c||Boolean(s)!==Boolean(i)?o[r]=o[r].concat([n]):o[r]=n:void 0===o[r]&&s?o[r]=i?n:[n]:!c||void 0===o[r]||M(r,h.counts)||M(r,h.bools)?o[r]=n:o[r]=[o[r],n]}function M(e,t){const n=[].concat(h.aliases[e]||[],e),o=Object.keys(t),r=n.find(e=>o.includes(e));return!!r&&t[r]}function U(e){const t=Object.keys(h);return[].concat(t.map(e=>h[e])).some(function(t){return Array.isArray(t)?t.includes(e):t[e]})}function R(e){return a["unknown-options-as-args"]&&function(e){if(e=e.replace(/^-{3,}/,"--"),e.match(g))return!1;if(function(e){if(e.match(g)||!e.match(/^-[^-]+/))return!1;let t,n=!0;const o=e.slice(1).split("");for(let r=0;r<o.length;r++){if(t=e.slice(r+2),!U(o[r])){n=!1;break}if(o[r+1]&&"="===o[r+1]||"-"===t||/[A-Za-z]/.test(o[r])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(t)||o[r+1]&&o[r+1].match(/\W/))break}return n}(e))return!1;return!function(e,...t){return[].concat(...t).some(function(t){const n=e.match(t);return n&&U(n[1])})}(e,/^-+([^=]+?)=[\s\S]*$/,y,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}(e)}function P(e){return M(e,h.bools)||M(e,h.counts)||!(`${e}`in i)?(t=function(e){let t=F.BOOLEAN;return M(e,h.strings)?t=F.STRING:M(e,h.numbers)?t=F.NUMBER:M(e,h.bools)?t=F.BOOLEAN:M(e,h.arrays)&&(t=F.ARRAY),t}(e),{[F.BOOLEAN]:!0,[F.STRING]:"",[F.NUMBER]:void 0,[F.ARRAY]:[]}[t]):i[e];var t}function J(e){return void 0===e}return A(x,!0),A(x,!1),function(e){const t=Object.create(null);T(t,h.aliases,i),Object.keys(h.configs).forEach(function(n){const o=e[n]||t[n];if(o)try{let e=null;const t=L.resolve(L.cwd(),o),r=h.configs[n];if("function"==typeof r){try{e=r(t)}catch(t){e=t}if(e instanceof Error)return void(b=e)}else e=L.require(t);I(e)}catch(t){"PermissionDenied"===t.name?b=t:e[n]&&(b=Error(m("Invalid JSON config file: %s",o)))}})}(x),void 0!==c&&c.forEach(function(e){I(e)}),T(x,h.aliases,i,!0),function(e){let t;const n=new Set;Object.keys(e).forEach(function(o){if(!n.has(o)&&(t=M(o,h.coercions),"function"==typeof t))try{const r=N(o,t(e[o]));[].concat(h.aliases[o]||[],o).forEach(t=>{n.add(t),e[t]=r})}catch(e){b=e}})}(x),a["set-placeholder-key"]&&function(e){h.keys.forEach(t=>{~t.indexOf(".")||void 0===e[t]&&(e[t]=void 0)})}(x),Object.keys(h.counts).forEach(function(e){_(x,e.split("."))||S(e,0)}),u&&v.length&&(x[f]=[]),v.forEach(function(e){x[f].push(e)}),a["camel-case-expansion"]&&a["strip-dashed"]&&Object.keys(x).filter(e=>"--"!==e&&e.includes("-")).forEach(e=>{delete x[e]}),a["strip-aliased"]&&[].concat(...Object.keys(s).map(e=>s[e])).forEach(e=>{a["camel-case-expansion"]&&e.includes("-")&&delete x[e.split(".").map(e=>z(e)).join(".")],delete x[e]}),{aliases:Object.assign({},h.aliases),argv:Object.assign(j,x),configuration:a,defaulted:Object.assign({},p),error:b,newAliases:Object.assign({},d)}}}({cwd:process.cwd,env:()=>J,format:t,normalize:r,resolve:o,require:e=>{if("undefined"!=typeof require)return require(e);if(e.match(/\.json$/))return JSON.parse(a(e,"utf8"));throw Error("only .json config files are supported in ESM")}});var G={fs:{readFileSync:a,writeFile:i},format:t,resolve:o,exists:e=>{try{return c(e).isFile()}catch(e){return!1}}};let W;class Y{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles="boolean"!=typeof e.updateFiles||e.updateFiles,this.locale=e.locale||"en",this.fallbackToLanguage="boolean"!=typeof e.fallbackToLanguage||e.fallbackToLanguage,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if("string"!=typeof arguments[0])return this._taggedLiteral(arguments[0],...arguments);const t=e.shift();let n=function(){};return"function"==typeof e[e.length-1]&&(n=e.pop()),n=n||function(){},this.cache[this.locale]||this._readLocaleFile(),!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n})):n(),W.format.apply(W.format,[this.cache[this.locale][t]||t].concat(e))}__n(){const e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),o=e.shift();let r=function(){};"function"==typeof e[e.length-1]&&(r=e.pop()),this.cache[this.locale]||this._readLocaleFile();let s=1===o?t:n;if(this.cache[this.locale][t]){s=this.cache[this.locale][t][1===o?"one":"other"]}!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:r})):r();const a=[s];return~s.indexOf("%d")&&a.push(o),W.format.apply(W.format,a.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){this.cache[this.locale]||this._readLocaleFile();for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.cache[this.locale][t]=e[t])}_taggedLiteral(e,...t){let n="";return e.forEach(function(e,o){const r=t[o+1];n+=e,void 0!==r&&(n+="%s")}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){this.writeQueue.push(e),1===this.writeQueue.length&&this._processWriteQueue()}_processWriteQueue(){const e=this,t=this.writeQueue[0],n=t.directory,o=t.locale,r=t.cb,s=this._resolveLocaleFile(n,o),a=JSON.stringify(this.cache[o],null,2);W.fs.writeFile(s,a,"utf-8",function(t){e.writeQueue.shift(),e.writeQueue.length>0&&e._processWriteQueue(),r(t)})}_readLocaleFile(){let e={};const t=this._resolveLocaleFile(this.directory,this.locale);try{W.fs.readFileSync&&(e=JSON.parse(W.fs.readFileSync(t,"utf-8")))}catch(n){if(n instanceof SyntaxError&&(n.message="syntax error in "+t),"ENOENT"!==n.code)throw n;e={}}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=W.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){const o=W.resolve(e,"./",t.split("_")[0]+".json");this._fileExistsSync(o)&&(n=o)}return n}_fileExistsSync(e){return W.exists(e)}}let Q;try{Q=l(import.meta.url)}catch(e){Q=process.cwd()}Q.substring(0,Q.lastIndexOf("node_modules"))||process.cwd(),process.cwd,process.exit,process.nextTick,void 0!==process.stdout.columns&&process.stdout.columns,function(e,t){W=t;const n=new Y(e);n.__.bind(n),n.__n.bind(n),n.setLocale.bind(n),n.getLocale.bind(n),n.updateLocale.bind(n),n.locale}({directory:o(Q,"../../../locales"),updateFiles:!1},G);const q=()=>(new Date).toISOString();function Z(){return{info:e=>console.error(`${u.blue("INFO")} [${u.magenta(q())}] ${u.white(e)}`),warn:e=>console.error(`${u.yellow("WARN")} [${u.magenta(q())}] ${u.white(e)}`),error:e=>console.error(`${u.red("ERROR")} [${u.magenta(q())}] ${u.white(e)}`),debug:e=>console.error(`${u.cyan("DEBUG")} [${u.magenta(q())}] ${u.white(e)}`)}}function H(){const e=p.homedir();return n.join(e,".mfn","cache")}const K=e=>u.green(e);async function V(e,t){await m.writeJson(t,e,{spaces:2})}const X=[{name:"capabilities",summary:"Self-describing manifest of every command an agent can call",examples:["mfn capabilities --json"]},{name:"epoch",summary:"Convert between epoch timestamps and dates (auto-detects unit)",examples:["mfn epoch 1622547800 --json","mfn epoch --from 2021-06-01T11:43:20Z --json"]},{name:"date",summary:"Convert/format a date across timezones (defaults to now)",examples:["mfn date --json","mfn date 2024-07-04T15:30:30Z --tz America/New_York --json"]},{name:"decode",summary:"Decode a JWT token (header + payload; signature not verified)",examples:["mfn decode -t <jwt> --json"]},{name:"kill",summary:"Kill the process(es) listening on specific ports",examples:["mfn kill -p 3000 8080 -y --json"]},{name:"sc",summary:"Find files/folders under the current directory (fuzzy match)",examples:["mfn sc service --json"]},{name:"cts",summary:"Print (or export) a tree of the current working directory",examples:["mfn cts --json","mfn cts -t png"]},{name:"update",summary:"Update the CLI or a specified package to the latest version",examples:["mfn update --json","mfn update <package> --json"]},{name:"id",summary:"Generate identifiers (UUID v4/v7 or URL-safe nano id)",examples:["mfn id --json","mfn id -t uuid7 -n 3 --json"]},{name:"hash",summary:"Hash a string, file, or stdin (md5/sha1/sha256/sha512)",examples:["mfn hash hello --json","mfn hash -a md5 -f ./file.txt --json"]},{name:"encode",summary:"Encode/decode text (base64, base64url, hex, url)",examples:["mfn encode hello --json","mfn encode aGVsbG8= -d --json"]},{name:"random",summary:"Generate secure random bytes or a password",examples:["mfn random --json","mfn random -p -l 32 --json"]},{name:"port",summary:"Find a free port, or check whether a specific port is available",examples:["mfn port --json","mfn port -c 3000 --json"]}];var ee="@master4n/master-cli",te="3.0.0";const ne=["add --json to any command for clean, machine-readable output","piping a command (no TTY) auto-emits JSON — great for agents & scripts","every command returns a stable exit code: 0 = ok, non-zero = failure","mfn <command> --help shows its flags and copy-paste examples","mfn capabilities --json lists every command an agent can call","mfn kill -p 3000 8080 -y frees stuck ports in one shot"],oe=e=>u.hex(e)("─".repeat(62));!function(){const e=p.homedir(),t=n.join(e,".mfn","cache");if(!s.existsSync(t))try{s.existsSync(n.join(e,".mfn"))||s.mkdirSync(n.join(e,".mfn")),s.mkdirSync(t,{recursive:!0})}catch{}}(),await(async()=>{if(!(Boolean(process.stdout.isTTY)&&!process.argv.includes("--json")))return;const e=await(t="M4N-CLI",new Promise((e,n)=>{f(t,(t,o)=>t?n(t):e(o??""))}));var t;const n=d(u.hex("#27A244").bold(e),{padding:1,margin:{top:1,bottom:0,left:1,right:1},borderStyle:"round",borderColor:"#C1C110",dimBorder:!0}),o=function(){const e=p.platform();return"win32"===e?process.env.USERNAME||"User":"darwin"===e||"linux"===e?process.env.USER||"User":""}(),r=u.dim(" • "),s=[u.hex("#44bcd8").bold(`mfn v${te}`),u.gray(`node ${process.version}`),u.gray(`${process.platform}/${process.arch}`),u.green.bold("AI-friendly")].join(r);let a="";try{const e=g();a=`${e.iso.replace("T"," ").slice(0,19)} ${u.dim(`(${e.timezone})`)}`}catch{}const i=X.map(e=>u.cyan(e.name)).join(u.dim(" · ")),c=ne[Math.floor(Math.random()*ne.length)],l=(e="")=>console.error(e);l(oe("#C1C110")),l(n),l(" "+(o?u.magenta(`👋 Welcome, ${u.bold(o)}`):u.magenta("👋 Welcome"))+r+s),a&&l(" "+u.gray("🕒 ")+u.white(a)),l(""),l(" "+u.yellow.bold("🧰 tools ")+i),l(" "+u.yellow.bold("💡 tip ")+u.white(c)),l(" "+u.yellow.bold("🤖 help ")+u.white("mfn <command> --help")),l(oe("#C1C110"))})();const re=e(process.argv.slice(_()+1));const se=u.hex("#44bcd8").bold("mfn");var ae=re.scriptName(se);const ie=()=>Boolean(process.stdout.isTTY),ce=e=>e.option("json",{type:"boolean",default:!1,describe:"Emit a single machine-readable JSON object on stdout"}),le=e=>Boolean(e?.json)||!ie(),ue=e=>{process.stdout.write(JSON.stringify(e)+"\n")};function fe(e,t,n){le(e)?ue({ok:!0,...t}):n()}function de(e,t,n,o=1){le(e)?ue({ok:!1,error:t,message:n}):console.error(n),process.exit(o)}const pe=e=>ie()&&!e?.json;async function me(){if(process.stdin.isTTY)return"";const e=[];for await(const t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf8")}function he(e,t,n=2){process.argv.includes("--json")||!ie()?process.stdout.write(JSON.stringify({ok:!1,error:e,message:t})+"\n"):console.error(t),process.exit(n)}const ge=Z(),ye=n.join(H(),"cts_ignore.json"),be=["node_modules",".git",".nx"];function ve(e,t,o=""){let r,s="";try{r=m.readdirSync(e).filter(e=>!t.has(e)).sort()}catch{return`${o}└── [unreadable]\n`}return r.forEach((a,i)=>{const c=n.join(e,a),l=i===r.length-1;let u=!1;try{u=m.statSync(c).isDirectory()}catch{u=!1}s+=`${o}${l?"└── ":"├── "}${a}\n`,u&&(s+=ve(c,t,`${o}${l?" ":"│ "}`))}),s}const xe={command:"cts",describe:"Print (or export) a tree of the current working directory",builder:e=>ce(e).option("type",{alias:"t",describe:"Output format: text (stdout, default) or an image file",type:"string",choices:["text","svg","png","jpeg"],default:"text"}).option("ignore",{alias:"i",describe:"Folder names to ignore",type:"array"}).option("length",{alias:"l",describe:"Image height",type:"number",default:250}).option("breadth",{alias:"b",describe:"Image width",type:"number",default:200}).example("mfn cts","print the tree as text").example("mfn cts --json","tree as JSON").example("mfn cts -t png","export the tree to <dir>.png"),handler:async e=>{let t=e.ignore??[];t.length>0?await V({ignores:t},ye).catch(()=>{}):t=(await async function(){try{return await m.readJson(ye)}catch(e){if("ENOENT"===e.code)return{ignores:[]};throw e}}()).ignores??[];const o=new Set([...be,...t]),r=process.cwd(),s=n.basename(r);let a;try{a=s+"\n"+ve(r,o)}catch(t){return de(e,"TreeError",`Failed to build tree for ${r}: ${t instanceof Error?t.message:String(t)}`)}const i=String(e.type);if("text"===i)return fe(e,{root:s,path:r,format:"text",tree:a},()=>{process.stdout.write(a.endsWith("\n")?a:a+"\n")});if(!function(...e){for(const t of e)if(isNaN(t)||t<1||t>1e3)return!1;return!0}(e.length,e.breadth))return de(e,"InvalidDimensions","Length & breadth must be numbers in 1..1000.",2);const c=`${s}.${i}`;try{const t=function(e,t,n){return`<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${t}"><rect width="100%" height="100%" fill="white"/><g fill="black" font-family="monospace" font-size="12">${e.split("\n").map((e,t)=>`<text style="white-space: pre;" x="0" y="${20+20*t}">${e.replace(/&/g,"&").replace(/</g,"<")}</text>`).join("")}</g></svg>`}(a,e.length,e.breadth);"svg"===i?m.outputFileSync(c,t):await x(Buffer.from(t))["png"===i?"png":"jpeg"]().toFile(c)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,"ExportFailed",`Failed to write ${c}: ${n}`)}fe(e,{root:s,path:r,format:i,file:c},()=>ge.info(`Tree for ${s} written to ${c}`))}},je=Z(),we=n.join(H(),"sc_ignore.json"),Ee=["node_modules",".git","dist","build",".nx","coverage"];function $e(e,t,o){const r=[],s=new Set([...Ee,...t]),a=(t,i)=>{if(i>o)return;let c;try{c=m.readdirSync(t,{withFileTypes:!0})}catch{return}for(const o of c){if(s.has(o.name))continue;const c=n.join(t,o.name),l=n.relative(e,c);r.push(o.isDirectory()?l+n.sep:l),o.isDirectory()&&a(c,i+1)}};return a(e,0),r}const Se={command:"sc [pattern]",describe:"Find files/folders under the current directory (fuzzy match)",builder:e=>ce(e).positional("pattern",{describe:"Fuzzy pattern to match against paths (omit to list all)",type:"string"}).option("ignore",{alias:"i",describe:"Additional directory names to ignore",type:"array"}).option("depth",{type:"number",default:6,describe:"Max recursion depth"}).option("limit",{type:"number",default:500,describe:"Max results returned"}).example("mfn sc service --json",'find paths matching "service"'),handler:async e=>{const t=process.cwd(),o=Number(e.depth),r=Number(e.limit);if(!Number.isInteger(o)||o<0)return de(e,"InvalidDepth","--depth must be a non-negative integer.",2);if(!Number.isInteger(r)||r<1)return de(e,"InvalidLimit","--limit must be a positive integer.",2);let s=e.ignore??[];if(s.length>0?await V({ignores:s},we).catch(()=>{}):s=(await async function(){try{return await m.readJson(we)}catch(e){if("ENOENT"===e.code)return{ignores:[]};throw e}}()).ignores??[],void 0===e.pattern&&pe(e))return async function(e,t,o,r,s){const a=$e(t,o,r),{pattern:i}=await j.prompt([{type:"input",name:"pattern",message:K("Filter (fuzzy, blank = all):")}]),c=String(i??"").trim(),l=(c?w.filter(c,a).map(e=>e.original):a).slice(0,s);if(0===l.length)return fe(e,{pattern:c||null,root:t,count:0,matches:[]},()=>je.warn("No matches."));const{selected:u}=await j.prompt([{type:"list",name:"selected",message:K("Select a path:"),choices:l,pageSize:15,loop:!1}]),f=m.statSync(n.join(t,u));fe(e,{path:u,type:f.isDirectory()?"directory":"file"},()=>{je.info(`${f.isDirectory()?"Directory":"File"}: ${u}`),f.isDirectory()&&je.info(`cd ${u}`)})}(e,t,s,o,r);const a=$e(t,s,o),i=e.pattern?w.filter(String(e.pattern),a).map(e=>e.original):a,c=i.slice(0,r);fe(e,{pattern:e.pattern??null,root:t,count:c.length,truncated:i.length>c.length,matches:c},()=>{je.info(`${c.length} match(es) under ${t}`);for(const e of c)console.log(e)})}},Oe=Z();function ke(e){const t=Buffer.from(e,"base64url").toString("utf-8");return JSON.parse(t)}const Ne={command:"decode",describe:"Decode a JWT token (header + payload; signature not verified)",builder:e=>ce(e).option("token",{alias:"t",describe:'JWT token to decode (a leading "Bearer " is stripped)',type:"string",demandOption:!0}).example("mfn decode -t <jwt> --json","decode a JWT"),handler:e=>{const t=String(e.token).replace(/^Bearer\s+/i,"").trim().split(".");if(3!==t.length)return de(e,"InvalidJWT","Invalid JWT structure: expected three dot-separated segments.");let n,o;try{n=ke(t[0]),o=ke(t[1])}catch(t){return de(e,"DecodeError",`Could not decode JWT: ${t instanceof Error?t.message:String(t)}`)}const r=o?.exp;let s;if("number"==typeof r&&Number.isFinite(r)){const e=Math.round(r-Date.now()/1e3);s={exp:r,expired:e<=0,expiresInSeconds:e}}fe(e,{header:n,payload:o,...s?{expiry:s}:{}},()=>{Oe.info("Decoded JWT (signature NOT verified)"),console.log(u.cyanBright.bold("header:")),console.log(u.greenBright(JSON.stringify(n,null,2))),console.log(u.cyanBright.bold("payload:")),console.log(u.greenBright(JSON.stringify(o,null,2))),s&&console.log(u.cyanBright.bold("expiry: ")+(s.expired?u.red(`expired ${-s.expiresInSeconds}s ago`):u.green(`valid for ${s.expiresInSeconds}s`)))})}},Ie=Z(),Ae="yyyy-MM-dd HH:mm:ss",Te=()=>Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC";function _e(e){const t=e.format||Ae,n=e.tz||Te();let o,r,s;try{o=void 0!==e.from?y(String(e.from),e.inFormat,e.inTz).epochInMilliseconds:g().milliseconds}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"ParseError",n)}try{r=b(o,"UTC",t),s=b(o,n,t)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"TimezoneError",n)}fe(e,{epochInSeconds:Math.floor(o/1e3),epochInMilliseconds:o,utc:r,zoned:s,timezone:n,format:t},()=>{Ie.info("Date conversion"),console.table([{UTC:r,[n]:s,Epoch_ms:o}])})}const ze={command:"date [from]",describe:"Convert/format a date across timezones (defaults to now)",builder:e=>ce(e).positional("from",{describe:"Date string to convert (ISO 8601 unless --in-format given). Omit for now.",type:"string"}).option("tz",{type:"string",describe:"Target output timezone (IANA; default: local)"}).option("format",{type:"string",describe:`Output format (default: ${Ae})`}).option("in-format",{type:"string",describe:"Luxon parse format for the input"}).option("in-tz",{type:"string",describe:"Timezone used to interpret the input"}).example("mfn date --json","now, in UTC + local").example("mfn date 2024-07-04T15:30:30Z --tz America/New_York --json","convert to a timezone"),handler:async e=>{const t={from:e.from,inFormat:e["in-format"],inTz:e["in-tz"],tz:e.tz,format:e.format,json:e.json};if(void 0===e.from&&void 0===e.tz&&void 0===e.format&&pe(e))return async function(e){const t=await j.prompt([{type:"input",name:"from",message:K("Date string (blank = now, ISO 8601):")},{type:"input",name:"tz",message:K(`Target timezone (blank = ${Te()}):`)},{type:"input",name:"format",message:K(`Output format (blank = ${Ae}):`)}]);_e({...e,from:t.from?.trim()||void 0,tz:t.tz?.trim()||void 0,format:t.format?.trim()||void 0})}(t);_e(t)}},Fe=Z();function Le(e,t){let n;try{n=v(t)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"InvalidEpoch",n)}fe(e,{epoch:n.epoch,unit:n.epochUnit,utc:n.dateTimeInGMT,local:n.dateTime,timezone:n.timezone,relative:n.relative},()=>{Fe.info("Epoch → date"),console.table([{Epoch:`${n.epoch} (${n.epochUnit})`,Local:n.dateTime,GMT:n.dateTimeInGMT,Relative:n.relative}])})}function Be(e,t,n,o){let r,s;try{r=y(t,n,o)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"ParseError",n)}try{s=v(r.epochInSeconds).relative}catch{s=void 0}fe(e,{epochInSeconds:r.epochInSeconds,epochInMilliseconds:r.epochInMilliseconds,utc:r.dateTimeInGMT,local:r.dateTime,timezone:r.timezone,relative:s},()=>{Fe.info("Date → epoch"),console.table([{Seconds:r.epochInSeconds,Milliseconds:r.epochInMilliseconds,Local:r.dateTime,GMT:r.dateTimeInGMT,Timezone:r.timezone}])})}const Ce={command:"epoch [value]",describe:"Convert between epoch timestamps and dates (auto-detects unit)",builder:e=>ce(e).positional("value",{describe:"Epoch value to convert to a date (s / ms / µs / ns auto-detected)",type:"number"}).option("from",{type:"string",describe:"A date string to convert TO epoch (ISO 8601 unless --format given)"}).option("format",{type:"string",describe:'Luxon parse format for --from (e.g. "dd/MM/yyyy")'}).option("tz",{type:"string",describe:"IANA timezone used to interpret --from (default: local)"}).example("mfn epoch 1622547800 --json","epoch → date").example("mfn epoch --from 2021-06-01T11:43:20Z --json","date → epoch"),handler:async e=>void 0!==e.from?Be(e,String(e.from),e.format,e.tz):void 0!==e.value&&null!==e.value?Le(e,Number(e.value)):pe(e)?async function(e){const{operation:t}=await j.prompt([{type:"rawlist",name:"operation",message:K("What do you want to do?"),choices:[{name:"Convert epoch → human-readable date",value:"epochToDate"},{name:"Convert date string → epoch",value:"dateToEpoch"}]}]);if("epochToDate"===t){const{value:t}=await j.prompt([{type:"input",name:"value",message:K("Enter epoch value:"),validate:e=>e.trim()&&!isNaN(Number(e))||"Enter a number"}]);Le(e,Number(t))}else{const{input:t}=await j.prompt([{type:"input",name:"input",message:K("Enter a date string (ISO 8601):"),validate:e=>Boolean(e.trim())||"Enter a date string"}]);Be(e,t,void 0,e.tz)}}(e):void de(e,"MissingInput","Provide an epoch <value>, or --from <dateString>. See `mfn epoch --help`.",2)},De=Z(),Me=E(h),Ue=n.join(H(),"ports.json"),Re="win32"===$();async function Pe(e){try{if(Re){const{stdout:t}=await Me("netstat",["-ano"]),n=t.split("\n").find(t=>t.includes(`:${e}`)&&/LISTENING/i.test(t)),o=n?n.trim().split(/\s+/).pop():null;return o?{port:e,pid:o}:null}const{stdout:t}=await Me("lsof",["-i",`:${e}`]),n=t.split("\n").find(e=>/LISTEN/.test(e)),o=n?n.trim().split(/\s+/)[1]:null;return o?{port:e,pid:o}:null}catch{return null}}async function Je(e){Re?await Me("taskkill",["/PID",e,"/F"]):await Me("kill",["-9",e])}const Ge={command:"kill",describe:"Kill the process(es) listening on specific ports",builder:e=>ce(e).option("ports",{alias:"p",describe:"Port number(s) to free",type:"array",coerce:e=>(Array.isArray(e)?e:[e]).map(e=>{const t=Number(e);if(isNaN(t))throw new Error(`Invalid port number: ${e}`);return t})}).option("yes",{alias:"y",type:"boolean",default:!1,describe:"Kill all matching processes without the interactive prompt"}).example("mfn kill -p 3000 8080 -y --json","free ports 3000 and 8080"),handler:async e=>{let t=e.ports??[];if(0===t.length){const n=pe(e)?await async function(){try{return await m.readJson(Ue)}catch(e){if("ENOENT"===e.code)return{ports:[]};throw e}}():{ports:[]};if(!n.ports?.length)return de(e,"NoPorts","No ports provided. Use -p <port...>. See `mfn kill --help`.",2);t=n.ports,De.info(`Using cached ports [${t.join(", ")}]`)}await V({ports:t},Ue).catch(()=>{});const n=(await Promise.all(t.map(Pe))).filter(e=>null!==e),o=t.filter(e=>!n.some(t=>t.port===e));if(0===n.length)return fe(e,{killed:[],failed:[],notFound:o},()=>De.info(`No processes listening on [${t.join(", ")}]`));let r=n;if(pe(e)&&!e.yes){const{pids:e}=await j.prompt([{type:"checkbox",name:"pids",message:K("Select the processes to kill:"),choices:n.map(e=>({name:`Port ${e.port} → PID ${e.pid}`,value:e.pid}))}]);r=n.filter(t=>e.includes(t.pid))}const s=[],a=[];for(const e of r)try{await Je(e.pid),s.push(e)}catch(t){a.push({...e,error:t instanceof Error?t.message:String(t)})}fe(e,{killed:s,failed:a,notFound:o},()=>{for(const e of s)De.info(`Killed PID ${e.pid} on port ${e.port}`);for(const e of a)De.error(`Failed to kill PID ${e.pid} (port ${e.port}): ${e.error}`);o.length&&De.warn(`No process on [${o.join(", ")}]`)}),a.length>0&&process.exit(1)}},We=Z(),Ye=E(h);const Qe={command:"update [package]",describe:"Update the CLI or a specified package to the latest version",builder:e=>ce(e).positional("package",{describe:"npm package to update globally (default: this CLI)",type:"string",default:"@master4n/master-cli"}).example("mfn update","update master-cli itself to the latest version").example("mfn update typescript --json","update a specific global package"),handler:async e=>{const t=String(e.package??"@master4n/master-cli"),n=pe(e)?S():null,o=Date.now();n?.start(u.green(`updating/installing ${t}`));try{await async function(e){await Ye("npm",["install","-g",e])}(t);const r=await async function(e){try{const{stdout:t}=await Ye("npm",["view",e,"version"]);return t.trim()||null}catch{return null}}(t),s=Date.now()-o;n?.succeed(`${u.green(`updated ${t}`)} ${u.dim(`(${(s/1e3).toFixed(3)}s)`)}`),fe(e,{package:t,version:r,durationMs:s},()=>{We.info(`${t} updated/installed${r?` -> ${u.green(r)}`:""}`)})}catch(o){n?.fail(u.red(`failed updating ${t}`));const r=o instanceof Error?o.message:String(o);de(e,"UpdateFailed",`Failed to update "${t}": ${r}`)}}},qe={command:"capabilities",describe:"List every command an agent can call (self-describing manifest)",builder:e=>ce(e).example("mfn capabilities --json","machine-readable manifest"),handler:e=>{fe(e,{name:ee,version:te,bin:"mfn",conventions:{json:"pass --json, or pipe (non-TTY auto-emits) — one {ok,...} object on stdout",exitCodes:{ok:0,error:1,usage:2},logs:"banners and logs go to stderr; stdout carries data only"},commands:X.map(e=>({name:e.name,summary:e.summary,examples:e.examples}))},()=>{console.log(`${ee} v${te} (bin: mfn)`),console.log("Commands an agent can call headlessly:");for(const e of X)console.log(` ${e.name.padEnd(10)} ${e.summary}`);console.log("\nConventions: --json for machine output · exit 0/1/2 · logs on stderr")})}};function Ze(e){switch(e){case"uuid":case"uuid4":return k();case"uuid7":return function(){const e=O(16);e.writeUIntBE(Date.now(),0,6),e[6]=15&e[6]|112,e[8]=63&e[8]|128;const t=e.toString("hex");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}();default:return""}}const He={command:"id",describe:"Generate identifiers (UUID v4/v7 or URL-safe nano id)",builder:e=>ce(e).option("type",{alias:"t",describe:"Identifier type",type:"string",choices:["uuid","uuid4","uuid7","nano"],default:"uuid"}).option("count",{alias:"n",describe:"How many to generate",type:"number",default:1}).option("size",{describe:"Length for --type nano",type:"number",default:21}).example("mfn id --json","one UUID v4").example("mfn id -t uuid7 -n 3 --json","three time-ordered UUID v7").example("mfn id -t nano --size 12 --json","a 12-char URL-safe id"),handler:e=>{const t=String(e.type),n=Number(e.count),o=Number(e.size);if(!Number.isInteger(n)||n<1)return de(e,"InvalidCount","--count must be a positive integer.",2);if("nano"===t&&(!Number.isInteger(o)||o<1))return de(e,"InvalidSize","--size must be a positive integer.",2);const r=Array.from({length:n},()=>"nano"===t?function(e){let t="";for(;t.length<e;){const n=O(e);for(let o=0;o<n.length&&t.length<e;o++)t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-"[63&n[o]]}return t}(o):Ze(t));fe(e,{type:t,count:n,ids:r},()=>r.forEach(e=>console.log(e)))}},Ke=["md5","sha1","sha256","sha512"],Ve={command:"hash [text]",describe:"Hash a string, file, or stdin (md5/sha1/sha256/sha512)",builder:e=>ce(e).positional("text",{describe:"String to hash (or pipe via stdin, or use --file)",type:"string"}).option("algo",{alias:"a",describe:"Hash algorithm",type:"string",choices:Ke,default:"sha256"}).option("file",{alias:"f",describe:"Hash the contents of this file instead",type:"string"}).option("encoding",{alias:"e",describe:"Digest encoding",type:"string",choices:["hex","base64","base64url"],default:"hex"}).example("mfn hash hello --json",'sha256 of "hello"').example("mfn hash -a md5 -f ./file.txt --json","md5 of a file").example("cat file | mfn hash --json","hash piped stdin"),handler:async e=>{const t=String(e.algo),n=String(e.encoding);let o,r;try{if(void 0!==e.file)o=await A(String(e.file)),r=`file:${e.file}`;else if(void 0!==e.text)o=Buffer.from(String(e.text),"utf8"),r="text";else{const t=await me();if(!t)return de(e,"MissingInput","Provide a string, --file <path>, or pipe stdin.",2);o=Buffer.from(t,"utf8"),r="stdin"}}catch(t){return de(e,"ReadError",t instanceof Error?t.message:String(t))}if(!N().includes(t))return de(e,"UnsupportedAlgo",`Algorithm "${t}" is not available.`,2);const s=I(t).update(o).digest(n);fe(e,{algo:t,encoding:n,source:r,bytes:o.length,hash:s},()=>console.log(s))}};const Xe={command:"encode [text]",describe:"Encode/decode text (base64, base64url, hex, url)",builder:e=>ce(e).positional("text",{describe:"Text to (de/en)code (or pipe via stdin)",type:"string"}).option("as",{alias:"a",describe:"Codec",type:"string",choices:["base64","base64url","hex","url"],default:"base64"}).option("decode",{alias:"d",describe:"Decode instead of encode",type:"boolean",default:!1}).example("mfn encode hello --json",'base64-encode "hello"').example("mfn encode aGVsbG8= -d --json","base64-decode").example('mfn encode "a b&c" --as url --json',"url-encode"),handler:async e=>{const t=String(e.as),n=Boolean(e.decode);let o,r;if(void 0!==e.text)o=String(e.text);else if(o=(await me()).replace(/\n$/,""),!o)return de(e,"MissingInput","Provide text or pipe stdin.",2);try{r=n?function(e,t){switch(t){case"base64":return Buffer.from(e,"base64").toString("utf8");case"base64url":return Buffer.from(e,"base64url").toString("utf8");case"hex":return Buffer.from(e,"hex").toString("utf8");case"url":return decodeURIComponent(e)}}(o,t):function(e,t){switch(t){case"base64":return Buffer.from(e,"utf8").toString("base64");case"base64url":return Buffer.from(e,"utf8").toString("base64url");case"hex":return Buffer.from(e,"utf8").toString("hex");case"url":return encodeURIComponent(e)}}(o,t)}catch(o){return de(e,"CodecError",`Could not ${n?"decode":"encode"} as ${t}: ${o instanceof Error?o.message:String(o)}`)}fe(e,{operation:n?"decode":"encode",codec:t,input:o,output:r},()=>console.log(r))}};const et={command:"random",describe:"Generate cryptographically secure random bytes or a password",builder:e=>ce(e).option("bytes",{alias:"b",describe:"Number of random bytes",type:"number",default:32}).option("encoding",{alias:"e",describe:"Output encoding for bytes",type:"string",choices:["hex","base64","base64url"],default:"hex"}).option("password",{alias:"p",describe:"Generate a password instead of raw bytes",type:"boolean",default:!1}).option("length",{alias:"l",describe:"Password length",type:"number",default:24}).example("mfn random --json","32 secure random bytes as hex").example("mfn random -b 16 -e base64url --json","16 bytes, base64url").example("mfn random -p -l 32 --json","a 32-char password"),handler:e=>{if(e.password){const t=Number(e.length);if(!Number.isInteger(t)||t<1)return de(e,"InvalidLength","--length must be a positive integer.",2);const n=function(e,t){const n=t.length,o=Math.floor(256/n)*n;let r="";for(;r.length<e;)for(const s of O(2*e))if(s<o&&(r+=t[s%n],r.length===e))break;return r}(t,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*-_=+");return fe(e,{kind:"password",length:t,value:n},()=>console.log(n))}const t=Number(e.bytes);if(!Number.isInteger(t)||t<1)return de(e,"InvalidBytes","--bytes must be a positive integer.",2);const n=String(e.encoding),o=O(t).toString(n);fe(e,{kind:"bytes",bytes:t,encoding:n,value:o},()=>console.log(o))}};function tt(){return new Promise((e,t)=>{const n=T();n.unref(),n.on("error",t),n.listen(0,()=>{const t=n.address(),o="object"==typeof t&&t?t.port:0;e({port:o,close:()=>n.close()})})})}const nt={command:"port",describe:"Find a free port, or check whether a specific port is available",builder:e=>ce(e).option("check",{alias:"c",describe:"Check if this specific port is free",type:"number"}).option("count",{alias:"n",describe:"Return this many distinct free ports",type:"number",default:1}).example("mfn port --json","one free port").example("mfn port -n 3 --json","three free ports").example("mfn port -c 3000 --json","is port 3000 free?"),handler:async e=>{if(void 0!==e.check){const t=Number(e.check);if(!Number.isInteger(t)||t<1||t>65535)return de(e,"InvalidPort","--check must be an integer in 1..65535.",2);const n=await function(e){return new Promise(t=>{const n=T();n.unref(),n.on("error",()=>t(!1)),n.listen(e,()=>n.close(()=>t(!0)))})}(t);return fe(e,{port:t,available:n},()=>console.log(`${t} is ${n?"free":"in use"}`))}const t=Number(e.count);if(!Number.isInteger(t)||t<1)return de(e,"InvalidCount","--count must be a positive integer.",2);const n=[];try{for(;n.length<t;){const e=await tt();n.push(e)}}catch(t){n.forEach(e=>e.close());return de(e,"PortError",`Could not allocate a free port: ${t instanceof Error?t.message:String(t)}`)}const o=n.map(e=>e.port);n.forEach(e=>e.close()),fe(e,1===t?{port:o[0]}:{count:t,ports:o},()=>o.forEach(e=>console.log(e)))}},ot=e=>function(e){return{add:(t,n,o,r)=>{e.command({command:t,describe:n,builder:o,handler:r})}}}(ae).add(e.command,e.describe,e.builder,e.handler);ot(qe),ot(He),ot(Ve),ot(Xe),ot(et),ot(Ce),ot(ze),ot(Ne),ot(nt),ot(Ge),ot(Se),ot(xe),ot(Qe),ae.usage("mfn <command> [options]\n\nMaster CLI for developers and AI agents — headless, JSON-first commands that\nreplace boilerplate agents regenerate on every machine. Every command supports\n--json (machine output) and -h/--help (this text).").version(te).alias("version","v").help().alias("help","h").epilogue("Discover every command (machine-readable): mfn capabilities --json\nAgent contract & examples: see llms.txt in this package.\nDocs: https://github.com/Master4Novice/master-cli#readme").wrap(null).strict().demandCommand(1,"No command given. Run `mfn capabilities` to list commands.").fail((e,t)=>{t&&he("CommandError",t.message||String(t),1),he("UsageError",e||"Invalid command invocation.",2)}).parse();
|
|
35
|
+
function(e){if(Array.isArray(e))return e.map(e=>"string"!=typeof e?e+"":e);e=e.trim();let t=0,n=null,o=null,r=null;const s=[];for(let a=0;a<e.length;a++)n=o,o=e.charAt(a)," "!==o||r?(o===r?r=null:"'"!==o&&'"'!==o||r||(r=o),s[t]||(s[t]=""),s[t]+=o):" "!==n&&t++;return s}(e),r="string"==typeof e,s=function(e){const t=[],n=Object.create(null);let o=!0;Object.keys(e).forEach(function(n){t.push([].concat(e[n],n))});for(;o;){o=!1;for(let e=0;e<t.length;e++)for(let n=e+1;n<t.length;n++){if(t[e].filter(function(e){return-1!==t[n].indexOf(e)}).length){t[e]=t[e].concat(t[n]),t.splice(n,1),o=!0;break}}}return t.forEach(function(e){const t=(e=e.filter(function(e,t,n){return n.indexOf(e)===t})).pop();void 0!==t&&"string"==typeof t&&(n[t]=e)}),n}(Object.assign(Object.create(null),n.alias)),a=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),i=Object.assign(Object.create(null),n.default),c=n.configObjects||[],l=n.envPrefix,u=a["populate--"],f=u?"--":"_",d=Object.create(null),p=Object.create(null),m=n.__||L.format,h={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},g=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,y=new RegExp("^--"+a["negation-prefix"]+"(.+)");[].concat(n.array||[]).filter(Boolean).forEach(function(e){const t="object"==typeof e?e.key:e,n=Object.keys(e).map(function(e){return{boolean:"bools",string:"strings",number:"numbers"}[e]}).filter(Boolean).pop();n&&(h[n][t]=!0),h.arrays[t]=!0,h.keys.push(t)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(e){h.bools[e]=!0,h.keys.push(e)}),[].concat(n.string||[]).filter(Boolean).forEach(function(e){h.strings[e]=!0,h.keys.push(e)}),[].concat(n.number||[]).filter(Boolean).forEach(function(e){h.numbers[e]=!0,h.keys.push(e)}),[].concat(n.count||[]).filter(Boolean).forEach(function(e){h.counts[e]=!0,h.keys.push(e)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(e){h.normalize[e]=!0,h.keys.push(e)}),"object"==typeof n.narg&&Object.entries(n.narg).forEach(([e,t])=>{"number"==typeof t&&(h.nargs[e]=t,h.keys.push(e))}),"object"==typeof n.coerce&&Object.entries(n.coerce).forEach(([e,t])=>{"function"==typeof t&&(h.coercions[e]=t,h.keys.push(e))}),void 0!==n.config&&(Array.isArray(n.config)||"string"==typeof n.config?[].concat(n.config).filter(Boolean).forEach(function(e){h.configs[e]=!0}):"object"==typeof n.config&&Object.entries(n.config).forEach(([e,t])=>{"boolean"!=typeof t&&"function"!=typeof t||(h.configs[e]=t)})),function(...e){e.forEach(function(e){Object.keys(e||{}).forEach(function(e){h.aliases[e]||(h.aliases[e]=[].concat(s[e]||[]),h.aliases[e].concat(e).forEach(function(t){if(/-/.test(t)&&a["camel-case-expansion"]){const n=z(t);n!==e&&-1===h.aliases[e].indexOf(n)&&(h.aliases[e].push(n),d[n]=!0)}}),h.aliases[e].concat(e).forEach(function(t){if(t.length>1&&/[A-Z]/.test(t)&&a["camel-case-expansion"]){const n=function(e,t){const n=e.toLowerCase();t=t||"-";let o="";for(let r=0;r<e.length;r++){const s=n.charAt(r),a=e.charAt(r);o+=s!==a&&r>0?`${t}${n.charAt(r)}`:a}return o}(t,"-");n!==e&&-1===h.aliases[e].indexOf(n)&&(h.aliases[e].push(n),d[n]=!0)}}),h.aliases[e].forEach(function(t){h.aliases[t]=[e].concat(h.aliases[e].filter(function(e){return t!==e}))}))})})}(n.key,s,n.default,h.arrays),Object.keys(i).forEach(function(e){(h.aliases[e]||[]).forEach(function(t){i[t]=i[e]})});let b=null;Object.keys(h.counts).find(e=>M(e,h.arrays)?(b=Error(m("Invalid configuration: %s, opts.count excludes opts.array.",e)),!0):!!M(e,h.nargs)&&(b=Error(m("Invalid configuration: %s, opts.count excludes opts.narg.",e)),!0));let v=[];const x=Object.assign(Object.create(null),{_:[]}),j={};for(let e=0;e<o.length;e++){const t=o[e],n=t.replace(/^-{3,}/,"---");let r,s,i,c,l,u;if("--"!==t&&/^-/.test(t)&&R(t))w(t);else{if(n.match(/^---+(=|$)/)){w(t);continue}if(t.match(/^--.+=/)||!a["short-option-groups"]&&t.match(/^-.+=/))c=t.match(/^--?([^=]+)=([\s\S]*)$/),null!==c&&Array.isArray(c)&&c.length>=3&&(M(c[1],h.arrays)?e=$(e,c[1],o,c[2]):!1!==M(c[1],h.nargs)?e=E(e,c[1],o,c[2]):S(c[1],c[2],!0));else if(t.match(y)&&a["boolean-negation"])c=t.match(y),null!==c&&Array.isArray(c)&&c.length>=2&&(s=c[1],S(s,!!M(s,h.arrays)&&[!1]));else if(t.match(/^--.+/)||!a["short-option-groups"]&&t.match(/^-[^-]+/))c=t.match(/^--?(.+)/),null!==c&&Array.isArray(c)&&c.length>=2&&(s=c[1],M(s,h.arrays)?e=$(e,s,o):!1!==M(s,h.nargs)?e=E(e,s,o):(l=o[e+1],void 0===l||l.match(/^-/)&&!l.match(g)||M(s,h.bools)||M(s,h.counts)?/^(true|false)$/.test(l)?(S(s,l),e++):S(s,P(s)):(S(s,l),e++)));else if(t.match(/^-.\..+=/))c=t.match(/^-([^=]+)=([\s\S]*)$/),null!==c&&Array.isArray(c)&&c.length>=3&&S(c[1],c[2]);else if(t.match(/^-.\..+/)&&!t.match(g))l=o[e+1],c=t.match(/^-(.\..+)/),null!==c&&Array.isArray(c)&&c.length>=2&&(s=c[1],void 0===l||l.match(/^-/)||M(s,h.bools)||M(s,h.counts)?S(s,P(s)):(S(s,l),e++));else if(t.match(/^-[^-]+/)&&!t.match(g)){i=t.slice(1,-1).split(""),r=!1;for(let n=0;n<i.length;n++){if(l=t.slice(n+2),i[n+1]&&"="===i[n+1]){u=t.slice(n+3),s=i[n],M(s,h.arrays)?e=$(e,s,o,u):!1!==M(s,h.nargs)?e=E(e,s,o,u):S(s,u),r=!0;break}if("-"!==l){if(/[A-Za-z]/.test(i[n])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(l)&&!1===M(l,h.bools)){S(i[n],l),r=!0;break}if(i[n+1]&&i[n+1].match(/\W/)){S(i[n],l),r=!0;break}S(i[n],P(i[n]))}else S(i[n],l)}s=t.slice(-1)[0],r||"-"===s||(M(s,h.arrays)?e=$(e,s,o):!1!==M(s,h.nargs)?e=E(e,s,o):(l=o[e+1],void 0===l||/^(-|--)[^-]/.test(l)&&!l.match(g)||M(s,h.bools)||M(s,h.counts)?/^(true|false)$/.test(l)?(S(s,l),e++):S(s,P(s)):(S(s,l),e++)))}else if(t.match(/^-[0-9]$/)&&t.match(g)&&M(t.slice(1),h.bools))s=t.slice(1),S(s,P(s));else{if("--"===t){v=o.slice(e+1);break}if(a["halt-at-non-option"]){v=o.slice(e);break}w(t)}}}function w(e){const t=N("_",e);"string"!=typeof t&&"number"!=typeof t||x._.push(t)}function E(e,t,n,o){let r,s=M(t,h.nargs);if(s="number"!=typeof s||isNaN(s)?1:s,0===s)return J(o)||(b=Error(m("Argument unexpected for: %s",t))),S(t,P(t)),e;let i=J(o)?0:1;if(a["nargs-eats-options"])n.length-(e+1)+i<s&&(b=Error(m("Not enough arguments following: %s",t))),i=s;else{for(r=e+1;r<n.length&&(!n[r].match(/^-[^0-9]/)||n[r].match(g)||R(n[r]));r++)i++;i<s&&(b=Error(m("Not enough arguments following: %s",t)))}let c=Math.min(i,s);for(!J(o)&&c>0&&(S(t,o),c--),r=e+1;r<c+e+1;r++)S(t,n[r]);return e+c}function $(e,t,n,o){let s=[],c=o||n[e+1];const l=M(t,h.nargs);if(M(t,h.bools)&&!/^(true|false)$/.test(c))s.push(!0);else if(J(c)||J(o)&&/^-/.test(c)&&!g.test(c)&&!R(c)){if(void 0!==i[t]){const e=i[t];s=Array.isArray(e)?e:[e]}}else{J(o)||s.push(k(t,o,!0));for(let o=e+1;o<n.length&&!(!a["greedy-arrays"]&&s.length>0||l&&"number"==typeof l&&s.length>=l)&&(c=n[o],!/^-/.test(c)||g.test(c)||R(c));o++)e=o,s.push(k(t,c,r))}return"number"==typeof l&&(l&&s.length<l||isNaN(l)&&0===s.length)&&(b=Error(m("Not enough arguments following: %s",t))),S(t,s),e}function S(e,t,n=r){if(/-/.test(e)&&a["camel-case-expansion"]){const t=e.split(".").map(function(e){return z(e)}).join(".");O(e,t)}const o=k(e,t,n),s=e.split(".");if(D(x,s,o),h.aliases[e]&&h.aliases[e].forEach(function(e){const t=e.split(".");D(x,t,o)}),s.length>1&&a["dot-notation"]&&(h.aliases[s[0]]||[]).forEach(function(t){let n=t.split(".");const r=[].concat(s);r.shift(),n=n.concat(r),(h.aliases[e]||[]).includes(n.join("."))||D(x,n,o)}),M(e,h.normalize)&&!M(e,h.arrays)){[e].concat(h.aliases[e]||[]).forEach(function(e){Object.defineProperty(j,e,{enumerable:!0,get:()=>t,set(e){t="string"==typeof e?L.normalize(e):e}})})}}function O(e,t){h.aliases[e]&&h.aliases[e].length||(h.aliases[e]=[t],d[t]=!0),h.aliases[t]&&h.aliases[t].length||O(t,e)}function k(e,t,n){n&&(t=function(e){return"string"!=typeof e||"'"!==e[0]&&'"'!==e[0]||e[e.length-1]!==e[0]?e:e.substring(1,e.length-1)}(t)),(M(e,h.bools)||M(e,h.counts))&&"string"==typeof t&&(t="true"===t);let o=Array.isArray(t)?t.map(function(t){return N(e,t)}):N(e,t);return M(e,h.counts)&&(J(o)||"boolean"==typeof o)&&(o=B()),M(e,h.normalize)&&M(e,h.arrays)&&(o=Array.isArray(t)?t.map(e=>L.normalize(e)):L.normalize(t)),o}function N(e,t){if(!a["parse-positional-numbers"]&&"_"===e)return t;if(!M(e,h.strings)&&!M(e,h.bools)&&!Array.isArray(t)){(null!=(n=t)&&("number"==typeof n||!!/^0x[0-9a-f]+$/i.test(n)||!/^0[^.]/.test(n)&&/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(n))&&a["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${t}`)))||!J(t)&&M(e,h.numbers))&&(t=Number(t))}var n;return t}function I(e,t){Object.keys(e).forEach(function(n){const o=e[n],r=t?t+"."+n:n;"object"==typeof o&&null!==o&&!Array.isArray(o)&&a["dot-notation"]?I(o,r):(!_(x,r.split("."))||M(r,h.arrays)&&a["combine-arrays"])&&S(r,o)})}function A(e,t){if(void 0===l)return;const n="string"==typeof l?l:"",o=L.env();Object.keys(o).forEach(function(r){if(""===n||0===r.lastIndexOf(n,0)){const s=r.split("__").map(function(e,t){return 0===t&&(e=e.substring(n.length)),z(e)});(t&&h.configs[s.join(".")]||!t)&&!_(e,s)&&S(s.join("."),o[r])}})}function T(e,t,n,o=!1){Object.keys(n).forEach(function(r){_(e,r.split("."))||(D(e,r.split("."),n[r]),o&&(p[r]=!0),(t[r]||[]).forEach(function(t){_(e,t.split("."))||D(e,t.split("."),n[r])}))})}function _(e,t){let n=e;a["dot-notation"]||(t=[t.join(".")]),t.slice(0,-1).forEach(function(e){n=n[e]||{}});const o=t[t.length-1];return"object"==typeof n&&o in n}function D(e,t,n){let o=e;a["dot-notation"]||(t=[t.join(".")]),t.slice(0,-1).forEach(function(e){e=C(e),"object"==typeof o&&void 0===o[e]&&(o[e]={}),"object"!=typeof o[e]||Array.isArray(o[e])?(Array.isArray(o[e])?o[e].push({}):o[e]=[o[e],{}],o=o[e][o[e].length-1]):o=o[e]});const r=C(t[t.length-1]),s=M(t.join("."),h.arrays),i=Array.isArray(n);let c=a["duplicate-arguments-array"];!c&&M(r,h.nargs)&&(c=!0,(!J(o[r])&&1===h.nargs[r]||Array.isArray(o[r])&&o[r].length===h.nargs[r])&&(o[r]=void 0)),n===B()?o[r]=B(o[r]):Array.isArray(o[r])?c&&s&&i?o[r]=a["flatten-duplicate-arrays"]?o[r].concat(n):(Array.isArray(o[r][0])?o[r]:[o[r]]).concat([n]):c||Boolean(s)!==Boolean(i)?o[r]=o[r].concat([n]):o[r]=n:void 0===o[r]&&s?o[r]=i?n:[n]:!c||void 0===o[r]||M(r,h.counts)||M(r,h.bools)?o[r]=n:o[r]=[o[r],n]}function M(e,t){const n=[].concat(h.aliases[e]||[],e),o=Object.keys(t),r=n.find(e=>o.includes(e));return!!r&&t[r]}function U(e){const t=Object.keys(h);return[].concat(t.map(e=>h[e])).some(function(t){return Array.isArray(t)?t.includes(e):t[e]})}function R(e){return a["unknown-options-as-args"]&&function(e){if(e=e.replace(/^-{3,}/,"--"),e.match(g))return!1;if(function(e){if(e.match(g)||!e.match(/^-[^-]+/))return!1;let t,n=!0;const o=e.slice(1).split("");for(let r=0;r<o.length;r++){if(t=e.slice(r+2),!U(o[r])){n=!1;break}if(o[r+1]&&"="===o[r+1]||"-"===t||/[A-Za-z]/.test(o[r])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(t)||o[r+1]&&o[r+1].match(/\W/))break}return n}(e))return!1;return!function(e,...t){return[].concat(...t).some(function(t){const n=e.match(t);return n&&U(n[1])})}(e,/^-+([^=]+?)=[\s\S]*$/,y,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}(e)}function P(e){return M(e,h.bools)||M(e,h.counts)||!(`${e}`in i)?(t=function(e){let t=F.BOOLEAN;return M(e,h.strings)?t=F.STRING:M(e,h.numbers)?t=F.NUMBER:M(e,h.bools)?t=F.BOOLEAN:M(e,h.arrays)&&(t=F.ARRAY),t}(e),{[F.BOOLEAN]:!0,[F.STRING]:"",[F.NUMBER]:void 0,[F.ARRAY]:[]}[t]):i[e];var t}function J(e){return void 0===e}return A(x,!0),A(x,!1),function(e){const t=Object.create(null);T(t,h.aliases,i),Object.keys(h.configs).forEach(function(n){const o=e[n]||t[n];if(o)try{let e=null;const t=L.resolve(L.cwd(),o),r=h.configs[n];if("function"==typeof r){try{e=r(t)}catch(t){e=t}if(e instanceof Error)return void(b=e)}else e=L.require(t);I(e)}catch(t){"PermissionDenied"===t.name?b=t:e[n]&&(b=Error(m("Invalid JSON config file: %s",o)))}})}(x),void 0!==c&&c.forEach(function(e){I(e)}),T(x,h.aliases,i,!0),function(e){let t;const n=new Set;Object.keys(e).forEach(function(o){if(!n.has(o)&&(t=M(o,h.coercions),"function"==typeof t))try{const r=N(o,t(e[o]));[].concat(h.aliases[o]||[],o).forEach(t=>{n.add(t),e[t]=r})}catch(e){b=e}})}(x),a["set-placeholder-key"]&&function(e){h.keys.forEach(t=>{~t.indexOf(".")||void 0===e[t]&&(e[t]=void 0)})}(x),Object.keys(h.counts).forEach(function(e){_(x,e.split("."))||S(e,0)}),u&&v.length&&(x[f]=[]),v.forEach(function(e){x[f].push(e)}),a["camel-case-expansion"]&&a["strip-dashed"]&&Object.keys(x).filter(e=>"--"!==e&&e.includes("-")).forEach(e=>{delete x[e]}),a["strip-aliased"]&&[].concat(...Object.keys(s).map(e=>s[e])).forEach(e=>{a["camel-case-expansion"]&&e.includes("-")&&delete x[e.split(".").map(e=>z(e)).join(".")],delete x[e]}),{aliases:Object.assign({},h.aliases),argv:Object.assign(j,x),configuration:a,defaulted:Object.assign({},p),error:b,newAliases:Object.assign({},d)}}}({cwd:process.cwd,env:()=>J,format:t,normalize:r,resolve:o,require:e=>{if("undefined"!=typeof require)return require(e);if(e.match(/\.json$/))return JSON.parse(a(e,"utf8"));throw Error("only .json config files are supported in ESM")}});var G={fs:{readFileSync:a,writeFile:i},format:t,resolve:o,exists:e=>{try{return c(e).isFile()}catch(e){return!1}}};let W;class Y{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles="boolean"!=typeof e.updateFiles||e.updateFiles,this.locale=e.locale||"en",this.fallbackToLanguage="boolean"!=typeof e.fallbackToLanguage||e.fallbackToLanguage,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if("string"!=typeof arguments[0])return this._taggedLiteral(arguments[0],...arguments);const t=e.shift();let n=function(){};return"function"==typeof e[e.length-1]&&(n=e.pop()),n=n||function(){},this.cache[this.locale]||this._readLocaleFile(),!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n})):n(),W.format.apply(W.format,[this.cache[this.locale][t]||t].concat(e))}__n(){const e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),o=e.shift();let r=function(){};"function"==typeof e[e.length-1]&&(r=e.pop()),this.cache[this.locale]||this._readLocaleFile();let s=1===o?t:n;if(this.cache[this.locale][t]){s=this.cache[this.locale][t][1===o?"one":"other"]}!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:r})):r();const a=[s];return~s.indexOf("%d")&&a.push(o),W.format.apply(W.format,a.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){this.cache[this.locale]||this._readLocaleFile();for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.cache[this.locale][t]=e[t])}_taggedLiteral(e,...t){let n="";return e.forEach(function(e,o){const r=t[o+1];n+=e,void 0!==r&&(n+="%s")}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){this.writeQueue.push(e),1===this.writeQueue.length&&this._processWriteQueue()}_processWriteQueue(){const e=this,t=this.writeQueue[0],n=t.directory,o=t.locale,r=t.cb,s=this._resolveLocaleFile(n,o),a=JSON.stringify(this.cache[o],null,2);W.fs.writeFile(s,a,"utf-8",function(t){e.writeQueue.shift(),e.writeQueue.length>0&&e._processWriteQueue(),r(t)})}_readLocaleFile(){let e={};const t=this._resolveLocaleFile(this.directory,this.locale);try{W.fs.readFileSync&&(e=JSON.parse(W.fs.readFileSync(t,"utf-8")))}catch(n){if(n instanceof SyntaxError&&(n.message="syntax error in "+t),"ENOENT"!==n.code)throw n;e={}}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=W.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){const o=W.resolve(e,"./",t.split("_")[0]+".json");this._fileExistsSync(o)&&(n=o)}return n}_fileExistsSync(e){return W.exists(e)}}let Z;try{Z=l(import.meta.url)}catch(e){Z=process.cwd()}Z.substring(0,Z.lastIndexOf("node_modules"))||process.cwd(),process.cwd,process.exit,process.nextTick,void 0!==process.stdout.columns&&process.stdout.columns,function(e,t){W=t;const n=new Y(e);n.__.bind(n),n.__n.bind(n),n.setLocale.bind(n),n.getLocale.bind(n),n.updateLocale.bind(n),n.locale}({directory:o(Z,"../../../locales"),updateFiles:!1},G);const Q=()=>(new Date).toISOString();function q(){return{info:e=>console.error(`${u.blue("INFO")} [${u.magenta(Q())}] ${u.white(e)}`),warn:e=>console.error(`${u.yellow("WARN")} [${u.magenta(Q())}] ${u.white(e)}`),error:e=>console.error(`${u.red("ERROR")} [${u.magenta(Q())}] ${u.white(e)}`),debug:e=>console.error(`${u.cyan("DEBUG")} [${u.magenta(Q())}] ${u.white(e)}`)}}function H(){const e=p.homedir();return n.join(e,".mfn","cache")}const K=e=>u.green(e);async function V(e,t){await m.writeJson(t,e,{spaces:2})}const X=[{name:"capabilities",summary:"Self-describing manifest of every command an agent can call",examples:["mfn capabilities --json"]},{name:"epoch",summary:"Convert between epoch timestamps and dates (auto-detects unit)",examples:["mfn epoch 1622547800 --json","mfn epoch --from 2021-06-01T11:43:20Z --json"]},{name:"date",summary:"Convert/format a date across timezones (defaults to now)",examples:["mfn date --json","mfn date 2024-07-04T15:30:30Z --tz America/New_York --json"]},{name:"decode",summary:"Decode a JWT token (header + payload; signature not verified)",examples:["mfn decode -t <jwt> --json"]},{name:"kill",summary:"Kill the process(es) listening on specific ports",examples:["mfn kill -p 3000 8080 -y --json"]},{name:"sc",summary:"Find files/folders under the current directory (fuzzy match)",examples:["mfn sc service --json"]},{name:"cts",summary:"Print (or export) a tree of the current working directory",examples:["mfn cts --json","mfn cts -t png"]},{name:"update",summary:"Update the CLI or a specified package to the latest version",examples:["mfn update --json","mfn update <package> --json"]},{name:"id",summary:"Generate identifiers (UUID v4/v7 or URL-safe nano id)",examples:["mfn id --json","mfn id -t uuid7 -n 3 --json"]},{name:"hash",summary:"Hash a string, file, or stdin (md5/sha1/sha256/sha512)",examples:["mfn hash hello --json","mfn hash -a md5 -f ./file.txt --json"]},{name:"encode",summary:"Encode/decode text (base64, base64url, hex, url)",examples:["mfn encode hello --json","mfn encode aGVsbG8= -d --json"]},{name:"random",summary:"Generate secure random bytes or a password",examples:["mfn random --json","mfn random -p -l 32 --json"]},{name:"port",summary:"Find a free port, or check whether a specific port is available",examples:["mfn port --json","mfn port -c 3000 --json"]}];var ee="@master4n/master-cli",te="3.0.1";const ne=["add --json to any command for clean, machine-readable output","piping a command (no TTY) auto-emits JSON — great for agents & scripts","every command returns a stable exit code: 0 = ok, non-zero = failure","mfn <command> --help shows its flags and copy-paste examples","mfn capabilities --json lists every command an agent can call","mfn kill -p 3000 8080 -y frees stuck ports in one shot"],oe=e=>u.hex(e)("─".repeat(62));!function(){const e=p.homedir(),t=n.join(e,".mfn","cache");if(!s.existsSync(t))try{s.existsSync(n.join(e,".mfn"))||s.mkdirSync(n.join(e,".mfn")),s.mkdirSync(t,{recursive:!0})}catch{}}(),await(async()=>{if(!(Boolean(process.stdout.isTTY)&&!process.argv.includes("--json")))return;const e=await(t="M4N-CLI",new Promise((e,n)=>{f(t,(t,o)=>t?n(t):e(o??""))}));var t;const n=d(u.hex("#27A244").bold(e),{padding:1,margin:{top:1,bottom:0,left:1,right:1},borderStyle:"round",borderColor:"#C1C110",dimBorder:!0}),o=function(){const e=p.platform();return"win32"===e?process.env.USERNAME||"User":"darwin"===e||"linux"===e?process.env.USER||"User":""}(),r=u.dim(" • "),s=[u.hex("#44bcd8").bold(`mfn v${te}`),u.gray(`node ${process.version}`),u.gray(`${process.platform}/${process.arch}`),u.green.bold("AI-friendly")].join(r);let a="";try{const e=g();a=`${e.iso.replace("T"," ").slice(0,19)} ${u.dim(`(${e.timezone})`)}`}catch{}const i=X.map(e=>u.cyan(e.name)).join(u.dim(" · ")),c=ne[Math.floor(Math.random()*ne.length)],l=(e="")=>console.error(e);l(oe("#C1C110")),l(n),l(" "+(o?u.magenta(`👋 Welcome, ${u.bold(o)}`):u.magenta("👋 Welcome"))+r+s),a&&l(" "+u.gray("🕒 ")+u.white(a)),l(""),l(" "+u.yellow.bold("🧰 tools ")+i),l(" "+u.yellow.bold("💡 tip ")+u.white(c)),l(" "+u.yellow.bold("🤖 help ")+u.white("mfn <command> --help")),l(oe("#C1C110"))})();const re=e(process.argv.slice(_()+1));const se=u.hex("#44bcd8").bold("mfn");var ae=re.scriptName(se);const ie=()=>Boolean(process.stdout.isTTY),ce=e=>e.option("json",{type:"boolean",default:!1,describe:"Emit a single machine-readable JSON object on stdout"}),le=e=>Boolean(e?.json)||!ie(),ue=e=>{process.stdout.write(JSON.stringify(e)+"\n")};function fe(e,t,n){le(e)?ue({ok:!0,...t}):n()}function de(e,t,n,o=1){le(e)?ue({ok:!1,error:t,message:n}):console.error(n),process.exit(o)}const pe=e=>ie()&&!e?.json;async function me(){if(process.stdin.isTTY)return"";const e=[];for await(const t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf8")}function he(e,t,n=2){process.argv.includes("--json")||!ie()?process.stdout.write(JSON.stringify({ok:!1,error:e,message:t})+"\n"):console.error(t),process.exit(n)}const ge=q(),ye=n.join(H(),"cts_ignore.json"),be=["node_modules",".git",".nx"];function ve(e,t,o=""){let r,s="";try{r=m.readdirSync(e).filter(e=>!t.has(e)).sort()}catch{return`${o}└── [unreadable]\n`}return r.forEach((a,i)=>{const c=n.join(e,a),l=i===r.length-1;let u=!1;try{u=m.statSync(c).isDirectory()}catch{u=!1}s+=`${o}${l?"└── ":"├── "}${a}\n`,u&&(s+=ve(c,t,`${o}${l?" ":"│ "}`))}),s}const xe={command:"cts",describe:"Print (or export) a tree of the current working directory",builder:e=>ce(e).option("type",{alias:"t",describe:"Output format: text (stdout, default) or an image file",type:"string",choices:["text","svg","png","jpeg"],default:"text"}).option("ignore",{alias:"i",describe:"Folder names to ignore",type:"array"}).option("length",{alias:"l",describe:"Image height",type:"number",default:250}).option("breadth",{alias:"b",describe:"Image width",type:"number",default:200}).example("mfn cts","print the tree as text").example("mfn cts --json","tree as JSON").example("mfn cts -t png","export the tree to <dir>.png"),handler:async e=>{let t=e.ignore??[];t.length>0?await V({ignores:t},ye).catch(()=>{}):t=(await async function(){try{return await m.readJson(ye)}catch(e){if("ENOENT"===e.code)return{ignores:[]};throw e}}()).ignores??[];const o=new Set([...be,...t]),r=process.cwd(),s=n.basename(r);let a;try{a=s+"\n"+ve(r,o)}catch(t){return de(e,"TreeError",`Failed to build tree for ${r}: ${t instanceof Error?t.message:String(t)}`)}const i=String(e.type);if("text"===i)return fe(e,{root:s,path:r,format:"text",tree:a},()=>{process.stdout.write(a.endsWith("\n")?a:a+"\n")});if(!function(...e){for(const t of e)if(isNaN(t)||t<1||t>1e3)return!1;return!0}(e.length,e.breadth))return de(e,"InvalidDimensions","Length & breadth must be numbers in 1..1000.",2);const c=`${s}.${i}`;try{const t=function(e,t,n){return`<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${t}"><rect width="100%" height="100%" fill="white"/><g fill="black" font-family="monospace" font-size="12">${e.split("\n").map((e,t)=>`<text style="white-space: pre;" x="0" y="${20+20*t}">${e.replace(/&/g,"&").replace(/</g,"<")}</text>`).join("")}</g></svg>`}(a,e.length,e.breadth);"svg"===i?m.outputFileSync(c,t):await x(Buffer.from(t))["png"===i?"png":"jpeg"]().toFile(c)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,"ExportFailed",`Failed to write ${c}: ${n}`)}fe(e,{root:s,path:r,format:i,file:c},()=>ge.info(`Tree for ${s} written to ${c}`))}},je=q(),we=n.join(H(),"sc_ignore.json"),Ee=["node_modules",".git","dist","build",".nx","coverage"];function $e(e,t,o){const r=[],s=new Set([...Ee,...t]),a=(t,i)=>{if(i>o)return;let c;try{c=m.readdirSync(t,{withFileTypes:!0})}catch{return}for(const o of c){if(s.has(o.name))continue;const c=n.join(t,o.name),l=n.relative(e,c);r.push(o.isDirectory()?l+n.sep:l),o.isDirectory()&&a(c,i+1)}};return a(e,0),r}const Se={command:"sc [pattern]",describe:"Find files/folders under the current directory (fuzzy match)",builder:e=>ce(e).positional("pattern",{describe:"Fuzzy pattern to match against paths (omit to list all)",type:"string"}).option("ignore",{alias:"i",describe:"Additional directory names to ignore",type:"array"}).option("depth",{type:"number",default:6,describe:"Max recursion depth"}).option("limit",{type:"number",default:500,describe:"Max results returned"}).example("mfn sc service --json",'find paths matching "service"'),handler:async e=>{const t=process.cwd(),o=Number(e.depth),r=Number(e.limit);if(!Number.isInteger(o)||o<0)return de(e,"InvalidDepth","--depth must be a non-negative integer.",2);if(!Number.isInteger(r)||r<1)return de(e,"InvalidLimit","--limit must be a positive integer.",2);let s=e.ignore??[];if(s.length>0?await V({ignores:s},we).catch(()=>{}):s=(await async function(){try{return await m.readJson(we)}catch(e){if("ENOENT"===e.code)return{ignores:[]};throw e}}()).ignores??[],void 0===e.pattern&&pe(e))return async function(e,t,o,r,s){const a=$e(t,o,r),{pattern:i}=await j.prompt([{type:"input",name:"pattern",message:K("Filter (fuzzy, blank = all):")}]),c=String(i??"").trim(),l=(c?w.filter(c,a).map(e=>e.original):a).slice(0,s);if(0===l.length)return fe(e,{pattern:c||null,root:t,count:0,matches:[]},()=>je.warn("No matches."));const{selected:u}=await j.prompt([{type:"list",name:"selected",message:K("Select a path:"),choices:l,pageSize:15,loop:!1}]),f=m.statSync(n.join(t,u));fe(e,{path:u,type:f.isDirectory()?"directory":"file"},()=>{je.info(`${f.isDirectory()?"Directory":"File"}: ${u}`),f.isDirectory()&&je.info(`cd ${u}`)})}(e,t,s,o,r);const a=$e(t,s,o),i=e.pattern?w.filter(String(e.pattern),a).map(e=>e.original):a,c=i.slice(0,r);fe(e,{pattern:e.pattern??null,root:t,count:c.length,truncated:i.length>c.length,matches:c},()=>{je.info(`${c.length} match(es) under ${t}`);for(const e of c)console.log(e)})}},Oe=q();function ke(e){const t=Buffer.from(e,"base64url").toString("utf-8");return JSON.parse(t)}const Ne={command:"decode",describe:"Decode a JWT token (header + payload; signature not verified)",builder:e=>ce(e).option("token",{alias:"t",describe:'JWT token to decode (a leading "Bearer " is stripped)',type:"string",demandOption:!0}).example("mfn decode -t <jwt> --json","decode a JWT"),handler:e=>{const t=String(e.token).replace(/^Bearer\s+/i,"").trim().split(".");if(3!==t.length)return de(e,"InvalidJWT","Invalid JWT structure: expected three dot-separated segments.");let n,o;try{n=ke(t[0]),o=ke(t[1])}catch(t){return de(e,"DecodeError",`Could not decode JWT: ${t instanceof Error?t.message:String(t)}`)}const r=o?.exp;let s;if("number"==typeof r&&Number.isFinite(r)){const e=Math.round(r-Date.now()/1e3);s={exp:r,expired:e<=0,expiresInSeconds:e}}fe(e,{header:n,payload:o,...s?{expiry:s}:{}},()=>{Oe.info("Decoded JWT (signature NOT verified)"),console.log(u.cyanBright.bold("header:")),console.log(u.greenBright(JSON.stringify(n,null,2))),console.log(u.cyanBright.bold("payload:")),console.log(u.greenBright(JSON.stringify(o,null,2))),s&&console.log(u.cyanBright.bold("expiry: ")+(s.expired?u.red(`expired ${-s.expiresInSeconds}s ago`):u.green(`valid for ${s.expiresInSeconds}s`)))})}},Ie=q(),Ae="yyyy-MM-dd HH:mm:ss",Te=()=>Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC";function _e(e){const t=e.format||Ae,n=e.tz||Te();let o,r,s;try{o=void 0!==e.from?y(String(e.from),e.inFormat,e.inTz).epochInMilliseconds:g().milliseconds}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"ParseError",n)}try{r=b(o,"UTC",t),s=b(o,n,t)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"TimezoneError",n)}fe(e,{epochInSeconds:Math.floor(o/1e3),epochInMilliseconds:o,utc:r,zoned:s,timezone:n,format:t},()=>{Ie.info("Date conversion"),console.table([{UTC:r,[n]:s,Epoch_ms:o}])})}const ze={command:"date [from]",describe:"Convert/format a date across timezones (defaults to now)",builder:e=>ce(e).positional("from",{describe:"Date string to convert (ISO 8601 unless --in-format given). Omit for now.",type:"string"}).option("tz",{type:"string",describe:"Target output timezone (IANA; default: local)"}).option("format",{type:"string",describe:`Output format (default: ${Ae})`}).option("in-format",{type:"string",describe:"Luxon parse format for the input"}).option("in-tz",{type:"string",describe:"Timezone used to interpret the input"}).example("mfn date --json","now, in UTC + local").example("mfn date 2024-07-04T15:30:30Z --tz America/New_York --json","convert to a timezone"),handler:async e=>{const t={from:e.from,inFormat:e["in-format"],inTz:e["in-tz"],tz:e.tz,format:e.format,json:e.json};if(void 0===e.from&&void 0===e.tz&&void 0===e.format&&pe(e))return async function(e){const t=await j.prompt([{type:"input",name:"from",message:K("Date string (blank = now, ISO 8601):")},{type:"input",name:"tz",message:K(`Target timezone (blank = ${Te()}):`)},{type:"input",name:"format",message:K(`Output format (blank = ${Ae}):`)}]);_e({...e,from:t.from?.trim()||void 0,tz:t.tz?.trim()||void 0,format:t.format?.trim()||void 0})}(t);_e(t)}},Fe=q();function Le(e,t){let n;try{n=v(t)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"InvalidEpoch",n)}fe(e,{epoch:n.epoch,unit:n.epochUnit,utc:n.dateTimeInGMT,local:n.dateTime,timezone:n.timezone,relative:n.relative},()=>{Fe.info("Epoch → date"),console.table([{Epoch:`${n.epoch} (${n.epochUnit})`,Local:n.dateTime,GMT:n.dateTimeInGMT,Relative:n.relative}])})}function Be(e,t,n,o){let r,s;try{r=y(t,n,o)}catch(t){const n=t instanceof Error?t.message:String(t);return de(e,t instanceof Error?t.name:"ParseError",n)}try{s=v(r.epochInSeconds).relative}catch{s=void 0}fe(e,{epochInSeconds:r.epochInSeconds,epochInMilliseconds:r.epochInMilliseconds,utc:r.dateTimeInGMT,local:r.dateTime,timezone:r.timezone,relative:s},()=>{Fe.info("Date → epoch"),console.table([{Seconds:r.epochInSeconds,Milliseconds:r.epochInMilliseconds,Local:r.dateTime,GMT:r.dateTimeInGMT,Timezone:r.timezone}])})}const Ce={command:"epoch [value]",describe:"Convert between epoch timestamps and dates (auto-detects unit)",builder:e=>ce(e).positional("value",{describe:"Epoch value to convert to a date (s / ms / µs / ns auto-detected)",type:"number"}).option("from",{type:"string",describe:"A date string to convert TO epoch (ISO 8601 unless --format given)"}).option("format",{type:"string",describe:'Luxon parse format for --from (e.g. "dd/MM/yyyy")'}).option("tz",{type:"string",describe:"IANA timezone used to interpret --from (default: local)"}).example("mfn epoch 1622547800 --json","epoch → date").example("mfn epoch --from 2021-06-01T11:43:20Z --json","date → epoch"),handler:async e=>void 0!==e.from?Be(e,String(e.from),e.format,e.tz):void 0!==e.value&&null!==e.value?Le(e,Number(e.value)):pe(e)?async function(e){const{operation:t}=await j.prompt([{type:"rawlist",name:"operation",message:K("What do you want to do?"),choices:[{name:"Convert epoch → human-readable date",value:"epochToDate"},{name:"Convert date string → epoch",value:"dateToEpoch"}]}]);if("epochToDate"===t){const{value:t}=await j.prompt([{type:"input",name:"value",message:K("Enter epoch value:"),validate:e=>e.trim()&&!isNaN(Number(e))||"Enter a number"}]);Le(e,Number(t))}else{const{input:t}=await j.prompt([{type:"input",name:"input",message:K("Enter a date string (ISO 8601):"),validate:e=>Boolean(e.trim())||"Enter a date string"}]);Be(e,t,void 0,e.tz)}}(e):void de(e,"MissingInput","Provide an epoch <value>, or --from <dateString>. See `mfn epoch --help`.",2)},De=q(),Me=E(h),Ue=n.join(H(),"ports.json"),Re="win32"===$();async function Pe(e){try{if(Re){const{stdout:t}=await Me("netstat",["-ano"]),n=t.split("\n").find(t=>t.includes(`:${e}`)&&/LISTENING/i.test(t)),o=n?n.trim().split(/\s+/).pop():null;return o?{port:e,pid:o}:null}const{stdout:t}=await Me("lsof",["-i",`:${e}`]),n=t.split("\n").find(e=>/LISTEN/.test(e)),o=n?n.trim().split(/\s+/)[1]:null;return o?{port:e,pid:o}:null}catch{return null}}async function Je(e){Re?await Me("taskkill",["/PID",e,"/F"]):await Me("kill",["-9",e])}const Ge={command:"kill",describe:"Kill the process(es) listening on specific ports",builder:e=>ce(e).option("ports",{alias:"p",describe:"Port number(s) to free",type:"array",coerce:e=>(Array.isArray(e)?e:[e]).map(e=>{const t=Number(e);if(isNaN(t))throw new Error(`Invalid port number: ${e}`);return t})}).option("yes",{alias:"y",type:"boolean",default:!1,describe:"Kill all matching processes without the interactive prompt"}).example("mfn kill -p 3000 8080 -y --json","free ports 3000 and 8080"),handler:async e=>{let t=e.ports??[];if(0===t.length){const n=pe(e)?await async function(){try{return await m.readJson(Ue)}catch(e){if("ENOENT"===e.code)return{ports:[]};throw e}}():{ports:[]};if(!n.ports?.length)return de(e,"NoPorts","No ports provided. Use -p <port...>. See `mfn kill --help`.",2);t=n.ports,De.info(`Using cached ports [${t.join(", ")}]`)}await V({ports:t},Ue).catch(()=>{});const n=(await Promise.all(t.map(Pe))).filter(e=>null!==e),o=t.filter(e=>!n.some(t=>t.port===e));if(0===n.length)return fe(e,{killed:[],failed:[],notFound:o},()=>De.info(`No processes listening on [${t.join(", ")}]`));let r=n;if(pe(e)&&!e.yes){const{pids:e}=await j.prompt([{type:"checkbox",name:"pids",message:K("Select the processes to kill:"),choices:n.map(e=>({name:`Port ${e.port} → PID ${e.pid}`,value:e.pid}))}]);r=n.filter(t=>e.includes(t.pid))}const s=[],a=[];for(const e of r)try{await Je(e.pid),s.push(e)}catch(t){a.push({...e,error:t instanceof Error?t.message:String(t)})}fe(e,{killed:s,failed:a,notFound:o},()=>{for(const e of s)De.info(`Killed PID ${e.pid} on port ${e.port}`);for(const e of a)De.error(`Failed to kill PID ${e.pid} (port ${e.port}): ${e.error}`);o.length&&De.warn(`No process on [${o.join(", ")}]`)}),a.length>0&&process.exit(1)}},We=q(),Ye=E(h);const Ze={command:"update [package]",describe:"Update the CLI or a specified package to the latest version",builder:e=>ce(e).positional("package",{describe:"npm package to update globally (default: this CLI)",type:"string",default:"@master4n/master-cli"}).example("mfn update","update master-cli itself to the latest version").example("mfn update typescript --json","update a specific global package"),handler:async e=>{const t=String(e.package??"@master4n/master-cli"),n=pe(e)?S():null,o=Date.now();n?.start(u.green(`updating/installing ${t}`));try{await async function(e){await Ye("npm",["install","-g",e])}(t);const r=await async function(e){try{const{stdout:t}=await Ye("npm",["view",e,"version"]);return t.trim()||null}catch{return null}}(t),s=Date.now()-o;n?.succeed(`${u.green(`updated ${t}`)} ${u.dim(`(${(s/1e3).toFixed(3)}s)`)}`),fe(e,{package:t,version:r,durationMs:s},()=>{We.info(`${t} updated/installed${r?` -> ${u.green(r)}`:""}`)})}catch(o){n?.fail(u.red(`failed updating ${t}`));const r=o instanceof Error?o.message:String(o);de(e,"UpdateFailed",`Failed to update "${t}": ${r}`)}}},Qe={command:"capabilities",describe:"List every command an agent can call (self-describing manifest)",builder:e=>ce(e).example("mfn capabilities --json","machine-readable manifest"),handler:e=>{fe(e,{name:ee,version:te,bin:"mfn",conventions:{json:"pass --json, or pipe (non-TTY auto-emits) — one {ok,...} object on stdout",exitCodes:{ok:0,error:1,usage:2},logs:"banners and logs go to stderr; stdout carries data only"},commands:X.map(e=>({name:e.name,summary:e.summary,examples:e.examples}))},()=>{console.log(`${ee} v${te} (bin: mfn)`),console.log("Commands an agent can call headlessly:");for(const e of X)console.log(` ${e.name.padEnd(10)} ${e.summary}`);console.log("\nConventions: --json for machine output · exit 0/1/2 · logs on stderr")})}};function qe(e){switch(e){case"uuid":case"uuid4":return k();case"uuid7":return function(){const e=O(16);e.writeUIntBE(Date.now(),0,6),e[6]=15&e[6]|112,e[8]=63&e[8]|128;const t=e.toString("hex");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}();default:return""}}const He=1e5,Ke={command:"id",describe:"Generate identifiers (UUID v4/v7 or URL-safe nano id)",builder:e=>ce(e).option("type",{alias:"t",describe:"Identifier type",type:"string",choices:["uuid","uuid4","uuid7","nano"],default:"uuid"}).option("count",{alias:"n",describe:"How many to generate",type:"number",default:1}).option("size",{describe:"Length for --type nano",type:"number",default:21}).example("mfn id --json","one UUID v4").example("mfn id -t uuid7 -n 3 --json","three time-ordered UUID v7").example("mfn id -t nano --size 12 --json","a 12-char URL-safe id"),handler:e=>{const t=String(e.type),n=Number(e.count),o=Number(e.size);if(!Number.isInteger(n)||n<1||n>He)return de(e,"InvalidCount","--count must be an integer in 1..100000.",2);if("nano"===t&&(!Number.isInteger(o)||o<1||o>4096))return de(e,"InvalidSize","--size must be an integer in 1..4096.",2);const r=Array.from({length:n},()=>"nano"===t?function(e){let t="";for(;t.length<e;){const n=O(e);for(let o=0;o<n.length&&t.length<e;o++)t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-"[63&n[o]]}return t}(o):qe(t));fe(e,{type:t,count:n,ids:r},()=>r.forEach(e=>console.log(e)))}},Ve=["md5","sha1","sha256","sha512"],Xe={command:"hash [text]",describe:"Hash a string, file, or stdin (md5/sha1/sha256/sha512)",builder:e=>ce(e).positional("text",{describe:"String to hash (or pipe via stdin, or use --file)",type:"string"}).option("algo",{alias:"a",describe:"Hash algorithm",type:"string",choices:Ve,default:"sha256"}).option("file",{alias:"f",describe:"Hash the contents of this file instead",type:"string"}).option("encoding",{alias:"e",describe:"Digest encoding",type:"string",choices:["hex","base64","base64url"],default:"hex"}).example("mfn hash hello --json",'sha256 of "hello"').example("mfn hash -a md5 -f ./file.txt --json","md5 of a file").example("cat file | mfn hash --json","hash piped stdin"),handler:async e=>{const t=String(e.algo),n=String(e.encoding);let o,r;try{if(void 0!==e.file)o=await A(String(e.file)),r=`file:${e.file}`;else if(void 0!==e.text)o=Buffer.from(String(e.text),"utf8"),r="text";else{const t=await me();if(!t)return de(e,"MissingInput","Provide a string, --file <path>, or pipe stdin.",2);o=Buffer.from(t,"utf8"),r="stdin"}}catch(t){return de(e,"ReadError",t instanceof Error?t.message:String(t))}if(!N().includes(t))return de(e,"UnsupportedAlgo",`Algorithm "${t}" is not available.`,2);const s=I(t).update(o).digest(n);fe(e,{algo:t,encoding:n,source:r,bytes:o.length,hash:s},()=>console.log(s))}};const et={hex:/^[0-9a-fA-F]*$/,base64:/^[A-Za-z0-9+/]*={0,2}$/,base64url:/^[A-Za-z0-9_-]*$/};const tt={command:"encode [text]",describe:"Encode/decode text (base64, base64url, hex, url)",builder:e=>ce(e).positional("text",{describe:"Text to (de/en)code (or pipe via stdin)",type:"string"}).option("as",{alias:"a",describe:"Codec",type:"string",choices:["base64","base64url","hex","url"],default:"base64"}).option("decode",{alias:"d",describe:"Decode instead of encode",type:"boolean",default:!1}).example("mfn encode hello --json",'base64-encode "hello"').example("mfn encode aGVsbG8= -d --json","base64-decode").example('mfn encode "a b&c" --as url --json',"url-encode"),handler:async e=>{const t=String(e.as),n=Boolean(e.decode);let o,r;if(void 0!==e.text)o=String(e.text);else if(o=(await me()).replace(/\n$/,""),!o)return de(e,"MissingInput","Provide text or pipe stdin.",2);try{r=n?function(e,t){if("url"===t)return decodeURIComponent(e);const n=et[t],o="hex"===t?e:e.trim();if(!n.test(o)||"hex"===t&&o.length%2!=0)throw new Error(`not valid ${t}`);return Buffer.from(o,t).toString("utf8")}(o,t):function(e,t){switch(t){case"base64":return Buffer.from(e,"utf8").toString("base64");case"base64url":return Buffer.from(e,"utf8").toString("base64url");case"hex":return Buffer.from(e,"utf8").toString("hex");case"url":return encodeURIComponent(e)}}(o,t)}catch(o){return de(e,"CodecError",`Could not ${n?"decode":"encode"} as ${t}: ${o instanceof Error?o.message:String(o)}`)}fe(e,{operation:n?"decode":"encode",codec:t,input:o,output:r},()=>console.log(r))}};const nt=1048576,ot={command:"random",describe:"Generate cryptographically secure random bytes or a password",builder:e=>ce(e).option("bytes",{alias:"b",describe:"Number of random bytes",type:"number",default:32}).option("encoding",{alias:"e",describe:"Output encoding for bytes",type:"string",choices:["hex","base64","base64url"],default:"hex"}).option("password",{alias:"p",describe:"Generate a password instead of raw bytes",type:"boolean",default:!1}).option("length",{alias:"l",describe:"Password length",type:"number",default:24}).example("mfn random --json","32 secure random bytes as hex").example("mfn random -b 16 -e base64url --json","16 bytes, base64url").example("mfn random -p -l 32 --json","a 32-char password"),handler:e=>{if(e.password){const t=Number(e.length);if(!Number.isInteger(t)||t<1||t>4096)return de(e,"InvalidLength","--length must be an integer in 1..4096.",2);const n=function(e,t){const n=t.length,o=Math.floor(256/n)*n;let r="";for(;r.length<e;)for(const s of O(2*e))if(s<o&&(r+=t[s%n],r.length===e))break;return r}(t,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*-_=+");return fe(e,{kind:"password",length:t,value:n},()=>console.log(n))}const t=Number(e.bytes);if(!Number.isInteger(t)||t<1||t>nt)return de(e,"InvalidBytes","--bytes must be an integer in 1..1048576.",2);const n=String(e.encoding),o=O(t).toString(n);fe(e,{kind:"bytes",bytes:t,encoding:n,value:o},()=>console.log(o))}};function rt(){return new Promise((e,t)=>{const n=T();n.unref(),n.on("error",t),n.listen(0,()=>{const t=n.address(),o="object"==typeof t&&t?t.port:0;e({port:o,close:()=>n.close()})})})}const st={command:"port",describe:"Find a free port, or check whether a specific port is available",builder:e=>ce(e).option("check",{alias:"c",describe:"Check if this specific port is free",type:"number"}).option("count",{alias:"n",describe:"Return this many distinct free ports",type:"number",default:1}).example("mfn port --json","one free port").example("mfn port -n 3 --json","three free ports").example("mfn port -c 3000 --json","is port 3000 free?"),handler:async e=>{if(void 0!==e.check){const t=Number(e.check);if(!Number.isInteger(t)||t<1||t>65535)return de(e,"InvalidPort","--check must be an integer in 1..65535.",2);const n=await function(e){return new Promise(t=>{const n=T();n.unref(),n.on("error",()=>t(!1)),n.listen(e,()=>n.close(()=>t(!0)))})}(t);return fe(e,{port:t,available:n},()=>console.log(`${t} is ${n?"free":"in use"}`))}const t=Number(e.count);if(!Number.isInteger(t)||t<1)return de(e,"InvalidCount","--count must be a positive integer.",2);const n=[];try{for(;n.length<t;){const e=await rt();n.push(e)}}catch(t){n.forEach(e=>e.close());return de(e,"PortError",`Could not allocate a free port: ${t instanceof Error?t.message:String(t)}`)}const o=n.map(e=>e.port);n.forEach(e=>e.close()),fe(e,{count:t,ports:o,port:o[0]},()=>o.forEach(e=>console.log(e)))}},at=e=>function(e){return{add:(t,n,o,r)=>{e.command({command:t,describe:n,builder:o,handler:r})}}}(ae).add(e.command,e.describe,e.builder,e.handler);at(Qe),at(Ke),at(Xe),at(tt),at(ot),at(Ce),at(ze),at(Ne),at(st),at(Ge),at(Se),at(xe),at(Ze),ae.usage("mfn <command> [options]\n\nMaster CLI for developers and AI agents — headless, JSON-first commands that\nreplace boilerplate agents regenerate on every machine. Every command supports\n--json (machine output) and -h/--help (this text).").version(te).alias("version","v").help().alias("help","h").epilogue("Discover every command (machine-readable): mfn capabilities --json\nAgent contract & examples: see llms.txt in this package.\nDocs: https://github.com/Master4Novice/master-cli#readme").wrap(null).strict().demandCommand(1,"No command given. Run `mfn capabilities` to list commands.").fail((e,t)=>{t&&he("CommandError",t.message||String(t),1),he("UsageError",e||"Invalid command invocation.",2)}).parse();
|
|
36
36
|
//# sourceMappingURL=index.js.map
|
package/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../node_modules/yargs/build/lib/utils/process-argv.js","../../node_modules/yargs-parser/build/lib/string-utils.js","../../node_modules/yargs-parser/build/lib/yargs-parser-types.js","../../node_modules/yargs-parser/build/lib/yargs-parser.js","../../node_modules/yargs-parser/build/lib/index.js","../../node_modules/yargs-parser/build/lib/tokenize-arg-string.js","../../node_modules/y18n/build/lib/platform-shims/node.js","../../node_modules/y18n/build/lib/index.js","../../node_modules/yargs/lib/platform-shims/esm.mjs","../../node_modules/y18n/index.mjs","../../src/utility/index.ts","../../src/catalog.ts","../../src/logo/draw.ts","../../src/instance/index.ts","../../src/utility/io.ts","../../src/commands/cts.ts","../../src/commands/sc.ts","../../src/commands/deco.ts","../../src/commands/date.ts","../../src/commands/epoch.ts","../../src/commands/kill.ts","../../src/commands/update.ts","../../src/commands/capabilities.ts","../../src/commands/id.ts","../../src/commands/hash.ts","../../src/commands/encode.ts","../../src/commands/random.ts","../../src/commands/port.ts","../../src/index.ts"],"sourcesContent":["function getProcessArgvBinIndex() {\n if (isBundledElectronApp())\n return 0;\n return 1;\n}\nfunction isBundledElectronApp() {\n return isElectronApp() && !process.defaultApp;\n}\nfunction isElectronApp() {\n return !!process.versions.electron;\n}\nexport function hideBin(argv) {\n return argv.slice(getProcessArgvBinIndex() + 1);\n}\nexport function getProcessArgvBin() {\n return process.argv[getProcessArgvBinIndex()];\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number')\n return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n }\n else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2], true);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n }\n else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0])\n ? val.substring(1, val.length - 1)\n : val;\n}\n","/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n * CJS and ESM environments.\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 12;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n // TODO: figure out a way to combine ESM and CJS coverage, such that\n // we can exercise all the lines below:\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n","import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n fs: {\n readFileSync,\n writeFile\n },\n format,\n resolve,\n exists: (file) => {\n try {\n return statSync(file).isFile();\n }\n catch (err) {\n return false;\n }\n }\n};\n","let shim;\nclass Y18N {\n constructor(opts) {\n // configurable options.\n opts = opts || {};\n this.directory = opts.directory || './locales';\n this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n this.locale = opts.locale || 'en';\n this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n // internal stuff.\n this.cache = Object.create(null);\n this.writeQueue = [];\n }\n __(...args) {\n if (typeof arguments[0] !== 'string') {\n return this._taggedLiteral(arguments[0], ...arguments);\n }\n const str = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n cb = cb || function () { }; // noop.\n if (!this.cache[this.locale])\n this._readLocaleFile();\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][str] && this.updateFiles) {\n this.cache[this.locale][str] = str;\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n }\n __n() {\n const args = Array.prototype.slice.call(arguments);\n const singular = args.shift();\n const plural = args.shift();\n const quantity = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n if (!this.cache[this.locale])\n this._readLocaleFile();\n let str = quantity === 1 ? singular : plural;\n if (this.cache[this.locale][singular]) {\n const entry = this.cache[this.locale][singular];\n str = entry[quantity === 1 ? 'one' : 'other'];\n }\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][singular] && this.updateFiles) {\n this.cache[this.locale][singular] = {\n one: singular,\n other: plural\n };\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n // if a %d placeholder is provided, add quantity\n // to the arguments expanded by util.format.\n const values = [str];\n if (~str.indexOf('%d'))\n values.push(quantity);\n return shim.format.apply(shim.format, values.concat(args));\n }\n setLocale(locale) {\n this.locale = locale;\n }\n getLocale() {\n return this.locale;\n }\n updateLocale(obj) {\n if (!this.cache[this.locale])\n this._readLocaleFile();\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.cache[this.locale][key] = obj[key];\n }\n }\n }\n _taggedLiteral(parts, ...args) {\n let str = '';\n parts.forEach(function (part, i) {\n const arg = args[i + 1];\n str += part;\n if (typeof arg !== 'undefined') {\n str += '%s';\n }\n });\n return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n }\n _enqueueWrite(work) {\n this.writeQueue.push(work);\n if (this.writeQueue.length === 1)\n this._processWriteQueue();\n }\n _processWriteQueue() {\n const _this = this;\n const work = this.writeQueue[0];\n // destructure the enqueued work.\n const directory = work.directory;\n const locale = work.locale;\n const cb = work.cb;\n const languageFile = this._resolveLocaleFile(directory, locale);\n const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n _this.writeQueue.shift();\n if (_this.writeQueue.length > 0)\n _this._processWriteQueue();\n cb(err);\n });\n }\n _readLocaleFile() {\n let localeLookup = {};\n const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n try {\n // When using a bundler such as webpack, readFileSync may not be defined:\n if (shim.fs.readFileSync) {\n localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n }\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n err.message = 'syntax error in ' + languageFile;\n }\n if (err.code === 'ENOENT')\n localeLookup = {};\n else\n throw err;\n }\n this.cache[this.locale] = localeLookup;\n }\n _resolveLocaleFile(directory, locale) {\n let file = shim.resolve(directory, './', locale + '.json');\n if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n // attempt fallback to language only\n const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n if (this._fileExistsSync(languageFile))\n file = languageFile;\n }\n return file;\n }\n _fileExistsSync(file) {\n return shim.exists(file);\n }\n}\nexport function y18n(opts, _shim) {\n shim = _shim;\n const y18n = new Y18N(opts);\n return {\n __: y18n.__.bind(y18n),\n __n: y18n.__n.bind(y18n),\n setLocale: y18n.setLocale.bind(y18n),\n getLocale: y18n.getLocale.bind(y18n),\n updateLocale: y18n.updateLocale.bind(y18n),\n locale: y18n.locale\n };\n}\n","'use strict'\n\nimport { notStrictEqual, strictEqual } from 'assert'\nimport cliui from 'cliui'\nimport escalade from 'escalade/sync'\nimport { inspect } from 'util'\nimport { readFileSync } from 'fs'\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser'\nimport { basename, dirname, extname, relative, resolve } from 'path'\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js'\nimport { YError } from '../../build/lib/yerror.js'\nimport y18n from 'y18n'\n\nconst REQUIRE_ERROR = 'require is not supported by ESM'\nconst REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM'\n\nlet __dirname;\ntry {\n __dirname = fileURLToPath(import.meta.url);\n} catch (e) {\n __dirname = process.cwd();\n}\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\n\nexport default {\n assert: {\n notStrictEqual,\n strictEqual\n },\n cliui,\n findUp: escalade,\n getEnv: (key) => {\n return process.env[key]\n },\n inspect,\n getCallerFile: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n getProcessArgvBin,\n mainFilename: mainFilename || process.cwd(),\n Parser,\n path: {\n basename,\n dirname,\n extname,\n relative,\n resolve\n },\n process: {\n argv: () => process.argv,\n cwd: process.cwd,\n emitWarning: (warning, type) => process.emitWarning(warning, type),\n execPath: () => process.execPath,\n exit: process.exit,\n nextTick: process.nextTick,\n stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n },\n readFileSync,\n require: () => {\n throw new YError(REQUIRE_ERROR)\n },\n requireDirectory: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n stringWidth: (str) => {\n return [...str].length\n },\n y18n: y18n({\n directory: resolve(__dirname, '../../../locales'),\n updateFiles: false\n })\n}\n","import shim from './build/lib/platform-shims/node.js'\nimport { y18n as _y18n } from './build/lib/index.js'\n\nconst y18n = (opts) => {\n return _y18n(opts, shim)\n}\n\nexport default y18n\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["getProcessArgvBinIndex","process","versions","electron","defaultApp","camelCase","str","toLowerCase","toUpperCase","indexOf","camelcase","nextChrUpper","leadingHyphens","match","i","length","chr","charAt","DefaultValuesForTypeKey","mixin","increment","orig","undefined","sanitizeKey","key","_a","_b","_c","minNodeVersion","env","YARGS_MIN_NODE_VERSION","Number","nodeVersion","node","version","slice","Error","constructor","_mixin","parse","argsInput","options","opts","Object","assign","alias","array","boolean","config","configObjects","configuration","coerce","count","default","envPrefix","narg","normalize","string","number","__","args","argString","Array","isArray","map","e","trim","prevC","c","opening","ii","tokenizeArgString","inputIsString","aliases","aliasArrays","combined","create","change","keys","forEach","push","concat","filter","v","splice","aliasArray","lastAlias","self","pop","combineAliases","defaults","notFlagsOption","notFlagsArgv","newAliases","defaulted","format","flags","arrays","bools","strings","numbers","counts","configs","nargs","coercions","negative","negatedBoolean","RegExp","Boolean","opt","assignment","entries","value","obj","x","test","joinString","lowercase","notCamelcase","chrLower","chrString","decamelize","y","extendAliases","error","find","checkAllAliases","notFlags","argv","_","argvReturn","arg","truncatedArg","replace","broken","letters","m","next","isUnknownOptionAsArg","pushPositional","eatArray","eatNargs","setArg","defaultValue","split","j","maybeCoercedNumber","maybeCoerceNumber","argAfterEqualSign","toEat","isNaN","isUndefined","available","consumed","Math","min","argsToSet","nargsCount","defVal","processValue","val","shouldStripQuotes","prop","join","addNewAlias","splitKey","setKey","keyProperties","a","shift","includes","defineProperty","enumerable","get","set","substring","stripQuotes","isSafeInteger","floor","parseFloat","setConfigObject","prev","fullKey","hasKey","applyEnvVars","configOnly","prefix","envVar","lastIndexOf","applyDefaultsAndAliases","canLog","o","isTypeArray","isValueArray","duplicate","flag","toCheck","setAlias","hasAnyFlag","flagsKeys","k","some","hasAllFlags","hasAllShortFlags","patterns","pattern","hasFlagsMatching","isUnknownOption","type","BOOLEAN","STRING","NUMBER","ARRAY","guessType","num","configLookup","configKey","configPath","resolvedConfigPath","resolve","cwd","resolveConfig","require","ex","name","setConfig","configObject","applied","Set","has","ali","add","err","applyCoercions","setPlaceholderKeys","path","JSON","readFileSync","shim$1","fs","writeFile","exists","file","statSync","isFile","shim","Y18N","this","directory","updateFiles","locale","fallbackToLanguage","cache","writeQueue","arguments","_taggedLiteral","cb","_readLocaleFile","_enqueueWrite","apply","__n","prototype","call","singular","plural","quantity","one","other","values","setLocale","getLocale","updateLocale","hasOwnProperty","parts","part","work","_processWriteQueue","_this","languageFile","_resolveLocaleFile","serializedLocale","stringify","localeLookup","SyntaxError","message","code","_fileExistsSync","__dirname","fileURLToPath","url","exit","nextTick","stdout","columns","_shim","y18n","bind","_y18n","stamp","Date","toISOString","Logger","info","console","chalk","blue","magenta","white","warn","yellow","red","debug","cyan","getCacheDirectory","homeDir","os","homedir","colorQuestions","green","async","saveIgnoresToCache","ignore","cachePath","fsExtra","writeJson","spaces","COMMANDS","summary","examples","TIPS","sep","color","hex","repeat","cacheDir","existsSync","mkdirSync","recursive","createHiddenCacheDirectory","isTTY","art","text","Promise","reject","figlet","data","box","boxen","bold","padding","margin","top","bottom","left","right","borderStyle","borderColor","dimBorder","user","platform","getCurrentUserName","dot","dim","chips","pkg","gray","arch","clock","now","getEpochNow","iso","timezone","tools","tip","random","out","s","logoWelcome","instance","yargs","mfn","instance$1","scriptName","withJsonFlag","option","describe","wantsJson","json","write","emit","renderHuman","ok","fail","canPrompt","readStdin","stdin","chunks","chunk","Buffer","toString","failEnvelope","logger","CTS_IGNORE_CACHE","DEFAULT_IGNORES","buildTreeText","dirPath","items","readdirSync","item","sort","index","itemPath","isLast","isDir","isDirectory","cts","command","builder","choices","example","handler","ignores","catch","readJson","getIgnoresFromCache","ignoreSet","rootDir","rootName","basename","tree","String","root","endsWith","validateNumberArguments","breadth","svg","height","width","line","treeToSvg","outputFileSync","sharp","from","toFile","SC_IGNORE_CACHE","walk","maxDepth","skip","recurse","dir","depth","withFileTypes","entry","abs","rel","relative","sc","positional","limit","isInteger","all","inquirer","prompt","term","fuzzy","r","original","matches","selected","pageSize","loop","stats","interactive","matched","truncated","log","decodeSegment","segment","deco","demandOption","token","header","payload","exp","expiry","isFinite","expiresInSeconds","round","expired","cyanBright","greenBright","DEFAULT_FORMAT","localZone","Intl","DateTimeFormat","resolvedOptions","timeZone","runDate","targetTz","tz","epochMs","utc","zoned","parseToEpoch","inFormat","inTz","epochInMilliseconds","milliseconds","convertEpochToTimezone","epochInSeconds","table","UTC","Epoch_ms","date","answers","epochToDate","result","convertEpoch","epoch","unit","epochUnit","dateTimeInGMT","local","dateTime","Epoch","Local","GMT","Relative","dateToEpoch","input","Seconds","Milliseconds","Timezone","operation","validate","run","promisify","execFile","PORTS_CACHE","isWin","getProcessId","port","l","pid","killProcessById","killProcess","p","n","ports","cached","getPortsFromCache","found","notFound","f","killed","failed","targets","yes","pids","t","update","package","spinner","ora","startedAt","start","npmInstallGlobal","npmVersion","durationMs","succeed","toFixed","capabilities","bin","conventions","exitCodes","usage","logs","commands","padEnd","generate","randomUUID","bytes","randomBytes","writeUIntBE","h","uuidV7","id","size","ids","nano","ALGOS","hash","algo","encoding","source","readFile","piped","getHashes","digest","createHash","encodeCmd","codec","as","decoding","decode","output","decodeURIComponent","encodeURIComponent","encode","password","alphabet","byte","pick","kind","findFreePortHeld","srv","createServer","unref","on","listen","addr","address","close","check","isFree","held","CommandBuilder","help","epilogue","wrap","strict","demandCommand","msg"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../node_modules/yargs/build/lib/utils/process-argv.js","../../node_modules/yargs-parser/build/lib/string-utils.js","../../node_modules/yargs-parser/build/lib/yargs-parser-types.js","../../node_modules/yargs-parser/build/lib/yargs-parser.js","../../node_modules/yargs-parser/build/lib/index.js","../../node_modules/yargs-parser/build/lib/tokenize-arg-string.js","../../node_modules/y18n/build/lib/platform-shims/node.js","../../node_modules/y18n/build/lib/index.js","../../node_modules/yargs/lib/platform-shims/esm.mjs","../../node_modules/y18n/index.mjs","../../src/utility/index.ts","../../src/catalog.ts","../../src/logo/draw.ts","../../src/instance/index.ts","../../src/utility/io.ts","../../src/commands/cts.ts","../../src/commands/sc.ts","../../src/commands/deco.ts","../../src/commands/date.ts","../../src/commands/epoch.ts","../../src/commands/kill.ts","../../src/commands/update.ts","../../src/commands/capabilities.ts","../../src/commands/id.ts","../../src/commands/hash.ts","../../src/commands/encode.ts","../../src/commands/random.ts","../../src/commands/port.ts","../../src/index.ts"],"sourcesContent":["function getProcessArgvBinIndex() {\n if (isBundledElectronApp())\n return 0;\n return 1;\n}\nfunction isBundledElectronApp() {\n return isElectronApp() && !process.defaultApp;\n}\nfunction isElectronApp() {\n return !!process.versions.electron;\n}\nexport function hideBin(argv) {\n return argv.slice(getProcessArgvBinIndex() + 1);\n}\nexport function getProcessArgvBin() {\n return process.argv[getProcessArgvBinIndex()];\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number')\n return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n }\n else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2], true);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n }\n else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0])\n ? val.substring(1, val.length - 1)\n : val;\n}\n","/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n * CJS and ESM environments.\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 12;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n // TODO: figure out a way to combine ESM and CJS coverage, such that\n // we can exercise all the lines below:\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n","import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n fs: {\n readFileSync,\n writeFile\n },\n format,\n resolve,\n exists: (file) => {\n try {\n return statSync(file).isFile();\n }\n catch (err) {\n return false;\n }\n }\n};\n","let shim;\nclass Y18N {\n constructor(opts) {\n // configurable options.\n opts = opts || {};\n this.directory = opts.directory || './locales';\n this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n this.locale = opts.locale || 'en';\n this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n // internal stuff.\n this.cache = Object.create(null);\n this.writeQueue = [];\n }\n __(...args) {\n if (typeof arguments[0] !== 'string') {\n return this._taggedLiteral(arguments[0], ...arguments);\n }\n const str = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n cb = cb || function () { }; // noop.\n if (!this.cache[this.locale])\n this._readLocaleFile();\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][str] && this.updateFiles) {\n this.cache[this.locale][str] = str;\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n }\n __n() {\n const args = Array.prototype.slice.call(arguments);\n const singular = args.shift();\n const plural = args.shift();\n const quantity = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n if (!this.cache[this.locale])\n this._readLocaleFile();\n let str = quantity === 1 ? singular : plural;\n if (this.cache[this.locale][singular]) {\n const entry = this.cache[this.locale][singular];\n str = entry[quantity === 1 ? 'one' : 'other'];\n }\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][singular] && this.updateFiles) {\n this.cache[this.locale][singular] = {\n one: singular,\n other: plural\n };\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n // if a %d placeholder is provided, add quantity\n // to the arguments expanded by util.format.\n const values = [str];\n if (~str.indexOf('%d'))\n values.push(quantity);\n return shim.format.apply(shim.format, values.concat(args));\n }\n setLocale(locale) {\n this.locale = locale;\n }\n getLocale() {\n return this.locale;\n }\n updateLocale(obj) {\n if (!this.cache[this.locale])\n this._readLocaleFile();\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.cache[this.locale][key] = obj[key];\n }\n }\n }\n _taggedLiteral(parts, ...args) {\n let str = '';\n parts.forEach(function (part, i) {\n const arg = args[i + 1];\n str += part;\n if (typeof arg !== 'undefined') {\n str += '%s';\n }\n });\n return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n }\n _enqueueWrite(work) {\n this.writeQueue.push(work);\n if (this.writeQueue.length === 1)\n this._processWriteQueue();\n }\n _processWriteQueue() {\n const _this = this;\n const work = this.writeQueue[0];\n // destructure the enqueued work.\n const directory = work.directory;\n const locale = work.locale;\n const cb = work.cb;\n const languageFile = this._resolveLocaleFile(directory, locale);\n const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n _this.writeQueue.shift();\n if (_this.writeQueue.length > 0)\n _this._processWriteQueue();\n cb(err);\n });\n }\n _readLocaleFile() {\n let localeLookup = {};\n const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n try {\n // When using a bundler such as webpack, readFileSync may not be defined:\n if (shim.fs.readFileSync) {\n localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n }\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n err.message = 'syntax error in ' + languageFile;\n }\n if (err.code === 'ENOENT')\n localeLookup = {};\n else\n throw err;\n }\n this.cache[this.locale] = localeLookup;\n }\n _resolveLocaleFile(directory, locale) {\n let file = shim.resolve(directory, './', locale + '.json');\n if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n // attempt fallback to language only\n const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n if (this._fileExistsSync(languageFile))\n file = languageFile;\n }\n return file;\n }\n _fileExistsSync(file) {\n return shim.exists(file);\n }\n}\nexport function y18n(opts, _shim) {\n shim = _shim;\n const y18n = new Y18N(opts);\n return {\n __: y18n.__.bind(y18n),\n __n: y18n.__n.bind(y18n),\n setLocale: y18n.setLocale.bind(y18n),\n getLocale: y18n.getLocale.bind(y18n),\n updateLocale: y18n.updateLocale.bind(y18n),\n locale: y18n.locale\n };\n}\n","'use strict'\n\nimport { notStrictEqual, strictEqual } from 'assert'\nimport cliui from 'cliui'\nimport escalade from 'escalade/sync'\nimport { inspect } from 'util'\nimport { readFileSync } from 'fs'\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser'\nimport { basename, dirname, extname, relative, resolve } from 'path'\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js'\nimport { YError } from '../../build/lib/yerror.js'\nimport y18n from 'y18n'\n\nconst REQUIRE_ERROR = 'require is not supported by ESM'\nconst REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM'\n\nlet __dirname;\ntry {\n __dirname = fileURLToPath(import.meta.url);\n} catch (e) {\n __dirname = process.cwd();\n}\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\n\nexport default {\n assert: {\n notStrictEqual,\n strictEqual\n },\n cliui,\n findUp: escalade,\n getEnv: (key) => {\n return process.env[key]\n },\n inspect,\n getCallerFile: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n getProcessArgvBin,\n mainFilename: mainFilename || process.cwd(),\n Parser,\n path: {\n basename,\n dirname,\n extname,\n relative,\n resolve\n },\n process: {\n argv: () => process.argv,\n cwd: process.cwd,\n emitWarning: (warning, type) => process.emitWarning(warning, type),\n execPath: () => process.execPath,\n exit: process.exit,\n nextTick: process.nextTick,\n stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n },\n readFileSync,\n require: () => {\n throw new YError(REQUIRE_ERROR)\n },\n requireDirectory: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n stringWidth: (str) => {\n return [...str].length\n },\n y18n: y18n({\n directory: resolve(__dirname, '../../../locales'),\n updateFiles: false\n })\n}\n","import shim from './build/lib/platform-shims/node.js'\nimport { y18n as _y18n } from './build/lib/index.js'\n\nconst y18n = (opts) => {\n return _y18n(opts, shim)\n}\n\nexport default y18n\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["getProcessArgvBinIndex","process","versions","electron","defaultApp","camelCase","str","toLowerCase","toUpperCase","indexOf","camelcase","nextChrUpper","leadingHyphens","match","i","length","chr","charAt","DefaultValuesForTypeKey","mixin","increment","orig","undefined","sanitizeKey","key","_a","_b","_c","minNodeVersion","env","YARGS_MIN_NODE_VERSION","Number","nodeVersion","node","version","slice","Error","constructor","_mixin","parse","argsInput","options","opts","Object","assign","alias","array","boolean","config","configObjects","configuration","coerce","count","default","envPrefix","narg","normalize","string","number","__","args","argString","Array","isArray","map","e","trim","prevC","c","opening","ii","tokenizeArgString","inputIsString","aliases","aliasArrays","combined","create","change","keys","forEach","push","concat","filter","v","splice","aliasArray","lastAlias","self","pop","combineAliases","defaults","notFlagsOption","notFlagsArgv","newAliases","defaulted","format","flags","arrays","bools","strings","numbers","counts","configs","nargs","coercions","negative","negatedBoolean","RegExp","Boolean","opt","assignment","entries","value","obj","x","test","joinString","lowercase","notCamelcase","chrLower","chrString","decamelize","y","extendAliases","error","find","checkAllAliases","notFlags","argv","_","argvReturn","arg","truncatedArg","replace","broken","letters","m","next","isUnknownOptionAsArg","pushPositional","eatArray","eatNargs","setArg","defaultValue","split","j","maybeCoercedNumber","maybeCoerceNumber","argAfterEqualSign","toEat","isNaN","isUndefined","available","consumed","Math","min","argsToSet","nargsCount","defVal","processValue","val","shouldStripQuotes","prop","join","addNewAlias","splitKey","setKey","keyProperties","a","shift","includes","defineProperty","enumerable","get","set","substring","stripQuotes","isSafeInteger","floor","parseFloat","setConfigObject","prev","fullKey","hasKey","applyEnvVars","configOnly","prefix","envVar","lastIndexOf","applyDefaultsAndAliases","canLog","o","isTypeArray","isValueArray","duplicate","flag","toCheck","setAlias","hasAnyFlag","flagsKeys","k","some","hasAllFlags","hasAllShortFlags","patterns","pattern","hasFlagsMatching","isUnknownOption","type","BOOLEAN","STRING","NUMBER","ARRAY","guessType","num","configLookup","configKey","configPath","resolvedConfigPath","resolve","cwd","resolveConfig","require","ex","name","setConfig","configObject","applied","Set","has","ali","add","err","applyCoercions","setPlaceholderKeys","path","JSON","readFileSync","shim$1","fs","writeFile","exists","file","statSync","isFile","shim","Y18N","this","directory","updateFiles","locale","fallbackToLanguage","cache","writeQueue","arguments","_taggedLiteral","cb","_readLocaleFile","_enqueueWrite","apply","__n","prototype","call","singular","plural","quantity","one","other","values","setLocale","getLocale","updateLocale","hasOwnProperty","parts","part","work","_processWriteQueue","_this","languageFile","_resolveLocaleFile","serializedLocale","stringify","localeLookup","SyntaxError","message","code","_fileExistsSync","__dirname","fileURLToPath","url","exit","nextTick","stdout","columns","_shim","y18n","bind","_y18n","stamp","Date","toISOString","Logger","info","console","chalk","blue","magenta","white","warn","yellow","red","debug","cyan","getCacheDirectory","homeDir","os","homedir","colorQuestions","green","async","saveIgnoresToCache","ignore","cachePath","fsExtra","writeJson","spaces","COMMANDS","summary","examples","TIPS","sep","color","hex","repeat","cacheDir","existsSync","mkdirSync","recursive","createHiddenCacheDirectory","isTTY","art","text","Promise","reject","figlet","data","box","boxen","bold","padding","margin","top","bottom","left","right","borderStyle","borderColor","dimBorder","user","platform","getCurrentUserName","dot","dim","chips","pkg","gray","arch","clock","now","getEpochNow","iso","timezone","tools","tip","random","out","s","logoWelcome","instance","yargs","mfn","instance$1","scriptName","withJsonFlag","option","describe","wantsJson","json","write","emit","renderHuman","ok","fail","canPrompt","readStdin","stdin","chunks","chunk","Buffer","toString","failEnvelope","logger","CTS_IGNORE_CACHE","DEFAULT_IGNORES","buildTreeText","dirPath","items","readdirSync","item","sort","index","itemPath","isLast","isDir","isDirectory","cts","command","builder","choices","example","handler","ignores","catch","readJson","getIgnoresFromCache","ignoreSet","rootDir","rootName","basename","tree","String","root","endsWith","validateNumberArguments","breadth","svg","height","width","line","treeToSvg","outputFileSync","sharp","from","toFile","SC_IGNORE_CACHE","walk","maxDepth","skip","recurse","dir","depth","withFileTypes","entry","abs","rel","relative","sc","positional","limit","isInteger","all","inquirer","prompt","term","fuzzy","r","original","matches","selected","pageSize","loop","stats","interactive","matched","truncated","log","decodeSegment","segment","deco","demandOption","token","header","payload","exp","expiry","isFinite","expiresInSeconds","round","expired","cyanBright","greenBright","DEFAULT_FORMAT","localZone","Intl","DateTimeFormat","resolvedOptions","timeZone","runDate","targetTz","tz","epochMs","utc","zoned","parseToEpoch","inFormat","inTz","epochInMilliseconds","milliseconds","convertEpochToTimezone","epochInSeconds","table","UTC","Epoch_ms","date","answers","epochToDate","result","convertEpoch","epoch","unit","epochUnit","dateTimeInGMT","local","dateTime","Epoch","Local","GMT","Relative","dateToEpoch","input","Seconds","Milliseconds","Timezone","operation","validate","run","promisify","execFile","PORTS_CACHE","isWin","getProcessId","port","l","pid","killProcessById","killProcess","p","n","ports","cached","getPortsFromCache","found","notFound","f","killed","failed","targets","yes","pids","t","update","package","spinner","ora","startedAt","start","npmInstallGlobal","npmVersion","durationMs","succeed","toFixed","capabilities","bin","conventions","exitCodes","usage","logs","commands","padEnd","generate","randomUUID","bytes","randomBytes","writeUIntBE","h","uuidV7","MAX_COUNT","id","size","ids","nano","ALGOS","hash","algo","encoding","source","readFile","piped","getHashes","digest","createHash","VALID","base64","base64url","encodeCmd","codec","as","decoding","decode","output","decodeURIComponent","compact","encodeURIComponent","encode","MAX_BYTES","password","alphabet","byte","pick","kind","findFreePortHeld","srv","createServer","unref","on","listen","addr","address","close","check","isFree","held","CommandBuilder","help","epilogue","wrap","strict","demandCommand","msg"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@master4n/master-cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "AI-agent-friendly command-line toolkit: timestamp/date conversion, JWT decoding, port killing, file finding, and directory trees — headless, --json, with a self-describing manifest.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|