dauth-context-react 0.2.108 → 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.
- package/dist/api/dauth.api.d.ts +6 -1
- package/dist/{routes.d.ts → api/utils/routes.d.ts} +1 -0
- package/dist/dauth-context-react.cjs.development.js +183 -67
- 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 +184 -68
- package/dist/dauth-context-react.esm.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/initialDauthState.d.ts +1 -45
- package/dist/interfaces.d.ts +45 -0
- package/dist/reducer/dauth.actions.d.ts +1 -1
- package/dist/reducer/dauth.reducer.d.ts +1 -1
- package/package.json +2 -5
- package/src/api/dauth.api.ts +29 -2
- package/src/{routes.ts → api/utils/routes.ts} +1 -0
- package/src/index.tsx +43 -31
- package/src/initialDauthState.ts +1 -57
- package/src/interfaces.ts +57 -0
- package/src/reducer/dauth.actions.ts +2 -2
- package/src/reducer/dauth.reducer.ts +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=t(e),n=t(require("expo-jwt"));function a(){a=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function p(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{p({},"")}catch(t){p=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=Object.create((e&&e.prototype instanceof y?e:y).prototype),i=new T(n||[]);return o(a,"_invoke",{value:N(t,r,i)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",h="executing",m="completed",v={};function y(){}function g(){}function w(){}var E={};p(E,u,(function(){return this}));var b=Object.getPrototypeOf,I=b&&b(b(O([])));I&&I!==r&&n.call(I,u)&&(E=I);var _=w.prototype=y.prototype=Object.create(E);function x(t){["next","throw","return"].forEach((function(e){p(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function r(a,o,i,u){var c=f(t[a],t,o);if("throw"!==c.type){var s=c.arg,p=s.value;return p&&"object"==typeof p&&n.call(p,"__await")?e.resolve(p.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(p).then((function(t){s.value=t,i(s)}),(function(t){return r("throw",t,i,u)}))}u(c.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,a){r(t,n,e,a)}))}return a=a?a.then(o,o):o()}})}function N(e,r,n){var a=d;return function(o,i){if(a===h)throw new Error("Generator is already running");if(a===m){if("throw"===o)throw i;return{value:t,done:!0}}for(n.method=o,n.arg=i;;){var u=n.delegate;if(u){var c=L(u,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===d)throw a=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=h;var s=f(e,r,n);if("normal"===s.type){if(a=n.done?m:"suspendedYield",s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(a=m,n.method="throw",n.arg=s.arg)}}}function L(e,r){var n=r.method,a=e.iterator[n];if(a===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=f(a,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function O(e){if(e||""===e){var r=e[u];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,o=function r(){for(;++a<e.length;)if(n.call(e,a))return r.value=e[a],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return g.prototype=w,o(_,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=p(w,s,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,p(t,s,"GeneratorFunction")),t.prototype=Object.create(_),t},e.awrap=function(t){return{__await:t}},x(S.prototype),p(S.prototype,c,(function(){return this})),e.AsyncIterator=S,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new S(l(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},x(_),p(_,s,"Generator"),p(_,u,(function(){return this})),p(_,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=O,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(k),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function a(n,a){return u.type="throw",u.arg=e,r.next=n,a&&(r.method="next",r.arg=t),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],u=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),k(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var a=n.arg;k(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:O(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function o(t,e,r,n,a,o,i){try{var u=t[o](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,a)}function i(t){return function(){var e=this,r=arguments;return new Promise((function(n,a){var i=t.apply(e,r);function u(t){o(i,n,a,u,c,"next",t)}function c(t){o(i,n,a,u,c,"throw",t)}u(void 0)}))}}function u(){return(u=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var c={user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isLoading:!1,isAuthenticated:!1,loginWithRedirect:function(){},logout:function(){},getAccessToken:function(){return Promise.resolve("")},updateUser:function(){return Promise.resolve(!1)},updateUserWithRedirect:function(){},sendEmailVerificationStatus:{status:{type:"info",message:"Sending email verification..."},isLoading:!1},sendEmailVerification:function(){return Promise.resolve(!1)}};function s(t,e){var r=e.payload;switch(e.type){case"LOGIN":return u({},t,{user:r.user,domain:r.domain,isAuthenticated:r.isAuthenticated});case"SET_IS_LOADING":return u({},t,{isLoading:r.isLoading});case"UPDATE_USER":return u({},t,{user:u({},t.user,r)});case"SET_SEND_EMAIL_VERIFICATION_STATUS":return u({},t,{sendEmailVerificationStatus:u({},t.sendEmailVerificationStatus,{status:{type:r.type,message:r.message}})});case"SET_SEND_EMAIL_VERIFICATION_IS_LOADING":return u({},t,{sendEmailVerificationStatus:u({},t.sendEmailVerificationStatus,{isLoading:r})});default:return t}}var p=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||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)||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function l(t){var e=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return p?e:"https://"+t.domainName+".dauth.ovh/api/v1"}function f(t){var e=window.location.protocol+"//"+window.location.hostname+":5185";return p?e:"https://"+t.domainName+".dauth.ovh"}var d=function(){var t=i(a().mark((function t(e,r){var n,o;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(l({domainName:e})+"/t-get-user/"+e,n);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),h=function(){var t=i(a().mark((function t(e,r,n){var o,i;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o={method:"PATCH",headers:{Authorization:n,"Content-Type":"application/json"},body:JSON.stringify(r)},t.next=3,fetch(l({domainName:e})+"/t-update-user/"+e,o);case 3:return i=t.sent,t.next=6,i.json();case 6:return t.abrupt("return",{response:i,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}(),m=function(){var t=i(a().mark((function t(e,r){var n,o;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(l({domainName:e})+"/t-resend-email-verification/"+e,n);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),v=function(){var t=i(a().mark((function t(e,r){var n,o;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(l({domainName:e})+"/t-refresh-access-token/"+e,n);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),y="dauth_state";function g(){return(g=i(a().mark((function t(e){var r,n,o,i;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.token,o=e.domainName,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,d(o,n);case 5:if(200!==(i=t.sent).response.status){t.next=12;break}return r({type:"LOGIN",payload:{user:i.data.user,domain:i.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,i.data.domain.loginRedirect),t.abrupt("return",localStorage.setItem(y,n));case 12:return t.abrupt("return",L(r));case 13:t.next=19;break;case 15:return t.prev=15,t.t0=t.catch(2),console.log(t.t0),t.abrupt("return",L(r));case 19:return t.prev=19,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(19);case 22:case"end":return t.stop()}}),t,null,[[2,15,19,22]])})))).apply(this,arguments)}function w(){return(w=i(a().mark((function t(e){var r,n,o,i,u;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.dauth_state_ls,o=e.domainName,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,v(o,n);case 5:if(200!==(i=t.sent).response.status){t.next=20;break}return t.next=9,d(o,n);case 9:if(200!==(u=t.sent).response.status){t.next=16;break}return r({type:"LOGIN",payload:{user:u.data.user,domain:u.data.domain,isAuthenticated:!0}}),localStorage.setItem(y,i.data.accessToken),t.abrupt("return");case 16:return window.location.replace(f({domainName:o})+"/t-signin/"+o),t.abrupt("return",L(r));case 18:t.next=22;break;case 20:return window.location.replace(f({domainName:o})+"/t-signin/"+o),t.abrupt("return",L(r));case 22:t.next=28;break;case 24:return t.prev=24,t.t0=t.catch(2),console.log(t.t0),t.abrupt("return",L(r));case 28:return t.prev=28,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(28);case 31:case"end":return t.stop()}}),t,null,[[2,24,28,31]])})))).apply(this,arguments)}function E(t){return b.apply(this,arguments)}function b(){return(b=i(a().mark((function t(e){var r,n,o,i,u;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.dispatch,n=e.domainName,i=e.token,(o=e.user).language&&window.document.documentElement.setAttribute("lang",o.language),i){t.next=5;break}return r({type:"UPDATE_USER",payload:o}),t.abrupt("return",!1);case 5:return t.prev=5,t.next=8,h(n,o,i);case 8:if(200!==(u=t.sent).response.status){t.next=14;break}return r({type:"UPDATE_USER",payload:u.data.user}),t.abrupt("return",!0);case 14:return console.log("Update user error",u.data.message),t.abrupt("return",!1);case 16:t.next=22;break;case 18:return t.prev=18,t.t0=t.catch(5),console.log("Update user error",t.t0),t.abrupt("return",!1);case 22:case"end":return t.stop()}}),t,null,[[5,18]])})))).apply(this,arguments)}function I(t){return _.apply(this,arguments)}function _(){return(_=i(a().mark((function t(e){var r,n,o,i;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.domainName,o=e.token,(r=e.dispatch)({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!0}),r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"info",message:"Sending email verification..."}}),t.prev=3,t.next=6,m(n,o);case 6:if(200!==(i=t.sent).response.status){t.next=13;break}return r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"success",message:i.data.message}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!0);case 13:return r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:i.data.message}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!1);case 16:t.next=23;break;case 18:return t.prev=18,t.t0=t.catch(3),r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:"Send email verification fetch error"}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!1);case 23:case"end":return t.stop()}}),t,null,[[3,18]])})))).apply(this,arguments)}function x(){return(x=i(a().mark((function t(e){var r,n,o;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.dispatch,n=e.domainName,o=e.token,t.prev=1,t.next=4,v(n,o);case 4:if(200!==t.sent.response.status){t.next=9;break}return t.abrupt("return");case 9:return window.location.replace(f({domainName:n})+"/t-signin/"+n),t.abrupt("return",L(r));case 11:t.next=17;break;case 13:throw t.prev=13,t.t0=t.catch(1),L(r),t.t0;case 17:case"end":return t.stop()}}),t,null,[[1,13]])})))).apply(this,arguments)}function S(t){return N.apply(this,arguments)}function N(){return(N=i(a().mark((function t(e){var r,n,o,i,u;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.dispatch,n=e.domainName,o=localStorage.getItem(y)){t.next=4;break}return t.abrupt("return");case 4:return t.prev=4,t.next=7,v(n,o);case 7:if(200!==(i=t.sent).response.status){t.next=12;break}return t.abrupt("return",null!=(u=i.data.accessToken)?u:o);case 12:return L(r),t.abrupt("return","token-not-found");case 14:t.next=20;break;case 16:throw t.prev=16,t.t0=t.catch(4),L(r),t.t0;case 20:case"end":return t.stop()}}),t,null,[[4,16]])})))).apply(this,arguments)}var L=function(t){return localStorage.removeItem(y),t({type:"LOGIN",payload:{user:{},domain:{},isAuthenticated:!1}})},A=e.createContext(c);exports.DauthProvider=function(t){var o=t.domainName,p=t.ask,l=t.children,d=e.useReducer(s,c),h=d[0],m=d[1];e.useEffect((function(){if(h.isAuthenticated){var t=setInterval((function(){var t=localStorage.getItem(y);t&&function(t){x.apply(this,arguments)}({dispatch:m,domainName:o,token:t})}),6e4);return function(){return clearInterval(t)}}}),[]),e.useEffect((function(){var t=window.location.search;if(t){var e=new URLSearchParams(t).get(y);e&&!h.isAuthenticated&&function(t){g.apply(this,arguments)}({dispatch:m,token:e,domainName:o})}}),[]),e.useEffect((function(){if(!h.isAuthenticated){var t=localStorage.getItem(y);if(t){try{var e=n.decode(t,p);console.log({verify:e})}catch(t){console.log(t)}t&&!h.isAuthenticated&&function(t){w.apply(this,arguments)}({dispatch:m,dauth_state_ls:t,domainName:o})}}}),[]);var v=e.useCallback((function(){return window.location.replace(f({domainName:o})+"/t-signin/"+o)}),[o,o]),b=e.useCallback((function(){return function(t){var e=t.dispatch;return e({type:"SET_IS_LOADING",payload:{isLoading:!0}}),e({type:"LOGIN",payload:{user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isAuthenticated:!1}}),localStorage.removeItem(y),e({type:"SET_IS_LOADING",payload:{isLoading:!1}})}({dispatch:m})}),[]),_=e.useCallback(i(a().mark((function t(){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,S({dispatch:m,domainName:o});case 2:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)}))),[]),N=e.useCallback(function(){var t=i(a().mark((function t(e){var r,n,i,u,c,s,p,l,f;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.name,n=e.lastname,i=e.nickname,u=e.telPrefix,c=e.telSuffix,s=e.language,p=e.avatar,l=localStorage.getItem(y),f={name:r,lastname:n,nickname:i,telPrefix:u,telSuffix:c,language:s,avatar:p},t.next=5,E({dispatch:m,domainName:o,user:f,token:l});case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),[o]),L=e.useCallback((function(){var t=localStorage.getItem(y);if(t)return window.location.replace(f({domainName:o})+"/t-update-user/"+o+"/"+t)}),[o,o]),k=e.useCallback(i(a().mark((function t(){var e;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=localStorage.getItem(y)){t.next=3;break}return t.abrupt("return",!1);case 3:return t.next=5,I({dispatch:m,domainName:o,token:e});case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t)}))),[o]),T=e.useMemo((function(){return u({},h,{loginWithRedirect:v,logout:b,getAccessToken:_,updateUser:N,updateUserWithRedirect:L,sendEmailVerification:k})}),[h,v,b,_,N,L,k]);return r.createElement(A.Provider,{value:T},l)},exports.useDauth=function(){var t=e.useContext(A);if(!t)throw new Error("useDauth must be used inside DauthProvider");return t};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=require("react"),r=(t=e)&&"object"==typeof t&&"default"in t?t.default:t;function n(){n=function(){return e};var t,e={},r=Object.prototype,a=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function p(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{p({},"")}catch(t){p=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=Object.create((e&&e.prototype instanceof y?e:y).prototype),i=new T(n||[]);return o(a,"_invoke",{value:k(t,r,i)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",h="executing",m="completed",v={};function y(){}function g(){}function w(){}var b={};p(b,u,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(O([])));E&&E!==r&&a.call(E,u)&&(b=E);var I=w.prototype=y.prototype=Object.create(b);function _(t){["next","throw","return"].forEach((function(e){p(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function r(n,o,i,u){var s=f(t[n],t,o);if("throw"!==s.type){var c=s.arg,p=c.value;return p&&"object"==typeof p&&a.call(p,"__await")?e.resolve(p.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(p).then((function(t){c.value=t,i(c)}),(function(t){return r("throw",t,i,u)}))}u(s.arg)}var n;o(this,"_invoke",{value:function(t,a){function o(){return new e((function(e,n){r(t,a,e,n)}))}return n=n?n.then(o,o):o()}})}function k(e,r,n){var a=d;return function(o,i){if(a===h)throw new Error("Generator is already running");if(a===m){if("throw"===o)throw i;return{value:t,done:!0}}for(n.method=o,n.arg=i;;){var u=n.delegate;if(u){var s=N(u,n);if(s){if(s===v)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===d)throw a=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=h;var c=f(e,r,n);if("normal"===c.type){if(a=n.done?m:"suspendedYield",c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(a=m,n.method="throw",n.arg=c.arg)}}}function N(e,r){var n=r.method,a=e.iterator[n];if(a===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,N(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var o=f(a,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,v;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function O(e){if(e||""===e){var r=e[u];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function r(){for(;++n<e.length;)if(a.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return g.prototype=w,o(I,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=p(w,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,p(t,c,"GeneratorFunction")),t.prototype=Object.create(I),t},e.awrap=function(t){return{__await:t}},_(S.prototype),p(S.prototype,s,(function(){return this})),e.AsyncIterator=S,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new S(l(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},_(I),p(I,c,"Generator"),p(I,u,(function(){return this})),p(I,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=O,T.prototype={constructor:T,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!e)for(var r in this)"t"===r.charAt(0)&&a.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,a){return u.type="throw",u.arg=e,r.next=n,a&&(r.method="next",r.arg=t),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],u=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),c=a.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var a=n.arg;A(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:O(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function a(t,e,r,n,a,o,i){try{var u=t[o](i),s=u.value}catch(t){return void r(t)}u.done?e(s):Promise.resolve(s).then(n,a)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function u(t){a(i,n,o,u,s,"next",t)}function s(t){a(i,n,o,u,s,"throw",t)}u(void 0)}))}}function i(){return(i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var u={user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isLoading:!1,isAuthenticated:!1,loginWithRedirect:function(){},logout:function(){},getAccessToken:function(){return Promise.resolve("")},updateUser:function(){return Promise.resolve(!1)},updateUserWithRedirect:function(){},sendEmailVerificationStatus:{status:{type:"info",message:"Sending email verification..."},isLoading:!1},sendEmailVerification:function(){return Promise.resolve(!1)}};function s(t,e){var r=e.payload;switch(e.type){case"LOGIN":return i({},t,{user:r.user,domain:r.domain,isAuthenticated:r.isAuthenticated});case"SET_IS_LOADING":return i({},t,{isLoading:r.isLoading});case"UPDATE_USER":return i({},t,{user:i({},t.user,r)});case"SET_SEND_EMAIL_VERIFICATION_STATUS":return i({},t,{sendEmailVerificationStatus:i({},t.sendEmailVerificationStatus,{status:{type:r.type,message:r.message}})});case"SET_SEND_EMAIL_VERIFICATION_IS_LOADING":return i({},t,{sendEmailVerificationStatus:i({},t.sendEmailVerificationStatus,{isLoading:r})});default:return t}}var c=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||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)||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function p(t){var e=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return c?e:"https://"+t.domainName+".dauth.ovh/api/v1"}function l(t){var e=window.location.protocol+"//"+window.location.hostname+":5185";return c?e:"https://"+t.domainName+".dauth.ovh"}var f=function(){var t=o(n().mark((function t(e,r){var a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(p({domainName:e})+"/t-get-user/"+e,a);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),d=function(){var t=o(n().mark((function t(e,r,a){var o,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o={method:"PATCH",headers:{Authorization:a,"Content-Type":"application/json"},body:JSON.stringify(r)},t.next=3,fetch(p({domainName:e})+"/t-update-user/"+e,o);case 3:return i=t.sent,t.next=6,i.json();case 6:return t.abrupt("return",{response:i,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}(),h=function(){var t=o(n().mark((function t(e,r){var a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(p({domainName:e})+"/t-resend-email-verification/"+e,a);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),m=function(){var t=o(n().mark((function t(e,r){var a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(p({domainName:e})+"/t-refresh-access-token/"+e,a);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),v=function(){var t=o(n().mark((function t(e){var r,a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.domainName,a={method:"POST",headers:{Authorization:e.token,"Content-Type":"application/json"},body:JSON.stringify({ask:e.ask})},t.next=4,fetch(p({domainName:r})+"/t-verify-token/"+r,a);case 4:return o=t.sent,t.next=7,o.json();case 7:return t.abrupt("return",{response:o,data:t.sent});case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),y="dauth_state";function g(t){return w.apply(this,arguments)}function w(){return(w=o(n().mark((function t(e){var r,a,o,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.token,o=e.domainName,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,f(o,a);case 5:if(200!==(i=t.sent).response.status){t.next=12;break}return r({type:"LOGIN",payload:{user:i.data.user,domain:i.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,i.data.domain.loginRedirect),t.abrupt("return",localStorage.setItem(y,a));case 12:return t.abrupt("return",O(r));case 13:t.next=19;break;case 15:return t.prev=15,t.t0=t.catch(2),console.log(t.t0),t.abrupt("return",O(r));case 19:return t.prev=19,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(19);case 22:case"end":return t.stop()}}),t,null,[[2,15,19,22]])})))).apply(this,arguments)}function b(t){return x.apply(this,arguments)}function x(){return(x=o(n().mark((function t(e){var r,a,o,i,u;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.dauth_state_ls,o=e.domainName,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,m(o,a);case 5:if(200!==(i=t.sent).response.status){t.next=20;break}return t.next=9,f(o,a);case 9:if(200!==(u=t.sent).response.status){t.next=16;break}return r({type:"LOGIN",payload:{user:u.data.user,domain:u.data.domain,isAuthenticated:!0}}),localStorage.setItem(y,i.data.accessToken),t.abrupt("return");case 16:return window.location.replace(l({domainName:o})+"/t-signin/"+o),t.abrupt("return",O(r));case 18:t.next=22;break;case 20:return window.location.replace(l({domainName:o})+"/t-signin/"+o),t.abrupt("return",O(r));case 22:t.next=28;break;case 24:return t.prev=24,t.t0=t.catch(2),console.log(t.t0),t.abrupt("return",O(r));case 28:return t.prev=28,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(28);case 31:case"end":return t.stop()}}),t,null,[[2,24,28,31]])})))).apply(this,arguments)}function E(t){var e=t.dispatch;return e({type:"SET_IS_LOADING",payload:{isLoading:!0}}),e({type:"LOGIN",payload:{user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isAuthenticated:!1}}),localStorage.removeItem(y),e({type:"SET_IS_LOADING",payload:{isLoading:!1}})}function I(t){return _.apply(this,arguments)}function _(){return(_=o(n().mark((function t(e){var r,a,o,i,u;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.dispatch,a=e.domainName,i=e.token,(o=e.user).language&&window.document.documentElement.setAttribute("lang",o.language),i){t.next=5;break}return r({type:"UPDATE_USER",payload:o}),t.abrupt("return",!1);case 5:return t.prev=5,t.next=8,d(a,o,i);case 8:if(200!==(u=t.sent).response.status){t.next=14;break}return r({type:"UPDATE_USER",payload:u.data.user}),t.abrupt("return",!0);case 14:return console.log("Update user error",u.data.message),t.abrupt("return",!1);case 16:t.next=22;break;case 18:return t.prev=18,t.t0=t.catch(5),console.log("Update user error",t.t0),t.abrupt("return",!1);case 22:case"end":return t.stop()}}),t,null,[[5,18]])})))).apply(this,arguments)}function S(t){return k.apply(this,arguments)}function k(){return(k=o(n().mark((function t(e){var r,a,o,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.domainName,o=e.token,(r=e.dispatch)({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!0}),r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"info",message:"Sending email verification..."}}),t.prev=3,t.next=6,h(a,o);case 6:if(200!==(i=t.sent).response.status){t.next=13;break}return r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"success",message:i.data.message}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!0);case 13:return r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:i.data.message}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!1);case 16:t.next=23;break;case 18:return t.prev=18,t.t0=t.catch(3),r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:"Send email verification fetch error"}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!1);case 23:case"end":return t.stop()}}),t,null,[[3,18]])})))).apply(this,arguments)}function N(t){return L.apply(this,arguments)}function L(){return(L=o(n().mark((function t(e){var r,a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.dispatch,a=e.domainName,o=e.token,t.prev=1,t.next=4,m(a,o);case 4:if(200!==t.sent.response.status){t.next=9;break}return t.abrupt("return");case 9:return window.location.replace(l({domainName:a})+"/t-signin/"+a),t.abrupt("return",O(r));case 11:t.next=17;break;case 13:throw t.prev=13,t.t0=t.catch(1),O(r),t.t0;case 17:case"end":return t.stop()}}),t,null,[[1,13]])})))).apply(this,arguments)}function A(t){return T.apply(this,arguments)}function T(){return(T=o(n().mark((function t(e){var r,a,o,i,u;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.dispatch,a=e.domainName,o=localStorage.getItem(y)){t.next=4;break}return t.abrupt("return");case 4:return t.prev=4,t.next=7,m(a,o);case 7:if(200!==(i=t.sent).response.status){t.next=12;break}return t.abrupt("return",null!=(u=i.data.accessToken)?u:o);case 12:return O(r),t.abrupt("return","token-not-found");case 14:t.next=20;break;case 16:throw t.prev=16,t.t0=t.catch(4),O(r),t.t0;case 20:case"end":return t.stop()}}),t,null,[[4,16]])})))).apply(this,arguments)}var O=function(t){return localStorage.removeItem(y),t({type:"LOGIN",payload:{user:{},domain:{},isAuthenticated:!1}})},D=e.createContext(u);exports.DauthProvider=function(t){var a=t.domainName,c=t.ask,p=t.children,f=e.useReducer(s,u),d=f[0],h=f[1],m=e.useCallback(function(){var t=o(n().mark((function t(e){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,v({domainName:a,token:e,ask:c});case 2:if(200===t.sent.response.status){t.next=5;break}return t.abrupt("return",E({dispatch:h}));case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),[a,c]);e.useEffect((function(){if(d.isAuthenticated){var t=setInterval(o(n().mark((function t(){var e;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=localStorage.getItem(y)){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,m(e);case 5:return t.abrupt("return",N({dispatch:h,domainName:a,token:e}));case 6:case"end":return t.stop()}}),t)}))),6e4);return function(){return clearInterval(t)}}}),[]),e.useEffect((function(){o(n().mark((function t(){var e,r,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=window.location.search){t.next=3;break}return t.abrupt("return");case 3:if(r=new URLSearchParams(e),!(o=r.get(y))||d.isAuthenticated){t.next=9;break}return t.next=8,m(o);case 8:g({dispatch:h,token:o,domainName:a});case 9:case"end":return t.stop()}}),t)})))()}),[]),e.useEffect((function(){o(n().mark((function t(){var e;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e=localStorage.getItem(y))||d.isAuthenticated){t.next=5;break}return t.next=4,m(e);case 4:b({dispatch:h,dauth_state_ls:e,domainName:a});case 5:case"end":return t.stop()}}),t)})))()}),[]);var w=e.useCallback((function(){return window.location.replace(l({domainName:a})+"/t-signin/"+a)}),[a,a]),x=e.useCallback((function(){return E({dispatch:h})}),[]),_=e.useCallback(o(n().mark((function t(){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,A({dispatch:h,domainName:a});case 2:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)}))),[]),k=e.useCallback(function(){var t=o(n().mark((function t(e){var r,o,i,u,s,c,p,l,f;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.name,o=e.lastname,i=e.nickname,u=e.telPrefix,s=e.telSuffix,c=e.language,p=e.avatar,l=localStorage.getItem(y),f={name:r,lastname:o,nickname:i,telPrefix:u,telSuffix:s,language:c,avatar:p},t.next=5,I({dispatch:h,domainName:a,user:f,token:l});case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),[a]),L=e.useCallback((function(){var t=localStorage.getItem(y);if(t)return window.location.replace(l({domainName:a})+"/t-update-user/"+a+"/"+t)}),[a,a]),T=e.useCallback(o(n().mark((function t(){var e;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=localStorage.getItem(y)){t.next=3;break}return t.abrupt("return",!1);case 3:return t.next=5,S({dispatch:h,domainName:a,token:e});case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t)}))),[a]),O=e.useMemo((function(){return i({},d,{loginWithRedirect:w,logout:x,getAccessToken:_,updateUser:k,updateUserWithRedirect:L,sendEmailVerification:T})}),[d,w,x,_,k,L,T]);return r.createElement(D.Provider,{value:O},p)},exports.useDauth=function(){var t=e.useContext(D);if(!t)throw new Error("useDauth must be used inside DauthProvider");return t};
|
|
2
2
|
//# sourceMappingURL=dauth-context-react.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.reducer.ts","../src/reducer/dauth.types.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","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 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","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 \n try {\n const verify = JWT.decode(token_ls, ask as string);\n console.log({ verify });\n } catch (error) {\n console.log(error);\n }\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","userReducer","state","action","payload","_extends","isLocalhost","Boolean","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getClientBasePath","_ref2","clientLocalUrl","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","TOKEN_LS","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","log","finish","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","replace","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_ref5","sendEmailFetch","_checkTokenAction","_callee5","_ref6","_context5","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","token_ls","_refreshAccessTokenFe","_context6","getItem","removeItem","DauthContext","createContext","props","ask","children","_useReducer","useReducer","dauthState","useEffect","interval","setInterval","clearInterval","queryString","search","token_url","URLSearchParams","get","verify","JWT","decode","error","useCallback","name","lastname","nickname","telPrefix","telSuffix","avatar","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.reducer.ts","../src/reducer/dauth.types.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","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 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","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","userReducer","state","action","payload","_extends","isLocalhost","Boolean","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getClientBasePath","_ref2","clientLocalUrl","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","_context5","ask","_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","_context6","getItem","DauthContext","createContext","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","_context7","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import React, { useReducer,
|
|
2
|
-
import JWT from 'expo-jwt';
|
|
1
|
+
import React, { useReducer, useCallback, useEffect, useMemo, createContext, useContext } from 'react';
|
|
3
2
|
|
|
4
3
|
function _regeneratorRuntime() {
|
|
5
4
|
_regeneratorRuntime = function () {
|
|
@@ -440,7 +439,8 @@ var routes = {
|
|
|
440
439
|
tenantUpdateUser: 't-update-user',
|
|
441
440
|
tenantGetUser: 't-get-user',
|
|
442
441
|
tenantResendEmailVerification: 't-resend-email-verification',
|
|
443
|
-
tenantRefreshAccessToken: 't-refresh-access-token'
|
|
442
|
+
tenantRefreshAccessToken: 't-refresh-access-token',
|
|
443
|
+
tenantVerifyToken: "t-verify-token"
|
|
444
444
|
};
|
|
445
445
|
|
|
446
446
|
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}$/));
|
|
@@ -612,6 +612,47 @@ var refreshAccessTokenAPI = /*#__PURE__*/function () {
|
|
|
612
612
|
return _ref4.apply(this, arguments);
|
|
613
613
|
};
|
|
614
614
|
}();
|
|
615
|
+
var verifyTokenAPI = /*#__PURE__*/function () {
|
|
616
|
+
var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref5) {
|
|
617
|
+
var domainName, ask, token, params, response, data;
|
|
618
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
619
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
620
|
+
case 0:
|
|
621
|
+
domainName = _ref5.domainName, ask = _ref5.ask, token = _ref5.token;
|
|
622
|
+
params = {
|
|
623
|
+
method: 'POST',
|
|
624
|
+
headers: {
|
|
625
|
+
Authorization: token,
|
|
626
|
+
'Content-Type': 'application/json'
|
|
627
|
+
},
|
|
628
|
+
body: JSON.stringify({
|
|
629
|
+
ask: ask
|
|
630
|
+
})
|
|
631
|
+
};
|
|
632
|
+
_context5.next = 4;
|
|
633
|
+
return fetch(getServerBasePath({
|
|
634
|
+
domainName: domainName
|
|
635
|
+
}) + "/" + routes.tenantVerifyToken + "/" + domainName, params);
|
|
636
|
+
case 4:
|
|
637
|
+
response = _context5.sent;
|
|
638
|
+
_context5.next = 7;
|
|
639
|
+
return response.json();
|
|
640
|
+
case 7:
|
|
641
|
+
data = _context5.sent;
|
|
642
|
+
return _context5.abrupt("return", {
|
|
643
|
+
response: response,
|
|
644
|
+
data: data
|
|
645
|
+
});
|
|
646
|
+
case 9:
|
|
647
|
+
case "end":
|
|
648
|
+
return _context5.stop();
|
|
649
|
+
}
|
|
650
|
+
}, _callee5);
|
|
651
|
+
}));
|
|
652
|
+
return function verifyTokenAPI(_x10) {
|
|
653
|
+
return _ref6.apply(this, arguments);
|
|
654
|
+
};
|
|
655
|
+
}();
|
|
615
656
|
|
|
616
657
|
var TOKEN_LS = 'dauth_state';
|
|
617
658
|
|
|
@@ -1029,56 +1070,131 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1029
1070
|
var _useReducer = useReducer(userReducer, initialDauthState),
|
|
1030
1071
|
dauthState = _useReducer[0],
|
|
1031
1072
|
dispatch = _useReducer[1];
|
|
1073
|
+
var verifyToken = useCallback( /*#__PURE__*/function () {
|
|
1074
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(token) {
|
|
1075
|
+
var verifyToken;
|
|
1076
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1077
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1078
|
+
case 0:
|
|
1079
|
+
_context.next = 2;
|
|
1080
|
+
return verifyTokenAPI({
|
|
1081
|
+
domainName: domainName,
|
|
1082
|
+
token: token,
|
|
1083
|
+
ask: ask
|
|
1084
|
+
});
|
|
1085
|
+
case 2:
|
|
1086
|
+
verifyToken = _context.sent;
|
|
1087
|
+
if (!(verifyToken.response.status !== 200)) {
|
|
1088
|
+
_context.next = 5;
|
|
1089
|
+
break;
|
|
1090
|
+
}
|
|
1091
|
+
return _context.abrupt("return", setLogoutAction({
|
|
1092
|
+
dispatch: dispatch
|
|
1093
|
+
}));
|
|
1094
|
+
case 5:
|
|
1095
|
+
case "end":
|
|
1096
|
+
return _context.stop();
|
|
1097
|
+
}
|
|
1098
|
+
}, _callee);
|
|
1099
|
+
}));
|
|
1100
|
+
return function (_x) {
|
|
1101
|
+
return _ref.apply(this, arguments);
|
|
1102
|
+
};
|
|
1103
|
+
}(), [domainName, ask]);
|
|
1032
1104
|
// Check token periodically
|
|
1033
1105
|
useEffect(function () {
|
|
1034
1106
|
if (!dauthState.isAuthenticated) return;
|
|
1035
|
-
var interval = setInterval(function () {
|
|
1036
|
-
var token_ls
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1107
|
+
var interval = setInterval( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
1108
|
+
var token_ls;
|
|
1109
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
1110
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
1111
|
+
case 0:
|
|
1112
|
+
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1113
|
+
if (token_ls) {
|
|
1114
|
+
_context2.next = 3;
|
|
1115
|
+
break;
|
|
1116
|
+
}
|
|
1117
|
+
return _context2.abrupt("return");
|
|
1118
|
+
case 3:
|
|
1119
|
+
_context2.next = 5;
|
|
1120
|
+
return verifyToken(token_ls);
|
|
1121
|
+
case 5:
|
|
1122
|
+
return _context2.abrupt("return", checkTokenAction({
|
|
1123
|
+
dispatch: dispatch,
|
|
1124
|
+
domainName: domainName,
|
|
1125
|
+
token: token_ls
|
|
1126
|
+
}));
|
|
1127
|
+
case 6:
|
|
1128
|
+
case "end":
|
|
1129
|
+
return _context2.stop();
|
|
1130
|
+
}
|
|
1131
|
+
}, _callee2);
|
|
1132
|
+
})), 1000 * 60 * 1);
|
|
1044
1133
|
return function () {
|
|
1045
1134
|
return clearInterval(interval);
|
|
1046
1135
|
};
|
|
1047
1136
|
}, []);
|
|
1048
1137
|
// Catch login redirect
|
|
1049
1138
|
useEffect(function () {
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1139
|
+
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
1140
|
+
var queryString, urlParams, token_url;
|
|
1141
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1142
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
1143
|
+
case 0:
|
|
1144
|
+
queryString = window.location.search;
|
|
1145
|
+
if (queryString) {
|
|
1146
|
+
_context3.next = 3;
|
|
1147
|
+
break;
|
|
1148
|
+
}
|
|
1149
|
+
return _context3.abrupt("return");
|
|
1150
|
+
case 3:
|
|
1151
|
+
urlParams = new URLSearchParams(queryString);
|
|
1152
|
+
token_url = urlParams.get(TOKEN_LS);
|
|
1153
|
+
if (!(token_url && !dauthState.isAuthenticated)) {
|
|
1154
|
+
_context3.next = 9;
|
|
1155
|
+
break;
|
|
1156
|
+
}
|
|
1157
|
+
_context3.next = 8;
|
|
1158
|
+
return verifyToken(token_url);
|
|
1159
|
+
case 8:
|
|
1160
|
+
setDauthStateAction({
|
|
1161
|
+
dispatch: dispatch,
|
|
1162
|
+
token: token_url,
|
|
1163
|
+
domainName: domainName
|
|
1164
|
+
});
|
|
1165
|
+
case 9:
|
|
1166
|
+
case "end":
|
|
1167
|
+
return _context3.stop();
|
|
1168
|
+
}
|
|
1169
|
+
}, _callee3);
|
|
1170
|
+
}))();
|
|
1061
1171
|
}, []);
|
|
1062
1172
|
// Auto Login
|
|
1063
1173
|
useEffect(function () {
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1174
|
+
_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
1175
|
+
var token_ls;
|
|
1176
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1177
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
1178
|
+
case 0:
|
|
1179
|
+
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1180
|
+
if (!(token_ls && !dauthState.isAuthenticated)) {
|
|
1181
|
+
_context4.next = 5;
|
|
1182
|
+
break;
|
|
1183
|
+
}
|
|
1184
|
+
_context4.next = 4;
|
|
1185
|
+
return verifyToken(token_ls);
|
|
1186
|
+
case 4:
|
|
1187
|
+
setAutoLoginAction({
|
|
1188
|
+
dispatch: dispatch,
|
|
1189
|
+
dauth_state_ls: token_ls,
|
|
1190
|
+
domainName: domainName
|
|
1191
|
+
});
|
|
1192
|
+
case 5:
|
|
1193
|
+
case "end":
|
|
1194
|
+
return _context4.stop();
|
|
1195
|
+
}
|
|
1196
|
+
}, _callee4);
|
|
1197
|
+
}))();
|
|
1082
1198
|
}, []);
|
|
1083
1199
|
var loginWithRedirect = useCallback(function () {
|
|
1084
1200
|
return window.location.replace(getClientBasePath({
|
|
@@ -1090,32 +1206,32 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1090
1206
|
dispatch: dispatch
|
|
1091
1207
|
});
|
|
1092
1208
|
}, []);
|
|
1093
|
-
var getAccessToken = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
1209
|
+
var getAccessToken = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
1094
1210
|
var token;
|
|
1095
|
-
return _regeneratorRuntime().wrap(function
|
|
1096
|
-
while (1) switch (
|
|
1211
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1212
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
1097
1213
|
case 0:
|
|
1098
|
-
|
|
1214
|
+
_context5.next = 2;
|
|
1099
1215
|
return getAccessTokenAction({
|
|
1100
1216
|
dispatch: dispatch,
|
|
1101
1217
|
domainName: domainName
|
|
1102
1218
|
});
|
|
1103
1219
|
case 2:
|
|
1104
|
-
token =
|
|
1105
|
-
return
|
|
1220
|
+
token = _context5.sent;
|
|
1221
|
+
return _context5.abrupt("return", token);
|
|
1106
1222
|
case 4:
|
|
1107
1223
|
case "end":
|
|
1108
|
-
return
|
|
1224
|
+
return _context5.stop();
|
|
1109
1225
|
}
|
|
1110
|
-
},
|
|
1226
|
+
}, _callee5);
|
|
1111
1227
|
})), []);
|
|
1112
1228
|
var updateUser = useCallback( /*#__PURE__*/function () {
|
|
1113
|
-
var
|
|
1229
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref6) {
|
|
1114
1230
|
var name, lastname, nickname, telPrefix, telSuffix, language, avatar, token_ls, user;
|
|
1115
|
-
return _regeneratorRuntime().wrap(function
|
|
1116
|
-
while (1) switch (
|
|
1231
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
1232
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
1117
1233
|
case 0:
|
|
1118
|
-
name =
|
|
1234
|
+
name = _ref6.name, lastname = _ref6.lastname, nickname = _ref6.nickname, telPrefix = _ref6.telPrefix, telSuffix = _ref6.telSuffix, language = _ref6.language, avatar = _ref6.avatar;
|
|
1119
1235
|
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1120
1236
|
user = {
|
|
1121
1237
|
name: name,
|
|
@@ -1126,7 +1242,7 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1126
1242
|
language: language,
|
|
1127
1243
|
avatar: avatar
|
|
1128
1244
|
};
|
|
1129
|
-
|
|
1245
|
+
_context6.next = 5;
|
|
1130
1246
|
return setUpdateUserAction({
|
|
1131
1247
|
dispatch: dispatch,
|
|
1132
1248
|
domainName: domainName,
|
|
@@ -1134,15 +1250,15 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1134
1250
|
token: token_ls
|
|
1135
1251
|
});
|
|
1136
1252
|
case 5:
|
|
1137
|
-
return
|
|
1253
|
+
return _context6.abrupt("return", _context6.sent);
|
|
1138
1254
|
case 6:
|
|
1139
1255
|
case "end":
|
|
1140
|
-
return
|
|
1256
|
+
return _context6.stop();
|
|
1141
1257
|
}
|
|
1142
|
-
},
|
|
1258
|
+
}, _callee6);
|
|
1143
1259
|
}));
|
|
1144
|
-
return function (
|
|
1145
|
-
return
|
|
1260
|
+
return function (_x2) {
|
|
1261
|
+
return _ref7.apply(this, arguments);
|
|
1146
1262
|
};
|
|
1147
1263
|
}(), [domainName]);
|
|
1148
1264
|
var updateUserWithRedirect = useCallback(function () {
|
|
@@ -1152,31 +1268,31 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1152
1268
|
domainName: domainName
|
|
1153
1269
|
}) + "/" + routes.tenantUpdateUser + "/" + domainName + "/" + token_ls);
|
|
1154
1270
|
}, [domainName, domainName]);
|
|
1155
|
-
var sendEmailVerification = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
1271
|
+
var sendEmailVerification = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
1156
1272
|
var token_ls;
|
|
1157
|
-
return _regeneratorRuntime().wrap(function
|
|
1158
|
-
while (1) switch (
|
|
1273
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
1274
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
1159
1275
|
case 0:
|
|
1160
1276
|
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1161
1277
|
if (token_ls) {
|
|
1162
|
-
|
|
1278
|
+
_context7.next = 3;
|
|
1163
1279
|
break;
|
|
1164
1280
|
}
|
|
1165
|
-
return
|
|
1281
|
+
return _context7.abrupt("return", false);
|
|
1166
1282
|
case 3:
|
|
1167
|
-
|
|
1283
|
+
_context7.next = 5;
|
|
1168
1284
|
return sendEmailVerificationAction({
|
|
1169
1285
|
dispatch: dispatch,
|
|
1170
1286
|
domainName: domainName,
|
|
1171
1287
|
token: token_ls
|
|
1172
1288
|
});
|
|
1173
1289
|
case 5:
|
|
1174
|
-
return
|
|
1290
|
+
return _context7.abrupt("return", _context7.sent);
|
|
1175
1291
|
case 6:
|
|
1176
1292
|
case "end":
|
|
1177
|
-
return
|
|
1293
|
+
return _context7.stop();
|
|
1178
1294
|
}
|
|
1179
|
-
},
|
|
1295
|
+
}, _callee7);
|
|
1180
1296
|
})), [domainName]);
|
|
1181
1297
|
var memoProvider = useMemo(function () {
|
|
1182
1298
|
return _extends({}, dauthState, {
|