{"version":3,"sources":["../../src/base/gopts.ts"],"names":["gopts","GlobalOptionsCommand","configureOutput","getOutHasColors","getErrHasColors","stripColor","str","stripAnsi","outputError","write","color","red","showHelpAfterError","showSuggestionAfterError","helpOption","helpCommand","action","args","allowExcessArguments","allowUnknownOption","addHelpOption","add","choices","Object","values","pino","levels","labels","implies","logLevel","env","parseGopts","parse","process","argv","opts"],"mappings":";;;;;;;AACA,cAAA,EAAA;AAiBaA,IAAAA,KAAAA,GAAQ,IAAIC,oBAAAA;AACzBD,KAAAA,CACCE,eAAqB,CAAA;AAClBC,EAAAA,eAAAA,+BAAuB,IAAN,EAAA,iBAAA,CAAA;AACjBC,EAAAA,eAAAA,+BAAuB,IAAN,EAAA,iBAAA,CAAA;AACjBC,EAAAA,UAAAA,kBAAkBC,MAAAA,CAAAA,CAAAA,GAAAA,KAAQC,SAAUD,CAAAA,GAAAA,CAAnB,EAAA,YAAA,CAAA;EACjBE,WAAiB,kBAAA,MAAA,CAAA,CAACF,KAAKG,KAA2BA,KAAAA,KAAAA,CAAMC,MAAMC,GAAIL,CAAAA,GAAAA,CAAAA,CAAjD,EAAA,aAAA;AACrB,CAAA,CAAA,CAAGM,mBAAmB,KAAA,CAAA,CACrBC,yBAAyB,KAAA,CAAA,CACzBC,UAAW,CAAA,KAAA,CACXC,CAAAA,WAAAA,CAAY,KAAA,CACZC,CAAAA,MAAAA,CAAOC,CAAAA,IAAQ,KAAA,IAAA,EACfC,oBAAqB,CAAA,IAAA,CACrBC,CAAAA,kBAAAA,CAAmB,IAAA,CAAA;AAIpBnB,KAAAA,CAAMoB,cAAcpB,KAAMqB,CAAAA,GAAAA,CAAI,YAAc,EAAA,0BAAA,EAA4B,KAAA,CAAA,CAAA;AACxErB,KAAMqB,CAAAA,GAAAA,CAAI,qBAAuB,EAAA,eAAA,EAAiB,MAAA,CAAA,CAAQC,OAAQC,CAAAA,MAAAA,CAAOC,MAAOC,CAAAA,IAAAA,CAAKC,MAAOC,CAAAA,MAAM,CAAA,CAAA;AAClG3B,KAAAA,CAAMqB,GAAI,CAAA,eAAA,EAAiB,wBAA0B,EAAA,KAAA,EAAOO,OAAQ,CAAA;EAAEC,QAAU,EAAA;AAAU,CAAA,CAAA;AAC1F7B,KAAMqB,CAAAA,GAAAA,CAAI,WAAW,yBAA2B,EAAA,KAAA,EAAOS,GAAI,CAAA,OAAA,EAASF,OAAQ,CAAA;EAAEC,QAAU,EAAA;AAAQ,CAAA,CAAA;AAChG7B,KAAMqB,CAAAA,GAAAA,CAAI,kBAAoB,EAAA,gBAAA,EAAkB,KAAA,CAAA;AAChDrB,KAAMqB,CAAAA,GAAAA,CAAI,UAAY,EAAA,gBAAA,EAAkB,KAAA,CAAA;AACxCrB,KAAAA,CAAMqB,IAAI,YAAc,EAAA,sBAAA,EAAwB,IAAA,CAAA,CAAMS,IAAI,UAAA,CAAA;AA0BnD,IAAMC,6BAAa,MAAA,CAAA,MAAA;AACtB,EAAe;AACX/B,IAAMgC,KAAAA,CAAAA,KAAAA,CAAMC,QAAQC,IAAI,CAAA;AAE5B;AACA,EAAA,OAAOlC,MAAMmC,IAAI,EAAA;AACrB,CAN0B,EAAA,YAAA","file":"chunk-ROD4JLAM.mjs","sourcesContent":["import type { OptionValues } from 'commander';\nimport pino, { type Level } from 'pino';\nimport stripAnsi from 'strip-ansi';\nimport { GlobalOptionsCommand } from './GlobalOptionsCommand.js';\nimport { color } from '../utils/color.js';\nimport type { Option } from './Option.js';\n\nexport interface GlobalOptionsValues extends OptionValues {\n    [key: string]: any;\n    verbose: boolean;\n    logLevel: Level;\n    silent: boolean;\n    color: boolean;\n    debug: boolean;\n    // json: boolean;\n    interaction: boolean;\n}\n\nexport const gopts = new GlobalOptionsCommand();\ngopts\n.configureOutput(<any>{\n    getOutHasColors: () => true,\n    getErrHasColors: () => true,\n    stripColor     : (str) => stripAnsi(str),\n    outputError    : (str, write: (str) => string) => write(color.red(str)),\n}).showHelpAfterError(false)\n.showSuggestionAfterError(false)\n.helpOption(false)\n.helpCommand(false)\n.action(args => null)\n.allowExcessArguments(true)\n.allowUnknownOption(true);\n\n\n\ngopts.addHelpOption(gopts.add('-h, --help', 'display help for command', false));\ngopts.add('--log-level <level>', 'set log level', 'warn').choices(Object.values(pino.levels.labels));\ngopts.add('-v, --verbose', 'enables verbose output', false).implies({ logLevel: 'verbose' });\ngopts.add('--debug', 'enable debugging output', false).env('DEBUG').implies({ logLevel: 'debug' });\ngopts.add('--no-interaction', 'no interaction', false);\ngopts.add('--silent', 'disable output', false);\ngopts.add('--no-color', 'disable color output', true).env('NO_COLOR');\n// gopts.add('--json', 'show json output', true);\n//\n// let t = (t:any[]) => [];\n// gopts.complete({\n//     options: {\n//         '--log-level'     : Object.values(pino.levels.labels),\n//         '-v'              : t,\n//         '--verbose'       : t,\n//         '--debug'         : t,\n//         '--no-interaction': t,\n//         '--silent'        : t,\n//         '--no-color'      : t,\n//         // '--json'          : t,\n//     },\n// })\n\n// ;\n// gopts.addOption(new Option('-v, --verbose', 'enables verbose output').default(false).hideHelp(true).implies({ logLevel: 'verbose' }));\n// gopts.addOption(new Option('--debug', 'enable debugging output').default(false).hideHelp(true).env('DEBUG').implies({ logLevel: 'debug' }));\n// gopts.addOption(new Option('--silent', 'disable output').default(false).hideHelp(true));\n// gopts.addOption(new Option('--no-color', 'disable color output').default(true).hideHelp(true).env('NO_COLOR'));\n// gopts.addOption(new Option('--json', 'show json output').default(true).hideHelp(true))\n\nlet parsed = false;\n\nexport const parseGopts = (): GlobalOptionsValues => {\n    if ( !parsed ) {\n        gopts.parse(process.argv);\n        // parsed = true;\n    }\n    return gopts.opts();\n};\n\n//\n// export const globalOptions: GlobalOptionsValues = parseGopts();\n//\n// const a = globalOptions;\n"]}