@kinde-oss/kinde-auth-pkce-js
Version:
Kinde PKCE authentication for SPAs
1,306 lines • 54.6 kB
JavaScript
const kr = "4.3.0-2", tr = "pkce-code-verifier";
var lr = /* @__PURE__ */ ((u) => (u.s = "string", u.i = "integer", u.b = "boolean", u))(lr || {}), P = /* @__PURE__ */ ((u) => (u.token_bundle = "kinde_token", u.access_token = "kinde_access_token", u.id_token = "kinde_id_token", u.user = "user", u.refresh_token = "kinde_refresh_token", u))(P || {});
class nr extends Error {
}
nr.prototype.name = "InvalidTokenError";
function jr(u) {
return decodeURIComponent(atob(u).replace(/(.)/g, (a, f) => {
let p = f.charCodeAt(0).toString(16).toUpperCase();
return p.length < 2 && (p = "0" + p), "%" + p;
}));
}
function Jr(u) {
let a = u.replace(/-/g, "+").replace(/_/g, "/");
switch (a.length % 4) {
case 0:
break;
case 2:
a += "==";
break;
case 3:
a += "=";
break;
default:
throw new Error("base64 string is not of the correct length");
}
try {
return jr(a);
} catch {
return atob(a);
}
}
function hr(u, a) {
if (typeof u != "string")
throw new nr("Invalid token specified: must be a string");
a || (a = {});
const f = a.header === !0 ? 0 : 1, p = u.split(".")[f];
if (typeof p != "string")
throw new nr(`Invalid token specified: missing part #${f + 1}`);
let d;
try {
d = Jr(p);
} catch (y) {
throw new nr(`Invalid token specified: invalid base64 for part #${f + 1} (${y.message})`);
}
try {
return JSON.parse(d);
} catch (y) {
throw new nr(`Invalid token specified: invalid json for part #${f + 1} (${y.message})`);
}
}
const qr = (u) => {
var a;
return (a = document.cookie.split("; ").find((f) => f.split("=")[0] === u)) == null ? void 0 : a.split("=")[1];
};
var Fr = {}, er = {}, Sr;
function Kr() {
if (Sr) return er;
Sr = 1, er.byteLength = o, er.toByteArray = N, er.fromByteArray = K;
for (var u = [], a = [], f = typeof Uint8Array < "u" ? Uint8Array : Array, p = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", d = 0, y = p.length; d < y; ++d)
u[d] = p[d], a[p.charCodeAt(d)] = d;
a[45] = 62, a[95] = 63;
function w(l) {
var g = l.length;
if (g % 4 > 0)
throw new Error("Invalid string. Length must be a multiple of 4");
var E = l.indexOf("=");
E === -1 && (E = g);
var A = E === g ? 0 : 4 - E % 4;
return [E, A];
}
function o(l) {
var g = w(l), E = g[0], A = g[1];
return (E + A) * 3 / 4 - A;
}
function D(l, g, E) {
return (g + E) * 3 / 4 - E;
}
function N(l) {
var g, E = w(l), A = E[0], B = E[1], k = new f(D(l, A, B)), b = 0, V = B > 0 ? A - 4 : A, U;
for (U = 0; U < V; U += 4)
g = a[l.charCodeAt(U)] << 18 | a[l.charCodeAt(U + 1)] << 12 | a[l.charCodeAt(U + 2)] << 6 | a[l.charCodeAt(U + 3)], k[b++] = g >> 16 & 255, k[b++] = g >> 8 & 255, k[b++] = g & 255;
return B === 2 && (g = a[l.charCodeAt(U)] << 2 | a[l.charCodeAt(U + 1)] >> 4, k[b++] = g & 255), B === 1 && (g = a[l.charCodeAt(U)] << 10 | a[l.charCodeAt(U + 1)] << 4 | a[l.charCodeAt(U + 2)] >> 2, k[b++] = g >> 8 & 255, k[b++] = g & 255), k;
}
function R(l) {
return u[l >> 18 & 63] + u[l >> 12 & 63] + u[l >> 6 & 63] + u[l & 63];
}
function C(l, g, E) {
for (var A, B = [], k = g; k < E; k += 3)
A = (l[k] << 16 & 16711680) + (l[k + 1] << 8 & 65280) + (l[k + 2] & 255), B.push(R(A));
return B.join("");
}
function K(l) {
for (var g, E = l.length, A = E % 3, B = [], k = 16383, b = 0, V = E - A; b < V; b += k)
B.push(C(l, b, b + k > V ? V : b + k));
return A === 1 ? (g = l[E - 1], B.push(
u[g >> 2] + u[g << 4 & 63] + "=="
)) : A === 2 && (g = (l[E - 2] << 8) + l[E - 1], B.push(
u[g >> 10] + u[g >> 4 & 63] + u[g << 2 & 63] + "="
)), B.join("");
}
return er;
}
var fr = {};
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
var Tr;
function Vr() {
return Tr || (Tr = 1, fr.read = function(u, a, f, p, d) {
var y, w, o = d * 8 - p - 1, D = (1 << o) - 1, N = D >> 1, R = -7, C = f ? d - 1 : 0, K = f ? -1 : 1, l = u[a + C];
for (C += K, y = l & (1 << -R) - 1, l >>= -R, R += o; R > 0; y = y * 256 + u[a + C], C += K, R -= 8)
;
for (w = y & (1 << -R) - 1, y >>= -R, R += p; R > 0; w = w * 256 + u[a + C], C += K, R -= 8)
;
if (y === 0)
y = 1 - N;
else {
if (y === D)
return w ? NaN : (l ? -1 : 1) * (1 / 0);
w = w + Math.pow(2, p), y = y - N;
}
return (l ? -1 : 1) * w * Math.pow(2, y - p);
}, fr.write = function(u, a, f, p, d, y) {
var w, o, D, N = y * 8 - d - 1, R = (1 << N) - 1, C = R >> 1, K = d === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, l = p ? 0 : y - 1, g = p ? 1 : -1, E = a < 0 || a === 0 && 1 / a < 0 ? 1 : 0;
for (a = Math.abs(a), isNaN(a) || a === 1 / 0 ? (o = isNaN(a) ? 1 : 0, w = R) : (w = Math.floor(Math.log(a) / Math.LN2), a * (D = Math.pow(2, -w)) < 1 && (w--, D *= 2), w + C >= 1 ? a += K / D : a += K * Math.pow(2, 1 - C), a * D >= 2 && (w++, D /= 2), w + C >= R ? (o = 0, w = R) : w + C >= 1 ? (o = (a * D - 1) * Math.pow(2, d), w = w + C) : (o = a * Math.pow(2, C - 1) * Math.pow(2, d), w = 0)); d >= 8; u[f + l] = o & 255, l += g, o /= 256, d -= 8)
;
for (w = w << d | o, N += d; N > 0; u[f + l] = w & 255, l += g, w /= 256, N -= 8)
;
u[f + l - g] |= E * 128;
}), fr;
}
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
var Rr;
function Gr() {
return Rr || (Rr = 1, function(u) {
const a = Kr(), f = Vr(), p = typeof Symbol == "function" && typeof Symbol.for == "function" ? Symbol.for("nodejs.util.inspect.custom") : null;
u.Buffer = o, u.SlowBuffer = k, u.INSPECT_MAX_BYTES = 50;
const d = 2147483647;
u.kMaxLength = d, o.TYPED_ARRAY_SUPPORT = y(), !o.TYPED_ARRAY_SUPPORT && typeof console < "u" && typeof console.error == "function" && console.error(
"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."
);
function y() {
try {
const t = new Uint8Array(1), r = { foo: function() {
return 42;
} };
return Object.setPrototypeOf(r, Uint8Array.prototype), Object.setPrototypeOf(t, r), t.foo() === 42;
} catch {
return !1;
}
}
Object.defineProperty(o.prototype, "parent", {
enumerable: !0,
get: function() {
if (o.isBuffer(this))
return this.buffer;
}
}), Object.defineProperty(o.prototype, "offset", {
enumerable: !0,
get: function() {
if (o.isBuffer(this))
return this.byteOffset;
}
});
function w(t) {
if (t > d)
throw new RangeError('The value "' + t + '" is invalid for option "size"');
const r = new Uint8Array(t);
return Object.setPrototypeOf(r, o.prototype), r;
}
function o(t, r, e) {
if (typeof t == "number") {
if (typeof r == "string")
throw new TypeError(
'The "string" argument must be of type string. Received type number'
);
return C(t);
}
return D(t, r, e);
}
o.poolSize = 8192;
function D(t, r, e) {
if (typeof t == "string")
return K(t, r);
if (ArrayBuffer.isView(t))
return g(t);
if (t == null)
throw new TypeError(
"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t
);
if (G(t, ArrayBuffer) || t && G(t.buffer, ArrayBuffer) || typeof SharedArrayBuffer < "u" && (G(t, SharedArrayBuffer) || t && G(t.buffer, SharedArrayBuffer)))
return E(t, r, e);
if (typeof t == "number")
throw new TypeError(
'The "value" argument must not be of type number. Received type number'
);
const n = t.valueOf && t.valueOf();
if (n != null && n !== t)
return o.from(n, r, e);
const i = A(t);
if (i) return i;
if (typeof Symbol < "u" && Symbol.toPrimitive != null && typeof t[Symbol.toPrimitive] == "function")
return o.from(t[Symbol.toPrimitive]("string"), r, e);
throw new TypeError(
"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t
);
}
o.from = function(t, r, e) {
return D(t, r, e);
}, Object.setPrototypeOf(o.prototype, Uint8Array.prototype), Object.setPrototypeOf(o, Uint8Array);
function N(t) {
if (typeof t != "number")
throw new TypeError('"size" argument must be of type number');
if (t < 0)
throw new RangeError('The value "' + t + '" is invalid for option "size"');
}
function R(t, r, e) {
return N(t), t <= 0 ? w(t) : r !== void 0 ? typeof e == "string" ? w(t).fill(r, e) : w(t).fill(r) : w(t);
}
o.alloc = function(t, r, e) {
return R(t, r, e);
};
function C(t) {
return N(t), w(t < 0 ? 0 : B(t) | 0);
}
o.allocUnsafe = function(t) {
return C(t);
}, o.allocUnsafeSlow = function(t) {
return C(t);
};
function K(t, r) {
if ((typeof r != "string" || r === "") && (r = "utf8"), !o.isEncoding(r))
throw new TypeError("Unknown encoding: " + r);
const e = b(t, r) | 0;
let n = w(e);
const i = n.write(t, r);
return i !== e && (n = n.slice(0, i)), n;
}
function l(t) {
const r = t.length < 0 ? 0 : B(t.length) | 0, e = w(r);
for (let n = 0; n < r; n += 1)
e[n] = t[n] & 255;
return e;
}
function g(t) {
if (G(t, Uint8Array)) {
const r = new Uint8Array(t);
return E(r.buffer, r.byteOffset, r.byteLength);
}
return l(t);
}
function E(t, r, e) {
if (r < 0 || t.byteLength < r)
throw new RangeError('"offset" is outside of buffer bounds');
if (t.byteLength < r + (e || 0))
throw new RangeError('"length" is outside of buffer bounds');
let n;
return r === void 0 && e === void 0 ? n = new Uint8Array(t) : e === void 0 ? n = new Uint8Array(t, r) : n = new Uint8Array(t, r, e), Object.setPrototypeOf(n, o.prototype), n;
}
function A(t) {
if (o.isBuffer(t)) {
const r = B(t.length) | 0, e = w(r);
return e.length === 0 || t.copy(e, 0, 0, r), e;
}
if (t.length !== void 0)
return typeof t.length != "number" || _r(t.length) ? w(0) : l(t);
if (t.type === "Buffer" && Array.isArray(t.data))
return l(t.data);
}
function B(t) {
if (t >= d)
throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + d.toString(16) + " bytes");
return t | 0;
}
function k(t) {
return +t != t && (t = 0), o.alloc(+t);
}
o.isBuffer = function(r) {
return r != null && r._isBuffer === !0 && r !== o.prototype;
}, o.compare = function(r, e) {
if (G(r, Uint8Array) && (r = o.from(r, r.offset, r.byteLength)), G(e, Uint8Array) && (e = o.from(e, e.offset, e.byteLength)), !o.isBuffer(r) || !o.isBuffer(e))
throw new TypeError(
'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'
);
if (r === e) return 0;
let n = r.length, i = e.length;
for (let s = 0, c = Math.min(n, i); s < c; ++s)
if (r[s] !== e[s]) {
n = r[s], i = e[s];
break;
}
return n < i ? -1 : i < n ? 1 : 0;
}, o.isEncoding = function(r) {
switch (String(r).toLowerCase()) {
case "hex":
case "utf8":
case "utf-8":
case "ascii":
case "latin1":
case "binary":
case "base64":
case "ucs2":
case "ucs-2":
case "utf16le":
case "utf-16le":
return !0;
default:
return !1;
}
}, o.concat = function(r, e) {
if (!Array.isArray(r))
throw new TypeError('"list" argument must be an Array of Buffers');
if (r.length === 0)
return o.alloc(0);
let n;
if (e === void 0)
for (e = 0, n = 0; n < r.length; ++n)
e += r[n].length;
const i = o.allocUnsafe(e);
let s = 0;
for (n = 0; n < r.length; ++n) {
let c = r[n];
if (G(c, Uint8Array))
s + c.length > i.length ? (o.isBuffer(c) || (c = o.from(c)), c.copy(i, s)) : Uint8Array.prototype.set.call(
i,
c,
s
);
else if (o.isBuffer(c))
c.copy(i, s);
else
throw new TypeError('"list" argument must be an Array of Buffers');
s += c.length;
}
return i;
};
function b(t, r) {
if (o.isBuffer(t))
return t.length;
if (ArrayBuffer.isView(t) || G(t, ArrayBuffer))
return t.byteLength;
if (typeof t != "string")
throw new TypeError(
'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t
);
const e = t.length, n = arguments.length > 2 && arguments[2] === !0;
if (!n && e === 0) return 0;
let i = !1;
for (; ; )
switch (r) {
case "ascii":
case "latin1":
case "binary":
return e;
case "utf8":
case "utf-8":
return Ir(t).length;
case "ucs2":
case "ucs-2":
case "utf16le":
case "utf-16le":
return e * 2;
case "hex":
return e >>> 1;
case "base64":
return Ar(t).length;
default:
if (i)
return n ? -1 : Ir(t).length;
r = ("" + r).toLowerCase(), i = !0;
}
}
o.byteLength = b;
function V(t, r, e) {
let n = !1;
if ((r === void 0 || r < 0) && (r = 0), r > this.length || ((e === void 0 || e > this.length) && (e = this.length), e <= 0) || (e >>>= 0, r >>>= 0, e <= r))
return "";
for (t || (t = "utf8"); ; )
switch (t) {
case "hex":
return Er(this, r, e);
case "utf8":
case "utf-8":
return cr(this, r, e);
case "ascii":
return ur(this, r, e);
case "latin1":
case "binary":
return xr(this, r, e);
case "base64":
return v(this, r, e);
case "ucs2":
case "ucs-2":
case "utf16le":
case "utf-16le":
return Br(this, r, e);
default:
if (n) throw new TypeError("Unknown encoding: " + t);
t = (t + "").toLowerCase(), n = !0;
}
}
o.prototype._isBuffer = !0;
function U(t, r, e) {
const n = t[r];
t[r] = t[e], t[e] = n;
}
o.prototype.swap16 = function() {
const r = this.length;
if (r % 2 !== 0)
throw new RangeError("Buffer size must be a multiple of 16-bits");
for (let e = 0; e < r; e += 2)
U(this, e, e + 1);
return this;
}, o.prototype.swap32 = function() {
const r = this.length;
if (r % 4 !== 0)
throw new RangeError("Buffer size must be a multiple of 32-bits");
for (let e = 0; e < r; e += 4)
U(this, e, e + 3), U(this, e + 1, e + 2);
return this;
}, o.prototype.swap64 = function() {
const r = this.length;
if (r % 8 !== 0)
throw new RangeError("Buffer size must be a multiple of 64-bits");
for (let e = 0; e < r; e += 8)
U(this, e, e + 7), U(this, e + 1, e + 6), U(this, e + 2, e + 5), U(this, e + 3, e + 4);
return this;
}, o.prototype.toString = function() {
const r = this.length;
return r === 0 ? "" : arguments.length === 0 ? cr(this, 0, r) : V.apply(this, arguments);
}, o.prototype.toLocaleString = o.prototype.toString, o.prototype.equals = function(r) {
if (!o.isBuffer(r)) throw new TypeError("Argument must be a Buffer");
return this === r ? !0 : o.compare(this, r) === 0;
}, o.prototype.inspect = function() {
let r = "";
const e = u.INSPECT_MAX_BYTES;
return r = this.toString("hex", 0, e).replace(/(.{2})/g, "$1 ").trim(), this.length > e && (r += " ... "), "<Buffer " + r + ">";
}, p && (o.prototype[p] = o.prototype.inspect), o.prototype.compare = function(r, e, n, i, s) {
if (G(r, Uint8Array) && (r = o.from(r, r.offset, r.byteLength)), !o.isBuffer(r))
throw new TypeError(
'The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof r
);
if (e === void 0 && (e = 0), n === void 0 && (n = r ? r.length : 0), i === void 0 && (i = 0), s === void 0 && (s = this.length), e < 0 || n > r.length || i < 0 || s > this.length)
throw new RangeError("out of range index");
if (i >= s && e >= n)
return 0;
if (i >= s)
return -1;
if (e >= n)
return 1;
if (e >>>= 0, n >>>= 0, i >>>= 0, s >>>= 0, this === r) return 0;
let c = s - i, m = n - e;
const S = Math.min(c, m), F = this.slice(i, s), T = r.slice(e, n);
for (let _ = 0; _ < S; ++_)
if (F[_] !== T[_]) {
c = F[_], m = T[_];
break;
}
return c < m ? -1 : m < c ? 1 : 0;
};
function ir(t, r, e, n, i) {
if (t.length === 0) return -1;
if (typeof e == "string" ? (n = e, e = 0) : e > 2147483647 ? e = 2147483647 : e < -2147483648 && (e = -2147483648), e = +e, _r(e) && (e = i ? 0 : t.length - 1), e < 0 && (e = t.length + e), e >= t.length) {
if (i) return -1;
e = t.length - 1;
} else if (e < 0)
if (i) e = 0;
else return -1;
if (typeof r == "string" && (r = o.from(r, n)), o.isBuffer(r))
return r.length === 0 ? -1 : or(t, r, e, n, i);
if (typeof r == "number")
return r = r & 255, typeof Uint8Array.prototype.indexOf == "function" ? i ? Uint8Array.prototype.indexOf.call(t, r, e) : Uint8Array.prototype.lastIndexOf.call(t, r, e) : or(t, [r], e, n, i);
throw new TypeError("val must be string, number or Buffer");
}
function or(t, r, e, n, i) {
let s = 1, c = t.length, m = r.length;
if (n !== void 0 && (n = String(n).toLowerCase(), n === "ucs2" || n === "ucs-2" || n === "utf16le" || n === "utf-16le")) {
if (t.length < 2 || r.length < 2)
return -1;
s = 2, c /= 2, m /= 2, e /= 2;
}
function S(T, _) {
return s === 1 ? T[_] : T.readUInt16BE(_ * s);
}
let F;
if (i) {
let T = -1;
for (F = e; F < c; F++)
if (S(t, F) === S(r, T === -1 ? 0 : F - T)) {
if (T === -1 && (T = F), F - T + 1 === m) return T * s;
} else
T !== -1 && (F -= F - T), T = -1;
} else
for (e + m > c && (e = c - m), F = e; F >= 0; F--) {
let T = !0;
for (let _ = 0; _ < m; _++)
if (S(t, F + _) !== S(r, _)) {
T = !1;
break;
}
if (T) return F;
}
return -1;
}
o.prototype.includes = function(r, e, n) {
return this.indexOf(r, e, n) !== -1;
}, o.prototype.indexOf = function(r, e, n) {
return ir(this, r, e, n, !0);
}, o.prototype.lastIndexOf = function(r, e, n) {
return ir(this, r, e, n, !1);
};
function dr(t, r, e, n) {
e = Number(e) || 0;
const i = t.length - e;
n ? (n = Number(n), n > i && (n = i)) : n = i;
const s = r.length;
n > s / 2 && (n = s / 2);
let c;
for (c = 0; c < n; ++c) {
const m = parseInt(r.substr(c * 2, 2), 16);
if (_r(m)) return c;
t[e + c] = m;
}
return c;
}
function wr(t, r, e, n) {
return ar(Ir(r, t.length - e), t, e, n);
}
function yr(t, r, e, n) {
return ar(Dr(r), t, e, n);
}
function sr(t, r, e, n) {
return ar(Ar(r), t, e, n);
}
function gr(t, r, e, n) {
return ar(Nr(r, t.length - e), t, e, n);
}
o.prototype.write = function(r, e, n, i) {
if (e === void 0)
i = "utf8", n = this.length, e = 0;
else if (n === void 0 && typeof e == "string")
i = e, n = this.length, e = 0;
else if (isFinite(e))
e = e >>> 0, isFinite(n) ? (n = n >>> 0, i === void 0 && (i = "utf8")) : (i = n, n = void 0);
else
throw new Error(
"Buffer.write(string, encoding, offset[, length]) is no longer supported"
);
const s = this.length - e;
if ((n === void 0 || n > s) && (n = s), r.length > 0 && (n < 0 || e < 0) || e > this.length)
throw new RangeError("Attempt to write outside buffer bounds");
i || (i = "utf8");
let c = !1;
for (; ; )
switch (i) {
case "hex":
return dr(this, r, e, n);
case "utf8":
case "utf-8":
return wr(this, r, e, n);
case "ascii":
case "latin1":
case "binary":
return yr(this, r, e, n);
case "base64":
return sr(this, r, e, n);
case "ucs2":
case "ucs-2":
case "utf16le":
case "utf-16le":
return gr(this, r, e, n);
default:
if (c) throw new TypeError("Unknown encoding: " + i);
i = ("" + i).toLowerCase(), c = !0;
}
}, o.prototype.toJSON = function() {
return {
type: "Buffer",
data: Array.prototype.slice.call(this._arr || this, 0)
};
};
function v(t, r, e) {
return r === 0 && e === t.length ? a.fromByteArray(t) : a.fromByteArray(t.slice(r, e));
}
function cr(t, r, e) {
e = Math.min(t.length, e);
const n = [];
let i = r;
for (; i < e; ) {
const s = t[i];
let c = null, m = s > 239 ? 4 : s > 223 ? 3 : s > 191 ? 2 : 1;
if (i + m <= e) {
let S, F, T, _;
switch (m) {
case 1:
s < 128 && (c = s);
break;
case 2:
S = t[i + 1], (S & 192) === 128 && (_ = (s & 31) << 6 | S & 63, _ > 127 && (c = _));
break;
case 3:
S = t[i + 1], F = t[i + 2], (S & 192) === 128 && (F & 192) === 128 && (_ = (s & 15) << 12 | (S & 63) << 6 | F & 63, _ > 2047 && (_ < 55296 || _ > 57343) && (c = _));
break;
case 4:
S = t[i + 1], F = t[i + 2], T = t[i + 3], (S & 192) === 128 && (F & 192) === 128 && (T & 192) === 128 && (_ = (s & 15) << 18 | (S & 63) << 12 | (F & 63) << 6 | T & 63, _ > 65535 && _ < 1114112 && (c = _));
}
}
c === null ? (c = 65533, m = 1) : c > 65535 && (c -= 65536, n.push(c >>> 10 & 1023 | 55296), c = 56320 | c & 1023), n.push(c), i += m;
}
return mr(n);
}
const rr = 4096;
function mr(t) {
const r = t.length;
if (r <= rr)
return String.fromCharCode.apply(String, t);
let e = "", n = 0;
for (; n < r; )
e += String.fromCharCode.apply(
String,
t.slice(n, n += rr)
);
return e;
}
function ur(t, r, e) {
let n = "";
e = Math.min(t.length, e);
for (let i = r; i < e; ++i)
n += String.fromCharCode(t[i] & 127);
return n;
}
function xr(t, r, e) {
let n = "";
e = Math.min(t.length, e);
for (let i = r; i < e; ++i)
n += String.fromCharCode(t[i]);
return n;
}
function Er(t, r, e) {
const n = t.length;
(!r || r < 0) && (r = 0), (!e || e < 0 || e > n) && (e = n);
let i = "";
for (let s = r; s < e; ++s)
i += Or[t[s]];
return i;
}
function Br(t, r, e) {
const n = t.slice(r, e);
let i = "";
for (let s = 0; s < n.length - 1; s += 2)
i += String.fromCharCode(n[s] + n[s + 1] * 256);
return i;
}
o.prototype.slice = function(r, e) {
const n = this.length;
r = ~~r, e = e === void 0 ? n : ~~e, r < 0 ? (r += n, r < 0 && (r = 0)) : r > n && (r = n), e < 0 ? (e += n, e < 0 && (e = 0)) : e > n && (e = n), e < r && (e = r);
const i = this.subarray(r, e);
return Object.setPrototypeOf(i, o.prototype), i;
};
function $(t, r, e) {
if (t % 1 !== 0 || t < 0) throw new RangeError("offset is not uint");
if (t + r > e) throw new RangeError("Trying to access beyond buffer length");
}
o.prototype.readUintLE = o.prototype.readUIntLE = function(r, e, n) {
r = r >>> 0, e = e >>> 0, n || $(r, e, this.length);
let i = this[r], s = 1, c = 0;
for (; ++c < e && (s *= 256); )
i += this[r + c] * s;
return i;
}, o.prototype.readUintBE = o.prototype.readUIntBE = function(r, e, n) {
r = r >>> 0, e = e >>> 0, n || $(r, e, this.length);
let i = this[r + --e], s = 1;
for (; e > 0 && (s *= 256); )
i += this[r + --e] * s;
return i;
}, o.prototype.readUint8 = o.prototype.readUInt8 = function(r, e) {
return r = r >>> 0, e || $(r, 1, this.length), this[r];
}, o.prototype.readUint16LE = o.prototype.readUInt16LE = function(r, e) {
return r = r >>> 0, e || $(r, 2, this.length), this[r] | this[r + 1] << 8;
}, o.prototype.readUint16BE = o.prototype.readUInt16BE = function(r, e) {
return r = r >>> 0, e || $(r, 2, this.length), this[r] << 8 | this[r + 1];
}, o.prototype.readUint32LE = o.prototype.readUInt32LE = function(r, e) {
return r = r >>> 0, e || $(r, 4, this.length), (this[r] | this[r + 1] << 8 | this[r + 2] << 16) + this[r + 3] * 16777216;
}, o.prototype.readUint32BE = o.prototype.readUInt32BE = function(r, e) {
return r = r >>> 0, e || $(r, 4, this.length), this[r] * 16777216 + (this[r + 1] << 16 | this[r + 2] << 8 | this[r + 3]);
}, o.prototype.readBigUInt64LE = H(function(r) {
r = r >>> 0, z(r, "offset");
const e = this[r], n = this[r + 7];
(e === void 0 || n === void 0) && Z(r, this.length - 8);
const i = e + this[++r] * 2 ** 8 + this[++r] * 2 ** 16 + this[++r] * 2 ** 24, s = this[++r] + this[++r] * 2 ** 8 + this[++r] * 2 ** 16 + n * 2 ** 24;
return BigInt(i) + (BigInt(s) << BigInt(32));
}), o.prototype.readBigUInt64BE = H(function(r) {
r = r >>> 0, z(r, "offset");
const e = this[r], n = this[r + 7];
(e === void 0 || n === void 0) && Z(r, this.length - 8);
const i = e * 2 ** 24 + this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + this[++r], s = this[++r] * 2 ** 24 + this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + n;
return (BigInt(i) << BigInt(32)) + BigInt(s);
}), o.prototype.readIntLE = function(r, e, n) {
r = r >>> 0, e = e >>> 0, n || $(r, e, this.length);
let i = this[r], s = 1, c = 0;
for (; ++c < e && (s *= 256); )
i += this[r + c] * s;
return s *= 128, i >= s && (i -= Math.pow(2, 8 * e)), i;
}, o.prototype.readIntBE = function(r, e, n) {
r = r >>> 0, e = e >>> 0, n || $(r, e, this.length);
let i = e, s = 1, c = this[r + --i];
for (; i > 0 && (s *= 256); )
c += this[r + --i] * s;
return s *= 128, c >= s && (c -= Math.pow(2, 8 * e)), c;
}, o.prototype.readInt8 = function(r, e) {
return r = r >>> 0, e || $(r, 1, this.length), this[r] & 128 ? (255 - this[r] + 1) * -1 : this[r];
}, o.prototype.readInt16LE = function(r, e) {
r = r >>> 0, e || $(r, 2, this.length);
const n = this[r] | this[r + 1] << 8;
return n & 32768 ? n | 4294901760 : n;
}, o.prototype.readInt16BE = function(r, e) {
r = r >>> 0, e || $(r, 2, this.length);
const n = this[r + 1] | this[r] << 8;
return n & 32768 ? n | 4294901760 : n;
}, o.prototype.readInt32LE = function(r, e) {
return r = r >>> 0, e || $(r, 4, this.length), this[r] | this[r + 1] << 8 | this[r + 2] << 16 | this[r + 3] << 24;
}, o.prototype.readInt32BE = function(r, e) {
return r = r >>> 0, e || $(r, 4, this.length), this[r] << 24 | this[r + 1] << 16 | this[r + 2] << 8 | this[r + 3];
}, o.prototype.readBigInt64LE = H(function(r) {
r = r >>> 0, z(r, "offset");
const e = this[r], n = this[r + 7];
(e === void 0 || n === void 0) && Z(r, this.length - 8);
const i = this[r + 4] + this[r + 5] * 2 ** 8 + this[r + 6] * 2 ** 16 + (n << 24);
return (BigInt(i) << BigInt(32)) + BigInt(e + this[++r] * 2 ** 8 + this[++r] * 2 ** 16 + this[++r] * 2 ** 24);
}), o.prototype.readBigInt64BE = H(function(r) {
r = r >>> 0, z(r, "offset");
const e = this[r], n = this[r + 7];
(e === void 0 || n === void 0) && Z(r, this.length - 8);
const i = (e << 24) + // Overflow
this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + this[++r];
return (BigInt(i) << BigInt(32)) + BigInt(this[++r] * 2 ** 24 + this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + n);
}), o.prototype.readFloatLE = function(r, e) {
return r = r >>> 0, e || $(r, 4, this.length), f.read(this, r, !0, 23, 4);
}, o.prototype.readFloatBE = function(r, e) {
return r = r >>> 0, e || $(r, 4, this.length), f.read(this, r, !1, 23, 4);
}, o.prototype.readDoubleLE = function(r, e) {
return r = r >>> 0, e || $(r, 8, this.length), f.read(this, r, !0, 52, 8);
}, o.prototype.readDoubleBE = function(r, e) {
return r = r >>> 0, e || $(r, 8, this.length), f.read(this, r, !1, 52, 8);
};
function h(t, r, e, n, i, s) {
if (!o.isBuffer(t)) throw new TypeError('"buffer" argument must be a Buffer instance');
if (r > i || r < s) throw new RangeError('"value" argument is out of bounds');
if (e + n > t.length) throw new RangeError("Index out of range");
}
o.prototype.writeUintLE = o.prototype.writeUIntLE = function(r, e, n, i) {
if (r = +r, e = e >>> 0, n = n >>> 0, !i) {
const m = Math.pow(2, 8 * n) - 1;
h(this, r, e, n, m, 0);
}
let s = 1, c = 0;
for (this[e] = r & 255; ++c < n && (s *= 256); )
this[e + c] = r / s & 255;
return e + n;
}, o.prototype.writeUintBE = o.prototype.writeUIntBE = function(r, e, n, i) {
if (r = +r, e = e >>> 0, n = n >>> 0, !i) {
const m = Math.pow(2, 8 * n) - 1;
h(this, r, e, n, m, 0);
}
let s = n - 1, c = 1;
for (this[e + s] = r & 255; --s >= 0 && (c *= 256); )
this[e + s] = r / c & 255;
return e + n;
}, o.prototype.writeUint8 = o.prototype.writeUInt8 = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 1, 255, 0), this[e] = r & 255, e + 1;
}, o.prototype.writeUint16LE = o.prototype.writeUInt16LE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 2, 65535, 0), this[e] = r & 255, this[e + 1] = r >>> 8, e + 2;
}, o.prototype.writeUint16BE = o.prototype.writeUInt16BE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 2, 65535, 0), this[e] = r >>> 8, this[e + 1] = r & 255, e + 2;
}, o.prototype.writeUint32LE = o.prototype.writeUInt32LE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 4, 4294967295, 0), this[e + 3] = r >>> 24, this[e + 2] = r >>> 16, this[e + 1] = r >>> 8, this[e] = r & 255, e + 4;
}, o.prototype.writeUint32BE = o.prototype.writeUInt32BE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 4, 4294967295, 0), this[e] = r >>> 24, this[e + 1] = r >>> 16, this[e + 2] = r >>> 8, this[e + 3] = r & 255, e + 4;
};
function x(t, r, e, n, i) {
q(r, n, i, t, e, 7);
let s = Number(r & BigInt(4294967295));
t[e++] = s, s = s >> 8, t[e++] = s, s = s >> 8, t[e++] = s, s = s >> 8, t[e++] = s;
let c = Number(r >> BigInt(32) & BigInt(4294967295));
return t[e++] = c, c = c >> 8, t[e++] = c, c = c >> 8, t[e++] = c, c = c >> 8, t[e++] = c, e;
}
function L(t, r, e, n, i) {
q(r, n, i, t, e, 7);
let s = Number(r & BigInt(4294967295));
t[e + 7] = s, s = s >> 8, t[e + 6] = s, s = s >> 8, t[e + 5] = s, s = s >> 8, t[e + 4] = s;
let c = Number(r >> BigInt(32) & BigInt(4294967295));
return t[e + 3] = c, c = c >> 8, t[e + 2] = c, c = c >> 8, t[e + 1] = c, c = c >> 8, t[e] = c, e + 8;
}
o.prototype.writeBigUInt64LE = H(function(r, e = 0) {
return x(this, r, e, BigInt(0), BigInt("0xffffffffffffffff"));
}), o.prototype.writeBigUInt64BE = H(function(r, e = 0) {
return L(this, r, e, BigInt(0), BigInt("0xffffffffffffffff"));
}), o.prototype.writeIntLE = function(r, e, n, i) {
if (r = +r, e = e >>> 0, !i) {
const S = Math.pow(2, 8 * n - 1);
h(this, r, e, n, S - 1, -S);
}
let s = 0, c = 1, m = 0;
for (this[e] = r & 255; ++s < n && (c *= 256); )
r < 0 && m === 0 && this[e + s - 1] !== 0 && (m = 1), this[e + s] = (r / c >> 0) - m & 255;
return e + n;
}, o.prototype.writeIntBE = function(r, e, n, i) {
if (r = +r, e = e >>> 0, !i) {
const S = Math.pow(2, 8 * n - 1);
h(this, r, e, n, S - 1, -S);
}
let s = n - 1, c = 1, m = 0;
for (this[e + s] = r & 255; --s >= 0 && (c *= 256); )
r < 0 && m === 0 && this[e + s + 1] !== 0 && (m = 1), this[e + s] = (r / c >> 0) - m & 255;
return e + n;
}, o.prototype.writeInt8 = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 1, 127, -128), r < 0 && (r = 255 + r + 1), this[e] = r & 255, e + 1;
}, o.prototype.writeInt16LE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 2, 32767, -32768), this[e] = r & 255, this[e + 1] = r >>> 8, e + 2;
}, o.prototype.writeInt16BE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 2, 32767, -32768), this[e] = r >>> 8, this[e + 1] = r & 255, e + 2;
}, o.prototype.writeInt32LE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 4, 2147483647, -2147483648), this[e] = r & 255, this[e + 1] = r >>> 8, this[e + 2] = r >>> 16, this[e + 3] = r >>> 24, e + 4;
}, o.prototype.writeInt32BE = function(r, e, n) {
return r = +r, e = e >>> 0, n || h(this, r, e, 4, 2147483647, -2147483648), r < 0 && (r = 4294967295 + r + 1), this[e] = r >>> 24, this[e + 1] = r >>> 16, this[e + 2] = r >>> 8, this[e + 3] = r & 255, e + 4;
}, o.prototype.writeBigInt64LE = H(function(r, e = 0) {
return x(this, r, e, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
}), o.prototype.writeBigInt64BE = H(function(r, e = 0) {
return L(this, r, e, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));
});
function I(t, r, e, n, i, s) {
if (e + n > t.length) throw new RangeError("Index out of range");
if (e < 0) throw new RangeError("Index out of range");
}
function O(t, r, e, n, i) {
return r = +r, e = e >>> 0, i || I(t, r, e, 4), f.write(t, r, e, n, 23, 4), e + 4;
}
o.prototype.writeFloatLE = function(r, e, n) {
return O(this, r, e, !0, n);
}, o.prototype.writeFloatBE = function(r, e, n) {
return O(this, r, e, !1, n);
};
function j(t, r, e, n, i) {
return r = +r, e = e >>> 0, i || I(t, r, e, 8), f.write(t, r, e, n, 52, 8), e + 8;
}
o.prototype.writeDoubleLE = function(r, e, n) {
return j(this, r, e, !0, n);
}, o.prototype.writeDoubleBE = function(r, e, n) {
return j(this, r, e, !1, n);
}, o.prototype.copy = function(r, e, n, i) {
if (!o.isBuffer(r)) throw new TypeError("argument should be a Buffer");
if (n || (n = 0), !i && i !== 0 && (i = this.length), e >= r.length && (e = r.length), e || (e = 0), i > 0 && i < n && (i = n), i === n || r.length === 0 || this.length === 0) return 0;
if (e < 0)
throw new RangeError("targetStart out of bounds");
if (n < 0 || n >= this.length) throw new RangeError("Index out of range");
if (i < 0) throw new RangeError("sourceEnd out of bounds");
i > this.length && (i = this.length), r.length - e < i - n && (i = r.length - e + n);
const s = i - n;
return this === r && typeof Uint8Array.prototype.copyWithin == "function" ? this.copyWithin(e, n, i) : Uint8Array.prototype.set.call(
r,
this.subarray(n, i),
e
), s;
}, o.prototype.fill = function(r, e, n, i) {
if (typeof r == "string") {
if (typeof e == "string" ? (i = e, e = 0, n = this.length) : typeof n == "string" && (i = n, n = this.length), i !== void 0 && typeof i != "string")
throw new TypeError("encoding must be a string");
if (typeof i == "string" && !o.isEncoding(i))
throw new TypeError("Unknown encoding: " + i);
if (r.length === 1) {
const c = r.charCodeAt(0);
(i === "utf8" && c < 128 || i === "latin1") && (r = c);
}
} else typeof r == "number" ? r = r & 255 : typeof r == "boolean" && (r = Number(r));
if (e < 0 || this.length < e || this.length < n)
throw new RangeError("Out of range index");
if (n <= e)
return this;
e = e >>> 0, n = n === void 0 ? this.length : n >>> 0, r || (r = 0);
let s;
if (typeof r == "number")
for (s = e; s < n; ++s)
this[s] = r;
else {
const c = o.isBuffer(r) ? r : o.from(r, i), m = c.length;
if (m === 0)
throw new TypeError('The value "' + r + '" is invalid for argument "value"');
for (s = 0; s < n - e; ++s)
this[s + e] = c[s % m];
}
return this;
};
const M = {};
function X(t, r, e) {
M[t] = class extends e {
constructor() {
super(), Object.defineProperty(this, "message", {
value: r.apply(this, arguments),
writable: !0,
configurable: !0
}), this.name = `${this.name} [${t}]`, this.stack, delete this.name;
}
get code() {
return t;
}
set code(i) {
Object.defineProperty(this, "code", {
configurable: !0,
enumerable: !0,
value: i,
writable: !0
});
}
toString() {
return `${this.name} [${t}]: ${this.message}`;
}
};
}
X(
"ERR_BUFFER_OUT_OF_BOUNDS",
function(t) {
return t ? `${t} is outside of buffer bounds` : "Attempt to access memory outside buffer bounds";
},
RangeError
), X(
"ERR_INVALID_ARG_TYPE",
function(t, r) {
return `The "${t}" argument must be of type number. Received type ${typeof r}`;
},
TypeError
), X(
"ERR_OUT_OF_RANGE",
function(t, r, e) {
let n = `The value of "${t}" is out of range.`, i = e;
return Number.isInteger(e) && Math.abs(e) > 2 ** 32 ? i = W(String(e)) : typeof e == "bigint" && (i = String(e), (e > BigInt(2) ** BigInt(32) || e < -(BigInt(2) ** BigInt(32))) && (i = W(i)), i += "n"), n += ` It must be ${r}. Received ${i}`, n;
},
RangeError
);
function W(t) {
let r = "", e = t.length;
const n = t[0] === "-" ? 1 : 0;
for (; e >= n + 4; e -= 3)
r = `_${t.slice(e - 3, e)}${r}`;
return `${t.slice(0, e)}${r}`;
}
function Y(t, r, e) {
z(r, "offset"), (t[r] === void 0 || t[r + e] === void 0) && Z(r, t.length - (e + 1));
}
function q(t, r, e, n, i, s) {
if (t > e || t < r) {
const c = typeof r == "bigint" ? "n" : "";
let m;
throw r === 0 || r === BigInt(0) ? m = `>= 0${c} and < 2${c} ** ${(s + 1) * 8}${c}` : m = `>= -(2${c} ** ${(s + 1) * 8 - 1}${c}) and < 2 ** ${(s + 1) * 8 - 1}${c}`, new M.ERR_OUT_OF_RANGE("value", m, t);
}
Y(n, i, s);
}
function z(t, r) {
if (typeof t != "number")
throw new M.ERR_INVALID_ARG_TYPE(r, "number", t);
}
function Z(t, r, e) {
throw Math.floor(t) !== t ? (z(t, e), new M.ERR_OUT_OF_RANGE("offset", "an integer", t)) : r < 0 ? new M.ERR_BUFFER_OUT_OF_BOUNDS() : new M.ERR_OUT_OF_RANGE(
"offset",
`>= 0 and <= ${r}`,
t
);
}
const Lr = /[^+/0-9A-Za-z-_]/g;
function Pr(t) {
if (t = t.split("=")[0], t = t.trim().replace(Lr, ""), t.length < 2) return "";
for (; t.length % 4 !== 0; )
t = t + "=";
return t;
}
function Ir(t, r) {
r = r || 1 / 0;
let e;
const n = t.length;
let i = null;
const s = [];
for (let c = 0; c < n; ++c) {
if (e = t.charCodeAt(c), e > 55295 && e < 57344) {
if (!i) {
if (e > 56319) {
(r -= 3) > -1 && s.push(239, 191, 189);
continue;
} else if (c + 1 === n) {
(r -= 3) > -1 && s.push(239, 191, 189);
continue;
}
i = e;
continue;
}
if (e < 56320) {
(r -= 3) > -1 && s.push(239, 191, 189), i = e;
continue;
}
e = (i - 55296 << 10 | e - 56320) + 65536;
} else i && (r -= 3) > -1 && s.push(239, 191, 189);
if (i = null, e < 128) {
if ((r -= 1) < 0) break;
s.push(e);
} else if (e < 2048) {
if ((r -= 2) < 0) break;
s.push(
e >> 6 | 192,
e & 63 | 128
);
} else if (e < 65536) {
if ((r -= 3) < 0) break;
s.push(
e >> 12 | 224,
e >> 6 & 63 | 128,
e & 63 | 128
);
} else if (e < 1114112) {
if ((r -= 4) < 0) break;
s.push(
e >> 18 | 240,
e >> 12 & 63 | 128,
e >> 6 & 63 | 128,
e & 63 | 128
);
} else
throw new Error("Invalid code point");
}
return s;
}
function Dr(t) {
const r = [];
for (let e = 0; e < t.length; ++e)
r.push(t.charCodeAt(e) & 255);
return r;
}
function Nr(t, r) {
let e, n, i;
const s = [];
for (let c = 0; c < t.length && !((r -= 2) < 0); ++c)
e = t.charCodeAt(c), n = e >> 8, i = e % 256, s.push(i), s.push(n);
return s;
}
function Ar(t) {
return a.toByteArray(Pr(t));
}
function ar(t, r, e, n) {
let i;
for (i = 0; i < n && !(i + e >= r.length || i >= t.length); ++i)
r[i + e] = t[i];
return i;
}
function G(t, r) {
return t instanceof r || t != null && t.constructor != null && t.constructor.name != null && t.constructor.name === r.name;
}
function _r(t) {
return t !== t;
}
const Or = function() {
const t = "0123456789abcdef", r = new Array(256);
for (let e = 0; e < 16; ++e) {
const n = e * 16;
for (let i = 0; i < 16; ++i)
r[n + i] = t[e] + t[i];
}
return r;
}();
function H(t) {
return typeof BigInt > "u" ? Mr : t;
}
function Mr() {
throw new Error("BigInt not supported");
}
}(Fr)), Fr;
}
var Wr = Gr();
function zr(u) {
const a = Array.from(new Uint8Array(u));
return btoa(String.fromCharCode.apply(null, a)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
}
function Yr(u) {
const f = new TextEncoder().encode(u);
return window.crypto.subtle.digest("SHA-256", f);
}
async function Hr(u) {
const a = await Yr(u);
return zr(a);
}
function Cr() {
const u = new Uint32Array(28);
return window.crypto.getRandomValues(u), Array.from(u, (a) => ("0" + a.toString(16)).substr(-2)).join(
""
);
}
const Xr = 60, Ur = (u) => {
const a = Math.floor(Date.now() / 1e3);
return u.exp + Xr > a;
}, Zr = async (u, a) => {
const f = Cr(), p = Cr(), d = await Hr(p);
sessionStorage.setItem(
`${tr}-${f}`,
JSON.stringify({
codeVerifier: p,
appState: a
})
);
const y = new URL(u);
return { state: f, code_challenge: d, url: y };
}, Qr = () => {
let u = {};
return {
reset: () => {
u = {};
},
getItem: (y) => u[y],
removeItem: (y) => {
delete u[y];
},
setItem: (y, w) => {
u[y] = w;
}
};
}, J = Qr(), $r = (u, a = "access_token") => {
const f = J.getItem(`kinde_${a}`);
return f ? { name: u, value: f[u] } : null;
}, Q = (u, a = "access_token") => {
const f = $r(u, a);
return f && f.value;
}, pr = (u, a, f) => {
const p = Q("feature_flags"), d = p && p[u] ? p[u] : {};
if (d.v == null && a == null)
throw Error(
`Flag ${u} was not found, and no default value has been provided`
);
if (f && d.t && f !== d.t)
throw Error(
`Flag ${u} is of type ${lr[d.t]} - requested type ${lr[f]}`
);
return {
code: u,
type: lr[d.t || f],
value: d.v == null ? a : d.v,
is_default: d.v == null
};
}, vr = (u, a) => {
try {
return pr(u, a, "b").value;
} catch (f) {
return console.error(f), f;
}
}, re = (u, a) => {
try {
return pr(u, a, "i").value;
} catch (f) {
return console.error(f), f;
}
}, ee = (u, a) => {
try {
return pr(u, a, "s").value;
} catch (f) {
return console.error(f), f;
}
}, te = () => ({
orgCodes: Q("org_codes", "id_token") ?? []
}), ne = ["iss", "azp"], br = (u, a) => {
if (!u)
throw new Error("ID token is required");
if (ne.forEach((p) => {
if (!u.payload[p])
throw new Error(`(${p}) claim is required.`);
if (u.payload[p] !== a[p])
throw new Error(
`${p} claim mismatch. Expected: "${a[p]}", Received: "${u.payload[p]}"`
);
}), u.header.alg !== "RS256")
throw new Error(
`Unsupported signature alg. Expected: "RS256", Received: "${u.header.alg}"`
);
if (a.aud) {
if (!Array.isArray(u.payload.aud))
throw new Error("(aud) claim must be an array");
if (!a.aud.split(" ").every(
(y) => u.payload.aud.includes(y)
))
throw new Error(
`(aud) claim mismatch. Expected: "${a.aud}", Received: "${u.payload.aud.join(", ")}"`
);
}
if (!Ur(u.payload))
throw new Error("Token expired");
return !0;
}, ie = (u) => new URL(u).hostname.split(".").slice(-2).join(".") !== "kinde.com", se = async (u) => {
if (!u)
throw Error("Please provide your Kinde credentials");
if (u !== Object(u))
throw Error("The Kinde SDK must be initiated with an object");
const {
audience: a,
client_id: f,
domain: p,
is_dangerously_use_local_storage: d = !1,
redirect_uri: y,
logout_uri: w = y,
on_redirect_callback: o,
on_error_callback: D,
scope: N = "openid profile email offline",
proxy_redirect_uri: R,
_framework: C,
_frameworkVersion: K
} = u;
if (a && typeof a != "string")
throw Error("Please supply a valid audience for your api");
if (N && typeof N != "string")
throw Error("Please supply a valid scope");
if (!y || typeof u.redirect_uri != "string")
throw Error(
"Please supply a valid redirect_uri for your users to be redirected after successful authentication"
);
if (!p || typeof p != "string")
throw Error(
"Please supply a valid Kinde domain so we can connect to your account"
);
if (typeof d != "boolean")
throw TypeError(
"Please supply a boolean value for is_dangerously_use_local_storage"
);
const l = f || "spa@live", g = location.hostname === "localhost" || location.hostname === "127.0.0.1", E = !g && !d && ie(p), A = g || d, B = {
audience: a,
client_id: l,
redirect_uri: y,
authorization_endpoint: `${p}/oauth2/auth`,
token_endpoint: `${p}/oauth2/token`,
requested_scopes: N,
domain: p,
_framework: C,
_frameworkVersion: K
}, k = (h) => {
if (!h || h.error) return;
const x = hr(h.id_token), L = hr(h.id_token, { header: !0 }), I = hr(h.access_token), O = hr(h.access_token, { header: !0 }), j = {
iss: p,
azp: f,
aud: a
};
br(
{
payload: x,
header: L
},
{ ...j, aud: f }
), br(
{
payload: I,
header: O
},
j
), J.setItem(P.token_bundle, h), J.setItem(P.access_token, I), J.setItem(P.id_token, x), x.sub && J.setItem(P.user, {
id: x.sub,
given_name: x.given_name,
family_name: x.family_name,
email: x.email,
picture: x.picture
}), A ? localStorage.setItem(P.refresh_token, h.refresh_token) : J.setItem(P.refresh_token, h.refresh_token);
}, b = async ({ tokenType: h } = { tokenType: P.access_token }) => {
const x = A ? localStorage.getItem(P.refresh_token) : J.getItem(P.refresh_token);
if (x || E && qr("_kbrte"))
try {
const O = await (await fetch(B.token_endpoint, {
method: "POST",
...E && { credentials: "include" },
headers: new Headers({
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"Kinde-SDK": `
${B._framework || "JavaScript"}/${B._frameworkVersion || kr}`
}),
body: new URLSearchParams({
client_id: B.client_id,
grant_type: "refresh_token",
...!E && x && {
refresh_token: x
}
})
})).json();
return k(O), h === P.id_token ? O.id_token : O.access_token;
} catch (I) {
console.error(I);
}
}, V = async (h, x) => {
const L = J.getItem(P.token_bundle);
if (!L || x.isForceRefresh)
return await b({ tokenType: h });
const I = J.getItem(h);
return Ur(I) ? h === P.access_token ? L.access_token : L.id_token : await b({ tokenType: h });
}, U = async (h = {}) => await V(P.access_token, h), ir = async (h = {}) => await V(P.id_token, h), or = async () => {
const h = J.getItem(P.access_token);
return h ? (Ur(h) || await b(), !0) : !1;
}, dr = () => {
const h = Q("org_code");
return {
permissions: Q("permissions") ?? [],
orgCode: h
};
}, wr = (h) => {
const x = Q("org_code");
return {
isGranted: (Q("permissions"