{"version":3,"sources":["jsdelivr-header.js","/npm/karg@1.26.0/coffee/karg.coffee"],"names":[],"mappings":"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","file":"/npm/karg@1.26.0/js/karg.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/karg@1.26.0/js/karg.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","###\n000   000   0000000   00000000    0000000 \n000  000   000   000  000   000  000      \n0000000    000000000  0000000    000  0000\n000  000   000   000  000   000  000   000\n000   000  000   000  000   000   0000000 \n###\n\nrequire('klor').kolor.globalize()\n    \n###\n00000000  000   000  00000000    0000000   000   000  0000000  \n000        000 000   000   000  000   000  0000  000  000   000\n0000000     00000    00000000   000000000  000 0 000  000   000\n000        000 000   000        000   000  000  0000  000   000\n00000000  000   000  000        000   000  000   000  0000000  \n###\n\nexpand = (l) ->\n    for a in l \n        if match = /^\\-(\\w\\w+)$/.exec a\n            a = match[1].split('').map (i) -> '-'+i\n            a.unshift l.indexOf(match.input), 1\n            l.splice.apply l, a\n            return expand l\n    l\n\n###\n00000000  00000000   00000000    0000000   00000000 \n000       000   000  000   000  000   000  000   000\n0000000   0000000    0000000    000   000  0000000  \n000       000   000  000   000  000   000  000   000\n00000000  000   000  000   000   0000000   000   000\n###\n\nerror = (msg) ->\n    s = dim red \"[\" + bold(\"ERROR\") + \"] \"\n    s += red msg.trim().split('\\n').join(\"\\n        \")\n    log s\n\n###\n00000000    0000000   00000000    0000000  00000000\n000   000  000   000  000   000  000       000     \n00000000   000000000  0000000    0000000   0000000 \n000        000   000  000   000       000  000     \n000        000   000  000   000  0000000   00000000\n###\n\n# options: \n#     ignoreArgs:  number of leading process.argv items to ignore (default=2)\n#     argv:        list of string arguments to use instead of process.argv\n#     dontExit:    don't exit process on -V/--version or -h/--help  (returns undefined instead)\n#     returnLog:   help/version output is returned instead of logged (implies dontExit)\n\nparse = (config, options={}) ->\n    \n    pad = (s, l) ->\n        s = String s\n        while s.length < l then s += ' '\n        s\n    \n    if typeof(config) == 'string'\n        noon_parse = require 'noon/js/parse'\n        config = noon_parse config\n    else\n        config = Object.assign {}, config\n            \n    name   = Object.keys(config)[0] # the application/script name\n    result = {} # the object created from the provided arguments and the configuration\n    help   = {} # maps keys to help texts\n    short  = {} # maps keys to shortcut keys\n    long   = {} # maps shortcut keys to keys\n    param  = '' # name of non-option parameters\n    paramList = false\n    \n    for k,v of config[name]\n        \n        if 0 <= k.indexOf ' '\n            error \"\"\"\n            wrong karg setup: #{bold \"keys can't contain spaces!\"}\n            broken key: #{bold yellow k}\n            \"\"\"\n            process.exit 1\n        \n        if v['=']? then result[k] = v['=']\n        \n        sht = k[0]\n        if v['-'] then sht = v['-']\n        if sht == '-' then sht = ''\n        \n        if Array.isArray v\n            if '*' in v\n                param = k\n            else if '**' in v\n                param = k\n                paramList = true\n                result[param] = []\n            else\n                short[k]  = sht\n                long[sht] = k if sht != ''\n        else\n            if '*' in Object.keys v\n                param = k\n            else if '**' in Object.keys v\n                param = k\n                paramList = true\n                result[param] = []\n            else\n                short[k]  = sht\n                long[sht] = k if sht != ''\n                help[k]   = v['?']\n\n    ###\n     0000000   00000000   000000000  000   0000000   000   000   0000000\n    000   000  000   000     000     000  000   000  0000  000  000     \n    000   000  00000000      000     000  000   000  000 0 000  0000000 \n    000   000  000           000     000  000   000  000  0000       000\n     0000000   000           000     000   0000000   000   000  0000000 \n    ###\n    \n    optionsText = \"\"\n        \n    maxArgLength = 0\n    maxHelpLength = 0\n    for lng,sht of short\n        if help[lng]?\n            maxArgLength  = Math.max(maxArgLength, sht.length+lng.length)\n            maxHelpLength = Math.max(maxHelpLength, strip(help[lng]).length)\n            \n    for lng,sht of short\n        if help[lng]?\n            df = switch result[lng]\n                when false then red dim '✘'\n                when true  then green bold '✔'\n                else result[lng]\n            shtHelp = if sht != '' then \"#{gray '-'}#{sht}\" else '  '\n            optionsText += '\\n'\n            optionsText += \"    #{shtHelp}#{gray '  --'}#{lng}\"\n            optionsText += gray bold \"    #{pad '' Math.max(0,maxArgLength-sht.length-lng.length)} #{help[lng]}\"\n            optionsText += magenta   \"    #{pad '' Math.max(0,maxHelpLength-strip(help[lng]).length)} #{df}\" if df?\n\n    ###\n    000   000  00000000  000      00000000 \n    000   000  000       000      000   000\n    000000000  0000000   000      00000000 \n    000   000  000       000      000      \n    000   000  00000000  0000000  000      \n    ###\n    \n    helpText  = \"\\n#{gray 'usage:'}  #{bold name} \"\n    # helpText += \"#{gray '['}#{bold gray 'options'}#{gray ']'} \" if 1 < Object.keys(short)\n    helpText += \"#{gray '['}#{bold yellow param}#{paramList and gray(' ... ]') or gray(']')}\"\n    helpText += '\\n'\n    if config[name][param]?['?']\n        helpText += yellow bold \"\\n#{pad '        '+param, maxArgLength+9} #{gray config[name][param]['?']}\"\n        helpText += magenta(\"  #{pad '', Math.max(0,maxHelpLength-strip(config[name][param]['?']).length)} #{config[name][param]['=']}\") if config[name][param]['=']? and not paramList\n        helpText += '\\n'\n            \n    if optionsText.length\n        helpText += gray \"\\noptions:\\n\"\n        helpText += optionsText\n        helpText += '\\n\\n'\n    \n    short['help'] ?= 'h'\n    long['h'] = 'help'\n    \n    if config.version?\n        version = config.version\n        delete config.version\n        if not long['V']\n            short['version'] ?= 'V'\n            long['V'] = 'version' \n        \n    delete config[name]\n    if Object.keys(config).length \n        noon_stringify = require 'noon/js/stringify'\n        helpText += noon_stringify config, \n            maxalign: 16\n            colors: \n                key:     gray\n                string:  white\n        helpText += '\\n'\n        \n    ###\n    00000000   00000000   0000000  000   000  000      000000000\n    000   000  000       000       000   000  000         000   \n    0000000    0000000   0000000   000   000  000         000   \n    000   000  000            000  000   000  000         000   \n    000   000  00000000  0000000    0000000   0000000     000   \n    ###\n\n    options.ignoreArgs ?= 2\n    \n    if options.argv\n        argv = options.argv\n    else\n        argv = process.argv.slice options.ignoreArgs\n        \n    expandedArgs = expand argv\n\n    addParam = (arg) ->\n        if paramList\n            result[param].push arg\n        else\n            result[param] = arg\n            \n    addIgnored = (arg) ->\n        if not result['__ignored'] then result['__ignored'] = []\n        result['__ignored'].push arg\n        \n    addParamOrIgnore = (arg) ->\n        if param\n            addParam arg\n        else\n            addIgnored arg\n    \n    while arg = expandedArgs.shift()\n            \n        if arg.substr(0,2) == '--'\n            arg = arg.substr 2\n        else if arg[0] == '-'\n            if not long[arg.substr 1]\n                addIgnored arg\n                continue\n            arg = long[arg.substr 1]\n        else \n            addParamOrIgnore arg\n            continue\n            \n        if arg == 'help'\n            if options.returnLog then return helpText\n            log helpText\n            return if options.dontExit\n            process.exit()\n        else if arg == 'version' and version?\n            if options.returnLog then return version\n            log version\n            return if options.dontExit\n            process.exit()\n            \n        if result[arg] == false or result[arg] == true\n            result[arg] = not result[arg]\n        else if not isNaN Number result[arg]\n            result[arg] = parseFloat expandedArgs.shift()\n        else if arg in Object.keys(short)#.map((k) -> short[k])\n            result[arg] = expandedArgs.shift()\n        else\n            addParamOrIgnore arg\n    result\n\nmodule.exports = parse\n"]}