UNPKG

@obelisk/client

Version:

Typescript client to interact with Obelisk on a higher level than the regular ReST API calls.

56 lines (55 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Token = void 0; class Token { /** * Create a Token instance. * @param token */ constructor(token) { this.token = token; this.parsedToken = this.decodeToken(token); this.expires_at = this.parsedToken.exp; } /** * Returnt the raw token as a hex string. */ getToken() { return this.token; } /** * Returns the parsed token as a JSON object. */ getParsedToken() { return this.parsedToken; } /** * Returns the expiration date in milliseconds. */ getExpiresAt() { return this.expires_at; } decodeToken(token) { token = token.split('.')[1]; token = token.replace('/-/g', '+'); token = token.replace('/_/g', '/'); switch (token.length % 4) { case 0: break; case 2: token += '=='; break; case 3: token += '='; break; default: throw 'Invalid token'; } token = (token + '===').slice(0, token.length + (token.length % 4)); token = token.replace(/-/g, '+').replace(/_/g, '/'); token = decodeURIComponent(escape(atob(token))); token = JSON.parse(token); return token; } } exports.Token = Token;