dauth-context-react 0.2.107 → 0.2.109

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,10 @@
1
- import { IDauthUser } from '../initialDauthState';
1
+ import { IDauthUser } from '../interfaces';
2
2
  export declare const getUserAPI: (domainName: string, token: string) => Promise<any>;
3
3
  export declare const updateUserAPI: (domainName: string, user: Partial<IDauthUser>, token: string) => Promise<any>;
4
4
  export declare const sendEmailVerificationAPI: (domainName: string, token: string) => Promise<any>;
5
5
  export declare const refreshAccessTokenAPI: (domainName: string, token: string) => Promise<any>;
6
+ export declare const verifyTokenAPI: ({ domainName, ask, token, }: {
7
+ domainName: string;
8
+ ask: string;
9
+ token: string;
10
+ }) => Promise<any>;
@@ -4,4 +4,5 @@ export declare const routes: {
4
4
  tenantGetUser: string;
5
5
  tenantResendEmailVerification: string;
6
6
  tenantRefreshAccessToken: string;
7
+ tenantVerifyToken: string;
7
8
  };
@@ -6,7 +6,6 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
6
6
 
7
7
  var React = require('react');
8
8
  var React__default = _interopDefault(React);
9
- var JWT = _interopDefault(require('expo-jwt'));
10
9
 
11
10
  function _regeneratorRuntime() {
12
11
  _regeneratorRuntime = function () {
@@ -447,7 +446,8 @@ var routes = {
447
446
  tenantUpdateUser: 't-update-user',
448
447
  tenantGetUser: 't-get-user',
449
448
  tenantResendEmailVerification: 't-resend-email-verification',
450
- tenantRefreshAccessToken: 't-refresh-access-token'
449
+ tenantRefreshAccessToken: 't-refresh-access-token',
450
+ tenantVerifyToken: "t-verify-token"
451
451
  };
452
452
 
453
453
  var isLocalhost = /*#__PURE__*/Boolean(window.location.hostname === 'localhost' || window.location.hostname === '[::1]' || /*#__PURE__*/window.location.hostname.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm) || /*#__PURE__*/window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
@@ -619,6 +619,47 @@ var refreshAccessTokenAPI = /*#__PURE__*/function () {
619
619
  return _ref4.apply(this, arguments);
620
620
  };
621
621
  }();
622
+ var verifyTokenAPI = /*#__PURE__*/function () {
623
+ var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref5) {
624
+ var domainName, ask, token, params, response, data;
625
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
626
+ while (1) switch (_context5.prev = _context5.next) {
627
+ case 0:
628
+ domainName = _ref5.domainName, ask = _ref5.ask, token = _ref5.token;
629
+ params = {
630
+ method: 'POST',
631
+ headers: {
632
+ Authorization: token,
633
+ 'Content-Type': 'application/json'
634
+ },
635
+ body: JSON.stringify({
636
+ ask: ask
637
+ })
638
+ };
639
+ _context5.next = 4;
640
+ return fetch(getServerBasePath({
641
+ domainName: domainName
642
+ }) + "/" + routes.tenantVerifyToken + "/" + domainName, params);
643
+ case 4:
644
+ response = _context5.sent;
645
+ _context5.next = 7;
646
+ return response.json();
647
+ case 7:
648
+ data = _context5.sent;
649
+ return _context5.abrupt("return", {
650
+ response: response,
651
+ data: data
652
+ });
653
+ case 9:
654
+ case "end":
655
+ return _context5.stop();
656
+ }
657
+ }, _callee5);
658
+ }));
659
+ return function verifyTokenAPI(_x10) {
660
+ return _ref6.apply(this, arguments);
661
+ };
662
+ }();
622
663
 
623
664
  var TOKEN_LS = 'dauth_state';
624
665
 
@@ -1036,52 +1077,131 @@ var DauthProvider = function DauthProvider(props) {
1036
1077
  var _useReducer = React.useReducer(userReducer, initialDauthState),
1037
1078
  dauthState = _useReducer[0],
1038
1079
  dispatch = _useReducer[1];
1080
+ var verifyToken = React.useCallback( /*#__PURE__*/function () {
1081
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(token) {
1082
+ var verifyToken;
1083
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1084
+ while (1) switch (_context.prev = _context.next) {
1085
+ case 0:
1086
+ _context.next = 2;
1087
+ return verifyTokenAPI({
1088
+ domainName: domainName,
1089
+ token: token,
1090
+ ask: ask
1091
+ });
1092
+ case 2:
1093
+ verifyToken = _context.sent;
1094
+ if (!(verifyToken.response.status !== 200)) {
1095
+ _context.next = 5;
1096
+ break;
1097
+ }
1098
+ return _context.abrupt("return", setLogoutAction({
1099
+ dispatch: dispatch
1100
+ }));
1101
+ case 5:
1102
+ case "end":
1103
+ return _context.stop();
1104
+ }
1105
+ }, _callee);
1106
+ }));
1107
+ return function (_x) {
1108
+ return _ref.apply(this, arguments);
1109
+ };
1110
+ }(), [domainName, ask]);
1039
1111
  // Check token periodically
1040
1112
  React.useEffect(function () {
1041
1113
  if (!dauthState.isAuthenticated) return;
1042
- var interval = setInterval(function () {
1043
- var token_ls = localStorage.getItem(TOKEN_LS);
1044
- if (!token_ls) return;
1045
- checkTokenAction({
1046
- dispatch: dispatch,
1047
- domainName: domainName,
1048
- token: token_ls
1049
- });
1050
- }, 1000 * 60 * 1);
1114
+ var interval = setInterval( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
1115
+ var token_ls;
1116
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1117
+ while (1) switch (_context2.prev = _context2.next) {
1118
+ case 0:
1119
+ token_ls = localStorage.getItem(TOKEN_LS);
1120
+ if (token_ls) {
1121
+ _context2.next = 3;
1122
+ break;
1123
+ }
1124
+ return _context2.abrupt("return");
1125
+ case 3:
1126
+ _context2.next = 5;
1127
+ return verifyToken(token_ls);
1128
+ case 5:
1129
+ return _context2.abrupt("return", checkTokenAction({
1130
+ dispatch: dispatch,
1131
+ domainName: domainName,
1132
+ token: token_ls
1133
+ }));
1134
+ case 6:
1135
+ case "end":
1136
+ return _context2.stop();
1137
+ }
1138
+ }, _callee2);
1139
+ })), 1000 * 60 * 1);
1051
1140
  return function () {
1052
1141
  return clearInterval(interval);
1053
1142
  };
1054
1143
  }, []);
1055
1144
  // Catch login redirect
1056
1145
  React.useEffect(function () {
1057
- var queryString = window.location.search;
1058
- if (!queryString) return;
1059
- var urlParams = new URLSearchParams(queryString);
1060
- var token_url = urlParams.get(TOKEN_LS);
1061
- if (token_url && !dauthState.isAuthenticated) {
1062
- setDauthStateAction({
1063
- dispatch: dispatch,
1064
- token: token_url,
1065
- domainName: domainName
1066
- });
1067
- }
1146
+ _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
1147
+ var queryString, urlParams, token_url;
1148
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
1149
+ while (1) switch (_context3.prev = _context3.next) {
1150
+ case 0:
1151
+ queryString = window.location.search;
1152
+ if (queryString) {
1153
+ _context3.next = 3;
1154
+ break;
1155
+ }
1156
+ return _context3.abrupt("return");
1157
+ case 3:
1158
+ urlParams = new URLSearchParams(queryString);
1159
+ token_url = urlParams.get(TOKEN_LS);
1160
+ if (!(token_url && !dauthState.isAuthenticated)) {
1161
+ _context3.next = 9;
1162
+ break;
1163
+ }
1164
+ _context3.next = 8;
1165
+ return verifyToken(token_url);
1166
+ case 8:
1167
+ setDauthStateAction({
1168
+ dispatch: dispatch,
1169
+ token: token_url,
1170
+ domainName: domainName
1171
+ });
1172
+ case 9:
1173
+ case "end":
1174
+ return _context3.stop();
1175
+ }
1176
+ }, _callee3);
1177
+ }))();
1068
1178
  }, []);
1069
1179
  // Auto Login
1070
1180
  React.useEffect(function () {
1071
- if (dauthState.isAuthenticated) return;
1072
- var token_ls = localStorage.getItem(TOKEN_LS);
1073
- if (!token_ls) return;
1074
- var verify = JWT.decode(token_ls, ask);
1075
- console.log({
1076
- verify: verify
1077
- });
1078
- if (token_ls && !dauthState.isAuthenticated) {
1079
- setAutoLoginAction({
1080
- dispatch: dispatch,
1081
- dauth_state_ls: token_ls,
1082
- domainName: domainName
1083
- });
1084
- }
1181
+ _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
1182
+ var token_ls;
1183
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1184
+ while (1) switch (_context4.prev = _context4.next) {
1185
+ case 0:
1186
+ token_ls = localStorage.getItem(TOKEN_LS);
1187
+ if (!(token_ls && !dauthState.isAuthenticated)) {
1188
+ _context4.next = 5;
1189
+ break;
1190
+ }
1191
+ _context4.next = 4;
1192
+ return verifyToken(token_ls);
1193
+ case 4:
1194
+ setAutoLoginAction({
1195
+ dispatch: dispatch,
1196
+ dauth_state_ls: token_ls,
1197
+ domainName: domainName
1198
+ });
1199
+ case 5:
1200
+ case "end":
1201
+ return _context4.stop();
1202
+ }
1203
+ }, _callee4);
1204
+ }))();
1085
1205
  }, []);
1086
1206
  var loginWithRedirect = React.useCallback(function () {
1087
1207
  return window.location.replace(getClientBasePath({
@@ -1093,32 +1213,32 @@ var DauthProvider = function DauthProvider(props) {
1093
1213
  dispatch: dispatch
1094
1214
  });
1095
1215
  }, []);
1096
- var getAccessToken = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
1216
+ var getAccessToken = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
1097
1217
  var token;
1098
- return _regeneratorRuntime().wrap(function _callee$(_context) {
1099
- while (1) switch (_context.prev = _context.next) {
1218
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1219
+ while (1) switch (_context5.prev = _context5.next) {
1100
1220
  case 0:
1101
- _context.next = 2;
1221
+ _context5.next = 2;
1102
1222
  return getAccessTokenAction({
1103
1223
  dispatch: dispatch,
1104
1224
  domainName: domainName
1105
1225
  });
1106
1226
  case 2:
1107
- token = _context.sent;
1108
- return _context.abrupt("return", token);
1227
+ token = _context5.sent;
1228
+ return _context5.abrupt("return", token);
1109
1229
  case 4:
1110
1230
  case "end":
1111
- return _context.stop();
1231
+ return _context5.stop();
1112
1232
  }
1113
- }, _callee);
1233
+ }, _callee5);
1114
1234
  })), []);
1115
1235
  var updateUser = React.useCallback( /*#__PURE__*/function () {
1116
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
1236
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref6) {
1117
1237
  var name, lastname, nickname, telPrefix, telSuffix, language, avatar, token_ls, user;
1118
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1119
- while (1) switch (_context2.prev = _context2.next) {
1238
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1239
+ while (1) switch (_context6.prev = _context6.next) {
1120
1240
  case 0:
1121
- name = _ref2.name, lastname = _ref2.lastname, nickname = _ref2.nickname, telPrefix = _ref2.telPrefix, telSuffix = _ref2.telSuffix, language = _ref2.language, avatar = _ref2.avatar;
1241
+ name = _ref6.name, lastname = _ref6.lastname, nickname = _ref6.nickname, telPrefix = _ref6.telPrefix, telSuffix = _ref6.telSuffix, language = _ref6.language, avatar = _ref6.avatar;
1122
1242
  token_ls = localStorage.getItem(TOKEN_LS);
1123
1243
  user = {
1124
1244
  name: name,
@@ -1129,7 +1249,7 @@ var DauthProvider = function DauthProvider(props) {
1129
1249
  language: language,
1130
1250
  avatar: avatar
1131
1251
  };
1132
- _context2.next = 5;
1252
+ _context6.next = 5;
1133
1253
  return setUpdateUserAction({
1134
1254
  dispatch: dispatch,
1135
1255
  domainName: domainName,
@@ -1137,15 +1257,15 @@ var DauthProvider = function DauthProvider(props) {
1137
1257
  token: token_ls
1138
1258
  });
1139
1259
  case 5:
1140
- return _context2.abrupt("return", _context2.sent);
1260
+ return _context6.abrupt("return", _context6.sent);
1141
1261
  case 6:
1142
1262
  case "end":
1143
- return _context2.stop();
1263
+ return _context6.stop();
1144
1264
  }
1145
- }, _callee2);
1265
+ }, _callee6);
1146
1266
  }));
1147
- return function (_x) {
1148
- return _ref3.apply(this, arguments);
1267
+ return function (_x2) {
1268
+ return _ref7.apply(this, arguments);
1149
1269
  };
1150
1270
  }(), [domainName]);
1151
1271
  var updateUserWithRedirect = React.useCallback(function () {
@@ -1155,31 +1275,31 @@ var DauthProvider = function DauthProvider(props) {
1155
1275
  domainName: domainName
1156
1276
  }) + "/" + routes.tenantUpdateUser + "/" + domainName + "/" + token_ls);
1157
1277
  }, [domainName, domainName]);
1158
- var sendEmailVerification = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
1278
+ var sendEmailVerification = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
1159
1279
  var token_ls;
1160
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
1161
- while (1) switch (_context3.prev = _context3.next) {
1280
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1281
+ while (1) switch (_context7.prev = _context7.next) {
1162
1282
  case 0:
1163
1283
  token_ls = localStorage.getItem(TOKEN_LS);
1164
1284
  if (token_ls) {
1165
- _context3.next = 3;
1285
+ _context7.next = 3;
1166
1286
  break;
1167
1287
  }
1168
- return _context3.abrupt("return", false);
1288
+ return _context7.abrupt("return", false);
1169
1289
  case 3:
1170
- _context3.next = 5;
1290
+ _context7.next = 5;
1171
1291
  return sendEmailVerificationAction({
1172
1292
  dispatch: dispatch,
1173
1293
  domainName: domainName,
1174
1294
  token: token_ls
1175
1295
  });
1176
1296
  case 5:
1177
- return _context3.abrupt("return", _context3.sent);
1297
+ return _context7.abrupt("return", _context7.sent);
1178
1298
  case 6:
1179
1299
  case "end":
1180
- return _context3.stop();
1300
+ return _context7.stop();
1181
1301
  }
1182
- }, _callee3);
1302
+ }, _callee7);
1183
1303
  })), [domainName]);
