@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
52 lines (50 loc) • 3.93 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/utils/base64url.ts
import { unreachable } from "../errors/index.mjs";
import utf8 from "./utf8.mjs";
var decodeFunction;
if (typeof Buffer !== "undefined") {
decodeFunction = /* @__PURE__ */ __name(function decode(url) {
return Buffer.from(url, "base64url").toString("utf8");
}, "decode");
} else {
decodeFunction = /* @__PURE__ */ __name(function unsafe_decode(url) {
let s = "", len = url.length;
for (let i = 0; i < len; i++) {
switch (url.charCodeAt(i)) {
case 45:
s += "+";
break;
case 95:
s += "/";
break;
default:
s += url[i];
}
}
switch (len % 4) {
case 0:
break;
case 1:
s += "===";
break;
case 2:
s += "==";
break;
case 3:
s += "=";
break;
default:
unreachable();
}
return utf8.decode(Uint8Array.from(atob(s), (c) => c.codePointAt(0)));
}, "unsafe_decode");
}
var base64url_default = {
decode: decodeFunction
};
export {
base64url_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2Jhc2U2NHVybC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgdW5yZWFjaGFibGUgfSBmcm9tIFwiQHRhaS1rdW4vc3VycmVhbGRiL2Vycm9yc1wiO1xuaW1wb3J0IHV0ZjggZnJvbSBcIi4vdXRmOFwiO1xuXG5sZXQgZGVjb2RlRnVuY3Rpb246ICh1cmw6IHN0cmluZykgPT4gc3RyaW5nO1xuXG5pZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICBkZWNvZGVGdW5jdGlvbiA9IGZ1bmN0aW9uIGRlY29kZSh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHVybCwgXCJiYXNlNjR1cmxcIikudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICB9O1xufSBlbHNlIHtcbiAgZGVjb2RlRnVuY3Rpb24gPSBmdW5jdGlvbiB1bnNhZmVfZGVjb2RlKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcyA9IFwiXCIsIGxlbiA9IHVybC5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBzd2l0Y2ggKHVybC5jaGFyQ29kZUF0KGkpKSB7XG4gICAgICAgIGNhc2UgNDU6IC8vIC1cbiAgICAgICAgICBzICs9IFwiK1wiO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgOTU6IC8vIF9cbiAgICAgICAgICBzICs9IFwiL1wiO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcyArPSB1cmxbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoIChsZW4gJSA0KSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDE6XG4gICAgICAgIHMgKz0gXCI9PT1cIjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcyArPSBcIj09XCI7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDM6XG4gICAgICAgIHMgKz0gXCI9XCI7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB1bnJlYWNoYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvR2xvc3NhcnkvQmFzZTY0XG4gICAgcmV0dXJuIHV0ZjguZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKHMpLCBjID0+IGMuY29kZVBvaW50QXQoMCkhKSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZGVjb2RlOiBkZWNvZGVGdW5jdGlvbixcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7O0FBQUEsU0FBUyxtQkFBbUI7QUFDNUIsT0FBTyxVQUFVO0FBRWpCLElBQUk7QUFFSixJQUFJLE9BQU8sV0FBVyxhQUFhO0FBQ2pDLG1CQUFpQixnQ0FBUyxPQUFPLEtBQXFCO0FBQ3BELFdBQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFLFNBQVMsTUFBTTtBQUFBLEVBQ3RELEdBRmlCO0FBR25CLE9BQU87QUFDTCxtQkFBaUIsZ0NBQVMsY0FBYyxLQUFxQjtBQUMzRCxRQUFJLElBQUksSUFBSSxNQUFNLElBQUk7QUFFdEIsYUFBUyxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7QUFDNUIsY0FBUSxJQUFJLFdBQVcsQ0FBQyxHQUFHO0FBQUEsUUFDekIsS0FBSztBQUNILGVBQUs7QUFDTDtBQUFBLFFBRUYsS0FBSztBQUNILGVBQUs7QUFDTDtBQUFBLFFBRUY7QUFDRSxlQUFLLElBQUksQ0FBQztBQUFBLE1BQ2Q7QUFBQSxJQUNGO0FBRUEsWUFBUSxNQUFNLEdBQUc7QUFBQSxNQUNmLEtBQUs7QUFDSDtBQUFBLE1BRUYsS0FBSztBQUNILGFBQUs7QUFDTDtBQUFBLE1BRUYsS0FBSztBQUNILGFBQUs7QUFDTDtBQUFBLE1BRUYsS0FBSztBQUNILGFBQUs7QUFDTDtBQUFBLE1BRUY7QUFDRSxvQkFBWTtBQUFBLElBQ2hCO0FBR0EsV0FBTyxLQUFLLE9BQU8sV0FBVyxLQUFLLEtBQUssQ0FBQyxHQUFHLE9BQUssRUFBRSxZQUFZLENBQUMsQ0FBRSxDQUFDO0FBQUEsRUFDckUsR0F4Q2lCO0FBeUNuQjtBQUVBLElBQU8sb0JBQVE7QUFBQSxFQUNiLFFBQVE7QUFDVjsiLAogICJuYW1lcyI6IFtdCn0K