dauth-context-react 0.2.0 → 0.2.100
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.
- package/dist/constants.d.ts +1 -1
- package/dist/dauth-context-react.cjs.development.js +135 -97
- package/dist/dauth-context-react.cjs.development.js.map +1 -1
- package/dist/dauth-context-react.cjs.production.min.js +1 -1
- package/dist/dauth-context-react.cjs.production.min.js.map +1 -1
- package/dist/dauth-context-react.esm.js +135 -97
- package/dist/dauth-context-react.esm.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/initialDauthState.d.ts +3 -3
- package/dist/reducer/dauth.actions.d.ts +17 -16
- package/dist/reducer/dauth.reducer.d.ts +2 -1
- package/dist/routes.d.ts +7 -0
- package/package.json +1 -1
- package/src/api/dauth.api.ts +9 -4
- package/src/constants.ts +1 -1
- package/src/index.tsx +21 -21
- package/src/initialDauthState.ts +6 -6
- package/src/reducer/dauth.actions.ts +31 -23
- package/src/reducer/dauth.reducer.ts +26 -15
- package/src/routes.ts +7 -0
|
@@ -356,12 +356,14 @@ var initialDauthState = {
|
|
|
356
356
|
loginWithRedirect: function loginWithRedirect() {},
|
|
357
357
|
logout: function logout() {},
|
|
358
358
|
getAccessToken: function getAccessToken() {
|
|
359
|
-
return
|
|
359
|
+
return Promise.resolve('');
|
|
360
|
+
},
|
|
361
|
+
updateUser: function updateUser() {
|
|
362
|
+
return Promise.resolve(false);
|
|
360
363
|
},
|
|
361
|
-
updateUser: function updateUser() {},
|
|
362
364
|
updateUserWithRedirect: function updateUserWithRedirect() {},
|
|
363
365
|
// Send email verification
|
|
364
|
-
|
|
366
|
+
sendEmailVerificationStatus: {
|
|
365
367
|
status: {
|
|
366
368
|
type: 'info',
|
|
367
369
|
message: 'Sending email verification...'
|
|
@@ -382,39 +384,62 @@ function userReducer(state, action) {
|
|
|
382
384
|
payload = action.payload;
|
|
383
385
|
switch (type) {
|
|
384
386
|
case LOGIN:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
387
|
+
{
|
|
388
|
+
var login = _extends({}, state, {
|
|
389
|
+
user: payload.user,
|
|
390
|
+
domain: payload.domain,
|
|
391
|
+
isAuthenticated: payload.isAuthenticated
|
|
392
|
+
});
|
|
393
|
+
return login;
|
|
394
|
+
}
|
|
390
395
|
case SET_IS_LOADING:
|
|
391
|
-
|
|
392
|
-
isLoading
|
|
393
|
-
|
|
396
|
+
{
|
|
397
|
+
var isLoading = _extends({}, state, {
|
|
398
|
+
isLoading: payload.isLoading
|
|
399
|
+
});
|
|
400
|
+
return isLoading;
|
|
401
|
+
}
|
|
394
402
|
case UPDATE_USER:
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
403
|
+
{
|
|
404
|
+
var updateUser = _extends({}, state, {
|
|
405
|
+
user: _extends({}, state.user, payload)
|
|
406
|
+
});
|
|
407
|
+
return updateUser;
|
|
408
|
+
}
|
|
398
409
|
case SET_SEND_EMAIL_VERIFICATION_STATUS:
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
410
|
+
{
|
|
411
|
+
var setSendEmailVerificationStatus = _extends({}, state, {
|
|
412
|
+
sendEmailVerificationStatus: _extends({}, state.sendEmailVerificationStatus, {
|
|
413
|
+
status: {
|
|
414
|
+
type: payload.type,
|
|
415
|
+
message: payload.message
|
|
416
|
+
}
|
|
417
|
+
})
|
|
418
|
+
});
|
|
419
|
+
return setSendEmailVerificationStatus;
|
|
420
|
+
}
|
|
407
421
|
case SET_SEND_EMAIL_VERIFICATION_IS_LOADING:
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
422
|
+
{
|
|
423
|
+
var setSendEmailVerificationIsLoading = _extends({}, state, {
|
|
424
|
+
sendEmailVerificationStatus: _extends({}, state.sendEmailVerificationStatus, {
|
|
425
|
+
isLoading: payload
|
|
426
|
+
})
|
|
427
|
+
});
|
|
428
|
+
return setSendEmailVerificationIsLoading;
|
|
429
|
+
}
|
|
413
430
|
default:
|
|
414
431
|
return state;
|
|
415
432
|
}
|
|
416
433
|
}
|
|
417
434
|
|
|
435
|
+
var routes = {
|
|
436
|
+
tenantSignin: 't-signin',
|
|
437
|
+
tenantUpdateUser: 't-update-user',
|
|
438
|
+
tenantGetUser: 't-get-user',
|
|
439
|
+
tenantResendEmailVerification: 't-resend-email-verification',
|
|
440
|
+
tenantRefreshAccessToken: 't-refresh-access-token'
|
|
441
|
+
};
|
|
442
|
+
|
|
418
443
|
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}$/));
|
|
419
444
|
var apiVersion = 'v1';
|
|
420
445
|
var serverDomain = 'dauth.ovh';
|
|
@@ -451,7 +476,7 @@ var getUserAPI = /*#__PURE__*/function () {
|
|
|
451
476
|
_context.next = 3;
|
|
452
477
|
return fetch(getServerBasePath({
|
|
453
478
|
domainName: domainName
|
|
454
|
-
}) + "/
|
|
479
|
+
}) + "/" + routes.tenantGetUser + "/" + domainName, params);
|
|
455
480
|
case 3:
|
|
456
481
|
response = _context.sent;
|
|
457
482
|
_context.next = 6;
|
|
@@ -489,7 +514,7 @@ var updateUserAPI = /*#__PURE__*/function () {
|
|
|
489
514
|
_context2.next = 3;
|
|
490
515
|
return fetch(getServerBasePath({
|
|
491
516
|
domainName: domainName
|
|
492
|
-
}) + "/
|
|
517
|
+
}) + "\n /" + routes.tenantUpdateUser + "\n /" + domainName, params);
|
|
493
518
|
case 3:
|
|
494
519
|
response = _context2.sent;
|
|
495
520
|
_context2.next = 6;
|
|
@@ -526,7 +551,7 @@ var sendEmailVerificationAPI = /*#__PURE__*/function () {
|
|
|
526
551
|
_context3.next = 3;
|
|
527
552
|
return fetch(getServerBasePath({
|
|
528
553
|
domainName: domainName
|
|
529
|
-
}) + "/
|
|
554
|
+
}) + "/" + routes.tenantResendEmailVerification + "/" + domainName, params);
|
|
530
555
|
case 3:
|
|
531
556
|
response = _context3.sent;
|
|
532
557
|
_context3.next = 6;
|
|
@@ -563,7 +588,7 @@ var refreshAccessTokenAPI = /*#__PURE__*/function () {
|
|
|
563
588
|
_context4.next = 3;
|
|
564
589
|
return fetch(getServerBasePath({
|
|
565
590
|
domainName: domainName
|
|
566
|
-
}) + "/
|
|
591
|
+
}) + "/" + routes.tenantRefreshAccessToken + "/" + domainName, params);
|
|
567
592
|
case 3:
|
|
568
593
|
response = _context4.sent;
|
|
569
594
|
_context4.next = 6;
|
|
@@ -585,18 +610,18 @@ var refreshAccessTokenAPI = /*#__PURE__*/function () {
|
|
|
585
610
|
};
|
|
586
611
|
}();
|
|
587
612
|
|
|
588
|
-
var
|
|
613
|
+
var TOKEN_LS = 'dauth_state';
|
|
589
614
|
|
|
590
615
|
function setDauthStateAction(_x) {
|
|
591
616
|
return _setDauthStateAction.apply(this, arguments);
|
|
592
617
|
}
|
|
593
618
|
function _setDauthStateAction() {
|
|
594
619
|
_setDauthStateAction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
|
595
|
-
var dispatch,
|
|
620
|
+
var dispatch, token, domainName, getUserFetch;
|
|
596
621
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
597
622
|
while (1) switch (_context.prev = _context.next) {
|
|
598
623
|
case 0:
|
|
599
|
-
dispatch = _ref.dispatch,
|
|
624
|
+
dispatch = _ref.dispatch, token = _ref.token, domainName = _ref.domainName;
|
|
600
625
|
dispatch({
|
|
601
626
|
type: SET_IS_LOADING,
|
|
602
627
|
payload: {
|
|
@@ -605,7 +630,7 @@ function _setDauthStateAction() {
|
|
|
605
630
|
});
|
|
606
631
|
_context.prev = 2;
|
|
607
632
|
_context.next = 5;
|
|
608
|
-
return getUserAPI(domainName,
|
|
633
|
+
return getUserAPI(domainName, token);
|
|
609
634
|
case 5:
|
|
610
635
|
getUserFetch = _context.sent;
|
|
611
636
|
if (!(getUserFetch.response.status === 200)) {
|
|
@@ -621,7 +646,7 @@ function _setDauthStateAction() {
|
|
|
621
646
|
}
|
|
622
647
|
});
|
|
623
648
|
window.history.replaceState({}, document.title, getUserFetch.data.domain.loginRedirect);
|
|
624
|
-
return _context.abrupt("return", localStorage.setItem(
|
|
649
|
+
return _context.abrupt("return", localStorage.setItem(TOKEN_LS, token));
|
|
625
650
|
case 12:
|
|
626
651
|
return _context.abrupt("return", resetUser(dispatch));
|
|
627
652
|
case 13:
|
|
@@ -690,12 +715,12 @@ function _setAutoLoginAction() {
|
|
|
690
715
|
isAuthenticated: true
|
|
691
716
|
}
|
|
692
717
|
});
|
|
693
|
-
localStorage.setItem(
|
|
718
|
+
localStorage.setItem(TOKEN_LS, refreshAccessTokenFetch.data.accessToken);
|
|
694
719
|
return _context2.abrupt("return");
|
|
695
720
|
case 16:
|
|
696
721
|
window.location.replace(getClientBasePath({
|
|
697
722
|
domainName: domainName
|
|
698
|
-
}) + "/
|
|
723
|
+
}) + "/" + routes.tenantSignin + "/" + sid);
|
|
699
724
|
return _context2.abrupt("return", resetUser(dispatch));
|
|
700
725
|
case 18:
|
|
701
726
|
_context2.next = 22;
|
|
@@ -703,7 +728,7 @@ function _setAutoLoginAction() {
|
|
|
703
728
|
case 20:
|
|
704
729
|
window.location.replace(getClientBasePath({
|
|
705
730
|
domainName: domainName
|
|
706
|
-
}) + "/
|
|
731
|
+
}) + "/" + routes.tenantSignin + "/" + sid);
|
|
707
732
|
return _context2.abrupt("return", resetUser(dispatch));
|
|
708
733
|
case 22:
|
|
709
734
|
_context2.next = 28;
|
|
@@ -756,7 +781,7 @@ function _setLogoutAction() {
|
|
|
756
781
|
isAuthenticated: false
|
|
757
782
|
}
|
|
758
783
|
});
|
|
759
|
-
localStorage.removeItem(
|
|
784
|
+
localStorage.removeItem(TOKEN_LS);
|
|
760
785
|
return _context3.abrupt("return", dispatch({
|
|
761
786
|
type: SET_IS_LOADING,
|
|
762
787
|
payload: {
|
|
@@ -785,42 +810,45 @@ function _setUpdateUserAction() {
|
|
|
785
810
|
window.document.documentElement.setAttribute('lang', user.language);
|
|
786
811
|
}
|
|
787
812
|
if (token) {
|
|
788
|
-
_context4.next =
|
|
813
|
+
_context4.next = 5;
|
|
789
814
|
break;
|
|
790
815
|
}
|
|
791
|
-
|
|
816
|
+
dispatch({
|
|
792
817
|
type: UPDATE_USER,
|
|
793
818
|
payload: user
|
|
794
|
-
})
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
_context4.
|
|
819
|
+
});
|
|
820
|
+
return _context4.abrupt("return", false);
|
|
821
|
+
case 5:
|
|
822
|
+
_context4.prev = 5;
|
|
823
|
+
_context4.next = 8;
|
|
798
824
|
return updateUserAPI(domainName, user, token);
|
|
799
|
-
case
|
|
825
|
+
case 8:
|
|
800
826
|
getUserFetch = _context4.sent;
|
|
801
827
|
if (!(getUserFetch.response.status === 200)) {
|
|
802
|
-
_context4.next =
|
|
828
|
+
_context4.next = 14;
|
|
803
829
|
break;
|
|
804
830
|
}
|
|
805
|
-
|
|
831
|
+
dispatch({
|
|
806
832
|
type: UPDATE_USER,
|
|
807
833
|
payload: getUserFetch.data.user
|
|
808
|
-
})
|
|
809
|
-
|
|
810
|
-
console.log('Update user error', getUserFetch.data.message);
|
|
811
|
-
return _context4.abrupt("return");
|
|
834
|
+
});
|
|
835
|
+
return _context4.abrupt("return", true);
|
|
812
836
|
case 14:
|
|
813
|
-
|
|
814
|
-
|
|
837
|
+
console.log('Update user error', getUserFetch.data.message);
|
|
838
|
+
return _context4.abrupt("return", false);
|
|
815
839
|
case 16:
|
|
816
|
-
_context4.
|
|
817
|
-
|
|
840
|
+
_context4.next = 22;
|
|
841
|
+
break;
|
|
842
|
+
case 18:
|
|
843
|
+
_context4.prev = 18;
|
|
844
|
+
_context4.t0 = _context4["catch"](5);
|
|
818
845
|
console.log('Update user error', _context4.t0);
|
|
819
|
-
|
|
846
|
+
return _context4.abrupt("return", false);
|
|
847
|
+
case 22:
|
|
820
848
|
case "end":
|
|
821
849
|
return _context4.stop();
|
|
822
850
|
}
|
|
823
|
-
}, _callee4, null, [[
|
|
851
|
+
}, _callee4, null, [[5, 18]]);
|
|
824
852
|
}));
|
|
825
853
|
return _setUpdateUserAction.apply(this, arguments);
|
|
826
854
|
}
|
|
@@ -925,7 +953,7 @@ function _checkTokenAction() {
|
|
|
925
953
|
case 9:
|
|
926
954
|
window.location.replace(getClientBasePath({
|
|
927
955
|
domainName: domainName
|
|
928
|
-
}) + "/
|
|
956
|
+
}) + "/" + routes.tenantSignin + "/" + sid);
|
|
929
957
|
return _context6.abrupt("return", resetUser(dispatch));
|
|
930
958
|
case 11:
|
|
931
959
|
_context6.next = 17;
|
|
@@ -955,7 +983,7 @@ function _getAccessTokenAction() {
|
|
|
955
983
|
while (1) switch (_context7.prev = _context7.next) {
|
|
956
984
|
case 0:
|
|
957
985
|
dispatch = _ref7.dispatch, domainName = _ref7.domainName;
|
|
958
|
-
token_ls = localStorage.getItem(
|
|
986
|
+
token_ls = localStorage.getItem(TOKEN_LS);
|
|
959
987
|
if (token_ls) {
|
|
960
988
|
_context7.next = 4;
|
|
961
989
|
break;
|
|
@@ -992,7 +1020,7 @@ function _getAccessTokenAction() {
|
|
|
992
1020
|
return _getAccessTokenAction.apply(this, arguments);
|
|
993
1021
|
}
|
|
994
1022
|
var resetUser = function resetUser(dispatch) {
|
|
995
|
-
localStorage.removeItem(
|
|
1023
|
+
localStorage.removeItem(TOKEN_LS);
|
|
996
1024
|
return dispatch({
|
|
997
1025
|
type: LOGIN,
|
|
998
1026
|
payload: {
|
|
@@ -1008,14 +1036,13 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1008
1036
|
sid = props.sid,
|
|
1009
1037
|
children = props.children;
|
|
1010
1038
|
var _useReducer = useReducer(userReducer, initialDauthState),
|
|
1011
|
-
|
|
1039
|
+
dauthState = _useReducer[0],
|
|
1012
1040
|
dispatch = _useReducer[1];
|
|
1013
|
-
var dauthState = ds;
|
|
1014
1041
|
// Check token periodically
|
|
1015
1042
|
useEffect(function () {
|
|
1016
1043
|
if (!dauthState.isAuthenticated) return;
|
|
1017
1044
|
var interval = setInterval(function () {
|
|
1018
|
-
var token_ls = localStorage.getItem(
|
|
1045
|
+
var token_ls = localStorage.getItem(TOKEN_LS);
|
|
1019
1046
|
if (!token_ls) return;
|
|
1020
1047
|
checkTokenAction({
|
|
1021
1048
|
dispatch: dispatch,
|
|
@@ -1033,18 +1060,18 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1033
1060
|
var queryString = window.location.search;
|
|
1034
1061
|
if (!queryString) return;
|
|
1035
1062
|
var urlParams = new URLSearchParams(queryString);
|
|
1036
|
-
var
|
|
1037
|
-
if (
|
|
1063
|
+
var token_url = urlParams.get(TOKEN_LS);
|
|
1064
|
+
if (token_url && !dauthState.isAuthenticated) {
|
|
1038
1065
|
setDauthStateAction({
|
|
1039
1066
|
dispatch: dispatch,
|
|
1040
|
-
|
|
1067
|
+
token: token_url,
|
|
1041
1068
|
domainName: domainName
|
|
1042
1069
|
});
|
|
1043
1070
|
}
|
|
1044
1071
|
}, []);
|
|
1045
1072
|
// Auto Login
|
|
1046
1073
|
useEffect(function () {
|
|
1047
|
-
var dauth_state_ls = localStorage.getItem(
|
|
1074
|
+
var dauth_state_ls = localStorage.getItem(TOKEN_LS);
|
|
1048
1075
|
if (dauth_state_ls && !dauthState.isAuthenticated) {
|
|
1049
1076
|
setAutoLoginAction({
|
|
1050
1077
|
dispatch: dispatch,
|
|
@@ -1057,7 +1084,7 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1057
1084
|
var loginWithRedirect = useCallback(function () {
|
|
1058
1085
|
return window.location.replace(getClientBasePath({
|
|
1059
1086
|
domainName: domainName
|
|
1060
|
-
}) + "/
|
|
1087
|
+
}) + "/" + routes.tenantSignin + "/" + sid);
|
|
1061
1088
|
}, [domainName, sid]);
|
|
1062
1089
|
var logout = useCallback(function () {
|
|
1063
1090
|
return setLogoutAction({
|
|
@@ -1083,40 +1110,51 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1083
1110
|
}
|
|
1084
1111
|
}, _callee);
|
|
1085
1112
|
})), []);
|
|
1086
|
-
var updateUser = useCallback(function (
|
|
1087
|
-
var
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1113
|
+
var updateUser = useCallback( /*#__PURE__*/function () {
|
|
1114
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
|
|
1115
|
+
var name, lastname, nickname, tel_prefix, tel_suffix, language, avatar, token_ls, user;
|
|
1116
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
1117
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
1118
|
+
case 0:
|
|
1119
|
+
name = _ref2.name, lastname = _ref2.lastname, nickname = _ref2.nickname, tel_prefix = _ref2.tel_prefix, tel_suffix = _ref2.tel_suffix, language = _ref2.language, avatar = _ref2.avatar;
|
|
1120
|
+
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1121
|
+
user = {
|
|
1122
|
+
name: name,
|
|
1123
|
+
lastname: lastname,
|
|
1124
|
+
nickname: nickname,
|
|
1125
|
+
tel_prefix: tel_prefix,
|
|
1126
|
+
tel_suffix: tel_suffix,
|
|
1127
|
+
language: language,
|
|
1128
|
+
avatar: avatar
|
|
1129
|
+
};
|
|
1130
|
+
_context2.next = 5;
|
|
1131
|
+
return setUpdateUserAction({
|
|
1132
|
+
dispatch: dispatch,
|
|
1133
|
+
domainName: domainName,
|
|
1134
|
+
user: user,
|
|
1135
|
+
token: token_ls
|
|
1136
|
+
});
|
|
1137
|
+
case 5:
|
|
1138
|
+
return _context2.abrupt("return", _context2.sent);
|
|
1139
|
+
case 6:
|
|
1140
|
+
case "end":
|
|
1141
|
+
return _context2.stop();
|
|
1142
|
+
}
|
|
1143
|
+
}, _callee2);
|
|
1144
|
+
}));
|
|
1145
|
+
return function (_x) {
|
|
1146
|
+
return _ref3.apply(this, arguments);
|
|
1103
1147
|
};
|
|
1104
|
-
|
|
1105
|
-
dispatch: dispatch,
|
|
1106
|
-
domainName: domainName,
|
|
1107
|
-
user: user,
|
|
1108
|
-
token: token_ls
|
|
1109
|
-
});
|
|
1110
|
-
}, [domainName]);
|
|
1148
|
+
}(), [domainName]);
|
|
1111
1149
|
var updateUserWithRedirect = useCallback(function () {
|
|
1112
|
-
var token_ls = localStorage.getItem(
|
|
1150
|
+
var token_ls = localStorage.getItem(TOKEN_LS);
|
|
1113
1151
|
if (!token_ls) return;
|
|
1114
1152
|
return window.location.replace(getClientBasePath({
|
|
1115
1153
|
domainName: domainName
|
|
1116
|
-
}) + "/
|
|
1154
|
+
}) + "\n /" + routes.tenantUpdateUser + "\n /" + sid + "\n /" + token_ls);
|
|
1117
1155
|
}, [domainName, sid]);
|
|
1118
1156
|
var sendEmailVerification = useCallback(function () {
|
|
1119
|
-
var token_ls = localStorage.getItem(
|
|
1157
|
+
var token_ls = localStorage.getItem(TOKEN_LS);
|
|
1120
1158
|
if (!token_ls) return;
|
|
1121
1159
|
return sendEmailVerificationAction({
|
|
1122
1160
|
dispatch: dispatch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.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 dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: 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: () => any;\n updateUser: ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => void;\n updateUserWithRedirect: () => void;\n // Send email verification\n sev: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => void;\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: () => initialDauthState.getAccessToken() || '',\n updateUser: () => {},\n updateUserWithRedirect: () => {},\n // Send email verification\n sev: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => {},\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 * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n case DauthTypes.UPDATE_USER:\n return {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS:\n return {\n ...state,\n sev: {\n ...state.sev,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING:\n return {\n ...state,\n sev: {\n ...state.sev,\n isLoading: payload,\n },\n };\n\n default:\n return state;\n }\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 { 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 })}/t-get-user/${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 })}/t-update-user/${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({\n domainName,\n })}/t-resend-email-verification/${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({\n domainName,\n })}/t-refresh-access-token/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { DAUTH_STATE } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state);\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(DAUTH_STATE, dauth_state);\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: any;\n dauth_state_ls: string;\n domainName: string;\n sid: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n sid,\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 DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/t-signin/${sid}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/t-signin/${sid}`\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 async function setLogoutAction({ dispatch }: { dispatch: any }) {\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(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n 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 return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n } else {\n console.log('Update user error', getUserFetch.data.message);\n return;\n }\n } catch (error) {\n console.log('Update user error', error);\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n 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 return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\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 return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n sid,\n token,\n}: {\n dispatch: any;\n domainName: string;\n sid: 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 })}/t-signin/${sid}`\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: any;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(DAUTH_STATE);\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: any) => {\n localStorage.removeItem(DAUTH_STATE);\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, {\n IDauthState,\n IDauthUser,\n} from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n action.checkTokenAction({ dispatch, domainName, sid, token: token_ls });\n }, 1000 * 60 * 2);\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 dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName });\n }\n }, []);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName, sid });\n }\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-signin/${sid}`\n );\n }, [domainName, sid]);\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;\n }, []);\n\n const updateUser = useCallback(\n ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n const user = {\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n });\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-update-user/${sid}/${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => 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","updateUser","updateUserWithRedirect","sev","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","_extends","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","DAUTH_STATE","setDauthStateAction","_setDauthStateAction","dispatch","dauth_state","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","sid","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","_setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_callee5$","_context5","checkTokenAction","_checkTokenAction","_callee6","_ref6","_callee6$","_context6","getAccessTokenAction","_getAccessTokenAction","_callee7","_ref7","token_ls","_refreshAccessTokenFe","_callee7$","_context7","getItem","DauthProvider","props","children","_useReducer","useReducer","ds","dauthState","useEffect","interval","setInterval","clearInterval","queryString","search","urlParams","URLSearchParams","get","useCallback","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dauth-context-react.esm.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 dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: 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 tel_prefix,\n tel_suffix,\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: () => void;\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: () => {},\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({\n domainName,\n })}/${routes.tenantResendEmailVerification}/${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({\n domainName,\n })}/${routes.tenantRefreshAccessToken}/${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 sid: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n sid,\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}/${sid}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${sid}`\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 async 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 return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\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 return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n sid,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n sid: 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}/${sid}`\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';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, 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, sid, token: token_ls });\n }, 1000 * 60 * 2);\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 const dauth_state_ls = localStorage.getItem(TOKEN_LS);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName, sid });\n }\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/${routes.tenantSignin}/${sid}`\n );\n }, [domainName, sid]);\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 tel_prefix,\n tel_suffix,\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 tel_prefix,\n tel_suffix,\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 /${sid}\n /${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => 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","sid","refreshAccessTokenFetch","accessToken","replace","setLogoutAction","_setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_callee5$","_context5","checkTokenAction","_checkTokenAction","_callee6","_ref6","_callee6$","_context6","getAccessTokenAction","_getAccessTokenAction","_callee7","_ref7","token_ls","_refreshAccessTokenFe","_callee7$","_context7","getItem","DauthProvider","props","children","_useReducer","useReducer","dauthState","useEffect","interval","setInterval","clearInterval","queryString","search","urlParams","URLSearchParams","token_url","get","useCallback","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
|