{"version":3,"sources":["../../src/base/GlobalOptionsCommand.ts"],"names":["init_cjs_shims","GlobalOptionsCommand","BaseCommand","app","Application","constructor","configureOutput","writeOut","str","out","write","getOutHasColors","getErrHasColors","stripColor","stripAnsi","outputError","__name","color","red","showHelpAfterError","showSuggestionAfterError","helpOption","helpCommand","allowExcessArguments","allowUnknownOption","action","args","createOption","flags","description","defaultValue","Option","hideHelp","default","addOption","option","global","opts","handleOptionsCallback","clearOptions","Array","prototype","splice","call","options","length","filter","callback","map","name","apply","attributeName","reduce","objectify","removeOption","_option","find","opt","debug","log","error","index","findIndex","_optionValues","_optionValueSources","add","__publicField"],"mappings":";;;;;;;;;;;;;;;AAAAA,gCAAA,EAAA;AASO,IAAMC,qBAAAA,GAAN,MAAMA,qBAAAA,SAA6BC,6BAAAA,CAAAA;AAEtC,EAAA,IAAWC,GAAW,GAAA;AAAC,IAAA,OAAOF,qBAAqBG,CAAAA,WAAAA;AAAY;EAE/DC,WAAc,GAAA;AACV,IAAA,KAAA,CAAM,gBAAA,CAAA;AACN,IAAA,IAAA,CACCC,eAAqB,CAAA;AAClBC,MAAAA,QAAAA,4CAAWC,GAAgB,KAAA,IAAA,CAAKC,GAAIC,CAAAA,KAAAA,CAAMF,GAAAA,CAAhC,EAAA,UAAA,CAAA;AACVG,MAAAA,eAAAA,iDAAuB,IAAN,EAAA,iBAAA,CAAA;AACjBC,MAAAA,eAAAA,iDAAuB,IAAN,EAAA,iBAAA,CAAA;AACjBC,MAAAA,UAAAA,kBAAaL,wBAAAA,CAAAA,CAAAA,GAAAA,KAAgBM,0BAAUN,CAAAA,GAAAA,CAA3B,EAAA,YAAA,CAAA;MACZO,WAAa,kBAAAC,wBAAA,CAAA,CAACR,KAAaE,KAAmCA,KAAAA,KAAAA,CAAMO,wBAAMC,GAAIV,CAAAA,GAAAA,CAAAA,CAAjE,EAAA,aAAA;AACjB,KAAA,EAAGW,kBAAmB,CAAA,KAAA,CACrBC,CAAAA,wBAAAA,CAAyB,KAAA,CACzBC,CAAAA,UAAAA,CAAW,KAAA,CAAA,CACXC,YAAY,KAAA,CAAA,CACZC,qBAAqB,IAAA,CAAA,CACrBC,mBAAmB,IAAA,CAAA;AAGpB,IAAKC,IAAAA,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAAc,IAAA,CAAA;AAC/B;EAEgBC,YAAaC,CAAAA,KAAAA,EAAeC,aAAqBC,YAA4B,EAAA;AACzF,IAAO,OAAA,IAAIC,yBAAOH,KAAOC,EAAAA,WAAAA,EAAaG,QAAS,CAAA,IAAA,CAAMC,CAAAA,OAAAA,CAAQH,YAAAA,CAAAA;AACjE;AAEgBI,EAAAA,SAAAA,CAAUC,MAAsB,EAAA;AAC5CA,IAAAA,MAAAA,CACCC,MAAO,CAAA,IAAA,CACPJ,CAAAA,QAAAA,CAAS,IAAA,CAAA;AAEV,IAAO,OAAA,KAAA,CAAME,UAAUC,MAAAA,CAAAA;AAC3B;EAESE,IAAa,GAAA;AAClB,IAAIA,IAAAA,IAAAA,GAAO,MAAMA,IAAAA,EAAAA;AACjBA,IAAW,IAAA,GAAA;MAAE,GAAGA,IAAAA;MAAM,GAAG,IAAA,CAAKC,sBAAsBD,IAAAA;AAAM,KAAA;AAC1D,IAAOA,OAAAA,IAAAA;AACX;EAEAE,YAAqB,GAAA;AACjBC,IAAMC,KAAAA,CAAAA,SAAAA,CAAUC,OAAOC,IAAK,CAAA,IAAA,CAAKC,SAAS,CAAG,EAAA,IAAA,CAAKA,QAAQC,MAAM,CAAA;AAChE,IAAM,IAAA,CAAA,eAAA,IAA0B,EAAC;AACjC,IAAM,IAAA,CAAA,qBAAA,IAA0B,EAAC;AACjC,IAAO,OAAA,IAAA;AACX;AAEAP,EAAAA,qBAAAA,CAAsBD,IAAM,EAAA;AACxB,IAAO,OAAA,IAAA,CAAKO,OAAQE,CAAAA,MAAAA,CAAOX,CAAAA,MAAAA,KAAUA,MAAOY,CAAAA,QAAAA,EAAQ,CAAA,CACxCC,GAAIb,CAAAA,CAAAA,MAAU,KAAA;AAAEA,MAAAA,MAAAA,CAAOc,IAAI,EAAA;MAAId,MAAOY,CAAAA,QAAAA,EAAWG,CAAAA,KAAAA,CAAM,IAAM,EAAA;QAC1Db,IAAMF,CAAAA,MAAAA,CAAOgB,eAAa,CAAA;AAC1BhB,QAAAA,MAAAA;AACA,QAAA,IAAA;QACA,IAAKhC,CAAAA;AACR,OAAA;KAAG,CACHiD,CAAAA,MAAAA,CAAOC,eAAW,EAAA,EAAC,CAAA;AACnC;AAEAC,EAAAA,YAAAA,CAAaC,OAAgC,EAAA;AACzC,IAAIpB,IAAAA,MAAAA;AACJ,IAAK,IAAA,OAAOoB,YAAY,QAAW,EAAA;AAC/BpB,MAAS,MAAA,GAAA,IAAA,CAAKS,QAAQY,IAAKC,CAAAA,CAAAA,QAAOA,GAAIR,CAAAA,IAAAA,OAAWM,OAAAA,CAAAA;AACrD;AACA,IAAA,IAAK,CAACpB,MAAS,EAAA;AACXuB,MAAMA,uBAAA,CAAA,CAAA,oDAAA,EAAuDH,OAAAA,CAAmB,UAAA,CAAA,CAAA;AAChF,MAAA,IAAA,CAAKpD,GAAIwD,CAAAA,GAAAA,CAAIC,KAAM,CAAA,CAAA,wBAAA,EAA2BL,OAAAA,CAA2B,kBAAA,CAAA,CAAA;AACzE,MAAO,OAAA,IAAA;AACX;AACA,IAAIM,IAAAA,KAAAA,GAAQ,IAAKjB,CAAAA,OAAAA,CAAQkB,SAAUL,CAAAA,CAAAA,GAAOA,KAAAA,GAAAA,CAAIR,IAAI,EAAA,KAAOd,MAAOc,CAAAA,IAAAA,EAAI,CAAA;AACpE,IAAA,IAAKY,SAAS,CAAI,EAAA;AACd,MAAA,OAAO,IAAKE,CAAAA,aAAAA,CAAe5B,MAAOc,CAAAA,IAAAA,EAAI,CAAA;AACtC,MAAA,OAAO,IAAKe,CAAAA,mBAAAA,CAAqB7B,MAAOc,CAAAA,IAAAA,EAAI,CAAA;AAE5CT,MAAAA,KAAAA,CAAMC,UAAUC,MAAOC,CAAAA,IAAAA,CAAK,IAAKC,CAAAA,OAAAA,EAASiB,OAAO,CAAA,CAAA;AACrD;AACA,IAAO,OAAA,IAAA;AACX;EAGAI,GAAoCrC,CAAAA,KAAAA,EAAcC,aAAqBC,YAAyB,EAAA;AAC5F,IAAA,MAAMK,MAAS,GAAA,IAAA,CAAKR,YAAaC,CAAAA,KAAAA,EAAOC,aAAaC,YAAAA,CAAAA;AACrD,IAAA,IAAA,CAAKI,UAAUC,MAAAA,CAAAA;AACf,IAAOA,OAAAA,MAAAA;AACX;AACJ,CAAA;AAtF0CjC,wBAAAA,CAAAA,qBAAAA,EAAAA,sBAAAA,CAAAA;AACtCgE,+BAAA,CADSjE,qBACKG,EAAAA,aAAAA,CAAAA;AADX,IAAMH,oBAAN,GAAA","file":"chunk-T336IOSQ.cjs","sourcesContent":["import { objectify } from '@radicjs/utils';\nimport stripAnsi from 'strip-ansi';\nimport { App } from '../Application.js';\nimport { color } from '../utils/color.js';\nimport { debug } from '../utils/debug.js';\nimport { BaseCommand } from './BaseCommand.js';\nimport { Option } from './Option.js';\n\n\nexport class GlobalOptionsCommand extends BaseCommand {\n    public static Application?: App;\n    public get app(): App {return GlobalOptionsCommand.Application;};\n\n    constructor() {\n        super('global-options');\n        this\n        .configureOutput(<any>{\n            writeOut: (str: string) => this.out.write(str),\n            getOutHasColors: () => true,\n            getErrHasColors: () => true,\n            stripColor: (str: string) => stripAnsi(str),\n            outputError: (str: string, write: (str: string) => string) => write(color.red(str)),\n        }).showHelpAfterError(false)\n        .showSuggestionAfterError(false)\n        .helpOption(false)\n        .helpCommand(false)\n        .allowExcessArguments(true)\n        .allowUnknownOption(true);\n\n        //@ts-ignore\n        this.action((args: any) => null);\n    }\n\n    public override createOption(flags: string, description: string, defaultValue?: any): Option {\n        return new Option(flags, description).hideHelp(true).default(defaultValue) as any;\n    }\n\n    public override addOption(option: Option): this {\n        option\n        .global(true)\n        .hideHelp(true);\n\n        return super.addOption(option) as any;\n    }\n\n    override opts<T>(): T {\n        let opts = super.opts();\n        opts     = { ...opts, ...this.handleOptionsCallback(opts) };\n        return opts as T;\n    }\n\n    clearOptions(): this {\n        Array.prototype.splice.call(this.options, 0, this.options.length);\n        this[ '_optionValues' ]       = {};\n        this[ '_optionValueSources' ] = {};\n        return this;\n    }\n\n    handleOptionsCallback(opts) {\n        return this.options.filter(option => option.callback())\n                   .map(option => [ option.name(), option.callback().apply(this, [\n                       opts[ option.attributeName() ],\n                       option,\n                       this,\n                       this.app,\n                   ]) ])\n                   .reduce(objectify, {});\n    }\n\n    removeOption(_option: string | Option): this {\n        let option: Option;\n        if ( typeof _option === 'string' ) {\n            option = this.options.find(opt => opt.name() === _option);\n        }\n        if ( !option ) {\n            debug(`Could not GlobalOptionsCommand.removeOption. option ${_option} not found`);\n            this.app.log.error(`Could not remove option ${_option}. Option not found`);\n            return this;\n        }\n        let index = this.options.findIndex(opt => opt.name() === option.name());\n        if ( index >= 0 ) {\n            delete this._optionValues[ option.name() ];\n            delete this._optionValueSources[ option.name() ];\n\n            Array.prototype.splice.call(this.options, index, 1);\n        }\n        return this;\n    }\n\n\n    add<T, Usage extends string = '', >(flags: Usage, description: string, defaultValue: T): Option {\n        const option = this.createOption(flags, description, defaultValue);\n        this.addOption(option);\n        return option as any;\n    }\n}\n"]}