1184
1304
  var memoProvider = React.useMemo(function () {
1185
1305
  return _extends({}, dauthState, {
@@ -1 +1 @@
1
- {"version":3,"file":"dauth-context-react.cjs.development.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/routes.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n isVerified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n telPrefix: string;\n telSuffix: string;\n createdAt: Date;\n updatedAt: Date;\n lastLogin: Date;\n}\n\nexport interface IDauthDomainState {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomainState;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => Promise<string>;\n updateUser: ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => Promise<boolean>;\n updateUserWithRedirect: () => void;\n // Send email verification\n sendEmailVerificationStatus: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => Promise<boolean>;\n}\n\nexport interface IActionStatus {\n type: TStatusTypes;\n message: string;\n}\nexport type TStatusTypes = 'success' | 'error' | 'info' | 'warning';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const routes = {\n tenantSignin: 't-signin',\n tenantUpdateUser: 't-update-user',\n tenantGetUser: 't-get-user',\n tenantResendEmailVerification: 't-resend-email-verification',\n tenantRefreshAccessToken: 't-refresh-access-token',\n};\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { IDauthUser } from '../initialDauthState';\nimport { routes } from '../routes';\nimport { getServerBasePath } from './utils/config';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantGetUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantResendEmailVerification\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantRefreshAccessToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport { routes } from '../routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n ); \n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.log('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.log('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, { IDauthUser } from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './routes';\nimport JWT from 'expo-jwt';\n\ninterface DauthProviderProps {\n domainName: string;\n ask: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, ask, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n action.checkTokenAction({ dispatch, domainName, token: token_ls });\n }, 1000 * 60 * 1);\n return () => clearInterval(interval);\n }, []);\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, token: token_url, domainName });\n }\n }, []);\n\n // Auto Login\n useEffect(() => {\n if (dauthState.isAuthenticated) return;\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const verify = JWT.decode(token_ls, ask as string);\n console.log({ verify });\n\n if (token_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({\n dispatch,\n dauth_state_ls: token_ls,\n domainName,\n });\n }\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n }, [domainName, domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, []);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}/${token_ls}`\n );\n }, [domainName, domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","login","_extends","setSendEmailVerificationStatus","setSendEmailVerificationIsLoading","routes","tenantSignin","tenantUpdateUser","tenantGetUser","tenantResendEmailVerification","tenantRefreshAccessToken","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_ref5","sendEmailFetch","checkTokenAction","_checkTokenAction","_callee5","_ref6","_callee5$","_context5","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","token_ls","_refreshAccessTokenFe","_callee6$","_context6","getItem","DauthProvider","props","ask","children","_useReducer","useReducer","dauthState","useEffect","interval","setInterval","clearInterval","queryString","search","urlParams","URLSearchParams","token_url","get","verify","JWT","decode","useCallback","name","lastname","nickname","telPrefix","telSuffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
1
+ {"version":3,"file":"dauth-context-react.cjs.development.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/routes.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import { IActionStatus, IDauthDomainState, IDauthState, IDauthUser } from \"./interfaces\";\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const routes = {\n tenantSignin: 't-signin',\n tenantUpdateUser: 't-update-user',\n tenantGetUser: 't-get-user',\n tenantResendEmailVerification: 't-resend-email-verification',\n tenantRefreshAccessToken: 't-refresh-access-token',\n tenantVerifyToken: \"t-verify-token\",\n};\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { routes } from './utils/routes';\nimport { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantGetUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantResendEmailVerification\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantRefreshAccessToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const verifyTokenAPI = async ({\n domainName,\n ask,\n token,\n}: {\n domainName: string;\n ask: string;\n token: string;\n}): Promise<any> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ ask }),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/${\n routes.tenantVerifyToken\n }/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n ); \n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n console.log(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\n}) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.log('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.log('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${domainName}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\n\ninterface DauthProviderProps {\n domainName: string;\n ask: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, ask, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n \n const verifyToken = useCallback(\n async (token: string) => {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n ask,\n });\n if (verifyToken.response.status !== 200) {\n return action.setLogoutAction({ dispatch });\n }\n },\n [domainName, ask],\n )\n \n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n await verifyToken(token_ls);\n return action.checkTokenAction({ dispatch, domainName, token: token_ls });\n }, 1000 * 60 * 1);\n return () => clearInterval(interval);\n }, []);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n if (token_url && !dauthState.isAuthenticated) {\n await verifyToken(token_url);\n action.setDauthStateAction({ dispatch, token: token_url, domainName });\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n await verifyToken(token_ls);\n action.setAutoLoginAction({\n dispatch,\n dauth_state_ls: token_ls,\n domainName,\n });\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantSignin\n }/${domainName}`\n );\n }, [domainName, domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, []);\n\n const updateUser = useCallback(\n async ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${\n routes.tenantUpdateUser\n }/${domainName}/${token_ls}`\n );\n }, [domainName, domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","login","_extends","setSendEmailVerificationStatus","setSendEmailVerificationIsLoading","routes","tenantSignin","tenantUpdateUser","tenantGetUser","tenantResendEmailVerification","tenantRefreshAccessToken","tenantVerifyToken","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","ask","_callee5$","_context5","_x10","TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","token_ls","_refreshAccessTokenFe","_callee6$","_context6","getItem","DauthProvider","props","children","_useReducer","useReducer","dauthState","verifyToken","useCallback","useEffect","interval","setInterval","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_callee7$","_context7","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}