{"version":3,"sources":["jsdelivr-header.js","/npm/sprintf-js@1.1.3/src/sprintf.js"],"names":[],"mappings":"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","file":"/npm/sprintf-js@1.1.3/src/sprintf.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/sprintf-js@1.1.3/src/sprintf.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/* global window, exports, define */\n\n!function() {\n    'use strict'\n\n    var re = {\n        not_string: /[^s]/,\n        not_bool: /[^t]/,\n        not_type: /[^T]/,\n        not_primitive: /[^v]/,\n        number: /[diefg]/,\n        numeric_arg: /[bcdiefguxX]/,\n        json: /[j]/,\n        not_json: /[^j]/,\n        text: /^[^\\x25]+/,\n        modulo: /^\\x25{2}/,\n        placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n        key: /^([a-z_][a-z_\\d]*)/i,\n        key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n        index_access: /^\\[(\\d+)\\]/,\n        sign: /^[+-]/\n    }\n\n    function sprintf(key) {\n        // `arguments` is not an array, but should be fine for this call\n        return sprintf_format(sprintf_parse(key), arguments)\n    }\n\n    function vsprintf(fmt, argv) {\n        return sprintf.apply(null, [fmt].concat(argv || []))\n    }\n\n    function sprintf_format(parse_tree, argv) {\n        var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n        for (i = 0; i < tree_length; i++) {\n            if (typeof parse_tree[i] === 'string') {\n                output += parse_tree[i]\n            }\n            else if (typeof parse_tree[i] === 'object') {\n                ph = parse_tree[i] // convenience purposes only\n                if (ph.keys) { // keyword argument\n                    arg = argv[cursor]\n                    for (k = 0; k < ph.keys.length; k++) {\n                        if (arg == undefined) {\n                            throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n                        }\n                        arg = arg[ph.keys[k]]\n                    }\n                }\n                else if (ph.param_no) { // positional argument (explicit)\n                    arg = argv[ph.param_no]\n                }\n                else { // positional argument (implicit)\n                    arg = argv[cursor++]\n                }\n\n                if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n                    arg = arg()\n                }\n\n                if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n                    throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n                }\n\n                if (re.number.test(ph.type)) {\n                    is_positive = arg >= 0\n                }\n\n                switch (ph.type) {\n                    case 'b':\n                        arg = parseInt(arg, 10).toString(2)\n                        break\n                    case 'c':\n                        arg = String.fromCharCode(parseInt(arg, 10))\n                        break\n                    case 'd':\n                    case 'i':\n                        arg = parseInt(arg, 10)\n                        break\n                    case 'j':\n                        arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n                        break\n                    case 'e':\n                        arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n                        break\n                    case 'f':\n                        arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n                        break\n                    case 'g':\n                        arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n                        break\n                    case 'o':\n                        arg = (parseInt(arg, 10) >>> 0).toString(8)\n                        break\n                    case 's':\n                        arg = String(arg)\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 't':\n                        arg = String(!!arg)\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'T':\n                        arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'u':\n                        arg = parseInt(arg, 10) >>> 0\n                        break\n                    case 'v':\n                        arg = arg.valueOf()\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'x':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16)\n                        break\n                    case 'X':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n                        break\n                }\n                if (re.json.test(ph.type)) {\n                    output += arg\n                }\n                else {\n                    if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n                        sign = is_positive ? '+' : '-'\n                        arg = arg.toString().replace(re.sign, '')\n                    }\n                    else {\n                        sign = ''\n                    }\n                    pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n                    pad_length = ph.width - (sign + arg).length\n                    pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n                    output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n                }\n            }\n        }\n        return output\n    }\n\n    var sprintf_cache = Object.create(null)\n\n    function sprintf_parse(fmt) {\n        if (sprintf_cache[fmt]) {\n            return sprintf_cache[fmt]\n        }\n\n        var _fmt = fmt, match, parse_tree = [], arg_names = 0\n        while (_fmt) {\n            if ((match = re.text.exec(_fmt)) !== null) {\n                parse_tree.push(match[0])\n            }\n            else if ((match = re.modulo.exec(_fmt)) !== null) {\n                parse_tree.push('%')\n            }\n            else if ((match = re.placeholder.exec(_fmt)) !== null) {\n                if (match[2]) {\n                    arg_names |= 1\n                    var field_list = [], replacement_field = match[2], field_match = []\n                    if ((field_match = re.key.exec(replacement_field)) !== null) {\n                        field_list.push(field_match[1])\n                        while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n                            if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else {\n                                throw new SyntaxError('[sprintf] failed to parse named argument key')\n                            }\n                        }\n                    }\n                    else {\n                        throw new SyntaxError('[sprintf] failed to parse named argument key')\n                    }\n                    match[2] = field_list\n                }\n                else {\n                    arg_names |= 2\n                }\n                if (arg_names === 3) {\n                    throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n                }\n\n                parse_tree.push(\n                    {\n                        placeholder: match[0],\n                        param_no:    match[1],\n                        keys:        match[2],\n                        sign:        match[3],\n                        pad_char:    match[4],\n                        align:       match[5],\n                        width:       match[6],\n                        precision:   match[7],\n                        type:        match[8]\n                    }\n                )\n            }\n            else {\n                throw new SyntaxError('[sprintf] unexpected placeholder')\n            }\n            _fmt = _fmt.substring(match[0].length)\n        }\n        return sprintf_cache[fmt] = parse_tree\n    }\n\n    /**\n     * export to either browser or node.js\n     */\n    /* eslint-disable quote-props */\n    if (typeof exports !== 'undefined') {\n        exports['sprintf'] = sprintf\n        exports['vsprintf'] = vsprintf\n    }\n    if (typeof window !== 'undefined') {\n        window['sprintf'] = sprintf\n        window['vsprintf'] = vsprintf\n\n        if (typeof define === 'function' && define['amd']) {\n            define(function() {\n                return {\n                    'sprintf': sprintf,\n                    'vsprintf': vsprintf\n                }\n            })\n        }\n    }\n    /* eslint-enable quote-props */\n}(); // eslint-disable-line\n"]}