New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@digigov/auth

Package Overview
Dependencies
Maintainers
0
Versions
269
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@digigov/auth - npm Package Compare versions

Comparing version 1.1.4-0edebf87 to 1.1.4-d57821ba

AuthProvider.js.map

80

AuthProvider/index.js

@@ -1,7 +0,5 @@

import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _extends from "@babel/runtime/helpers/extends";
import React, { createContext, useReducer, useMemo } from 'react';
import { readSession } from '@digigov/auth/localSession';
import { authReducer } from '@digigov/auth/authReducer';
export var DEFAULT_STATE = {
import React, { createContext, useReducer, useMemo } from "react";
import { readSession } from "@digigov/auth/localSession";
import { authReducer } from "@digigov/auth/authReducer";
const DEFAULT_STATE = {
user: null,

@@ -14,46 +12,42 @@ authenticated: null,

error: null,
navigate: function navigate(url) {
throw new Error("set a custom navigate function to handle URL ".concat(url));
navigate: (url) => {
throw new Error(`set a custom navigate function to handle URL ${url}`);
},
transformUserObject: function transformUserObject(user) {
transformUserObject: (user) => {
return user;
}
};
export var AuthContext = /*#__PURE__*/createContext({
state: _extends({
config: {}
}, DEFAULT_STATE),
const AuthContext = createContext({
state: {
config: {},
...DEFAULT_STATE
},
// eslint-disable-next-line @typescript-eslint/no-unused-vars
dispatch: function dispatch() {
return undefined;
}
dispatch: (..._args) => void 0
});
export function AuthProvider(_ref) {
var _ref$config = _ref.config,
config = _ref$config === void 0 ? {} : _ref$config,
navigate = _ref.navigate,
transformUserObject = _ref.transformUserObject,
children = _ref.children;
var _useReducer = useReducer(authReducer, _extends({}, DEFAULT_STATE, {
config: config,
navigate: navigate,
transformUserObject: transformUserObject
}), function (state) {
return _extends({}, state, readSession(), {
processing: false
});
}),
_useReducer2 = _slicedToArray(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var data = useMemo(function () {
return {
state: state,
dispatch: dispatch
};
function AuthProvider({
config = {},
navigate,
transformUserObject,
children
}) {
const [state, dispatch] = useReducer(
authReducer,
{ ...DEFAULT_STATE, config, navigate, transformUserObject },
(state2) => {
return { ...state2, ...readSession(), processing: false };
}
);
const data = useMemo(() => {
return { state, dispatch };
}, [state, dispatch]);
return /*#__PURE__*/React.createElement(AuthContext.Provider, {
value: data
}, children);
return /* @__PURE__ */ React.createElement(AuthContext.Provider, { value: data }, children);
}
export default AuthProvider;
var AuthProvider_default = AuthProvider;
export {
AuthContext,
AuthProvider,
DEFAULT_STATE,
AuthProvider_default as default
};
//# sourceMappingURL=AuthProvider.js.map

@@ -1,8 +0,8 @@

import _extends from "@babel/runtime/helpers/extends";
import { updateSession } from '@digigov/auth/localSession';
export function authReducer(state, action) {
var update = updateSession;
import { updateSession } from "@digigov/auth/localSession";
function authReducer(state, action) {
const update = updateSession;
switch (action.type) {
case 'login':
return update(_extends({}, state, {
case "login":
return update({
...state,
user: action.user,

@@ -13,5 +13,6 @@ id: action.id,

error: null
}));
case 'code':
return update(_extends({}, state, {
});
case "code":
return update({
...state,
code: action.code,

@@ -22,5 +23,6 @@ token: null,

error: null
}));
case 'token':
return update(_extends({}, state, {
});
case "token":
return update({
...state,
token: action.token,

@@ -30,5 +32,6 @@ authenticated: false,

error: null
}));
case 'logout':
return update(_extends({}, state, {
});
case "logout":
return update({
...state,
user: null,

@@ -41,12 +44,14 @@ token: null,

error: null
}));
case 'authenticating':
return update(_extends({}, state, {
});
case "authenticating":
return update({
...state,
processing: true,
error: null,
authenticated: false
}));
case 'error':
console.error('Error occured on auth procedure', action.error);
return update(_extends({}, state, {
});
case "error":
console.error("Error occured on auth procedure", action.error);
return update({
...state,
code: null,

@@ -59,8 +64,13 @@ processing: false,

id: false
}));
});
default:
console.error(action);
throw Error('Invalid Auth action.');
throw Error("Invalid Auth action.");
}
}
export default authReducer;
var authReducer_default = authReducer;
export {
authReducer,
authReducer_default as default
};
//# sourceMappingURL=authReducer.js.map

@@ -1,19 +0,40 @@

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var AuthProvider_exports = {};
__export(AuthProvider_exports, {
AuthContext: () => AuthContext,
AuthProvider: () => AuthProvider,
DEFAULT_STATE: () => DEFAULT_STATE,
default: () => AuthProvider_default
});
exports.AuthContext = void 0;
exports.AuthProvider = AuthProvider;
exports["default"] = exports.DEFAULT_STATE = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _localSession = require("@digigov/auth/localSession");
var _authReducer = require("@digigov/auth/authReducer");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
var DEFAULT_STATE = exports.DEFAULT_STATE = {
module.exports = __toCommonJS(AuthProvider_exports);
var import_react = __toESM(require("react"));
var import_localSession = require("@digigov/auth/localSession");
var import_authReducer = require("@digigov/auth/authReducer");
const DEFAULT_STATE = {
user: null,

@@ -26,46 +47,42 @@ authenticated: null,

error: null,
navigate: function navigate(url) {
throw new Error("set a custom navigate function to handle URL ".concat(url));
navigate: (url) => {
throw new Error(`set a custom navigate function to handle URL ${url}`);
},
transformUserObject: function transformUserObject(user) {
transformUserObject: (user) => {
return user;
}
};
var AuthContext = exports.AuthContext = /*#__PURE__*/(0, _react.createContext)({
state: (0, _extends2["default"])({
config: {}
}, DEFAULT_STATE),
const AuthContext = (0, import_react.createContext)({
state: {
config: {},
...DEFAULT_STATE
},
// eslint-disable-next-line @typescript-eslint/no-unused-vars
dispatch: function dispatch() {
return undefined;
}
dispatch: (..._args) => void 0
});
function AuthProvider(_ref) {
var _ref$config = _ref.config,
config = _ref$config === void 0 ? {} : _ref$config,
navigate = _ref.navigate,
transformUserObject = _ref.transformUserObject,
children = _ref.children;
var _useReducer = (0, _react.useReducer)(_authReducer.authReducer, (0, _extends2["default"])({}, DEFAULT_STATE, {
config: config,
navigate: navigate,
transformUserObject: transformUserObject
}), function (state) {
return (0, _extends2["default"])({}, state, (0, _localSession.readSession)(), {
processing: false
});
}),
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var data = (0, _react.useMemo)(function () {
return {
state: state,
dispatch: dispatch
};
function AuthProvider({
config = {},
navigate,
transformUserObject,
children
}) {
const [state, dispatch] = (0, import_react.useReducer)(
import_authReducer.authReducer,
{ ...DEFAULT_STATE, config, navigate, transformUserObject },
(state2) => {
return { ...state2, ...(0, import_localSession.readSession)(), processing: false };
}
);
const data = (0, import_react.useMemo)(() => {
return { state, dispatch };
}, [state, dispatch]);
return /*#__PURE__*/_react["default"].createElement(AuthContext.Provider, {
value: data
}, children);
return /* @__PURE__ */ import_react.default.createElement(AuthContext.Provider, { value: data }, children);
}
var _default = exports["default"] = AuthProvider;
var AuthProvider_default = AuthProvider;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
AuthContext,
AuthProvider,
DEFAULT_STATE
});
//# sourceMappingURL=AuthProvider.js.map

@@ -1,16 +0,31 @@

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var authReducer_exports = {};
__export(authReducer_exports, {
authReducer: () => authReducer,
default: () => authReducer_default
});
exports.authReducer = authReducer;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _localSession = require("@digigov/auth/localSession");
module.exports = __toCommonJS(authReducer_exports);
var import_localSession = require("@digigov/auth/localSession");
function authReducer(state, action) {
var update = _localSession.updateSession;
const update = import_localSession.updateSession;
switch (action.type) {
case 'login':
return update((0, _extends2["default"])({}, state, {
case "login":
return update({
...state,
user: action.user,

@@ -21,5 +36,6 @@ id: action.id,

error: null
}));
case 'code':
return update((0, _extends2["default"])({}, state, {
});
case "code":
return update({
...state,
code: action.code,

@@ -30,5 +46,6 @@ token: null,

error: null
}));
case 'token':
return update((0, _extends2["default"])({}, state, {
});
case "token":
return update({
...state,
token: action.token,

@@ -38,5 +55,6 @@ authenticated: false,

error: null
}));
case 'logout':
return update((0, _extends2["default"])({}, state, {
});
case "logout":
return update({
...state,
user: null,

@@ -49,12 +67,14 @@ token: null,

error: null
}));
case 'authenticating':
return update((0, _extends2["default"])({}, state, {
});
case "authenticating":
return update({
...state,
processing: true,
error: null,
authenticated: false
}));
case 'error':
console.error('Error occured on auth procedure', action.error);
return update((0, _extends2["default"])({}, state, {
});
case "error":
console.error("Error occured on auth procedure", action.error);
return update({
...state,
code: null,

@@ -67,8 +87,13 @@ processing: false,

id: false
}));
});
default:
console.error(action);
throw Error('Invalid Auth action.');
throw Error("Invalid Auth action.");
}
}
var _default = exports["default"] = authReducer;
var authReducer_default = authReducer;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
authReducer
});
//# sourceMappingURL=authReducer.js.map

@@ -1,42 +0,68 @@

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var hooks_exports = {};
__export(hooks_exports, {
disableLoginNextHook: () => disableLoginNextHook,
makeRequireUserTypeHook: () => makeRequireUserTypeHook,
useLoginPortal: () => useLoginPortal,
useRequireAnonymous: () => useRequireAnonymous,
useRequireUser: () => useRequireUser,
useToken: () => useToken,
useUser: () => useUser
});
exports.disableLoginNextHook = void 0;
exports.makeRequireUserTypeHook = makeRequireUserTypeHook;
exports.useLoginPortal = useLoginPortal;
exports.useRequireUser = exports.useRequireAnonymous = void 0;
exports.useToken = useToken;
exports.useUser = useUser;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _auth = _interopRequireDefault(require("@digigov/auth/"));
var _localSession = require("@digigov/auth/localSession");
module.exports = __toCommonJS(hooks_exports);
var import_react = require("react");
var import_auth = __toESM(require("@digigov/auth/"));
var import_localSession = require("@digigov/auth/localSession");
function useToken() {
return (0, _auth["default"])().token;
return (0, import_auth.default)().token;
}
function useUser() {
return (0, _auth["default"])().user;
return (0, import_auth.default)().user;
}
function makeRequireUserTypeHook(checkUserType, onError) {
return function () {
var auth = (0, _auth["default"])();
var user = auth.user;
var navigate = auth.navigate;
var location = window.location;
var currentUrl = location.pathname + location.search;
(0, _react.useEffect)(function () {
if (auth.token) auth.revalidateToken(function () {
return onError ? onError(navigate, currentUrl) : navigate('/');
});
return () => {
const auth = (0, import_auth.default)();
const user = auth.user;
const navigate = auth.navigate;
const location = window.location;
const currentUrl = location.pathname + location.search;
(0, import_react.useEffect)(() => {
if (auth.token)
auth.revalidateToken(
() => onError ? onError(navigate, currentUrl) : navigate("/")
);
}, []);
(0, _react.useEffect)(function () {
(0, import_react.useEffect)(() => {
if (!auth.processing && (!auth.token || !auth.authenticated || auth.user && !checkUserType(user))) {
if (onError) {
localStorage.setItem('login-next', currentUrl);
localStorage.setItem("login-next", currentUrl);
onError(navigate, currentUrl);
} else {
navigate('/');
navigate("/");
}

@@ -48,26 +74,21 @@ }

}
var useRequireUser = exports.useRequireUser = makeRequireUserTypeHook(function (user) {
return !!user;
});
var disableLoginNextHook = exports.disableLoginNextHook = function disableLoginNextHook() {
const useRequireUser = makeRequireUserTypeHook((user) => !!user);
const disableLoginNextHook = () => {
function setDisableLoginNext(bool) {
if (bool) {
window.localStorage.setItem('disable-login-next', 'true');
window.localStorage.setItem("disable-login-next", "true");
} else {
window.localStorage.removeItem('disable-login-next');
window.localStorage.removeItem("disable-login-next");
}
}
var disableLoginNext = !!window.localStorage.getItem('disable-login-next');
const disableLoginNext = !!window.localStorage.getItem("disable-login-next");
return [disableLoginNext, setDisableLoginNext];
};
var useRequireAnonymous = exports.useRequireAnonymous = function useRequireAnonymous() {
var auth = (0, _auth["default"])();
var params = new URLSearchParams(window.location.search);
var _disableLoginNextHook = disableLoginNextHook(),
_disableLoginNextHook2 = (0, _slicedToArray2["default"])(_disableLoginNextHook, 2),
disableLoginNext = _disableLoginNextHook2[0],
setDisableLoginNext = _disableLoginNextHook2[1];
var isNewTab = window.history.length === 1;
var nextParam = (0, _react.useMemo)(function () {
return params.get('next') || '';
const useRequireAnonymous = () => {
const auth = (0, import_auth.default)();
const params = new URLSearchParams(window.location.search);
const [disableLoginNext, setDisableLoginNext] = disableLoginNextHook();
const isNewTab = window.history.length === 1;
const nextParam = (0, import_react.useMemo)(() => {
return params.get("next") || "";
}, [window.location.search]);

@@ -79,41 +100,49 @@ if (nextParam) {

} else {
window.localStorage.setItem('login-next', nextParam);
window.localStorage.setItem("login-next", nextParam);
}
}
};
function useLoginPortal(_ref) {
var loginUrl = _ref.loginUrl,
_ref$size = _ref.size,
size = _ref$size === void 0 ? {
width: 600,
height: 400
} : _ref$size,
_ref$position = _ref.position,
position = _ref$position === void 0 ? {
left: 200,
top: 200
} : _ref$position,
title = _ref.title;
(0, _react.useEffect)(function () {
function useLoginPortal({
loginUrl,
size = { width: 600, height: 400 },
position = { left: 200, top: 200 },
title
}) {
(0, import_react.useEffect)(() => {
if (loginUrl) {
var url = new URL(loginUrl, document.baseURI).href;
var urlParams = new URLSearchParams(window.location.search);
var nextURL = urlParams.get('next') || '';
var externalWindow = window.open(url, '', "width=".concat(size.width, ",height=").concat(size.height, ",left=").concat(position.left, ",top=").concat(position.top));
window.localStorage.setItem('popup-login', '1');
externalWindow.document.title = title || 'Login';
// this is a hack since we can't track a popup close event from different domain
var checkWindowInterval = setInterval(function () {
const url = new URL(loginUrl, document.baseURI).href;
const urlParams = new URLSearchParams(window.location.search);
const nextURL = urlParams.get("next") || "";
const externalWindow = window.open(
url,
"",
`width=${size.width},height=${size.height},left=${position.left},top=${position.top}`
);
window.localStorage.setItem("popup-login", "1");
externalWindow.document.title = title || "Login";
const checkWindowInterval = setInterval(() => {
try {
if (externalWindow === null || externalWindow.closed) {
clearInterval(checkWindowInterval);
window.localStorage.removeItem('popup-login');
if ((0, _localSession.readSession)().authenticated) {
window.localStorage.removeItem("popup-login");
if ((0, import_localSession.readSession)().authenticated) {
window.location.href = new URL(nextURL, document.baseURI).href;
}
}
} catch (err) {}
} catch (err) {
}
}, 500);
}
}, [loginUrl]);
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
disableLoginNextHook,
makeRequireUserTypeHook,
useLoginPortal,
useRequireAnonymous,
useRequireUser,
useToken,
useUser
});
//# sourceMappingURL=hooks.js.map

@@ -1,222 +0,110 @@

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
TOKEN_REVALIDATION_INTERVAL: true,
useAuth: true
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
exports["default"] = exports.TOKEN_REVALIDATION_INTERVAL = void 0;
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("@digigov/auth/AuthProvider");
Object.keys(_AuthProvider).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _AuthProvider[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _AuthProvider[key];
}
});
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var src_exports = {};
__export(src_exports, {
TOKEN_REVALIDATION_INTERVAL: () => TOKEN_REVALIDATION_INTERVAL,
default: () => src_default,
useAuth: () => useAuth
});
var _hooks = require("@digigov/auth/hooks");
Object.keys(_hooks).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _hooks[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _hooks[key];
}
});
});
var _TokenLogin = require("@digigov/auth/TokenLogin");
Object.keys(_TokenLogin).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _TokenLogin[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _TokenLogin[key];
}
});
});
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
module.exports = __toCommonJS(src_exports);
var import_react = require("react");
var import_AuthProvider = require("@digigov/auth/AuthProvider");
var import_hooks = require("@digigov/auth/hooks");
__reExport(src_exports, require("@digigov/auth/AuthProvider"), module.exports);
__reExport(src_exports, require("@digigov/auth/hooks"), module.exports);
__reExport(src_exports, require("@digigov/auth/TokenLogin"), module.exports);
const TOKEN_REVALIDATION_INTERVAL = 1;
function useAuth() {
var _useContext = (0, _react.useContext)(_AuthProvider.AuthContext),
state = _useContext.state,
dispatch = _useContext.dispatch;
var navigate = state.navigate;
var transformUserObject = state.transformUserObject;
var location = window.location;
const { state, dispatch } = (0, import_react.useContext)(import_AuthProvider.AuthContext);
const navigate = state.navigate;
const transformUserObject = state.transformUserObject;
const location = window.location;
function login(id, data) {
dispatch({
type: 'login',
user: data,
id: id
});
dispatch({ type: "login", user: data, id });
}
function logout(next) {
var _disableLoginNextHook = (0, _hooks.disableLoginNextHook)(),
_disableLoginNextHook2 = (0, _slicedToArray2["default"])(_disableLoginNextHook, 2),
disableLoginNext = _disableLoginNextHook2[0],
setDisableLoginNext = _disableLoginNextHook2[1];
const [disableLoginNext, setDisableLoginNext] = (0, import_hooks.disableLoginNextHook)();
if (disableLoginNext) {
setDisableLoginNext(false);
}
if (typeof next === 'function') {
if (typeof next === "function") {
next();
} else {
navigate(next || '/');
navigate(next || "/");
}
dispatch({
type: 'logout',
next: next
});
dispatch({ type: "logout", next });
}
function authenticate(token) {
dispatch({
type: 'token',
token: token
});
dispatch({ type: "token", token });
}
function resolveTokenFromCode(code) {
dispatch({
type: 'code',
code: code
});
dispatch({ type: "code", code });
}
function handleCode(_x, _x2) {
return _handleCode.apply(this, arguments);
async function handleCode(state2, dispatch2) {
const code = state2.code;
dispatch2({ type: "authenticating" });
try {
const resp = await fetch(state2.config.tokenURL + "?code=" + code);
const token = await resp.json();
authenticate(token.token);
} catch (err) {
console.error("Error occured in code handling", err);
dispatch2({ type: "error", error: err });
}
}
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();
async function handleToken(state2, dispatch2, onError) {
const token = state2.token || "";
if (state2.config.userDataURL) {
const userUpdatedAt = localStorage.getItem("userUpdatedAt");
if (userUpdatedAt && !state2.user) {
const revalidatedBefore = (Date.now() - parseInt(userUpdatedAt)) / 1e3;
if (revalidatedBefore < TOKEN_REVALIDATION_INTERVAL) {
console.log(
`Token validated before ${revalidatedBefore}. Aborting request.`
);
return;
}
}, _callee, null, [[2, 12]]);
}));
return _handleCode.apply(this, arguments);
}
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;
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();
}
localStorage.setItem("userUpdatedAt", `${Date.now()}`);
dispatch2({ type: "authenticating" });
try {
const data = await fetch(state2.config.userDataURL, {
headers: {
Authorization: `Token ${token}`
}
});
if (data.status === 404 || data.status === 401 || !data.ok) {
console.error("Error in fetch userDataURL response", data);
dispatch2({ type: "error", error: data });
logout(onError);
} else {
const user = await data.json();
if (transformUserObject) {
login(token, transformUserObject(user));
} else {
login(token, user);
}
}
}, _callee2, null, [[10, 26]]);
}));
return _handleToken.apply(this, arguments);
} catch (err) {
console.error("Error in fetch userDataURL", err);
logout(onError);
dispatch2({ type: "error", error: err });
}
}
}

@@ -226,3 +114,3 @@ function revalidateToken(onError) {

}
(0, _react.useEffect)(function () {
(0, import_react.useEffect)(() => {
if (!state.processing && state.token && !state.user) {

@@ -235,6 +123,4 @@ state.processing = true;

}, [state.token]);
(0, _react.useEffect)(function () {
(0, import_react.useEffect)(() => {
if (state.code && !state.token && !state.processing) {
// modify state outside the reducer to prevent other useAuth on the same update
// from handling the same code
state.processing = true;

@@ -244,3 +130,3 @@ handleCode(state, dispatch);

}, [state.code, state.processing]);
(0, _react.useEffect)(function () {
(0, import_react.useEffect)(() => {
if (state.processing) {

@@ -259,10 +145,19 @@ state.processing = false;

error: state.error,
login: login,
logout: logout,
authenticate: authenticate,
resolveTokenFromCode: resolveTokenFromCode,
revalidateToken: revalidateToken,
login,
logout,
authenticate,
resolveTokenFromCode,
revalidateToken,
config: state.config
};
}
var _default = exports["default"] = useAuth;
var src_default = useAuth;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
TOKEN_REVALIDATION_INTERVAL,
useAuth,
...require("@digigov/auth/AuthProvider"),
...require("@digigov/auth/hooks"),
...require("@digigov/auth/TokenLogin")
});
//# sourceMappingURL=index.js.map

@@ -1,9 +0,25 @@

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var localSession_exports = {};
__export(localSession_exports, {
readSession: () => readSession,
updateSession: () => updateSession
});
exports.readSession = readSession;
exports.updateSession = updateSession;
var isBrowser = typeof window !== 'undefined';
module.exports = __toCommonJS(localSession_exports);
const isBrowser = typeof window !== "undefined";
function readSession() {

@@ -13,7 +29,6 @@ if (!isBrowser) {

}
var savedAuthSession = window.localStorage.getItem('auth-session');
const savedAuthSession = window.localStorage.getItem("auth-session");
if (savedAuthSession) {
try {
var newAuthState = JSON.parse(savedAuthSession);
// only recover user related state
const newAuthState = JSON.parse(savedAuthSession);
return {

@@ -36,3 +51,3 @@ token: newAuthState.token,

}
var s = '{}';
let s = "{}";
try {

@@ -43,4 +58,10 @@ s = JSON.stringify(state);

}
window.localStorage.setItem('auth-session', s);
window.localStorage.setItem("auth-session", s);
return state;
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
readSession,
updateSession
});
//# sourceMappingURL=localSession.js.map

@@ -1,34 +0,50 @@

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var TokenLogin_exports = {};
__export(TokenLogin_exports, {
TokenLogin: () => TokenLogin,
default: () => TokenLogin_default
});
exports["default"] = exports.TokenLogin = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _qs = _interopRequireDefault(require("qs"));
var _auth = _interopRequireDefault(require("@digigov/auth/"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
var isBrowser = typeof window !== 'undefined';
var TokenLogin = exports.TokenLogin = function TokenLogin(_ref) {
var code = _ref.code;
var auth = (0, _auth["default"])();
var location = isBrowser ? window.location : {
hash: '',
search: ''
};
var navigate = auth.navigate;
var params = _qs["default"].parse(location.search.slice(1));
var _useState = (0, _react.useState)(auth.authenticated && auth.code === code),
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
isUsedCode = _useState2[0];
var next = params.next || isBrowser && window.localStorage.getItem('login-next') || '/';
var isPopup = window.localStorage.getItem('popup-login') === '1';
(0, _react.useEffect)(function () {
module.exports = __toCommonJS(TokenLogin_exports);
var import_react = __toESM(require("react"));
var import_qs = __toESM(require("qs"));
var import_auth = __toESM(require("@digigov/auth/"));
const isBrowser = typeof window !== "undefined";
const TokenLogin = ({ code }) => {
const auth = (0, import_auth.default)();
const location = isBrowser ? window.location : { hash: "", search: "" };
const navigate = auth.navigate;
const params = import_qs.default.parse(location.search.slice(1));
const [isUsedCode] = (0, import_react.useState)(auth.authenticated && auth.code === code);
const next = params.next || isBrowser && window.localStorage.getItem("login-next") || "/";
const isPopup = window.localStorage.getItem("popup-login") === "1";
(0, import_react.useEffect)(() => {
if (!code) {
if (!isPopup) {
navigate('/');
navigate("/");
} else {

@@ -43,8 +59,8 @@ isBrowser && window.close();

}, [code, isUsedCode]);
(0, _react.useEffect)(function () {
(0, import_react.useEffect)(() => {
if (auth.authenticated) {
if (!isPopup) {
if (!isUsedCode) {
isBrowser && window.localStorage.removeItem('login-next');
navigate(next || '/');
isBrowser && window.localStorage.removeItem("login-next");
navigate(next || "/");
} else {

@@ -60,4 +76,4 @@ window.history.forward();

console.error(auth.error);
isBrowser && window.localStorage.removeItem('login-next');
navigate('/');
isBrowser && window.localStorage.removeItem("login-next");
navigate("/");
} else {

@@ -68,4 +84,9 @@ isBrowser && window.close();

}, [auth.authenticated, auth.error, auth.code]);
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null);
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null);
};
var _default = exports["default"] = TokenLogin;
var TokenLogin_default = TokenLogin;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
TokenLogin
});
//# sourceMappingURL=TokenLogin.js.map

@@ -1,30 +0,30 @@

import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import { useEffect, useMemo } from 'react';
import useAuth from '@digigov/auth/';
import { readSession } from '@digigov/auth/localSession';
export function useToken() {
import { useEffect, useMemo } from "react";
import useAuth from "@digigov/auth/";
import { readSession } from "@digigov/auth/localSession";
function useToken() {
return useAuth().token;
}
export function useUser() {
function useUser() {
return useAuth().user;
}
export function makeRequireUserTypeHook(checkUserType, onError) {
return function () {
var auth = useAuth();
var user = auth.user;
var navigate = auth.navigate;
var location = window.location;
var currentUrl = location.pathname + location.search;
useEffect(function () {
if (auth.token) auth.revalidateToken(function () {
return onError ? onError(navigate, currentUrl) : navigate('/');
});
function makeRequireUserTypeHook(checkUserType, onError) {
return () => {
const auth = useAuth();
const user = auth.user;
const navigate = auth.navigate;
const location = window.location;
const currentUrl = location.pathname + location.search;
useEffect(() => {
if (auth.token)
auth.revalidateToken(
() => onError ? onError(navigate, currentUrl) : navigate("/")
);
}, []);
useEffect(function () {
useEffect(() => {
if (!auth.processing && (!auth.token || !auth.authenticated || auth.user && !checkUserType(user))) {
if (onError) {
localStorage.setItem('login-next', currentUrl);
localStorage.setItem("login-next", currentUrl);
onError(navigate, currentUrl);
} else {
navigate('/');
navigate("/");
}

@@ -36,26 +36,21 @@ }

}
export var useRequireUser = makeRequireUserTypeHook(function (user) {
return !!user;
});
export var disableLoginNextHook = function disableLoginNextHook() {
const useRequireUser = makeRequireUserTypeHook((user) => !!user);
const disableLoginNextHook = () => {
function setDisableLoginNext(bool) {
if (bool) {
window.localStorage.setItem('disable-login-next', 'true');
window.localStorage.setItem("disable-login-next", "true");
} else {
window.localStorage.removeItem('disable-login-next');
window.localStorage.removeItem("disable-login-next");
}
}
var disableLoginNext = !!window.localStorage.getItem('disable-login-next');
const disableLoginNext = !!window.localStorage.getItem("disable-login-next");
return [disableLoginNext, setDisableLoginNext];
};
export var useRequireAnonymous = function useRequireAnonymous() {
var auth = useAuth();
var params = new URLSearchParams(window.location.search);
var _disableLoginNextHook = disableLoginNextHook(),
_disableLoginNextHook2 = _slicedToArray(_disableLoginNextHook, 2),
disableLoginNext = _disableLoginNextHook2[0],
setDisableLoginNext = _disableLoginNextHook2[1];
var isNewTab = window.history.length === 1;
var nextParam = useMemo(function () {
return params.get('next') || '';
const useRequireAnonymous = () => {
const auth = useAuth();
const params = new URLSearchParams(window.location.search);
const [disableLoginNext, setDisableLoginNext] = disableLoginNextHook();
const isNewTab = window.history.length === 1;
const nextParam = useMemo(() => {
return params.get("next") || "";
}, [window.location.search]);

@@ -67,33 +62,29 @@ if (nextParam) {

} else {
window.localStorage.setItem('login-next', nextParam);
window.localStorage.setItem("login-next", nextParam);
}
}
};
export function useLoginPortal(_ref) {
var loginUrl = _ref.loginUrl,
_ref$size = _ref.size,
size = _ref$size === void 0 ? {
width: 600,
height: 400
} : _ref$size,
_ref$position = _ref.position,
position = _ref$position === void 0 ? {
left: 200,
top: 200
} : _ref$position,
title = _ref.title;
useEffect(function () {
function useLoginPortal({
loginUrl,
size = { width: 600, height: 400 },
position = { left: 200, top: 200 },
title
}) {
useEffect(() => {
if (loginUrl) {
var url = new URL(loginUrl, document.baseURI).href;
var urlParams = new URLSearchParams(window.location.search);
var nextURL = urlParams.get('next') || '';
var externalWindow = window.open(url, '', "width=".concat(size.width, ",height=").concat(size.height, ",left=").concat(position.left, ",top=").concat(position.top));
window.localStorage.setItem('popup-login', '1');
externalWindow.document.title = title || 'Login';
// this is a hack since we can't track a popup close event from different domain
var checkWindowInterval = setInterval(function () {
const url = new URL(loginUrl, document.baseURI).href;
const urlParams = new URLSearchParams(window.location.search);
const nextURL = urlParams.get("next") || "";
const externalWindow = window.open(
url,
"",
`width=${size.width},height=${size.height},left=${position.left},top=${position.top}`
);
window.localStorage.setItem("popup-login", "1");
externalWindow.document.title = title || "Login";
const checkWindowInterval = setInterval(() => {
try {
if (externalWindow === null || externalWindow.closed) {
clearInterval(checkWindowInterval);
window.localStorage.removeItem('popup-login');
window.localStorage.removeItem("popup-login");
if (readSession().authenticated) {

@@ -103,6 +94,17 @@ window.location.href = new URL(nextURL, document.baseURI).href;

}
} catch (err) {}
} catch (err) {
}
}, 500);
}
}, [loginUrl]);
}
}
export {
disableLoginNextHook,
makeRequireUserTypeHook,
useLoginPortal,
useRequireAnonymous,
useRequireUser,
useToken,
useUser
};
//# sourceMappingURL=hooks.js.map

@@ -1,2 +0,2 @@

/** @license Digigov v1.1.4-0edebf87
/** @license Digigov v1.1.4-d57821ba
*

@@ -6,177 +6,83 @@ * This source code is licensed under the BSD-2-Clause license found in the

*/
import _typeof from "@babel/runtime/helpers/typeof";
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
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 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 '@digigov/auth/AuthProvider';
import { disableLoginNextHook } from '@digigov/auth/hooks';
export var TOKEN_REVALIDATION_INTERVAL = 1; // seconds
export function useAuth() {
var _useContext = useContext(AuthContext),
state = _useContext.state,
dispatch = _useContext.dispatch;
var navigate = state.navigate;
var transformUserObject = state.transformUserObject;
var location = window.location;
import { useEffect, useContext } from "react";
import { AuthContext } from "@digigov/auth/AuthProvider";
import { disableLoginNextHook } from "@digigov/auth/hooks";
const TOKEN_REVALIDATION_INTERVAL = 1;
function useAuth() {
const { state, dispatch } = useContext(AuthContext);
const navigate = state.navigate;
const transformUserObject = state.transformUserObject;
const location = window.location;
function login(id, data) {
dispatch({
type: 'login',
user: data,
id: id
});
dispatch({ type: "login", user: data, id });
}
function logout(next) {
var _disableLoginNextHook = disableLoginNextHook(),
_disableLoginNextHook2 = _slicedToArray(_disableLoginNextHook, 2),
disableLoginNext = _disableLoginNextHook2[0],
setDisableLoginNext = _disableLoginNextHook2[1];
const [disableLoginNext, setDisableLoginNext] = disableLoginNextHook();
if (disableLoginNext) {
setDisableLoginNext(false);
}
if (typeof next === 'function') {
if (typeof next === "function") {
next();
} else {
navigate(next || '/');
navigate(next || "/");
}
dispatch({
type: 'logout',
next: next
});
dispatch({ type: "logout", next });
}
function authenticate(token) {
dispatch({
type: 'token',
token: token
});
dispatch({ type: "token", token });
}
function resolveTokenFromCode(code) {
dispatch({
type: 'code',
code: code
});
dispatch({ type: "code", code });
}
function handleCode(_x, _x2) {
return _handleCode.apply(this, arguments);
async function handleCode(state2, dispatch2) {
const code = state2.code;
dispatch2({ type: "authenticating" });
try {
const resp = await fetch(state2.config.tokenURL + "?code=" + code);
const token = await resp.json();
authenticate(token.token);
} catch (err) {
console.error("Error occured in code handling", err);
dispatch2({ type: "error", error: err });
}
}
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();
async function handleToken(state2, dispatch2, onError) {
const token = state2.token || "";
if (state2.config.userDataURL) {
const userUpdatedAt = localStorage.getItem("userUpdatedAt");
if (userUpdatedAt && !state2.user) {
const revalidatedBefore = (Date.now() - parseInt(userUpdatedAt)) / 1e3;
if (revalidatedBefore < TOKEN_REVALIDATION_INTERVAL) {
console.log(
`Token validated before ${revalidatedBefore}. Aborting request.`
);
return;
}
}, _callee, null, [[2, 12]]);
}));
return _handleCode.apply(this, arguments);
}
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;
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();
}
localStorage.setItem("userUpdatedAt", `${Date.now()}`);
dispatch2({ type: "authenticating" });
try {
const data = await fetch(state2.config.userDataURL, {
headers: {
Authorization: `Token ${token}`
}
});
if (data.status === 404 || data.status === 401 || !data.ok) {
console.error("Error in fetch userDataURL response", data);
dispatch2({ type: "error", error: data });
logout(onError);
} else {
const user = await data.json();
if (transformUserObject) {
login(token, transformUserObject(user));
} else {
login(token, user);
}
}
}, _callee2, null, [[10, 26]]);
}));
return _handleToken.apply(this, arguments);
} catch (err) {
console.error("Error in fetch userDataURL", err);
logout(onError);
dispatch2({ type: "error", error: err });
}
}
}

@@ -186,3 +92,3 @@ function revalidateToken(onError) {

}
useEffect(function () {
useEffect(() => {
if (!state.processing && state.token && !state.user) {

@@ -195,6 +101,4 @@ state.processing = true;

}, [state.token]);
useEffect(function () {
useEffect(() => {
if (state.code && !state.token && !state.processing) {
// modify state outside the reducer to prevent other useAuth on the same update
// from handling the same code
state.processing = true;

@@ -204,3 +108,3 @@ handleCode(state, dispatch);

}, [state.code, state.processing]);
useEffect(function () {
useEffect(() => {
if (state.processing) {

@@ -219,13 +123,19 @@ state.processing = false;

error: state.error,
login: login,
logout: logout,
authenticate: authenticate,
resolveTokenFromCode: resolveTokenFromCode,
revalidateToken: revalidateToken,
login,
logout,
authenticate,
resolveTokenFromCode,
revalidateToken,
config: state.config
};
}
export default useAuth;
export * from '@digigov/auth/AuthProvider';
export * from '@digigov/auth/hooks';
export * from '@digigov/auth/TokenLogin';
var src_default = useAuth;
export * from "@digigov/auth/AuthProvider";
export * from "@digigov/auth/hooks";
export * from "@digigov/auth/TokenLogin";
export {
TOKEN_REVALIDATION_INTERVAL,
src_default as default,
useAuth
};
//# sourceMappingURL=index.js.map

@@ -1,11 +0,10 @@

var isBrowser = typeof window !== 'undefined';
export function readSession() {
const isBrowser = typeof window !== "undefined";
function readSession() {
if (!isBrowser) {
return {};
}
var savedAuthSession = window.localStorage.getItem('auth-session');
const savedAuthSession = window.localStorage.getItem("auth-session");
if (savedAuthSession) {
try {
var newAuthState = JSON.parse(savedAuthSession);
// only recover user related state
const newAuthState = JSON.parse(savedAuthSession);
return {

@@ -24,7 +23,7 @@ token: newAuthState.token,

}
export function updateSession(state) {
function updateSession(state) {
if (!isBrowser) {
return state;
}
var s = '{}';
let s = "{}";
try {

@@ -35,4 +34,9 @@ s = JSON.stringify(state);

}
window.localStorage.setItem('auth-session', s);
window.localStorage.setItem("auth-session", s);
return state;
}
}
export {
readSession,
updateSession
};
//# sourceMappingURL=localSession.js.map
{
"name": "@digigov/auth",
"version": "1.1.4-0edebf87",
"version": "1.1.4-d57821ba",
"description": "@digigov authentication client",

@@ -14,4 +14,4 @@ "author": "GRNET Developers <devs@lists.grnet.gr>",

"peerDependencies": {
"react": "^16.8.0 || ^17.0.0",
"react-dom": "^16.8.0 || ^17.0.0"
"react": ">=16.8.0 <19.0.0",
"react-dom": ">=16.8.0 <19.0.0"
},

@@ -18,0 +18,0 @@ "gitHead": "c903a46306f77f55ad7fc4d2e274006f39a6c871",

@@ -1,24 +0,17 @@

import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import React, { useEffect, useState } from 'react';
import qs from 'qs';
import useAuth from '@digigov/auth/';
var isBrowser = typeof window !== 'undefined';
export var TokenLogin = function TokenLogin(_ref) {
var code = _ref.code;
var auth = useAuth();
var location = isBrowser ? window.location : {
hash: '',
search: ''
};
var navigate = auth.navigate;
var params = qs.parse(location.search.slice(1));
var _useState = useState(auth.authenticated && auth.code === code),
_useState2 = _slicedToArray(_useState, 1),
isUsedCode = _useState2[0];
var next = params.next || isBrowser && window.localStorage.getItem('login-next') || '/';
var isPopup = window.localStorage.getItem('popup-login') === '1';
useEffect(function () {
import React, { useEffect, useState } from "react";
import qs from "qs";
import useAuth from "@digigov/auth/";
const isBrowser = typeof window !== "undefined";
const TokenLogin = ({ code }) => {
const auth = useAuth();
const location = isBrowser ? window.location : { hash: "", search: "" };
const navigate = auth.navigate;
const params = qs.parse(location.search.slice(1));
const [isUsedCode] = useState(auth.authenticated && auth.code === code);
const next = params.next || isBrowser && window.localStorage.getItem("login-next") || "/";
const isPopup = window.localStorage.getItem("popup-login") === "1";
useEffect(() => {
if (!code) {
if (!isPopup) {
navigate('/');
navigate("/");
} else {

@@ -33,8 +26,8 @@ isBrowser && window.close();

}, [code, isUsedCode]);
useEffect(function () {
useEffect(() => {
if (auth.authenticated) {
if (!isPopup) {
if (!isUsedCode) {
isBrowser && window.localStorage.removeItem('login-next');
navigate(next || '/');
isBrowser && window.localStorage.removeItem("login-next");
navigate(next || "/");
} else {

@@ -50,4 +43,4 @@ window.history.forward();

console.error(auth.error);
isBrowser && window.localStorage.removeItem('login-next');
navigate('/');
isBrowser && window.localStorage.removeItem("login-next");
navigate("/");
} else {

@@ -58,4 +51,9 @@ isBrowser && window.close();

}, [auth.authenticated, auth.error, auth.code]);
return /*#__PURE__*/React.createElement(React.Fragment, null);
return /* @__PURE__ */ React.createElement(React.Fragment, null);
};
export default TokenLogin;
var TokenLogin_default = TokenLogin;
export {
TokenLogin,
TokenLogin_default as default
};
//# sourceMappingURL=TokenLogin.js.map
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc