🚨 Active Supply Chain Attack:node-ipc Package Compromised.Learn More
Socket
Book a DemoSign in
Socket

@node-cli/parser

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@node-cli/parser - npm Package Compare versions

Comparing version
2.2.0
to
2.2.1
+4
-3
dist/parser.js

@@ -1,2 +0,3 @@

import { meowOptionsHelper, meowParserHelper, shallowMerge } from "./utilities.js";
import { meowOptionsHelper, meowParserHelper } from "./utilities.js";
import { fastMerge } from "@node-cli/utilities";
import meow from "meow";

@@ -16,4 +17,4 @@ export const parser = (configuration)=>{

showHelp: cli.showHelp,
flags: shallowMerge(defaultFlags, cli.flags),
parameters: shallowMerge(defaultParameters, cli.input)
flags: fastMerge(defaultFlags, cli.flags),
parameters: fastMerge(defaultParameters, cli.input)
};

@@ -20,0 +21,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/parser.ts"],"sourcesContent":["import {\n\tmeowOptionsHelper,\n\tmeowParserHelper,\n\tshallowMerge,\n} from \"./utilities.js\";\n\nimport meow from \"meow\";\n\ntype Flags = {\n\t[key: string]: {\n\t\tshortFlag?: string;\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t\ttype: string;\n\t};\n};\ntype Parameters = {\n\t[key: string]: {\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t};\n};\ntype Restriction = {\n\texit: number;\n\tmessage: string | (() => void);\n\ttest: (value: any) => boolean;\n};\n\nexport type ParserConfiguration = {\n\tmeta: any;\n\tflags?: Flags;\n\tparameters?: Parameters;\n\tusage?: boolean | string;\n\texamples?:\n\t\t| string\n\t\t| { command?: string; description?: string; comment?: string }[];\n\tdefaultFlags?: any;\n\tdefaultParameters?: any;\n\trestrictions?: Restriction[];\n};\n\nexport const parser = (configuration: ParserConfiguration) => {\n\tconst {\n\t\tmeta,\n\t\tdefaultFlags = {},\n\t\tdefaultParameters = {},\n\t\trestrictions,\n\t\t...others\n\t} = configuration;\n\tconst { helpText, options } = meowOptionsHelper(others);\n\tconst cli = meow(helpText, {\n\t\t...options,\n\t\timportMeta: meta,\n\t});\n\tmeowParserHelper({ cli, restrictions });\n\n\treturn {\n\t\tshowHelp: cli.showHelp,\n\t\tflags: shallowMerge(defaultFlags, cli.flags),\n\t\tparameters: shallowMerge(defaultParameters, cli.input),\n\t};\n};\n"],"names":["meowOptionsHelper","meowParserHelper","shallowMerge","meow","parser","configuration","meta","defaultFlags","defaultParameters","restrictions","others","helpText","options","cli","importMeta","showHelp","flags","parameters","input"],"mappings":"AAAA,SACCA,iBAAiB,EACjBC,gBAAgB,EAChBC,YAAY,QACN,iBAAiB;AAExB,OAAOC,UAAU,OAAO;AAmCxB,OAAO,MAAMC,SAAS,CAACC;IACtB,MAAM,EACLC,KAAI,EACJC,cAAe,CAAC,EAAC,EACjBC,mBAAoB,CAAC,EAAC,EACtBC,aAAY,EACZ,GAAGC,QACH,GAAGL;IACJ,MAAM,EAAEM,SAAQ,EAAEC,QAAO,EAAE,GAAGZ,kBAAkBU;IAChD,MAAMG,MAAMV,KAAKQ,UAAU;QAC1B,GAAGC,OAAO;QACVE,YAAYR;IACb;IACAL,iBAAiB;QAAEY;QAAKJ;IAAa;IAErC,OAAO;QACNM,UAAUF,IAAIE;QACdC,OAAOd,aAAaK,cAAcM,IAAIG;QACtCC,YAAYf,aAAaM,mBAAmBK,IAAIK;IACjD;AACD,EAAE"}
{"version":3,"sources":["../src/parser.ts"],"sourcesContent":["import { meowOptionsHelper, meowParserHelper } from \"./utilities.js\";\n\nimport { fastMerge } from \"@node-cli/utilities\";\nimport meow from \"meow\";\n\ntype Flags = {\n\t[key: string]: {\n\t\tshortFlag?: string;\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t\ttype: string;\n\t};\n};\ntype Parameters = {\n\t[key: string]: {\n\t\tdefault?: string | number | boolean;\n\t\tdescription: string;\n\t};\n};\ntype Restriction = {\n\texit: number;\n\tmessage: string | (() => void);\n\ttest: (value: any) => boolean;\n};\n\nexport type ParserConfiguration = {\n\tmeta: any;\n\tflags?: Flags;\n\tparameters?: Parameters;\n\tusage?: boolean | string;\n\texamples?:\n\t\t| string\n\t\t| { command?: string; description?: string; comment?: string }[];\n\tdefaultFlags?: any;\n\tdefaultParameters?: any;\n\trestrictions?: Restriction[];\n};\n\nexport const parser = (configuration: ParserConfiguration) => {\n\tconst {\n\t\tmeta,\n\t\tdefaultFlags = {},\n\t\tdefaultParameters = {},\n\t\trestrictions,\n\t\t...others\n\t} = configuration;\n\tconst { helpText, options } = meowOptionsHelper(others);\n\tconst cli = meow(helpText, {\n\t\t...options,\n\t\timportMeta: meta,\n\t});\n\tmeowParserHelper({ cli, restrictions });\n\n\treturn {\n\t\tshowHelp: cli.showHelp,\n\t\tflags: fastMerge(defaultFlags, cli.flags),\n\t\tparameters: fastMerge(defaultParameters, cli.input),\n\t};\n};\n"],"names":["meowOptionsHelper","meowParserHelper","fastMerge","meow","parser","configuration","meta","defaultFlags","defaultParameters","restrictions","others","helpText","options","cli","importMeta","showHelp","flags","parameters","input"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,gBAAgB,QAAQ,iBAAiB;AAErE,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAOC,UAAU,OAAO;AAmCxB,OAAO,MAAMC,SAAS,CAACC;IACtB,MAAM,EACLC,KAAI,EACJC,cAAe,CAAC,EAAC,EACjBC,mBAAoB,CAAC,EAAC,EACtBC,aAAY,EACZ,GAAGC,QACH,GAAGL;IACJ,MAAM,EAAEM,SAAQ,EAAEC,QAAO,EAAE,GAAGZ,kBAAkBU;IAChD,MAAMG,MAAMV,KAAKQ,UAAU;QAC1B,GAAGC,OAAO;QACVE,YAAYR;IACb;IACAL,iBAAiB;QAAEY;QAAKJ;IAAa;IAErC,OAAO;QACNM,UAAUF,IAAIE;QACdC,OAAOd,UAAUK,cAAcM,IAAIG;QACnCC,YAAYf,UAAUM,mBAAmBK,IAAIK;IAC9C;AACD,EAAE"}

@@ -1,22 +0,1 @@

/**
* Wrapper method for lodash `merge()` and `mergeWith()` methods.
*
* Without the `customizer` function, this method recursively merges own and inherited
* enumerable string keyed properties of source objects into the destination object.
* Source properties that resolve to undefined are skipped if a destination value exists.
* Array and plain object properties are merged recursively. Other objects and value
* types are overridden by assignment. Source objects are applied from left to right.
* Subsequent sources overwrite property assignments of previous sources.
*
* With the `customizer` function, the behavior is the same except that `customizer` is
* invoked to produce the merged values of the destination and source properties.
* If customizer returns undefined, merging is handled by the `shallowMerge` instead.
* The customizer is invoked with six arguments: `(objValue, srcValue, key, object,
* source, stack)`
* @param {object} objectA
* @param {object} objectB
* @param {function} customizer
* @returns {object} !! WARNING: this method will mutate objectA
*/
export declare const shallowMerge: (objectA: any, objectB: any, customizer?: any) => object;
export declare const meowOptionsHelper: (parameters_: {

@@ -23,0 +2,0 @@ flags?: any;

/* eslint-disable unicorn/no-process-exit */ import { Logger } from "@node-cli/logger";
import Table from "cli-table3";
import _ from "lodash";
import kleur from "kleur";
import path from "node:path";
import { upperFirst } from "@node-cli/utilities";
const logger = new Logger();
/**
* Converts the first character of string to upper case
* @param {string} string_ the string to convert
* @returns {string} the converted string
*/ const upperFirst = (string_)=>string_[0].toUpperCase() + string_.slice(1);
/**
* Wrapper method for lodash `merge()` and `mergeWith()` methods.
*
* Without the `customizer` function, this method recursively merges own and inherited
* enumerable string keyed properties of source objects into the destination object.
* Source properties that resolve to undefined are skipped if a destination value exists.
* Array and plain object properties are merged recursively. Other objects and value
* types are overridden by assignment. Source objects are applied from left to right.
* Subsequent sources overwrite property assignments of previous sources.
*
* With the `customizer` function, the behavior is the same except that `customizer` is
* invoked to produce the merged values of the destination and source properties.
* If customizer returns undefined, merging is handled by the `shallowMerge` instead.
* The customizer is invoked with six arguments: `(objValue, srcValue, key, object,
* source, stack)`
* @param {object} objectA
* @param {object} objectB
* @param {function} customizer
* @returns {object} !! WARNING: this method will mutate objectA
*/ export const shallowMerge = (objectA, objectB, customizer)=>{
return typeof customizer === "function" ? _.mergeWith(objectA, objectB, customizer) : _.merge(objectA, objectB);
};
export const meowOptionsHelper = (parameters_)=>{

@@ -35,0 +8,0 @@ let { usage , flags , parameters , examples } = parameters_;

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/utilities.ts"],"sourcesContent":["/* eslint-disable unicorn/no-process-exit */\n\nimport { Logger } from \"@node-cli/logger\";\nimport Table from \"cli-table3\";\nimport _ from \"lodash\";\nimport kleur from \"kleur\";\nimport path from \"node:path\";\nconst logger = new Logger();\n\n/**\n * Converts the first character of string to upper case\n * @param {string} string_ the string to convert\n * @returns {string} the converted string\n */\nconst upperFirst = (string_: string): string =>\n\tstring_[0].toUpperCase() + string_.slice(1);\n\n/**\n * Wrapper method for lodash `merge()` and `mergeWith()` methods.\n *\n * Without the `customizer` function, this method recursively merges own and inherited\n * enumerable string keyed properties of source objects into the destination object.\n * Source properties that resolve to undefined are skipped if a destination value exists.\n * Array and plain object properties are merged recursively. Other objects and value\n * types are overridden by assignment. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * With the `customizer` function, the behavior is the same except that `customizer` is\n * invoked to produce the merged values of the destination and source properties.\n * If customizer returns undefined, merging is handled by the `shallowMerge` instead.\n * The customizer is invoked with six arguments: `(objValue, srcValue, key, object,\n * source, stack)`\n * @param {object} objectA\n * @param {object} objectB\n * @param {function} customizer\n * @returns {object} !! WARNING: this method will mutate objectA\n */\nexport const shallowMerge = (\n\tobjectA: any,\n\tobjectB: any,\n\tcustomizer?: any\n): object => {\n\treturn typeof customizer === \"function\"\n\t\t? _.mergeWith(objectA, objectB, customizer)\n\t\t: _.merge(objectA, objectB);\n};\n\nexport const meowOptionsHelper = (parameters_: {\n\tflags?: any;\n\tparameters?: any;\n\tusage?: any;\n\texamples?: any;\n}) => {\n\tlet { usage, flags, parameters, examples } = parameters_;\n\tlet helpText = \"\",\n\t\tusageText = \"\";\n\tconst commandPrefix = \"> \";\n\tconst options: any = {\n\t\tallowUnknownFlags: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tdescription: false,\n\t\tflags,\n\t};\n\tconst commonTableConfiguration = {\n\t\tchars: {\n\t\t\tbottom: \"\",\n\t\t\t\"bottom-left\": \"\",\n\t\t\t\"bottom-mid\": \"\",\n\t\t\t\"bottom-right\": \"\",\n\t\t\tleft: \"\",\n\t\t\t\"left-mid\": \"\",\n\t\t\tmid: \"\",\n\t\t\t\"mid-mid\": \"\",\n\t\t\tmiddle: \"\",\n\t\t\tright: \"\",\n\t\t\t\"right-mid\": \"\",\n\t\t\ttop: \"\",\n\t\t\t\"top-left\": \"\",\n\t\t\t\"top-mid\": \"\",\n\t\t\t\"top-right\": \"\",\n\t\t},\n\t\tstyle: {\n\t\t\t\"padding-left\": 0,\n\t\t\t\"padding-right\": 2,\n\t\t},\n\t\twordWrap: true,\n\t};\n\n\tif (usage) {\n\t\tif (typeof usage === \"string\") {\n\t\t\tconst optionalParameters = usage.match(/\\[(.*?)]/g);\n\t\t\tconst requiredParameters = usage.match(/<(.*?)>/g);\n\t\t\tif (optionalParameters) {\n\t\t\t\tfor (const item of optionalParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.green(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (requiredParameters) {\n\t\t\t\tfor (const item of requiredParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.red(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${usage}`;\n\t\t}\n\t\tif (typeof usage === \"boolean\") {\n\t\t\tconst processName = path.basename(process.argv[1]);\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${processName}`;\n\t\t\tif (flags) {\n\t\t\t\tusageText += kleur.green(\" [options]\");\n\t\t\t}\n\t\t}\n\t}\n\n\tif (flags) {\n\t\tconst flagsTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n Options:\\n\";\n\n\t\tfor (const item of Object.keys(flags).sort()) {\n\t\t\tconst flag = flags[item];\n\t\t\tconst aliasCell = flag.shortFlag\n\t\t\t\t? ` ${kleur.blue(`-${flag.shortFlag}, --${item}`)}`\n\t\t\t\t: ` ${kleur.blue(` --${item}`)}`;\n\t\t\tconst defaultCell =\n\t\t\t\tflag.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${flag.default})`)}`;\n\t\t\tflagsTable.push([aliasCell, flag.description, defaultCell]);\n\t\t}\n\t\thelpText += flagsTable.toString();\n\t}\n\n\tif (parameters) {\n\t\tconst parametersTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n\";\n\n\t\tfor (const item of Object.keys(parameters).sort()) {\n\t\t\tconst parameter = parameters[item];\n\t\t\tconst headerCell = ` ${upperFirst(item)}:`;\n\t\t\tconst defaultCell =\n\t\t\t\tparameter.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${parameter.default})`)}`;\n\t\t\tparametersTable.push([headerCell, parameter.description, defaultCell]);\n\t\t\tif (typeof usage === \"boolean\") {\n\t\t\t\tusageText += ` ${kleur.green(`[${item}]`)}`;\n\t\t\t}\n\t\t}\n\t\thelpText += parametersTable.toString();\n\t}\n\n\tif (examples) {\n\t\thelpText += \"\\n\\n Examples:\\n\";\n\t\tfor (const item of examples) {\n\t\t\thelpText += `\\n ${kleur.grey(`${item.comment}`)}\\n`;\n\t\t\thelpText += ` ${kleur.blue(`${commandPrefix}${item.command}`)}\\n`;\n\t\t}\n\t}\n\n\treturn {\n\t\thelpText: `\\n${usageText}${helpText}`,\n\t\toptions,\n\t};\n};\n\nexport const meowParserHelper = (parameters: {\n\tcli: any;\n\trestrictions?: any;\n}) => {\n\tconst { cli, restrictions } = parameters;\n\ttry {\n\t\tif (cli.flags.help) {\n\t\t\tcli.showHelp();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\ttry {\n\t\tif (cli.flags.version) {\n\t\t\tcli.showVersion();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\tif (restrictions && restrictions.length > 0) {\n\t\tfor (const rule of restrictions) {\n\t\t\tif (rule.test(cli.flags)) {\n\t\t\t\tlogger.error(rule.message(cli.flags));\n\t\t\t\tprocess.exit(rule.exit);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["Logger","Table","_","kleur","path","logger","upperFirst","string_","toUpperCase","slice","shallowMerge","objectA","objectB","customizer","mergeWith","merge","meowOptionsHelper","parameters_","usage","flags","parameters","examples","helpText","usageText","commandPrefix","options","allowUnknownFlags","autoHelp","autoVersion","description","commonTableConfiguration","chars","bottom","left","mid","middle","right","top","style","wordWrap","optionalParameters","match","requiredParameters","item","replace","green","red","processName","basename","process","argv","flagsTable","Object","keys","sort","flag","aliasCell","shortFlag","blue","defaultCell","default","undefined","grey","push","toString","parametersTable","parameter","headerCell","comment","command","meowParserHelper","cli","restrictions","help","showHelp","exit","version","showVersion","length","rule","test","error","message"],"mappings":"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"}
{"version":3,"sources":["../src/utilities.ts"],"sourcesContent":["/* eslint-disable unicorn/no-process-exit */\n\nimport { Logger } from \"@node-cli/logger\";\nimport Table from \"cli-table3\";\nimport kleur from \"kleur\";\nimport path from \"node:path\";\nimport { upperFirst } from \"@node-cli/utilities\";\n\nconst logger = new Logger();\n\nexport const meowOptionsHelper = (parameters_: {\n\tflags?: any;\n\tparameters?: any;\n\tusage?: any;\n\texamples?: any;\n}) => {\n\tlet { usage, flags, parameters, examples } = parameters_;\n\tlet helpText = \"\",\n\t\tusageText = \"\";\n\tconst commandPrefix = \"> \";\n\tconst options: any = {\n\t\tallowUnknownFlags: false,\n\t\tautoHelp: false,\n\t\tautoVersion: false,\n\t\tdescription: false,\n\t\tflags,\n\t};\n\tconst commonTableConfiguration = {\n\t\tchars: {\n\t\t\tbottom: \"\",\n\t\t\t\"bottom-left\": \"\",\n\t\t\t\"bottom-mid\": \"\",\n\t\t\t\"bottom-right\": \"\",\n\t\t\tleft: \"\",\n\t\t\t\"left-mid\": \"\",\n\t\t\tmid: \"\",\n\t\t\t\"mid-mid\": \"\",\n\t\t\tmiddle: \"\",\n\t\t\tright: \"\",\n\t\t\t\"right-mid\": \"\",\n\t\t\ttop: \"\",\n\t\t\t\"top-left\": \"\",\n\t\t\t\"top-mid\": \"\",\n\t\t\t\"top-right\": \"\",\n\t\t},\n\t\tstyle: {\n\t\t\t\"padding-left\": 0,\n\t\t\t\"padding-right\": 2,\n\t\t},\n\t\twordWrap: true,\n\t};\n\n\tif (usage) {\n\t\tif (typeof usage === \"string\") {\n\t\t\tconst optionalParameters = usage.match(/\\[(.*?)]/g);\n\t\t\tconst requiredParameters = usage.match(/<(.*?)>/g);\n\t\t\tif (optionalParameters) {\n\t\t\t\tfor (const item of optionalParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.green(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (requiredParameters) {\n\t\t\t\tfor (const item of requiredParameters) {\n\t\t\t\t\tusage = usage.replace(item, `${kleur.red(item)}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${usage}`;\n\t\t}\n\t\tif (typeof usage === \"boolean\") {\n\t\t\tconst processName = path.basename(process.argv[1]);\n\t\t\tusageText = ` Usage:\\n ${commandPrefix}${processName}`;\n\t\t\tif (flags) {\n\t\t\t\tusageText += kleur.green(\" [options]\");\n\t\t\t}\n\t\t}\n\t}\n\n\tif (flags) {\n\t\tconst flagsTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n Options:\\n\";\n\n\t\tfor (const item of Object.keys(flags).sort()) {\n\t\t\tconst flag = flags[item];\n\t\t\tconst aliasCell = flag.shortFlag\n\t\t\t\t? ` ${kleur.blue(`-${flag.shortFlag}, --${item}`)}`\n\t\t\t\t: ` ${kleur.blue(` --${item}`)}`;\n\t\t\tconst defaultCell =\n\t\t\t\tflag.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${flag.default})`)}`;\n\t\t\tflagsTable.push([aliasCell, flag.description, defaultCell]);\n\t\t}\n\t\thelpText += flagsTable.toString();\n\t}\n\n\tif (parameters) {\n\t\tconst parametersTable = new Table(commonTableConfiguration);\n\t\thelpText += \"\\n\\n\";\n\n\t\tfor (const item of Object.keys(parameters).sort()) {\n\t\t\tconst parameter = parameters[item];\n\t\t\tconst headerCell = ` ${upperFirst(item)}:`;\n\t\t\tconst defaultCell =\n\t\t\t\tparameter.default === undefined\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `${kleur.grey(`(default: ${parameter.default})`)}`;\n\t\t\tparametersTable.push([headerCell, parameter.description, defaultCell]);\n\t\t\tif (typeof usage === \"boolean\") {\n\t\t\t\tusageText += ` ${kleur.green(`[${item}]`)}`;\n\t\t\t}\n\t\t}\n\t\thelpText += parametersTable.toString();\n\t}\n\n\tif (examples) {\n\t\thelpText += \"\\n\\n Examples:\\n\";\n\t\tfor (const item of examples) {\n\t\t\thelpText += `\\n ${kleur.grey(`${item.comment}`)}\\n`;\n\t\t\thelpText += ` ${kleur.blue(`${commandPrefix}${item.command}`)}\\n`;\n\t\t}\n\t}\n\n\treturn {\n\t\thelpText: `\\n${usageText}${helpText}`,\n\t\toptions,\n\t};\n};\n\nexport const meowParserHelper = (parameters: {\n\tcli: any;\n\trestrictions?: any;\n}) => {\n\tconst { cli, restrictions } = parameters;\n\ttry {\n\t\tif (cli.flags.help) {\n\t\t\tcli.showHelp();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\ttry {\n\t\tif (cli.flags.version) {\n\t\t\tcli.showVersion();\n\t\t\tprocess.exit(0);\n\t\t}\n\t} catch {\n\t\t// nothing to declare officer\n\t}\n\n\tif (restrictions && restrictions.length > 0) {\n\t\tfor (const rule of restrictions) {\n\t\t\tif (rule.test(cli.flags)) {\n\t\t\t\tlogger.error(rule.message(cli.flags));\n\t\t\t\tprocess.exit(rule.exit);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["Logger","Table","kleur","path","upperFirst","logger","meowOptionsHelper","parameters_","usage","flags","parameters","examples","helpText","usageText","commandPrefix","options","allowUnknownFlags","autoHelp","autoVersion","description","commonTableConfiguration","chars","bottom","left","mid","middle","right","top","style","wordWrap","optionalParameters","match","requiredParameters","item","replace","green","red","processName","basename","process","argv","flagsTable","Object","keys","sort","flag","aliasCell","shortFlag","blue","defaultCell","default","undefined","grey","push","toString","parametersTable","parameter","headerCell","comment","command","meowParserHelper","cli","restrictions","help","showHelp","exit","version","showVersion","length","rule","test","error","message"],"mappings":"AAAA,0CAA0C,GAE1C,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,WAAW,aAAa;AAC/B,OAAOC,WAAW,QAAQ;AAC1B,OAAOC,UAAU,YAAY;AAC7B,SAASC,UAAU,QAAQ,sBAAsB;AAEjD,MAAMC,SAAS,IAAIL;AAEnB,OAAO,MAAMM,oBAAoB,CAACC;IAMjC,IAAI,EAAEC,MAAK,EAAEC,MAAK,EAAEC,WAAU,EAAEC,SAAQ,EAAE,GAAGJ;IAC7C,IAAIK,WAAW,IACdC,YAAY;IACb,MAAMC,gBAAgB;IACtB,MAAMC,UAAe;QACpBC,mBAAmB;QACnBC,UAAU;QACVC,aAAa;QACbC,aAAa;QACbV;IACD;IACA,MAAMW,2BAA2B;QAChCC,OAAO;YACNC,QAAQ;YACR,eAAe;YACf,cAAc;YACd,gBAAgB;YAChBC,MAAM;YACN,YAAY;YACZC,KAAK;YACL,WAAW;YACXC,QAAQ;YACRC,OAAO;YACP,aAAa;YACbC,KAAK;YACL,YAAY;YACZ,WAAW;YACX,aAAa;QACd;QACAC,OAAO;YACN,gBAAgB;YAChB,iBAAiB;QAClB;QACAC,UAAU;IACX;IAEA,IAAIrB,OAAO;QACV,IAAI,OAAOA,UAAU,UAAU;YAC9B,MAAMsB,qBAAqBtB,MAAMuB,MAAM;YACvC,MAAMC,qBAAqBxB,MAAMuB,MAAM;YACvC,IAAID,oBAAoB;gBACvB,KAAK,MAAMG,QAAQH,mBAAoB;oBACtCtB,QAAQA,MAAM0B,QAAQD,MAAM,CAAC,EAAE/B,MAAMiC,MAAMF,MAAM,CAAC;gBACnD;YACD;YACA,IAAID,oBAAoB;gBACvB,KAAK,MAAMC,QAAQD,mBAAoB;oBACtCxB,QAAQA,MAAM0B,QAAQD,MAAM,CAAC,EAAE/B,MAAMkC,IAAIH,MAAM,CAAC;gBACjD;YACD;YACApB,YAAY,CAAC,cAAc,EAAEC,cAAc,EAAEN,MAAM,CAAC;QACrD;QACA,IAAI,OAAOA,UAAU,WAAW;YAC/B,MAAM6B,cAAclC,KAAKmC,SAASC,QAAQC,IAAI,CAAC,EAAE;YACjD3B,YAAY,CAAC,aAAa,EAAEC,cAAc,EAAEuB,YAAY,CAAC;YACzD,IAAI5B,OAAO;gBACVI,aAAaX,MAAMiC,MAAM;YAC1B;QACD;IACD;IAEA,IAAI1B,OAAO;QACV,MAAMgC,aAAa,IAAIxC,MAAMmB;QAC7BR,YAAY;QAEZ,KAAK,MAAMqB,QAAQS,OAAOC,KAAKlC,OAAOmC,OAAQ;YAC7C,MAAMC,OAAOpC,KAAK,CAACwB,KAAK;YACxB,MAAMa,YAAYD,KAAKE,YACpB,CAAC,IAAI,EAAE7C,MAAM8C,KAAK,CAAC,CAAC,EAAEH,KAAKE,UAAU,IAAI,EAAEd,KAAK,CAAC,EAAE,CAAC,GACpD,CAAC,IAAI,EAAE/B,MAAM8C,KAAK,CAAC,MAAM,EAAEf,KAAK,CAAC,EAAE,CAAC;YACvC,MAAMgB,cACLJ,KAAKK,YAAYC,YACd,KACA,CAAC,EAAEjD,MAAMkD,KAAK,CAAC,UAAU,EAAEP,KAAKK,QAAQ,CAAC,CAAC,EAAE,CAAC;YACjDT,WAAWY,KAAK;gBAACP;gBAAWD,KAAK1B;gBAAa8B;aAAY;QAC3D;QACArC,YAAY6B,WAAWa;IACxB;IAEA,IAAI5C,YAAY;QACf,MAAM6C,kBAAkB,IAAItD,MAAMmB;QAClCR,YAAY;QAEZ,KAAK,MAAMqB,QAAQS,OAAOC,KAAKjC,YAAYkC,OAAQ;YAClD,MAAMY,YAAY9C,UAAU,CAACuB,KAAK;YAClC,MAAMwB,aAAa,CAAC,EAAE,EAAErD,WAAW6B,MAAM,CAAC,CAAC;YAC3C,MAAMgB,cACLO,UAAUN,YAAYC,YACnB,KACA,CAAC,EAAEjD,MAAMkD,KAAK,CAAC,UAAU,EAAEI,UAAUN,QAAQ,CAAC,CAAC,EAAE,CAAC;YACtDK,gBAAgBF,KAAK;gBAACI;gBAAYD,UAAUrC;gBAAa8B;aAAY;YACrE,IAAI,OAAOzC,UAAU,WAAW;gBAC/BK,aAAa,CAAC,CAAC,EAAEX,MAAMiC,MAAM,CAAC,CAAC,EAAEF,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5C;QACD;QACArB,YAAY2C,gBAAgBD;IAC7B;IAEA,IAAI3C,UAAU;QACbC,YAAY;QACZ,KAAK,MAAMqB,QAAQtB,SAAU;YAC5BC,YAAY,CAAC,MAAM,EAAEV,MAAMkD,KAAK,CAAC,EAAEnB,KAAKyB,QAAQ,CAAC,EAAE,EAAE,CAAC;YACtD9C,YAAY,CAAC,IAAI,EAAEV,MAAM8C,KAAK,CAAC,EAAElC,cAAc,EAAEmB,KAAK0B,QAAQ,CAAC,EAAE,EAAE,CAAC;QACrE;IACD;IAEA,OAAO;QACN/C,UAAU,CAAC,EAAE,EAAEC,UAAU,EAAED,SAAS,CAAC;QACrCG;IACD;AACD,EAAE;AAEF,OAAO,MAAM6C,mBAAmB,CAAClD;IAIhC,MAAM,EAAEmD,IAAG,EAAEC,aAAY,EAAE,GAAGpD;IAC9B,IAAI;QACH,IAAImD,IAAIpD,MAAMsD,MAAM;YACnBF,IAAIG;YACJzB,QAAQ0B,KAAK;QACd;IACD,EAAE,OAAM;IACP,6BAA6B;IAC9B;IAEA,IAAI;QACH,IAAIJ,IAAIpD,MAAMyD,SAAS;YACtBL,IAAIM;YACJ5B,QAAQ0B,KAAK;QACd;IACD,EAAE,OAAM;IACP,6BAA6B;IAC9B;IAEA,IAAIH,gBAAgBA,aAAaM,SAAS,GAAG;QAC5C,KAAK,MAAMC,QAAQP,aAAc;YAChC,IAAIO,KAAKC,KAAKT,IAAIpD,QAAQ;gBACzBJ,OAAOkE,MAAMF,KAAKG,QAAQX,IAAIpD;gBAC9B8B,QAAQ0B,KAAKI,KAAKJ;YACnB;QACD;IACD;AACD,EAAE"}
{
"name": "@node-cli/parser",
"version": "2.2.0",
"version": "2.2.1",
"license": "MIT",

@@ -16,5 +16,5 @@ "author": "Arno Versini",

"@node-cli/logger": ">=1.0.0",
"@node-cli/utilities": ">=1.0.0",
"cli-table3": "0.6.3",
"kleur": "4.1.5",
"lodash": "4.17.21",
"meow": "12.0.1"

@@ -36,3 +36,3 @@ },

},
"gitHead": "9c4baafbf51504c8b9ec3c8434f06be73bd2b23f"
"gitHead": "d35e3fb848b5b465f30d4f15d254586c774797d4"
}