UNPKG

@nepse-helper/core

Version:

A helper library for NEPSE

39 lines (38 loc) 2.58 kB
import { ENDPOINTS, USER_AGENT } from "../consts/api"; export class TokenHelper { wasm; static _instance; constructor(wasm) { this.wasm = wasm; } static async instance() { if (!this._instance) { const buffer = await fetch(`${ENDPOINTS.baseUrl}/${ENDPOINTS.assets.prod.cssWasm}`, { headers: { Referer: ENDPOINTS.baseUrl, "User-Agent": USER_AGENT, }, }).then((res) => res.arrayBuffer()); const wasm = await WebAssembly.instantiate(buffer); const exports = wasm.instance.exports; this._instance = new TokenHelper(exports); } return this._instance; } encodeAccessToken(accessToken, salts) { return (accessToken.slice(0, this.wasm.cdx(salts[0], salts[1], salts[2], salts[3], salts[4])) + accessToken.slice(this.wasm.cdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.rdx(salts[0], salts[1], salts[2], salts[3], salts[4])) + accessToken.slice(this.wasm.rdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.bdx(salts[0], salts[1], salts[2], salts[3], salts[4])) + accessToken.slice(this.wasm.bdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.ndx(salts[0], salts[1], salts[2], salts[3], salts[4])) + accessToken.slice(this.wasm.ndx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1, this.wasm.mdx(salts[0], salts[1], salts[2], salts[3], salts[4])) + accessToken.slice(this.wasm.mdx(salts[0], salts[1], salts[2], salts[3], salts[4]) + 1)); } encodeRefreshToken(refreshToken, salts) { return (refreshToken.slice(0, this.wasm.cdx(salts[1], salts[0], salts[2], salts[4], salts[3])) + refreshToken.slice(this.wasm.cdx(salts[1], salts[0], salts[2], salts[4], salts[3]) + 1, this.wasm.rdx(salts[1], salts[0], salts[2], salts[3], salts[4])) + refreshToken.slice(this.wasm.rdx(salts[1], salts[0], salts[2], salts[3], salts[4]) + 1, this.wasm.bdx(salts[1], salts[0], salts[3], salts[2], salts[4])) + refreshToken.slice(this.wasm.bdx(salts[1], salts[0], salts[3], salts[2], salts[4]) + 1, this.wasm.ndx(salts[1], salts[0], salts[3], salts[2], salts[4])) + refreshToken.slice(this.wasm.ndx(salts[1], salts[0], salts[3], salts[2], salts[4]) + 1, this.wasm.mdx(salts[1], salts[0], salts[3], salts[2], salts[4])) + refreshToken.slice(this.wasm.mdx(salts[1], salts[0], salts[3], salts[2], salts[4]) + 1)); } }