{"version":3,"sources":["jsdelivr-header.js","/npm/bossy@4.0.3/lib/index.js"],"names":[],"mappings":"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","file":"/npm/bossy@4.0.3/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/bossy@4.0.3/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\n// Load modules\n\nconst Tty = require('tty');\n\nconst Boom = require('boom');\nconst Hoek = require('hoek');\nconst Joi = require('joi');\n\nconst Schemas = require('./schemas');\n\n// Declare internals\n\nconst internals = {};\n\n\nexports.parse = function (definition, options) {\n\n    Joi.assert(definition, Schemas.definition, 'Invalid definition:');\n    Joi.assert(options, Schemas.parseOptions, 'Invalid options argument:');\n\n    const flags = {};\n    const keys = {};\n    definition = Joi.validate(definition, Schemas.definition).value;\n    options = options || {};\n\n    const names = Object.keys(definition);\n    for (let i = 0; i < names.length; ++i) {\n        const name = names[i];\n        const def = Hoek.clone(definition[name]);\n        def.name = name;\n        keys[name] = def;\n        if (def.alias) {\n            for (let j = 0; j < def.alias.length; ++j) {\n                keys[def.alias[j]] = def;\n            }\n        }\n\n        if (def.type === 'boolean' && def.default !== undefined) {\n            flags[name] = def.default;\n        }\n        else if (def.type === 'boolean') {\n            flags[name] = false;\n        }\n    }\n\n    const args = options.argv || process.argv.slice(2);\n    let last = null;\n    const errors = [];\n    let help = false;\n\n    for (let i = 0; i < args.length; ++i) {\n        const arg = args[i];\n        if (arg[0] === '-') {\n\n            // Key\n\n            const char = arg[1];\n            if (!char) {\n                errors.push(internals.formatError('Invalid empty \\'-\\' option'));\n                continue;\n            }\n\n            if (char === '-' && arg.length <= 2) {\n                errors.push(internals.formatError('Invalid empty \\'--\\' option'));\n                continue;\n            }\n\n            const opts = (char === '-' ? [arg.slice(2)] : arg.slice(1).split(''));\n            for (let j = 0; j < opts.length; ++j) {\n\n                if (last) {\n                    errors.push(internals.formatError('Invalid option:', last.name, 'missing value'));\n                    continue;\n                }\n\n                const opt = opts[j];\n                const def = keys[opt];\n                if (!def) {\n                    errors.push(internals.formatError('Unknown option:', opt));\n                    continue;\n                }\n\n                if (def.type === 'help') {\n                    flags[def.name] = true;\n                    help = true;\n                }\n                else if (def.type === 'boolean') {\n                    flags[def.name] = true;\n                }\n                else if (def.type === 'number' && opts.length > 1) {\n                    args.splice(i + 1, 0, arg.split(char)[1]);\n                    last = def;\n                    break;\n                }\n                else {\n                    last = def;\n                }\n            }\n        }\n        else {\n\n            // Value\n\n            let value = arg;\n            if (last &&\n                last.type) {\n\n                if (last.type === 'number') {\n                    value = parseInt(arg, 10);\n\n                    if (!Number.isSafeInteger(value)) {\n                        errors.push(internals.formatError('Invalid value (non-number) for option:', last.name));\n                        continue;\n                    }\n                }\n            }\n\n            if (last &&\n                last.valid &&\n                last.valid.indexOf(value) === -1) {\n\n                const validValues = [];\n                for (let j = 0; j < last.valid.length; ++j) {\n                    const valid = last.valid[j];\n                    validValues.push(`'${valid}'`);\n                }\n\n                errors.push(internals.formatError('Invalid value for option:', last.name, '(valid: ' + validValues.join(',') + ')'));\n                continue;\n            }\n\n            const name = last ? last.name : '_';\n            if (flags.hasOwnProperty(name)) {\n\n                if (!last ||\n                    last.multiple) {\n\n                    flags[name].push(value);\n                }\n                else {\n                    errors.push(internals.formatError('Multiple values are not allowed for option:', name));\n                    continue;\n                }\n            }\n            else {\n\n                if (!last ||\n                    last.multiple) {\n\n                    flags[name] = [].concat(value);\n                }\n                else {\n                    flags[name] = value;\n                }\n            }\n\n            last = null;\n        }\n    }\n\n    for (let i = 0; i < names.length; ++i) {\n        const def = keys[names[i]];\n        if (def.type === 'range') {\n            internals.parseRange(def, flags);\n        }\n\n        if (flags[def.name] === undefined) {\n            flags[def.name] = def.default;\n        }\n\n        if (def.require && flags[def.name] === undefined) {\n            errors.push(internals.formatError(definition));\n        }\n\n        if (def.alias) {\n            for (let j = 0; j < def.alias.length; ++j) {\n                const alias = def.alias[j];\n                flags[alias] = flags[def.name];\n            }\n        }\n    }\n\n    if (errors.length && !help) {\n        return errors[0];\n    }\n\n    return flags;\n};\n\n\nexports.usage = function (definition, usage, options) {\n\n    if ((arguments.length === 2) && (typeof usage === 'object')) {\n        options = usage;\n        usage = '';\n    }\n\n    Joi.assert(definition, Schemas.definition, 'Invalid definition:');\n    Joi.assert(options, Schemas.usageOptions, 'Invalid options argument:');\n\n    definition = Joi.validate(definition, Schemas.definition).value;\n    options = Joi.validate(options || { colors: null }, Schemas.usageOptions).value;\n    const color = internals.colors(options.colors);\n    const output = usage ? 'Usage: ' + usage + '\\n\\n' : '\\n';\n    const col1 = ['Options:'];\n    const col2 = ['\\n'];\n\n    const names = Object.keys(definition);\n    for (let i = 0; i < names.length; ++i) {\n        const name = names[i];\n        const def = definition[name];\n\n        let shortName = internals.getShortName(name, def.alias);\n        let longName = (shortName === name) ? def.alias : name;\n        if (shortName.length > 1 && !longName) {\n            longName = shortName;\n            shortName = '';\n        }\n\n        let formattedName = shortName ? '  -' + shortName : '';\n        if (longName) {\n            const aliases = [].concat(longName);\n            for (let j = 0; j < aliases.length; ++j) {\n                formattedName += shortName ? ', ' : '  ';\n                formattedName += '--' + aliases[j];\n            }\n        }\n\n        let formattedDesc = def.description ? color.gray(def.description) : '';\n        if (def.default) {\n            formattedDesc += formattedDesc.length ? ' ' : '';\n            formattedDesc += color.gray('(' + def.default + ')');\n        }\n\n        if (def.require) {\n            formattedDesc += formattedDesc.length ? ' ' : '';\n            formattedDesc += color.yellow('(required)');\n        }\n\n        col1.push(color.green(formattedName));\n        col2.push(formattedDesc);\n    }\n\n    return output + internals.formatColumns(col1, col2);\n};\n\n\ninternals.formatError = function (...args) {\n\n    let msg = '';\n    if (args.length > 1) {\n        msg = args.join(' ');\n    }\n    else if (typeof args[0] === 'string') {\n        msg = args[0];\n    }\n    else {\n        msg = exports.usage(args[0]);\n    }\n\n    return new Boom(msg);\n};\n\n\ninternals.getShortName = function (shortName, aliases) {\n\n    if (!aliases) {\n        return shortName;\n    }\n\n    for (let i = 0; i < aliases.length; ++i) {\n        if (aliases[i] && aliases[i].length < shortName.length) {\n            shortName = aliases[i];\n        }\n    }\n\n    return shortName;\n};\n\n\ninternals.formatColumns = function (col1, col2) {\n\n    const rows = [];\n    let col1Width = 0;\n    col1.forEach((text) => {\n\n        if (text.length > col1Width) {\n            col1Width = text.length;\n        }\n    });\n\n    for (let i = 0; i < col1.length; ++i) {\n        let row = col1[i];\n        const padding = new Array((col1Width - row.length) + 5).join(' ');\n\n        row += padding + col2[i];\n        rows.push(row);\n    }\n\n    return rows.join('\\n');\n};\n\n\ninternals.parseRange = function (def, flags) {\n\n    const value = flags[def.name];\n    if (!value) {\n        return;\n    }\n\n    const values = [];\n    const nums = [].concat(value).join(',');\n    const ranges = nums.match(/(?:\\d+\\-\\d+)|(?:\\d+)/g);\n    for (let i = 0; i < ranges.length; ++i) {\n        let range = ranges[i];\n\n        range = range.split('-');\n        const from = parseInt(range[0], 10);\n        if (range.length === 2) {\n            const to = parseInt(range[1], 10);\n            if (from > to) {\n                for (let j = from; j >= to; --j) {\n                    values.push(j);\n                }\n            }\n            else {\n                for (let j = from; j <= to; ++j) {\n                    values.push(j);\n                }\n            }\n        }\n        else {\n            values.push(from);\n        }\n    }\n\n    flags[def.name] = values;\n};\n\n\ninternals.colors = function (enabled) {\n\n    if (enabled === null) {\n        enabled = Tty.isatty(1) && Tty.isatty(2);\n    }\n\n    const codes = {\n        'black': 0,\n        'gray': 90,\n        'red': 31,\n        'green': 32,\n        'yellow': 33,\n        'magenta': 35,\n        'redBg': 41,\n        'greenBg': 42\n    };\n\n    const colors = {};\n    const names = Object.keys(codes);\n    for (let i = 0; i < names.length; ++i) {\n        const name = names[i];\n        colors[name] = internals.color(name, codes[name], enabled);\n    }\n\n    return colors;\n};\n\n\ninternals.color = function (name, code, enabled) {\n\n    if (enabled) {\n        const color = '\\u001b[' + code + 'm';\n        return function colorFormat(text) {\n\n            return color + text + '\\u001b[0m';\n        };\n    }\n\n    return function plainFormat(text) {\n\n        return text;\n    };\n};\n"]}