CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
createFromBase64.js80 linesDownload Raw Back to lib
1"use strict";2Object.defineProperty(exports, "__esModule", { value: true });3exports.createFromBase64 = void 0;4const constants_1 = require("./constants");5const E = '=';6const createFromBase64 = (chars = constants_1.alphabet, noPadding = false) => {7    if (chars.length !== 64)8        throw new Error('chars must be 64 characters long');9    let max = 0;10    for (let i = 0; i < chars.length; i++)11        max = Math.max(max, chars.charCodeAt(i));12    const table = [];13    for (let i = 0; i <= max; i += 1)14        table[i] = -1;15    for (let i = 0; i < chars.length; i++)16        table[chars.charCodeAt(i)] = i;17    return (encoded) => {18        if (!encoded)19            return new Uint8Array(0);20        let length = encoded.length;21        if (noPadding) {22            const mod = length % 4;23            if (mod === 2) {24                encoded += '==';25                length += 2;26            }27            else if (mod === 3) {28                encoded += '=';29                length += 1;30            }31        }32        if (length % 4 !== 0)33            throw new Error('Base64 string length must be a multiple of 4');34        const mainLength = encoded[length - 1] !== E ? length : length - 4;35        let bufferLength = (length >> 2) * 3;36        let padding = 0;37        if (encoded[length - 2] === E) {38            padding = 2;39            bufferLength -= 2;40        }41        else if (encoded[length - 1] === E) {42            padding = 1;43            bufferLength -= 1;44        }45        const buf = new Uint8Array(bufferLength);46        let j = 0;47        let i = 0;48        for (; i < mainLength; i += 4) {49            const sextet0 = table[encoded.charCodeAt(i)];50            const sextet1 = table[encoded.charCodeAt(i + 1)];51            const sextet2 = table[encoded.charCodeAt(i + 2)];52            const sextet3 = table[encoded.charCodeAt(i + 3)];53            if (sextet0 < 0 || sextet1 < 0 || sextet2 < 0 || sextet3 < 0)54                throw new Error('INVALID_BASE64_STRING');55            buf[j] = (sextet0 << 2) | (sextet1 >> 4);56            buf[j + 1] = (sextet1 << 4) | (sextet2 >> 2);57            buf[j + 2] = (sextet2 << 6) | sextet3;58            j += 3;59        }60        if (padding === 2) {61            const sextet0 = table[encoded.charCodeAt(mainLength)];62            const sextet1 = table[encoded.charCodeAt(mainLength + 1)];63            if (sextet0 < 0 || sextet1 < 0)64                throw new Error('INVALID_BASE64_STRING');65            buf[j] = (sextet0 << 2) | (sextet1 >> 4);66        }67        else if (padding === 1) {68            const sextet0 = table[encoded.charCodeAt(mainLength)];69            const sextet1 = table[encoded.charCodeAt(mainLength + 1)];70            const sextet2 = table[encoded.charCodeAt(mainLength + 2)];71            if (sextet0 < 0 || sextet1 < 0 || sextet2 < 0)72                throw new Error('INVALID_BASE64_STRING');73            buf[j] = (sextet0 << 2) | (sextet1 >> 4);74            buf[j + 1] = (sextet1 << 4) | (sextet2 >> 2);75        }76        return buf;77    };78};79exports.createFromBase64 = createFromBase64;80//# sourceMappingURL=createFromBase64.js.map
basant307/AI_Governance_Project · CoolFace