Initial
This commit is contained in:
35
resources/app/node_modules/@smithy/util-base64/dist-es/toBase64.browser.js
generated
vendored
Normal file
35
resources/app/node_modules/@smithy/util-base64/dist-es/toBase64.browser.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
import { fromUtf8 } from "@smithy/util-utf8";
|
||||
import { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from "./constants.browser";
|
||||
export function toBase64(_input) {
|
||||
let input;
|
||||
if (typeof _input === "string") {
|
||||
input = fromUtf8(_input);
|
||||
}
|
||||
else {
|
||||
input = _input;
|
||||
}
|
||||
const isArrayLike = typeof input === "object" && typeof input.length === "number";
|
||||
const isUint8Array = typeof input === "object" &&
|
||||
typeof input.byteOffset === "number" &&
|
||||
typeof input.byteLength === "number";
|
||||
if (!isArrayLike && !isUint8Array) {
|
||||
throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");
|
||||
}
|
||||
let str = "";
|
||||
for (let i = 0; i < input.length; i += 3) {
|
||||
let bits = 0;
|
||||
let bitLength = 0;
|
||||
for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {
|
||||
bits |= input[j] << ((limit - j - 1) * bitsPerByte);
|
||||
bitLength += bitsPerByte;
|
||||
}
|
||||
const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);
|
||||
bits <<= bitClusterCount * bitsPerLetter - bitLength;
|
||||
for (let k = 1; k <= bitClusterCount; k++) {
|
||||
const offset = (bitClusterCount - k) * bitsPerLetter;
|
||||
str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];
|
||||
}
|
||||
str += "==".slice(0, 4 - bitClusterCount);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
Reference in New Issue
Block a user