@digigov/auth
Advanced tools
Comparing version 1.0.0-rc.4 to 1.0.0-rc.5
import React from 'react'; | ||
import { UserID, UserType, TokenType, AuthConfig, CodeType } from '@digigov/auth/'; | ||
export declare type ContextState = { | ||
export type ContextState = { | ||
authenticated?: boolean | null; | ||
@@ -15,3 +15,3 @@ id?: UserID | null | boolean; | ||
}; | ||
declare type ContextValue = { | ||
type ContextValue = { | ||
state: ContextState; | ||
@@ -18,0 +18,0 @@ dispatch: (action: any) => void; |
271
cjs/index.js
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
var _typeof = require("@babel/runtime/helpers/typeof"); | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -16,11 +14,6 @@ value: true | ||
exports.useAuth = useAuth; | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); | ||
var _react = require("react"); | ||
var _AuthProvider = require("./AuthProvider"); | ||
var _AuthProvider = require("@digigov/auth/AuthProvider"); | ||
Object.keys(_AuthProvider).forEach(function (key) { | ||
@@ -37,5 +30,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _hooks = require("./hooks"); | ||
var _hooks = require("@digigov/auth/hooks"); | ||
Object.keys(_hooks).forEach(function (key) { | ||
@@ -52,5 +43,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _TokenLogin = require("./TokenLogin"); | ||
var _TokenLogin = require("@digigov/auth/TokenLogin"); | ||
Object.keys(_TokenLogin).forEach(function (key) { | ||
@@ -67,18 +56,12 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } | ||
var TOKEN_REVALIDATION_INTERVAL = exports.TOKEN_REVALIDATION_INTERVAL = 1; // seconds | ||
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } | ||
var TOKEN_REVALIDATION_INTERVAL = 1; // seconds | ||
exports.TOKEN_REVALIDATION_INTERVAL = TOKEN_REVALIDATION_INTERVAL; | ||
function useAuth() { | ||
var _useContext = (0, _react.useContext)(_AuthProvider.AuthContext), | ||
state = _useContext.state, | ||
dispatch = _useContext.dispatch; | ||
state = _useContext.state, | ||
dispatch = _useContext.dispatch; | ||
var navigate = state.navigate; | ||
var transformUserObject = state.transformUserObject; | ||
var location = window.location; | ||
function login(id, data) { | ||
@@ -91,13 +74,10 @@ dispatch({ | ||
} | ||
function logout(next) { | ||
var _disableLoginNextHook = (0, _hooks.disableLoginNextHook)(), | ||
_disableLoginNextHook2 = (0, _slicedToArray2["default"])(_disableLoginNextHook, 2), | ||
disableLoginNext = _disableLoginNextHook2[0], | ||
setDisableLoginNext = _disableLoginNextHook2[1]; | ||
_disableLoginNextHook2 = (0, _slicedToArray2["default"])(_disableLoginNextHook, 2), | ||
disableLoginNext = _disableLoginNextHook2[0], | ||
setDisableLoginNext = _disableLoginNextHook2[1]; | ||
if (disableLoginNext) { | ||
setDisableLoginNext(false); | ||
} | ||
if (typeof next === 'function') { | ||
@@ -108,3 +88,2 @@ next(); | ||
} | ||
dispatch({ | ||
@@ -115,3 +94,2 @@ type: 'logout', | ||
} | ||
function authenticate(token) { | ||
@@ -123,3 +101,2 @@ dispatch({ | ||
} | ||
function resolveTokenFromCode(code) { | ||
@@ -131,47 +108,38 @@ dispatch({ | ||
} | ||
function handleCode(_x, _x2) { | ||
return _handleCode.apply(this, arguments); | ||
} | ||
function _handleCode() { | ||
_handleCode = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(state, dispatch) { | ||
var code, resp, _token; | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
code = state.code; | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context.prev = 2; | ||
_context.next = 5; | ||
return fetch(state.config.tokenURL + '?code=' + code); | ||
case 5: | ||
resp = _context.sent; | ||
_context.next = 8; | ||
return resp.json(); | ||
case 8: | ||
_token = _context.sent; | ||
authenticate(_token.token); | ||
_context.next = 16; | ||
break; | ||
case 12: | ||
_context.prev = 12; | ||
_context.t0 = _context["catch"](2); | ||
console.error('Error occured in code handling', _context.t0); | ||
dispatch({ | ||
type: 'error', | ||
error: _context.t0 | ||
}); | ||
case 16: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
code = state.code; | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context.prev = 2; | ||
_context.next = 5; | ||
return fetch(state.config.tokenURL + '?code=' + code); | ||
case 5: | ||
resp = _context.sent; | ||
_context.next = 8; | ||
return resp.json(); | ||
case 8: | ||
_token = _context.sent; | ||
authenticate(_token.token); | ||
_context.next = 16; | ||
break; | ||
case 12: | ||
_context.prev = 12; | ||
_context.t0 = _context["catch"](2); | ||
console.error('Error occured in code handling', _context.t0); | ||
dispatch({ | ||
type: 'error', | ||
error: _context.t0 | ||
}); | ||
case 16: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
@@ -182,100 +150,79 @@ }, _callee, null, [[2, 12]]); | ||
} | ||
function handleToken(_x3, _x4, _x5) { | ||
return _handleToken.apply(this, arguments); | ||
} | ||
function _handleToken() { | ||
_handleToken = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(state, dispatch, onError) { | ||
var token, userUpdatedAt, revalidatedBefore, data, _user; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) { | ||
switch (_context2.prev = _context2.next) { | ||
case 0: | ||
token = state.token || ''; | ||
if (!state.config.userDataURL) { | ||
_context2.next = 31; | ||
break; | ||
} | ||
userUpdatedAt = localStorage.getItem('userUpdatedAt'); | ||
if (!(userUpdatedAt && !state.user)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
revalidatedBefore = (Date.now() - parseInt(userUpdatedAt)) / 1000; | ||
if (!(revalidatedBefore < TOKEN_REVALIDATION_INTERVAL)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
console.log("Token validated before ".concat(revalidatedBefore, ". Aborting request.")); | ||
return _context2.abrupt("return"); | ||
case 8: | ||
localStorage.setItem('userUpdatedAt', "".concat(Date.now())); | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context2.prev = 10; | ||
_context2.next = 13; | ||
return fetch(state.config.userDataURL, { | ||
headers: { | ||
Authorization: "Token ".concat(token) | ||
} | ||
}); | ||
case 13: | ||
data = _context2.sent; | ||
if (!(data.status === 404 || data.status === 401 || !data.ok)) { | ||
_context2.next = 20; | ||
break; | ||
} | ||
console.error('Error in fetch userDataURL response', data); | ||
dispatch({ | ||
type: 'error', | ||
error: data | ||
}); | ||
logout(onError); | ||
_context2.next = 24; | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
token = state.token || ''; | ||
if (!state.config.userDataURL) { | ||
_context2.next = 31; | ||
break; | ||
case 20: | ||
_context2.next = 22; | ||
return data.json(); | ||
case 22: | ||
_user = _context2.sent; | ||
if (transformUserObject) { | ||
login(token, transformUserObject(_user)); | ||
} else { | ||
login(token, _user); | ||
} | ||
userUpdatedAt = localStorage.getItem('userUpdatedAt'); | ||
if (!(userUpdatedAt && !state.user)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
revalidatedBefore = (Date.now() - parseInt(userUpdatedAt)) / 1000; | ||
if (!(revalidatedBefore < TOKEN_REVALIDATION_INTERVAL)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
console.log("Token validated before ".concat(revalidatedBefore, ". Aborting request.")); | ||
return _context2.abrupt("return"); | ||
case 8: | ||
localStorage.setItem('userUpdatedAt', "".concat(Date.now())); | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context2.prev = 10; | ||
_context2.next = 13; | ||
return fetch(state.config.userDataURL, { | ||
headers: { | ||
Authorization: "Token ".concat(token) | ||
} | ||
case 24: | ||
_context2.next = 31; | ||
}); | ||
case 13: | ||
data = _context2.sent; | ||
if (!(data.status === 404 || data.status === 401 || !data.ok)) { | ||
_context2.next = 20; | ||
break; | ||
case 26: | ||
_context2.prev = 26; | ||
_context2.t0 = _context2["catch"](10); | ||
console.error('Error in fetch userDataURL', _context2.t0); | ||
logout(onError); | ||
dispatch({ | ||
type: 'error', | ||
error: _context2.t0 | ||
}); | ||
case 31: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
} | ||
console.error('Error in fetch userDataURL response', data); | ||
dispatch({ | ||
type: 'error', | ||
error: data | ||
}); | ||
logout(onError); | ||
_context2.next = 24; | ||
break; | ||
case 20: | ||
_context2.next = 22; | ||
return data.json(); | ||
case 22: | ||
_user = _context2.sent; | ||
if (transformUserObject) { | ||
login(token, transformUserObject(_user)); | ||
} else { | ||
login(token, _user); | ||
} | ||
case 24: | ||
_context2.next = 31; | ||
break; | ||
case 26: | ||
_context2.prev = 26; | ||
_context2.t0 = _context2["catch"](10); | ||
console.error('Error in fetch userDataURL', _context2.t0); | ||
logout(onError); | ||
dispatch({ | ||
type: 'error', | ||
error: _context2.t0 | ||
}); | ||
case 31: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
@@ -286,7 +233,5 @@ }, _callee2, null, [[10, 26]]); | ||
} | ||
function revalidateToken(onError) { | ||
handleToken(state, dispatch, onError); | ||
} | ||
(0, _react.useEffect)(function () { | ||
@@ -330,4 +275,2 @@ if (!state.processing && state.token && !state.user) { | ||
} | ||
var _default = useAuth; | ||
exports["default"] = _default; | ||
var _default = exports["default"] = useAuth; |
@@ -1,7 +0,7 @@ | ||
export declare type UserID = string | number; | ||
export declare type UserType = Record<string, any> | null | undefined; | ||
export declare type TokenType = string | null | undefined; | ||
export declare type CodeType = string | Record<string, any> | null; | ||
export type UserID = string | number; | ||
export type UserType = Record<string, any> | null | undefined; | ||
export type TokenType = string | null | undefined; | ||
export type CodeType = string | Record<string, any> | null; | ||
export declare const TOKEN_REVALIDATION_INTERVAL = 1; | ||
export declare type AuthConfig = { | ||
export type AuthConfig = { | ||
userDataURL?: string; | ||
@@ -11,3 +11,3 @@ loginURL?: string; | ||
}; | ||
export declare type AuthState = { | ||
export type AuthState = { | ||
authenticated: boolean; | ||
@@ -14,0 +14,0 @@ showWarning?: (...args: any[]) => void; |
258
index.js
@@ -1,2 +0,2 @@ | ||
/** @license Digigov v1.0.0-rc.4 | ||
/** @license Digigov v1.0.0-rc.5 | ||
* | ||
@@ -9,8 +9,6 @@ * This source code is licensed under the BSD-2-Clause license found in the | ||
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; | ||
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } | ||
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } | ||
import { useEffect, useContext } from 'react'; | ||
import { AuthContext } from "./AuthProvider"; | ||
import { disableLoginNextHook } from "./hooks"; | ||
import { AuthContext } from '@digigov/auth/AuthProvider'; | ||
import { disableLoginNextHook } from '@digigov/auth/hooks'; | ||
export var TOKEN_REVALIDATION_INTERVAL = 1; // seconds | ||
@@ -20,9 +18,7 @@ | ||
var _useContext = useContext(AuthContext), | ||
state = _useContext.state, | ||
dispatch = _useContext.dispatch; | ||
state = _useContext.state, | ||
dispatch = _useContext.dispatch; | ||
var navigate = state.navigate; | ||
var transformUserObject = state.transformUserObject; | ||
var location = window.location; | ||
function login(id, data) { | ||
@@ -35,13 +31,10 @@ dispatch({ | ||
} | ||
function logout(next) { | ||
var _disableLoginNextHook = disableLoginNextHook(), | ||
_disableLoginNextHook2 = _slicedToArray(_disableLoginNextHook, 2), | ||
disableLoginNext = _disableLoginNextHook2[0], | ||
setDisableLoginNext = _disableLoginNextHook2[1]; | ||
_disableLoginNextHook2 = _slicedToArray(_disableLoginNextHook, 2), | ||
disableLoginNext = _disableLoginNextHook2[0], | ||
setDisableLoginNext = _disableLoginNextHook2[1]; | ||
if (disableLoginNext) { | ||
setDisableLoginNext(false); | ||
} | ||
if (typeof next === 'function') { | ||
@@ -52,3 +45,2 @@ next(); | ||
} | ||
dispatch({ | ||
@@ -59,3 +51,2 @@ type: 'logout', | ||
} | ||
function authenticate(token) { | ||
@@ -67,3 +58,2 @@ dispatch({ | ||
} | ||
function resolveTokenFromCode(code) { | ||
@@ -75,47 +65,38 @@ dispatch({ | ||
} | ||
function handleCode(_x, _x2) { | ||
return _handleCode.apply(this, arguments); | ||
} | ||
function _handleCode() { | ||
_handleCode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(state, dispatch) { | ||
var code, resp, _token; | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
code = state.code; | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context.prev = 2; | ||
_context.next = 5; | ||
return fetch(state.config.tokenURL + '?code=' + code); | ||
case 5: | ||
resp = _context.sent; | ||
_context.next = 8; | ||
return resp.json(); | ||
case 8: | ||
_token = _context.sent; | ||
authenticate(_token.token); | ||
_context.next = 16; | ||
break; | ||
case 12: | ||
_context.prev = 12; | ||
_context.t0 = _context["catch"](2); | ||
console.error('Error occured in code handling', _context.t0); | ||
dispatch({ | ||
type: 'error', | ||
error: _context.t0 | ||
}); | ||
case 16: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
code = state.code; | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context.prev = 2; | ||
_context.next = 5; | ||
return fetch(state.config.tokenURL + '?code=' + code); | ||
case 5: | ||
resp = _context.sent; | ||
_context.next = 8; | ||
return resp.json(); | ||
case 8: | ||
_token = _context.sent; | ||
authenticate(_token.token); | ||
_context.next = 16; | ||
break; | ||
case 12: | ||
_context.prev = 12; | ||
_context.t0 = _context["catch"](2); | ||
console.error('Error occured in code handling', _context.t0); | ||
dispatch({ | ||
type: 'error', | ||
error: _context.t0 | ||
}); | ||
case 16: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
@@ -126,100 +107,79 @@ }, _callee, null, [[2, 12]]); | ||
} | ||
function handleToken(_x3, _x4, _x5) { | ||
return _handleToken.apply(this, arguments); | ||
} | ||
function _handleToken() { | ||
_handleToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(state, dispatch, onError) { | ||
var token, userUpdatedAt, revalidatedBefore, data, _user; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) { | ||
switch (_context2.prev = _context2.next) { | ||
case 0: | ||
token = state.token || ''; | ||
if (!state.config.userDataURL) { | ||
_context2.next = 31; | ||
break; | ||
} | ||
userUpdatedAt = localStorage.getItem('userUpdatedAt'); | ||
if (!(userUpdatedAt && !state.user)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
revalidatedBefore = (Date.now() - parseInt(userUpdatedAt)) / 1000; | ||
if (!(revalidatedBefore < TOKEN_REVALIDATION_INTERVAL)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
console.log("Token validated before ".concat(revalidatedBefore, ". Aborting request.")); | ||
return _context2.abrupt("return"); | ||
case 8: | ||
localStorage.setItem('userUpdatedAt', "".concat(Date.now())); | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context2.prev = 10; | ||
_context2.next = 13; | ||
return fetch(state.config.userDataURL, { | ||
headers: { | ||
Authorization: "Token ".concat(token) | ||
} | ||
}); | ||
case 13: | ||
data = _context2.sent; | ||
if (!(data.status === 404 || data.status === 401 || !data.ok)) { | ||
_context2.next = 20; | ||
break; | ||
} | ||
console.error('Error in fetch userDataURL response', data); | ||
dispatch({ | ||
type: 'error', | ||
error: data | ||
}); | ||
logout(onError); | ||
_context2.next = 24; | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
token = state.token || ''; | ||
if (!state.config.userDataURL) { | ||
_context2.next = 31; | ||
break; | ||
case 20: | ||
_context2.next = 22; | ||
return data.json(); | ||
case 22: | ||
_user = _context2.sent; | ||
if (transformUserObject) { | ||
login(token, transformUserObject(_user)); | ||
} else { | ||
login(token, _user); | ||
} | ||
userUpdatedAt = localStorage.getItem('userUpdatedAt'); | ||
if (!(userUpdatedAt && !state.user)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
revalidatedBefore = (Date.now() - parseInt(userUpdatedAt)) / 1000; | ||
if (!(revalidatedBefore < TOKEN_REVALIDATION_INTERVAL)) { | ||
_context2.next = 8; | ||
break; | ||
} | ||
console.log("Token validated before ".concat(revalidatedBefore, ". Aborting request.")); | ||
return _context2.abrupt("return"); | ||
case 8: | ||
localStorage.setItem('userUpdatedAt', "".concat(Date.now())); | ||
dispatch({ | ||
type: 'authenticating' | ||
}); | ||
_context2.prev = 10; | ||
_context2.next = 13; | ||
return fetch(state.config.userDataURL, { | ||
headers: { | ||
Authorization: "Token ".concat(token) | ||
} | ||
case 24: | ||
_context2.next = 31; | ||
}); | ||
case 13: | ||
data = _context2.sent; | ||
if (!(data.status === 404 || data.status === 401 || !data.ok)) { | ||
_context2.next = 20; | ||
break; | ||
case 26: | ||
_context2.prev = 26; | ||
_context2.t0 = _context2["catch"](10); | ||
console.error('Error in fetch userDataURL', _context2.t0); | ||
logout(onError); | ||
dispatch({ | ||
type: 'error', | ||
error: _context2.t0 | ||
}); | ||
case 31: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
} | ||
console.error('Error in fetch userDataURL response', data); | ||
dispatch({ | ||
type: 'error', | ||
error: data | ||
}); | ||
logout(onError); | ||
_context2.next = 24; | ||
break; | ||
case 20: | ||
_context2.next = 22; | ||
return data.json(); | ||
case 22: | ||
_user = _context2.sent; | ||
if (transformUserObject) { | ||
login(token, transformUserObject(_user)); | ||
} else { | ||
login(token, _user); | ||
} | ||
case 24: | ||
_context2.next = 31; | ||
break; | ||
case 26: | ||
_context2.prev = 26; | ||
_context2.t0 = _context2["catch"](10); | ||
console.error('Error in fetch userDataURL', _context2.t0); | ||
logout(onError); | ||
dispatch({ | ||
type: 'error', | ||
error: _context2.t0 | ||
}); | ||
case 31: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
@@ -230,7 +190,5 @@ }, _callee2, null, [[10, 26]]); | ||
} | ||
function revalidateToken(onError) { | ||
handleToken(state, dispatch, onError); | ||
} | ||
useEffect(function () { | ||
@@ -275,4 +233,4 @@ if (!state.processing && state.token && !state.user) { | ||
export default useAuth; | ||
export * from "./AuthProvider"; | ||
export * from "./hooks"; | ||
export * from "./TokenLogin"; | ||
export * from '@digigov/auth/AuthProvider'; | ||
export * from '@digigov/auth/hooks'; | ||
export * from '@digigov/auth/TokenLogin'; |
{ | ||
"name": "@digigov/auth", | ||
"version": "1.0.0-rc.4", | ||
"version": "1.0.0-rc.5", | ||
"description": "@digigov authentication client", | ||
@@ -5,0 +5,0 @@ "author": "GRNET Developers <devs@lists.grnet.gr>", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
38
120998
2527