Spaces:
Sleeping
Sleeping
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.base64 = void 0; | |
| exports.normalize = normalize; | |
| exports.pad = pad; | |
| exports.is = is; | |
| exports.encode = encode; | |
| exports.decode = decode; | |
| const index_js_1 = require("../bytes/index.js"); | |
| const binary_js_1 = require("./binary.js"); | |
| const BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/; | |
| function nodeBuffer() { | |
| return globalThis.Buffer; | |
| } | |
| function normalize(text) { | |
| return text.replace(/[\n\r\t ]/g, ""); | |
| } | |
| function pad(text) { | |
| const remainder = text.length % 4; | |
| return remainder ? text + "=".repeat(4 - remainder) : text; | |
| } | |
| function is(text) { | |
| if (typeof text !== "string") { | |
| return false; | |
| } | |
| const normalized = normalize(text); | |
| return normalized === "" || BASE64_REGEX.test(normalized); | |
| } | |
| function encode(data, _options) { | |
| const bytes = (0, index_js_1.toUint8Array)(data); | |
| const buffer = nodeBuffer(); | |
| if (buffer) { | |
| return buffer.from(bytes).toString("base64"); | |
| } | |
| return btoa((0, binary_js_1.encode)(bytes)); | |
| } | |
| function decode(text, _options) { | |
| const normalized = normalize(text); | |
| if (!is(normalized)) { | |
| throw new TypeError("Input is not valid Base64 text"); | |
| } | |
| const buffer = nodeBuffer(); | |
| if (buffer) { | |
| return new Uint8Array(buffer.from(normalized, "base64")); | |
| } | |
| return (0, binary_js_1.decode)(atob(normalized)); | |
| } | |
| exports.base64 = { encode, decode, is, normalize, pad }; | |