UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

122 lines (120 loc) 12.5 kB
var __defProp = Object.defineProperty; var __typeError = (msg) => { throw TypeError(msg); }; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg); var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value); var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); // src/clients/standard/jwt.ts import { SurrealValueError } from "../../errors/index.mjs"; import { base64url, quoteStr } from "../../utils/index.mjs"; var JWT_REGEX = /^((?:[0-9a-zA-Z_-]{4})*(?:[0-9a-zA-Z_-]{2,3})?)\.((?:[0-9a-zA-Z_-]{4})*(?:[0-9a-zA-Z_-]{2,3})?)\.((?:[0-9a-zA-Z_-]{4})*(?:[0-9a-zA-Z_-]{2,3})?)$/; var _parts, _cache, _Jwt_instances, payload_get; var _Jwt = class _Jwt { constructor(jwt, options = {}) { __privateAdd(this, _Jwt_instances); __privateAdd(this, _parts); __privateAdd(this, _cache); const { redactedText = "[REDACTED]" } = options; if (typeof jwt !== "string" || !JWT_REGEX.test(jwt)) { throw new SurrealValueError("well formed JWT", jwt); } __privateSet(this, _parts, jwt.split(".", 2)); __privateSet(this, _cache, {}); this.redactedText = redactedText; Object.defineProperty(this, "raw", { configurable: false, // 既定値通り再設定を不可にする。 enumerable: false, // 既定値通り列挙しない。 value: jwt }); } static isWellFormed(jwt) { return typeof jwt === "string" && JWT_REGEX.test(jwt); } get header() { if (__privateGet(this, _cache).headerJson === void 0) { __privateGet(this, _cache).headerJson = base64url.decode(__privateGet(this, _parts)[0]); __privateGet(this, _parts)[0] = null; } return JSON.parse(__privateGet(this, _cache).headerJson); } get payload() { if (__privateGet(this, _cache).payloadJson === void 0) { __privateGet(this, _cache).payloadJson = base64url.decode(__privateGet(this, _parts)[1]); __privateGet(this, _parts)[1] = null; } return JSON.parse(__privateGet(this, _cache).payloadJson); } get issuer() { return __privateGet(this, _Jwt_instances, payload_get).iss; } get issuedAt() { return __privateGet(this, _Jwt_instances, payload_get).iat; } get notBefore() { return __privateGet(this, _Jwt_instances, payload_get).nbf; } get expiresAt() { return __privateGet(this, _Jwt_instances, payload_get).exp; } get namespace() { return __privateGet(this, _Jwt_instances, payload_get).NS; } get database() { return __privateGet(this, _Jwt_instances, payload_get).DB; } get access() { return __privateGet(this, _Jwt_instances, payload_get).AC; } get user() { return __privateGet(this, _Jwt_instances, payload_get).ID; } get id() { return __privateGet(this, _Jwt_instances, payload_get).jti; } getMillisecondsUntilExpiration() { return this.expiresAt * 1e3 - Date.now(); } getSecondsUntilExpiration() { return this.expiresAt - Math.floor(Date.now() / 1e3); } getExpirationDate() { return new Date(this.expiresAt * 1e3); } toString() { return this.redactedText; } toCBOR() { return [this.redactedText]; } toJSON() { return this.redactedText; } toSurql() { return quoteStr(this.redactedText); } toPlainObject() { return { header: this.header, payload: this.payload }; } }; _parts = new WeakMap(); _cache = new WeakMap(); _Jwt_instances = new WeakSet(); payload_get = /* @__PURE__ */ __name(function() { return __privateGet(this, _cache).payload ||= this.payload; }, "#payload"); __name(_Jwt, "Jwt"); var Jwt = _Jwt; export { Jwt as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NsaWVudHMvc3RhbmRhcmQvand0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IEVuY29kYWJsZSB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZW5jb2RhYmxlLWRhdGF0eXBlc1wiO1xuaW1wb3J0IHsgU3VycmVhbFZhbHVlRXJyb3IgfSBmcm9tIFwiQHRhaS1rdW4vc3VycmVhbGRiL2Vycm9yc1wiO1xuaW1wb3J0IHsgYmFzZTY0dXJsLCBxdW90ZVN0ciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvdXRpbHNcIjtcblxuY29uc3QgSldUX1JFR0VYID1cbiAgL14oKD86WzAtOWEtekEtWl8tXXs0fSkqKD86WzAtOWEtekEtWl8tXXsyLDN9KT8pXFwuKCg/OlswLTlhLXpBLVpfLV17NH0pKig/OlswLTlhLXpBLVpfLV17MiwzfSk/KVxcLigoPzpbMC05YS16QS1aXy1dezR9KSooPzpbMC05YS16QS1aXy1dezIsM30pPykkLztcblxuZXhwb3J0IGludGVyZmFjZSBKd3RIZWFkZXIge1xuICB0eXA6IFwiSldUXCI7XG4gIGFsZzogc3RyaW5nO1xuICBbcDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKd3RQYXlsb2FkIHtcbiAgaXNzOiBcIlN1cnJlYWxEQlwiO1xuICBpYXQ6IG51bWJlcjtcbiAgbmJmOiBudW1iZXI7XG4gIGV4cDogbnVtYmVyO1xuICBqdGk6IHN0cmluZztcbiAgTlM/OiBzdHJpbmc7XG4gIERCPzogc3RyaW5nO1xuICBBQz86IHN0cmluZztcbiAgSUQ6IHN0cmluZztcbiAgW3A6IHN0cmluZ106IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSnd0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHJlZGFjdGVkVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSnd0IGltcGxlbWVudHMgRW5jb2RhYmxlIHtcbiAgc3RhdGljIGlzV2VsbEZvcm1lZChqd3Q6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygand0ID09PSBcInN0cmluZ1wiICYmIEpXVF9SRUdFWC50ZXN0KGp3dCk7XG4gIH1cblxuICByZWFkb25seSAjcGFydHM6IFtoZWFkZXI6IHN0cmluZywgcGF5bG9hZDogc3RyaW5nXTtcbiAgcmVhZG9ubHkgI2NhY2hlOiB7XG4gICAgaGVhZGVyPzogSnd0SGVhZGVyO1xuICAgIHBheWxvYWQ/OiBKd3RQYXlsb2FkO1xuICAgIGhlYWRlckpzb24/OiBzdHJpbmc7XG4gICAgcGF5bG9hZEpzb24/OiBzdHJpbmc7XG4gIH07XG5cbiAgcmVkYWN0ZWRUZXh0OiBzdHJpbmc7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgT2JqZWN0LmRlZmluZVByb3BlcnR5IFx1MzA2N1x1OEEyRFx1NUI5QVx1MzA1OVx1MzA4Qlx1MzAwMlxuICByZWFkb25seSByYXc6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihqd3Q6IHN0cmluZywgb3B0aW9uczogSnd0T3B0aW9ucyB8IHVuZGVmaW5lZCA9IHt9KSB7XG4gICAgY29uc3Qge1xuICAgICAgcmVkYWN0ZWRUZXh0ID0gXCJbUkVEQUNURURdXCIsXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAodHlwZW9mIGp3dCAhPT0gXCJzdHJpbmdcIiB8fCAhSldUX1JFR0VYLnRlc3Qoand0KSkge1xuICAgICAgdGhyb3cgbmV3IFN1cnJlYWxWYWx1ZUVycm9yKFwid2VsbCBmb3JtZWQgSldUXCIsIGp3dCk7XG4gICAgfVxuXG4gICAgdGhpcy4jcGFydHMgPSBqd3Quc3BsaXQoXCIuXCIsIDIpIGFzIFtzdHJpbmcsIHN0cmluZ107XG4gICAgdGhpcy4jY2FjaGUgPSB7fTtcbiAgICB0aGlzLnJlZGFjdGVkVGV4dCA9IHJlZGFjdGVkVGV4dDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJyYXdcIiwge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSwgLy8gXHU2NUUyXHU1QjlBXHU1MDI0XHU5MDFBXHUzMDhBXHU1MThEXHU4QTJEXHU1QjlBXHUzMDkyXHU0RTBEXHU1M0VGXHUzMDZCXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSwgLy8gXHU2NUUyXHU1QjlBXHU1MDI0XHU5MDFBXHUzMDhBXHU1MjE3XHU2MzE5XHUzMDU3XHUzMDZBXHUzMDQ0XHUzMDAyXG4gICAgICB2YWx1ZTogand0LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGhlYWRlcigpOiBKd3RIZWFkZXIge1xuICAgIGlmICh0aGlzLiNjYWNoZS5oZWFkZXJKc29uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI2NhY2hlLmhlYWRlckpzb24gPSBiYXNlNjR1cmwuZGVjb2RlKHRoaXMuI3BhcnRzWzBdKTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgXHU2RDg4XHUzMDU5XG4gICAgICB0aGlzLiNwYXJ0c1swXSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy4jY2FjaGUuaGVhZGVySnNvbik7XG4gIH1cblxuICBnZXQgcGF5bG9hZCgpOiBKd3RQYXlsb2FkIHtcbiAgICBpZiAodGhpcy4jY2FjaGUucGF5bG9hZEpzb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY2FjaGUucGF5bG9hZEpzb24gPSBiYXNlNjR1cmwuZGVjb2RlKHRoaXMuI3BhcnRzWzFdKTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgXHU2RDg4XHUzMDU5XG4gICAgICB0aGlzLiNwYXJ0c1sxXSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy4jY2FjaGUucGF5bG9hZEpzb24pO1xuICB9XG5cbiAgLy8gZ2V0ICNoZWFkZXIoKTogUmVhZG9ubHk8Snd0SGVhZGVyPiB7XG4gIC8vICAgcmV0dXJuICh0aGlzLiNjYWNoZS5oZWFkZXIgfHw9IHRoaXMuaGVhZGVyKTtcbiAgLy8gfVxuXG4gIGdldCAjcGF5bG9hZCgpOiBSZWFkb25seTxKd3RQYXlsb2FkPiB7XG4gICAgcmV0dXJuICh0aGlzLiNjYWNoZS5wYXlsb2FkIHx8PSB0aGlzLnBheWxvYWQpO1xuICB9XG5cbiAgZ2V0IGlzc3VlcigpOiBcIlN1cnJlYWxEQlwiIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5pc3M7XG4gIH1cblxuICBnZXQgaXNzdWVkQXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5pYXQ7XG4gIH1cblxuICBnZXQgbm90QmVmb3JlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI3BheWxvYWQubmJmO1xuICB9XG5cbiAgZ2V0IGV4cGlyZXNBdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLmV4cDtcbiAgfVxuXG4gIGdldCBuYW1lc3BhY2UoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5OUztcbiAgfVxuXG4gIGdldCBkYXRhYmFzZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLkRCO1xuICB9XG5cbiAgZ2V0IGFjY2VzcygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLkFDO1xuICB9XG5cbiAgZ2V0IHVzZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5JRDtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLmp0aTtcbiAgfVxuXG4gIGdldE1pbGxpc2Vjb25kc1VudGlsRXhwaXJhdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmV4cGlyZXNBdCAqIDEwMDAgLSBEYXRlLm5vdygpO1xuICB9XG5cbiAgZ2V0U2Vjb25kc1VudGlsRXhwaXJhdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmV4cGlyZXNBdCAtIE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICB9XG5cbiAgZ2V0RXhwaXJhdGlvbkRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuZXhwaXJlc0F0ICogMTAwMCk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlZGFjdGVkVGV4dDtcbiAgfVxuXG4gIHRvQ0JPUigpOiBbcmVkYWN0ZWRUZXh0OiBzdHJpbmddIHtcbiAgICByZXR1cm4gW3RoaXMucmVkYWN0ZWRUZXh0XTtcbiAgfVxuXG4gIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlZGFjdGVkVGV4dDtcbiAgfVxuXG4gIHRvU3VycWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcXVvdGVTdHIodGhpcy5yZWRhY3RlZFRleHQpO1xuICB9XG5cbiAgdG9QbGFpbk9iamVjdCgpOiB7XG4gICAgaGVhZGVyOiBKd3RIZWFkZXI7XG4gICAgcGF5bG9hZDogSnd0UGF5bG9hZDtcbiAgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcjogdGhpcy5oZWFkZXIsXG4gICAgICBwYXlsb2FkOiB0aGlzLnBheWxvYWQsXG4gICAgfTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7QUFDQSxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLFdBQVcsZ0JBQWdCO0FBRXBDLElBQU0sWUFDSjtBQUxGO0FBOEJBLElBQXFCLE9BQXJCLE1BQXFCLEtBQXlCO0FBQUEsRUFpQjVDLFlBQVksS0FBYSxVQUFrQyxDQUFDLEdBQUc7QUFqQmpFO0FBS0UsdUJBQVM7QUFDVCx1QkFBUztBQVlQLFVBQU07QUFBQSxNQUNKLGVBQWU7QUFBQSxJQUNqQixJQUFJO0FBRUosUUFBSSxPQUFPLFFBQVEsWUFBWSxDQUFDLFVBQVUsS0FBSyxHQUFHLEdBQUc7QUFDbkQsWUFBTSxJQUFJLGtCQUFrQixtQkFBbUIsR0FBRztBQUFBLElBQ3BEO0FBRUEsdUJBQUssUUFBUyxJQUFJLE1BQU0sS0FBSyxDQUFDO0FBQzlCLHVCQUFLLFFBQVMsQ0FBQztBQUNmLFNBQUssZUFBZTtBQUNwQixXQUFPLGVBQWUsTUFBTSxPQUFPO0FBQUEsTUFDakMsY0FBYztBQUFBO0FBQUEsTUFDZCxZQUFZO0FBQUE7QUFBQSxNQUNaLE9BQU87QUFBQSxJQUNULENBQUM7QUFBQSxFQUNIO0FBQUEsRUFqQ0EsT0FBTyxhQUFhLEtBQXNCO0FBQ3hDLFdBQU8sT0FBTyxRQUFRLFlBQVksVUFBVSxLQUFLLEdBQUc7QUFBQSxFQUN0RDtBQUFBLEVBaUNBLElBQUksU0FBb0I7QUFDdEIsUUFBSSxtQkFBSyxRQUFPLGVBQWUsUUFBVztBQUN4Qyx5QkFBSyxRQUFPLGFBQWEsVUFBVSxPQUFPLG1CQUFLLFFBQU8sQ0FBQyxDQUFDO0FBRXhELHlCQUFLLFFBQU8sQ0FBQyxJQUFJO0FBQUEsSUFDbkI7QUFFQSxXQUFPLEtBQUssTUFBTSxtQkFBSyxRQUFPLFVBQVU7QUFBQSxFQUMxQztBQUFBLEVBRUEsSUFBSSxVQUFzQjtBQUN4QixRQUFJLG1CQUFLLFFBQU8sZ0JBQWdCLFFBQVc7QUFDekMseUJBQUssUUFBTyxjQUFjLFVBQVUsT0FBTyxtQkFBSyxRQUFPLENBQUMsQ0FBQztBQUV6RCx5QkFBSyxRQUFPLENBQUMsSUFBSTtBQUFBLElBQ25CO0FBRUEsV0FBTyxLQUFLLE1BQU0sbUJBQUssUUFBTyxXQUFXO0FBQUEsRUFDM0M7QUFBQSxFQVVBLElBQUksU0FBc0I7QUFDeEIsV0FBTyxtQkFBSyw2QkFBUztBQUFBLEVBQ3ZCO0FBQUEsRUFFQSxJQUFJLFdBQW1CO0FBQ3JCLFdBQU8sbUJBQUssNkJBQVM7QUFBQSxFQUN2QjtBQUFBLEVBRUEsSUFBSSxZQUFvQjtBQUN0QixXQUFPLG1CQUFLLDZCQUFTO0FBQUEsRUFDdkI7QUFBQSxFQUVBLElBQUksWUFBb0I7QUFDdEIsV0FBTyxtQkFBSyw2QkFBUztBQUFBLEVBQ3ZCO0FBQUEsRUFFQSxJQUFJLFlBQWdDO0FBQ2xDLFdBQU8sbUJBQUssNkJBQVM7QUFBQSxFQUN2QjtBQUFBLEVBRUEsSUFBSSxXQUErQjtBQUNqQyxXQUFPLG1CQUFLLDZCQUFTO0FBQUEsRUFDdkI7QUFBQSxFQUVBLElBQUksU0FBNkI7QUFDL0IsV0FBTyxtQkFBSyw2QkFBUztBQUFBLEVBQ3ZCO0FBQUEsRUFFQSxJQUFJLE9BQWU7QUFDakIsV0FBTyxtQkFBSyw2QkFBUztBQUFBLEVBQ3ZCO0FBQUEsRUFFQSxJQUFJLEtBQWE7QUFDZixXQUFPLG1CQUFLLDZCQUFTO0FBQUEsRUFDdkI7QUFBQSxFQUVBLGlDQUF5QztBQUN2QyxXQUFPLEtBQUssWUFBWSxNQUFPLEtBQUssSUFBSTtBQUFBLEVBQzFDO0FBQUEsRUFFQSw0QkFBb0M7QUFDbEMsV0FBTyxLQUFLLFlBQVksS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLEdBQUk7QUFBQSxFQUN0RDtBQUFBLEVBRUEsb0JBQTBCO0FBQ3hCLFdBQU8sSUFBSSxLQUFLLEtBQUssWUFBWSxHQUFJO0FBQUEsRUFDdkM7QUFBQSxFQUVBLFdBQW1CO0FBQ2pCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVBLFNBQWlDO0FBQy9CLFdBQU8sQ0FBQyxLQUFLLFlBQVk7QUFBQSxFQUMzQjtBQUFBLEVBRUEsU0FBaUI7QUFDZixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUEsRUFFQSxVQUFrQjtBQUNoQixXQUFPLFNBQVMsS0FBSyxZQUFZO0FBQUEsRUFDbkM7QUFBQSxFQUVBLGdCQUdFO0FBQ0EsV0FBTztBQUFBLE1BQ0wsUUFBUSxLQUFLO0FBQUEsTUFDYixTQUFTLEtBQUs7QUFBQSxJQUNoQjtBQUFBLEVBQ0Y7QUFDRjtBQXBJVztBQUNBO0FBTlg7QUE0RE0sY0FBUSxrQ0FBeUI7QUFDbkMsU0FBUSxtQkFBSyxRQUFPLFlBQVksS0FBSztBQUN2QyxHQUZZO0FBNURnQztBQUE5QyxJQUFxQixNQUFyQjsiLAogICJuYW1lcyI6IFtdCn0K