@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
122 lines (120 loc) • 12.5 kB
JavaScript
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/OiBzdHJpbmc7XG4gIH07XG5cbiAgcmVkYWN0ZWRUZXh0OiBzdHJpbmc7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgT2JqZWN0LmRlZmluZVByb3BlcnR5IFx1MzA2N1x1OEEyRFx1NUI5QVx1MzA1OVx1MzA4Qlx1MzAwMlxuICByZWFkb25seSByYXc6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihqd3Q6IHN0cmluZywgb3B0aW9uczogSnd0T3B0aW9ucyB8IHVuZGVmaW5lZCA9IHt9KSB7XG4gICAgY29uc3Qge1xuICAgICAgcmVkYWN0ZWRUZXh0ID0gXCJbUkVEQUNURURdXCIsXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAodHlwZW9mIGp3dCAhPT0gXCJzdHJpbmdcIiB8fCAhSldUX1JFR0VYLnRlc3Qoand0KSkge1xuICAgICAgdGhyb3cgbmV3IFN1cnJlYWxWYWx1ZUVycm9yKFwid2VsbCBmb3JtZWQgSldUXCIsIGp3dCk7XG4gICAgfVxuXG4gICAgdGhpcy4jcGFydHMgPSBqd3Quc3BsaXQoXCIuXCIsIDIpIGFzIFtzdHJpbmcsIHN0cmluZ107XG4gICAgdGhpcy4jY2FjaGUgPSB7fTtcbiAgICB0aGlzLnJlZGFjdGVkVGV4dCA9IHJlZGFjdGVkVGV4dDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJyYXdcIiwge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSwgLy8gXHU2NUUyXHU1QjlBXHU1MDI0XHU5MDFBXHUzMDhBXHU1MThEXHU4QTJEXHU1QjlBXHUzMDkyXHU0RTBEXHU1M0VGXHUzMDZCXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSwgLy8gXHU2NUUyXHU1QjlBXHU1MDI0XHU5MDFBXHUzMDhBXHU1MjE3XHU2MzE5XHUzMDU3XHUzMDZBXHUzMDQ0XHUzMDAyXG4gICAgICB2YWx1ZTogand0LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGhlYWRlcigpOiBKd3RIZWFkZXIge1xuICAgIGlmICh0aGlzLiNjYWNoZS5oZWFkZXJKc29uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI2NhY2hlLmhlYWRlckpzb24gPSBiYXNlNjR1cmwuZGVjb2RlKHRoaXMuI3BhcnRzWzBdKTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgXHU2RDg4XHUzMDU5XG4gICAgICB0aGlzLiNwYXJ0c1swXSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy4jY2FjaGUuaGVhZGVySnNvbik7XG4gIH1cblxuICBnZXQgcGF5bG9hZCgpOiBKd3RQYXlsb2FkIHtcbiAgICBpZiAodGhpcy4jY2FjaGUucGF5bG9hZEpzb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY2FjaGUucGF5bG9hZEpzb24gPSBiYXNlNjR1cmwuZGVjb2RlKHRoaXMuI3BhcnRzWzFdKTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgXHU2RDg4XHUzMDU5XG4gICAgICB0aGlzLiNwYXJ0c1sxXSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy4jY2FjaGUucGF5bG9hZEpzb24pO1xuICB9XG5cbiAgLy8gZ2V0ICNoZWFkZXIoKTogUmVhZG9ubHk8Snd0SGVhZGVyPiB7XG4gIC8vICAgcmV0dXJuICh0aGlzLiNjYWNoZS5oZWFkZXIgfHw9IHRoaXMuaGVhZGVyKTtcbiAgLy8gfVxuXG4gIGdldCAjcGF5bG9hZCgpOiBSZWFkb25seTxKd3RQYXlsb2FkPiB7XG4gICAgcmV0dXJuICh0aGlzLiNjYWNoZS5wYXlsb2FkIHx8PSB0aGlzLnBheWxvYWQpO1xuICB9XG5cbiAgZ2V0IGlzc3VlcigpOiBcIlN1cnJlYWxEQlwiIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5pc3M7XG4gIH1cblxuICBnZXQgaXNzdWVkQXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5pYXQ7XG4gIH1cblxuICBnZXQgbm90QmVmb3JlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI3BheWxvYWQubmJmO1xuICB9XG5cbiAgZ2V0IGV4cGlyZXNBdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLmV4cDtcbiAgfVxuXG4gIGdldCBuYW1lc3BhY2UoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5OUztcbiAgfVxuXG4gIGdldCBkYXRhYmFzZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLkRCO1xuICB9XG5cbiAgZ2V0IGFjY2VzcygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLkFDO1xuICB9XG5cbiAgZ2V0IHVzZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jcGF5bG9hZC5JRDtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNwYXlsb2FkLmp0aTtcbiAgfVxuXG4gIGdldE1pbGxpc2Vjb25kc1VudGlsRXhwaXJhdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmV4cGlyZXNBdCAqIDEwMDAgLSBEYXRlLm5vdygpO1xuICB9XG5cbiAgZ2V0U2Vjb25kc1VudGlsRXhwaXJhdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmV4cGlyZXNBdCAtIE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICB9XG5cbiAgZ2V0RXhwaXJhdGlvbkRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuZXhwaXJlc0F0ICogMTAwMCk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlZGFjdGVkVGV4dDtcbiAgfVxuXG4gIHRvQ0JPUigpOiBbcmVkYWN0ZWRUZXh0OiBzdHJpbmddIHtcbiAgICByZXR1cm4gW3RoaXMucmVkYWN0ZWRUZXh0XTtcbiAgfVxuXG4gIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlZGFjdGVkVGV4dDtcbiAgfVxuXG4gIHRvU3VycWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcXVvdGVTdHIodGhpcy5yZWRhY3RlZFRleHQpO1xuICB9XG5cbiAgdG9QbGFpbk9iamVjdCgpOiB7XG4gICAgaGVhZGVyOiBKd3RIZWFkZXI7XG4gICAgcGF5bG9hZDogSnd0UGF5bG9hZDtcbiAgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcjogdGhpcy5oZWFkZXIsXG4gICAgICBwYXlsb2FkOiB0aGlzLnBheWxvYWQsXG4gICAgfTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7QUFDQSxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLFdBQVcsZ0JBQWdCO0FBRXBDLElBQU0sWUFDSjtBQUxGO0FBOEJBLElBQXFCLE9BQXJCLE1BQXFCLEtBQXlCO0FBQUEsRUFpQjVDLFlBQVksS0FBYSxVQUFrQyxDQUFDLEdBQUc7QUFqQmpFO0FBS0UsdUJBQVM7QUFDVCx1QkFBUztBQVlQLFVBQU07QUFBQSxNQUNKLGVBQWU7QUFBQSxJQUNqQixJQUFJO0FBRUosUUFBSSxPQUFPLFFBQVEsWUFBWSxDQUFDLFVBQVUsS0FBSyxHQUFHLEdBQUc7QUFDbkQsWUFBTSxJQUFJLGtCQUFrQixtQkFBbUIsR0FBRztBQUFBLElBQ3BEO0FBRUEsdUJB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