{"version":3,"sources":["jsdelivr-header.js","/npm/pvutils@1.1.4/build/utils.js"],"names":[],"mappings":"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","file":"/npm/pvutils@1.1.4/build/utils.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/pvutils@1.1.4/build/utils.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUTCDate(date) {\r\n    return new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\r\n}\r\nfunction getParametersValue(parameters, name, defaultValue) {\r\n    var _a;\r\n    if ((parameters instanceof Object) === false) {\r\n        return defaultValue;\r\n    }\r\n    return (_a = parameters[name]) !== null && _a !== void 0 ? _a : defaultValue;\r\n}\r\nfunction bufferToHexCodes(inputBuffer, inputOffset = 0, inputLength = (inputBuffer.byteLength - inputOffset), insertSpace = false) {\r\n    let result = \"\";\r\n    for (const item of (new Uint8Array(inputBuffer, inputOffset, inputLength))) {\r\n        const str = item.toString(16).toUpperCase();\r\n        if (str.length === 1) {\r\n            result += \"0\";\r\n        }\r\n        result += str;\r\n        if (insertSpace) {\r\n            result += \" \";\r\n        }\r\n    }\r\n    return result.trim();\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n    if (!(inputBuffer instanceof ArrayBuffer)) {\r\n        baseBlock.error = \"Wrong parameter: inputBuffer must be \\\"ArrayBuffer\\\"\";\r\n        return false;\r\n    }\r\n    if (!inputBuffer.byteLength) {\r\n        baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n        return false;\r\n    }\r\n    if (inputOffset < 0) {\r\n        baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n        return false;\r\n    }\r\n    if (inputLength < 0) {\r\n        baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n        return false;\r\n    }\r\n    if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n        baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\nfunction utilFromBase(inputBuffer, inputBase) {\r\n    let result = 0;\r\n    if (inputBuffer.length === 1) {\r\n        return inputBuffer[0];\r\n    }\r\n    for (let i = (inputBuffer.length - 1); i >= 0; i--) {\r\n        result += inputBuffer[(inputBuffer.length - 1) - i] * Math.pow(2, inputBase * i);\r\n    }\r\n    return result;\r\n}\r\nfunction utilToBase(value, base, reserved = (-1)) {\r\n    const internalReserved = reserved;\r\n    let internalValue = value;\r\n    let result = 0;\r\n    let biggest = Math.pow(2, base);\r\n    for (let i = 1; i < 8; i++) {\r\n        if (value < biggest) {\r\n            let retBuf;\r\n            if (internalReserved < 0) {\r\n                retBuf = new ArrayBuffer(i);\r\n                result = i;\r\n            }\r\n            else {\r\n                if (internalReserved < i) {\r\n                    return (new ArrayBuffer(0));\r\n                }\r\n                retBuf = new ArrayBuffer(internalReserved);\r\n                result = internalReserved;\r\n            }\r\n            const retView = new Uint8Array(retBuf);\r\n            for (let j = (i - 1); j >= 0; j--) {\r\n                const basis = Math.pow(2, j * base);\r\n                retView[result - j - 1] = Math.floor(internalValue / basis);\r\n                internalValue -= (retView[result - j - 1]) * basis;\r\n            }\r\n            return retBuf;\r\n        }\r\n        biggest *= Math.pow(2, base);\r\n    }\r\n    return new ArrayBuffer(0);\r\n}\r\nfunction utilConcatBuf(...buffers) {\r\n    let outputLength = 0;\r\n    let prevLength = 0;\r\n    for (const buffer of buffers) {\r\n        outputLength += buffer.byteLength;\r\n    }\r\n    const retBuf = new ArrayBuffer(outputLength);\r\n    const retView = new Uint8Array(retBuf);\r\n    for (const buffer of buffers) {\r\n        retView.set(new Uint8Array(buffer), prevLength);\r\n        prevLength += buffer.byteLength;\r\n    }\r\n    return retBuf;\r\n}\r\nfunction utilConcatView(...views) {\r\n    let outputLength = 0;\r\n    let prevLength = 0;\r\n    for (const view of views) {\r\n        outputLength += view.length;\r\n    }\r\n    const retBuf = new ArrayBuffer(outputLength);\r\n    const retView = new Uint8Array(retBuf);\r\n    for (const view of views) {\r\n        retView.set(view, prevLength);\r\n        prevLength += view.length;\r\n    }\r\n    return retView;\r\n}\r\nfunction utilDecodeTC() {\r\n    const buf = new Uint8Array(this.valueHex);\r\n    if (this.valueHex.byteLength >= 2) {\r\n        const condition1 = (buf[0] === 0xFF) && (buf[1] & 0x80);\r\n        const condition2 = (buf[0] === 0x00) && ((buf[1] & 0x80) === 0x00);\r\n        if (condition1 || condition2) {\r\n            this.warnings.push(\"Needlessly long format\");\r\n        }\r\n    }\r\n    const bigIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n    const bigIntView = new Uint8Array(bigIntBuffer);\r\n    for (let i = 0; i < this.valueHex.byteLength; i++) {\r\n        bigIntView[i] = 0;\r\n    }\r\n    bigIntView[0] = (buf[0] & 0x80);\r\n    const bigInt = utilFromBase(bigIntView, 8);\r\n    const smallIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n    const smallIntView = new Uint8Array(smallIntBuffer);\r\n    for (let j = 0; j < this.valueHex.byteLength; j++) {\r\n        smallIntView[j] = buf[j];\r\n    }\r\n    smallIntView[0] &= 0x7F;\r\n    const smallInt = utilFromBase(smallIntView, 8);\r\n    return (smallInt - bigInt);\r\n}\r\nfunction utilEncodeTC(value) {\r\n    const modValue = (value < 0) ? (value * (-1)) : value;\r\n    let bigInt = 128;\r\n    for (let i = 1; i < 8; i++) {\r\n        if (modValue <= bigInt) {\r\n            if (value < 0) {\r\n                const smallInt = bigInt - modValue;\r\n                const retBuf = utilToBase(smallInt, 8, i);\r\n                const retView = new Uint8Array(retBuf);\r\n                retView[0] |= 0x80;\r\n                return retBuf;\r\n            }\r\n            let retBuf = utilToBase(modValue, 8, i);\r\n            let retView = new Uint8Array(retBuf);\r\n            if (retView[0] & 0x80) {\r\n                const tempBuf = retBuf.slice(0);\r\n                const tempView = new Uint8Array(tempBuf);\r\n                retBuf = new ArrayBuffer(retBuf.byteLength + 1);\r\n                retView = new Uint8Array(retBuf);\r\n                for (let k = 0; k < tempBuf.byteLength; k++) {\r\n                    retView[k + 1] = tempView[k];\r\n                }\r\n                retView[0] = 0x00;\r\n            }\r\n            return retBuf;\r\n        }\r\n        bigInt *= Math.pow(2, 8);\r\n    }\r\n    return (new ArrayBuffer(0));\r\n}\r\nfunction isEqualBuffer(inputBuffer1, inputBuffer2) {\r\n    if (inputBuffer1.byteLength !== inputBuffer2.byteLength) {\r\n        return false;\r\n    }\r\n    const view1 = new Uint8Array(inputBuffer1);\r\n    const view2 = new Uint8Array(inputBuffer2);\r\n    for (let i = 0; i < view1.length; i++) {\r\n        if (view1[i] !== view2[i]) {\r\n            return false;\r\n        }\r\n    }\r\n    return true;\r\n}\r\nfunction padNumber(inputNumber, fullLength) {\r\n    const str = inputNumber.toString(10);\r\n    if (fullLength < str.length) {\r\n        return \"\";\r\n    }\r\n    const dif = fullLength - str.length;\r\n    const padding = new Array(dif);\r\n    for (let i = 0; i < dif; i++) {\r\n        padding[i] = \"0\";\r\n    }\r\n    const paddingString = padding.join(\"\");\r\n    return paddingString.concat(str);\r\n}\r\nconst base64Template = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nconst base64UrlTemplate = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\";\r\nfunction toBase64(input, useUrlTemplate = false, skipPadding = false, skipLeadingZeros = false) {\r\n    let i = 0;\r\n    let flag1 = 0;\r\n    let flag2 = 0;\r\n    let output = \"\";\r\n    const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n    if (skipLeadingZeros) {\r\n        let nonZeroPosition = 0;\r\n        for (let i = 0; i < input.length; i++) {\r\n            if (input.charCodeAt(i) !== 0) {\r\n                nonZeroPosition = i;\r\n                break;\r\n            }\r\n        }\r\n        input = input.slice(nonZeroPosition);\r\n    }\r\n    while (i < input.length) {\r\n        const chr1 = input.charCodeAt(i++);\r\n        if (i >= input.length) {\r\n            flag1 = 1;\r\n        }\r\n        const chr2 = input.charCodeAt(i++);\r\n        if (i >= input.length) {\r\n            flag2 = 1;\r\n        }\r\n        const chr3 = input.charCodeAt(i++);\r\n        const enc1 = chr1 >> 2;\r\n        const enc2 = ((chr1 & 0x03) << 4) | (chr2 >> 4);\r\n        let enc3 = ((chr2 & 0x0F) << 2) | (chr3 >> 6);\r\n        let enc4 = chr3 & 0x3F;\r\n        if (flag1 === 1) {\r\n            enc3 = enc4 = 64;\r\n        }\r\n        else {\r\n            if (flag2 === 1) {\r\n                enc4 = 64;\r\n            }\r\n        }\r\n        if (skipPadding) {\r\n            if (enc3 === 64) {\r\n                output += `${template.charAt(enc1)}${template.charAt(enc2)}`;\r\n            }\r\n            else {\r\n                if (enc4 === 64) {\r\n                    output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}`;\r\n                }\r\n                else {\r\n                    output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n                }\r\n            }\r\n        }\r\n        else {\r\n            output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n        }\r\n    }\r\n    return output;\r\n}\r\nfunction fromBase64(input, useUrlTemplate = false, cutTailZeros = false) {\r\n    const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n    function indexOf(toSearch) {\r\n        for (let i = 0; i < 64; i++) {\r\n            if (template.charAt(i) === toSearch)\r\n                return i;\r\n        }\r\n        return 64;\r\n    }\r\n    function test(incoming) {\r\n        return ((incoming === 64) ? 0x00 : incoming);\r\n    }\r\n    let i = 0;\r\n    let output = \"\";\r\n    while (i < input.length) {\r\n        const enc1 = indexOf(input.charAt(i++));\r\n        const enc2 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n        const enc3 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n        const enc4 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n        const chr1 = (test(enc1) << 2) | (test(enc2) >> 4);\r\n        const chr2 = ((test(enc2) & 0x0F) << 4) | (test(enc3) >> 2);\r\n        const chr3 = ((test(enc3) & 0x03) << 6) | test(enc4);\r\n        output += String.fromCharCode(chr1);\r\n        if (enc3 !== 64) {\r\n            output += String.fromCharCode(chr2);\r\n        }\r\n        if (enc4 !== 64) {\r\n            output += String.fromCharCode(chr3);\r\n        }\r\n    }\r\n    if (cutTailZeros) {\r\n        const outputLength = output.length;\r\n        let nonZeroStart = (-1);\r\n        for (let i = (outputLength - 1); i >= 0; i--) {\r\n            if (output.charCodeAt(i) !== 0) {\r\n                nonZeroStart = i;\r\n                break;\r\n            }\r\n        }\r\n        if (nonZeroStart !== (-1)) {\r\n            output = output.slice(0, nonZeroStart + 1);\r\n        }\r\n        else {\r\n            output = \"\";\r\n        }\r\n    }\r\n    return output;\r\n}\r\nfunction arrayBufferToString(buffer) {\r\n    let resultString = \"\";\r\n    const view = new Uint8Array(buffer);\r\n    for (const element of view) {\r\n        resultString += String.fromCharCode(element);\r\n    }\r\n    return resultString;\r\n}\r\nfunction stringToArrayBuffer(str) {\r\n    const stringLength = str.length;\r\n    const resultBuffer = new ArrayBuffer(stringLength);\r\n    const resultView = new Uint8Array(resultBuffer);\r\n    for (let i = 0; i < stringLength; i++) {\r\n        resultView[i] = str.charCodeAt(i);\r\n    }\r\n    return resultBuffer;\r\n}\r\nconst log2 = Math.log(2);\r\nfunction nearestPowerOf2(length) {\r\n    const base = (Math.log(length) / log2);\r\n    const floor = Math.floor(base);\r\n    const round = Math.round(base);\r\n    return ((floor === round) ? floor : round);\r\n}\r\nfunction clearProps(object, propsArray) {\r\n    for (const prop of propsArray) {\r\n        delete object[prop];\r\n    }\r\n}\n\nexports.arrayBufferToString = arrayBufferToString;\nexports.bufferToHexCodes = bufferToHexCodes;\nexports.checkBufferParams = checkBufferParams;\nexports.clearProps = clearProps;\nexports.fromBase64 = fromBase64;\nexports.getParametersValue = getParametersValue;\nexports.getUTCDate = getUTCDate;\nexports.isEqualBuffer = isEqualBuffer;\nexports.nearestPowerOf2 = nearestPowerOf2;\nexports.padNumber = padNumber;\nexports.stringToArrayBuffer = stringToArrayBuffer;\nexports.toBase64 = toBase64;\nexports.utilConcatBuf = utilConcatBuf;\nexports.utilConcatView = utilConcatView;\nexports.utilDecodeTC = utilDecodeTC;\nexports.utilEncodeTC = utilEncodeTC;\nexports.utilFromBase = utilFromBase;\nexports.utilToBase = utilToBase;\n"]}