12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- const jsdom = require("jsdom");
- const {JSDOM} = jsdom;
- const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`,
- {
- url: "https://example.org/",
- referrer: "https://example.com/",
- contentType: "text/html",
- includeNodeLocations: true,
- storageQuota: 10000000
- });
- window = dom.window;
- document = window.document;
- crypto = require('crypto')
- CryptoJS = require('crypto-js')
- function get_pm() {
- var f = {
- randomUUID: "undefined" != typeof crypto && crypto.randomUUID && crypto.randomUUID.bind(crypto)
- };
- let m;
- function _() {
- if (!m && (m = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto),
- !m))
- throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
- return m(v)
- }
- const y = [];
- for (let i = 0; i < 256; ++i)
- y.push((i + 256).toString(16).slice(1));
- function M(e, t = 0) {
- return (y[e[t + 0]] + y[e[t + 1]] + y[e[t + 2]] + y[e[t + 3]] + "-" + y[e[t + 4]] + y[e[t + 5]] + "-" + y[e[t + 6]] + y[e[t + 7]] + "-" + y[e[t + 8]] + y[e[t + 9]] + "-" + y[e[t + 10]] + y[e[t + 11]] + y[e[t + 12]] + y[e[t + 13]] + y[e[t + 14]] + y[e[t + 15]]).toLowerCase()
- }
- var w = function (e, t, n) {
- if (f.randomUUID && !t && !e)
- return f.randomUUID();
- const r = (e = e || {}).random || (e.rng || _)();
- if (r[6] = 15 & r[6] | 64,
- r[8] = 63 & r[8] | 128,
- t) {
- n = n || 0;
- for (let i = 0; i < 16; ++i)
- t[n + i] = r[i];
- return t
- }
- return M(r)
- }
- n = Math.floor(Date.now() / 1e3)
- l = n
- d = parseInt(l).toString(36)
- f = w().replaceAll("-", "")
- m = f.slice(2, 11)
- v = CryptoJS.SHA256(m).toString()
- pre = v.slice(0, 10)
- _ = v.slice(10, 32)
- yy = CryptoJS.SHA256(l + f + m).toString()
- M = pre + yy + _
- return {"At":d,"Nonce":f,"Token":M}
- }
|