dauth-context-react 2.0.0 → 2.2.0
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/README.md +15 -11
- package/dist/api/dauth.api.d.ts +2 -1
- package/dist/api/interfaces/dauth.api.responses.d.ts +7 -0
- package/dist/dauth-context-react.cjs.development.js +114 -18
- 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 +114 -18
- package/dist/dauth-context-react.esm.js.map +1 -1
- package/dist/interfaces.d.ts +5 -1
- package/dist/reducer/dauth.actions.d.ts +5 -0
- package/package.json +4 -2
- package/src/api/dauth.api.ts +20 -0
- package/src/api/interfaces/dauth.api.responses.ts +8 -0
- package/src/index.tsx +29 -9
- package/src/initialDauthState.ts +1 -0
- package/src/interfaces.ts +5 -9
- package/src/reducer/dauth.actions.ts +24 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e;function r(e,t,n,r,a,o,i){try{var u=e[o](i),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,o){var i=e.apply(t,n);function u(e){r(i,a,o,u,c,"next",e)}function c(e){r(i,a,o,u,c,"throw",e)}u(void 0)}))}}function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function i(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function o(n,r,a,o){var i=Object.create((r&&r.prototype instanceof s?r:s).prototype);return u(i,"_invoke",function(n,r,a){var o,i,u,s=0,f=a||[],p=!1,l={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return o=t,i=0,u=e,l.n=n,c}};function d(n,r){for(i=n,u=r,t=0;!p&&s&&!a&&t<f.length;t++){var a,o=f[t],d=l.p,m=o[2];n>3?(a=m===r)&&(u=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=d&&((a=n<2&&d<o[1])?(i=0,l.v=r,l.n=o[1]):d<m&&(a=n<3||o[0]>r||r>m)&&(o[4]=n,o[5]=r,l.n=m,i=0))}if(a||n>1)return c;throw p=!0,r}return function(a,f,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===f&&d(f,m),i=f,u=m;(t=i<2?e:u)||!p;){o||(i?i<3?(i>1&&(l.n=-1),d(i,u)):l.n=u:l.v=u);try{if(s=2,o){if(i||(a="next"),t=o[a]){if(!(t=t.call(o,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);o=e}else if((t=(p=l.n<0)?u:n.call(r,l))!==c)break}catch(t){o=e,i=1,u=t}finally{s=1}}return{value:t,done:p}}}(n,a,o),!0),i}var c={};function s(){}function f(){}function p(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(u(t={},r,(function(){return this})),t),d=p.prototype=s.prototype=Object.create(l);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,u(e,a,"GeneratorFunction")),e.prototype=Object.create(d),e}return f.prototype=p,u(d,"constructor",p),u(p,"constructor",f),f.displayName="GeneratorFunction",u(p,a,"GeneratorFunction"),u(d),u(d,a,"Generator"),u(d,r,(function(){return this})),u(d,"toString",(function(){return"[object Generator]"})),(i=function(){return{w:o,m:m}})()}function u(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}(u=function(e,t,n,r){function o(t,n){u(e,t,(function(e){return this._invoke(t,n,e)}))}t?a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(o("next",0),o("throw",1),o("return",2))})(e,t,n,r)}var c={user:{language:("undefined"!=typeof window?window.document.documentElement.getAttribute("lang"):null)||"es"},domain:{},isLoading:!0,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)}},s="LOGIN";function f(e,t){var n=t.payload;switch(t.type){case s:return o({},e,{user:n.user,domain:n.domain,isAuthenticated:n.isAuthenticated});case"SET_IS_LOADING":return o({},e,{isLoading:n.isLoading});case"UPDATE_USER":return o({},e,{user:o({},e.user,n)});case"SET_SEND_EMAIL_VERIFICATION_STATUS":return o({},e,{sendEmailVerificationStatus:o({},e.sendEmailVerificationStatus,{status:{type:n.type,message:n.message}})});case"SET_SEND_EMAIL_VERIFICATION_IS_LOADING":return o({},e,{sendEmailVerificationStatus:o({},e.sendEmailVerificationStatus,{isLoading:n})});default:return e}}function p(){if("undefined"==typeof window)return!1;var e=window.location.hostname;return Boolean("localhost"===e||"[::1]"===e||e.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm)||e.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))}function l(){var e=p(),t=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return e?t:"https://dauth.ovh/api/v1"}function d(){var e=p(),t=window.location.protocol+"//"+window.location.hostname+":5185";return e?t:"https://dauth.ovh"}var m=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"GET",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/user",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),h=function(){var e=a(i().m((function e(t,n,r){var a,o;return i().w((function(e){for(;;)switch(e.n){case 0:return a={method:"PATCH",headers:{Authorization:r,"Content-Type":"application/json"},body:JSON.stringify(n)},e.n=1,fetch(l()+"/app/"+t+"/user",a);case 1:return o=e.v,e.n=2,o.json();case 2:return e.a(2,{response:o,data:e.v})}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),y=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"GET",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/resend-email-verification",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),v=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})},e.n=1,fetch(l()+"/app/"+t+"/refresh-token",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),S=function(){var e=a(i().m((function e(t,n){var r;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})},e.n=1,fetch(l()+"/app/"+t+"/logout",r);case 1:return e.a(2,{response:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),g="dauth_state",I="dauth_refresh_token";function w(e){return _.apply(this,arguments)}function _(){return(_=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=t.token,a=t.refreshToken,o=t.domainName,(n=t.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),e.p=1,e.n=2,m(o,r);case 2:if(200!==(u=e.v).response.status){e.n=3;break}return n({type:s,payload:{user:u.data.user,domain:u.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,window.location.pathname),localStorage.setItem(g,r),localStorage.setItem(I,a),e.a(2);case 3:return e.a(2,P(n));case 4:e.n=6;break;case 5:return e.p=5,console.error(e.v),e.a(2,P(n));case 6:return e.p=6,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.f(6);case 7:return e.a(2)}}),e,null,[[1,5,6,7]])})))).apply(this,arguments)}function E(e){return T.apply(this,arguments)}function T(){return(T=a(i().m((function e(t){var n,r,a,o,u,c,f;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(r=t.domainName,(n=t.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),a=localStorage.getItem(I)){e.n=1;break}return n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.a(2,P(n));case 1:return e.p=1,e.n=2,v(r,a);case 2:if(200!==(o=e.v).response.status){e.n=4;break}return u=o.data.accessToken,c=o.data.refreshToken,localStorage.setItem(g,u),localStorage.setItem(I,c),e.n=3,m(r,u);case 3:if(200!==(f=e.v).response.status){e.n=4;break}return n({type:s,payload:{user:f.data.user,domain:f.data.domain,isAuthenticated:!0}}),e.a(2);case 4:P(n),e.n=6;break;case 5:e.p=5,console.error(e.v),P(n);case 6:return e.p=6,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.f(6);case 7:return e.a(2)}}),e,null,[[1,5,6,7]])})))).apply(this,arguments)}function A(){return(A=a(i().m((function e(t){var n,r,a;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,!(a=localStorage.getItem(I))||!r){e.n=4;break}return e.p=1,e.n=2,S(r,a);case 2:e.n=4;break;case 3:e.p=3;case 4:return n({type:"SET_IS_LOADING",payload:{isLoading:!0}}),n({type:s,payload:{user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isAuthenticated:!1}}),localStorage.removeItem(g),localStorage.removeItem(I),e.a(2,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}))}}),e,null,[[1,3]])})))).apply(this,arguments)}function b(e){return N.apply(this,arguments)}function N(){return(N=a(i().m((function e(t){var n,r,a,o;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,a=localStorage.getItem(I)){e.n=1;break}return e.a(2,P(n));case 1:return e.p=1,e.n=2,v(r,a);case 2:if(200!==(o=e.v).response.status){e.n=3;break}return localStorage.setItem(g,o.data.accessToken),localStorage.setItem(I,o.data.refreshToken),e.a(2);case 3:P(n),e.n=5;break;case 4:e.p=4,console.error(e.v),P(n);case 5:return e.a(2)}}),e,null,[[1,4]])})))).apply(this,arguments)}function k(e){return O.apply(this,arguments)}function O(){return(O=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,o=t.token,(a=t.user).language&&window.document.documentElement.setAttribute("lang",a.language),o){e.n=1;break}return n({type:"UPDATE_USER",payload:a}),e.a(2,!1);case 1:return e.p=1,e.n=2,h(r,a,o);case 2:if(200!==(u=e.v).response.status){e.n=3;break}return n({type:"UPDATE_USER",payload:u.data.user}),e.a(2,!0);case 3:return console.error("Update user error",u.data.message),e.a(2,!1);case 4:e.n=6;break;case 5:return e.p=5,console.error("Update user error",e.v),e.a(2,!1);case 6:return e.a(2)}}),e,null,[[1,5]])})))).apply(this,arguments)}function L(e){return D.apply(this,arguments)}function D(){return(D=a(i().m((function e(t){var n,r,a,o;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=t.domainName,a=t.token,(n=t.dispatch)({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!0}),n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"info",message:"Sending email verification..."}}),e.p=1,e.n=2,y(r,a);case 2:if(200!==(o=e.v).response.status){e.n=3;break}return n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"success",message:o.data.message}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!0);case 3:return n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:o.data.message}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!1);case 4:e.n=6;break;case 5:return e.p=5,n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:"Send email verification fetch error"}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!1);case 6:return e.a(2)}}),e,null,[[1,5]])})))).apply(this,arguments)}function C(e){return G.apply(this,arguments)}function G(){return(G=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,a=localStorage.getItem(g)){e.n=1;break}return e.a(2,"token-not-found");case 1:if(e.p=1,!(o=a.split(".")[1])){e.n=3;break}if(!(1e3*(JSON.parse(atob(o)).exp||0)-Date.now()<3e5)){e.n=3;break}return e.n=2,b({dispatch:n,domainName:r});case 2:return u=localStorage.getItem(g),e.a(2,u||"token-not-found");case 3:e.n=5;break;case 4:e.p=4;case 5:return e.a(2,a)}}),e,null,[[1,4]])})))).apply(this,arguments)}var P=function(e){return localStorage.removeItem(g),localStorage.removeItem(I),e({type:s,payload:{user:{},domain:{},isAuthenticated:!1}})},j=t.createContext(c);exports.DauthProvider=function(e){var r=e.domainName,u=e.children,s=t.useReducer(f,c),p=s[0],l=s[1],m=t.useRef(null),h=t.useCallback((function(){m.current&&clearTimeout(m.current);var e=localStorage.getItem(g);if(e)try{var t=e.split(".")[1];if(!t)return;var n=1e3*(JSON.parse(atob(t)).exp||0)-Date.now(),o=Math.max(n-3e5,1e4);m.current=setTimeout(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,b({dispatch:l,domainName:r});case 1:h();case 2:return e.a(2)}}),e)}))),o)}catch(e){m.current=setTimeout(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,b({dispatch:l,domainName:r});case 1:h();case 2:return e.a(2)}}),e)}))),3e5)}}),[r]);t.useEffect((function(){a(i().m((function e(){var t,n,a,o;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=window.location.search){e.n=1;break}return e.a(2);case 1:if(n=new URLSearchParams(t),a=n.get(g),o=n.get(I),!a||!o||p.isAuthenticated){e.n=2;break}return e.a(2,w({dispatch:l,token:a,refreshToken:o,domainName:r}));case 2:return e.a(2)}}),e)})))()}),[]),t.useEffect((function(){a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:if(!localStorage.getItem(I)||p.isAuthenticated){e.n=1;break}return e.a(2,E({dispatch:l,domainName:r}));case 1:return e.a(2,l({type:"SET_IS_LOADING",payload:{isLoading:!1}}));case 2:return e.a(2)}}),e)})))()}),[]),t.useEffect((function(){return p.isAuthenticated&&h(),function(){m.current&&clearTimeout(m.current)}}),[p.isAuthenticated,h]);var y=t.useCallback((function(){return window.location.replace(d()+"/"+r+"/signin")}),[r]),v=t.useCallback((function(){return m.current&&clearTimeout(m.current),function(e){return A.apply(this,arguments)}({dispatch:l,domainName:r})}),[r]),S=t.useCallback(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,C({dispatch:l,domainName:r});case 1:return e.a(2,e.v)}}),e)}))),[r]),_=t.useCallback(function(){var e=a(i().m((function e(t){var n,a,o,u,c,s,f,p,d;return i().w((function(e){for(;;)switch(e.n){case 0:return n=t.name,a=t.lastname,o=t.nickname,u=t.telPrefix,c=t.telSuffix,s=t.language,f=t.avatar,p=localStorage.getItem(g),d={name:n,lastname:a,nickname:o,telPrefix:u,telSuffix:c,language:s,avatar:f},e.n=1,k({dispatch:l,domainName:r,user:d,token:p});case 1:return e.a(2,e.v)}}),e)})));return function(t){return e.apply(this,arguments)}}(),[r]),T=t.useCallback((function(){var e=localStorage.getItem(g);if(e)return window.location.replace(d()+"/"+r+"/update-user/"+e)}),[r]),N=t.useCallback(a(i().m((function e(){var t;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=localStorage.getItem(g)){e.n=1;break}return e.a(2,!1);case 1:return e.n=2,L({dispatch:l,domainName:r,token:t});case 2:return e.a(2,e.v)}}),e)}))),[r]),O=t.useMemo((function(){return o({},p,{loginWithRedirect:y,logout:v,getAccessToken:S,updateUser:_,updateUserWithRedirect:T,sendEmailVerification:N})}),[p,y,v,S,_,T,N]);return n.createElement(j.Provider,{value:O},u)},exports.useDauth=function(){var e=t.useContext(j);if(!e)throw new Error("useDauth must be used inside DauthProvider");return e};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e;function r(e,t,n,r,a,o,i){try{var u=e[o](i),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,o){var i=e.apply(t,n);function u(e){r(i,a,o,u,c,"next",e)}function c(e){r(i,a,o,u,c,"throw",e)}u(void 0)}))}}function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function i(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function o(n,r,a,o){var i=Object.create((r&&r.prototype instanceof s?r:s).prototype);return u(i,"_invoke",function(n,r,a){var o,i,u,s=0,f=a||[],p=!1,l={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return o=t,i=0,u=e,l.n=n,c}};function d(n,r){for(i=n,u=r,t=0;!p&&s&&!a&&t<f.length;t++){var a,o=f[t],d=l.p,m=o[2];n>3?(a=m===r)&&(u=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=d&&((a=n<2&&d<o[1])?(i=0,l.v=r,l.n=o[1]):d<m&&(a=n<3||o[0]>r||r>m)&&(o[4]=n,o[5]=r,l.n=m,i=0))}if(a||n>1)return c;throw p=!0,r}return function(a,f,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===f&&d(f,m),i=f,u=m;(t=i<2?e:u)||!p;){o||(i?i<3?(i>1&&(l.n=-1),d(i,u)):l.n=u:l.v=u);try{if(s=2,o){if(i||(a="next"),t=o[a]){if(!(t=t.call(o,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);o=e}else if((t=(p=l.n<0)?u:n.call(r,l))!==c)break}catch(t){o=e,i=1,u=t}finally{s=1}}return{value:t,done:p}}}(n,a,o),!0),i}var c={};function s(){}function f(){}function p(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(u(t={},r,(function(){return this})),t),d=p.prototype=s.prototype=Object.create(l);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,u(e,a,"GeneratorFunction")),e.prototype=Object.create(d),e}return f.prototype=p,u(d,"constructor",p),u(p,"constructor",f),f.displayName="GeneratorFunction",u(p,a,"GeneratorFunction"),u(d),u(d,a,"Generator"),u(d,r,(function(){return this})),u(d,"toString",(function(){return"[object Generator]"})),(i=function(){return{w:o,m:m}})()}function u(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}(u=function(e,t,n,r){function o(t,n){u(e,t,(function(e){return this._invoke(t,n,e)}))}t?a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(o("next",0),o("throw",1),o("return",2))})(e,t,n,r)}var c={user:{language:("undefined"!=typeof window?window.document.documentElement.getAttribute("lang"):null)||"es"},domain:{},isLoading:!0,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)},deleteAccount:function(){return Promise.resolve(!1)}},s="LOGIN";function f(e,t){var n=t.payload;switch(t.type){case s:return o({},e,{user:n.user,domain:n.domain,isAuthenticated:n.isAuthenticated});case"SET_IS_LOADING":return o({},e,{isLoading:n.isLoading});case"UPDATE_USER":return o({},e,{user:o({},e.user,n)});case"SET_SEND_EMAIL_VERIFICATION_STATUS":return o({},e,{sendEmailVerificationStatus:o({},e.sendEmailVerificationStatus,{status:{type:n.type,message:n.message}})});case"SET_SEND_EMAIL_VERIFICATION_IS_LOADING":return o({},e,{sendEmailVerificationStatus:o({},e.sendEmailVerificationStatus,{isLoading:n})});default:return e}}function p(){if("undefined"==typeof window)return!1;var e=window.location.hostname;return Boolean("localhost"===e||"[::1]"===e||e.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm)||e.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))}function l(){var e=p(),t=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return e?t:"https://dauth.ovh/api/v1"}function d(){var e=p(),t=window.location.protocol+"//"+window.location.hostname+":5185";return e?t:"https://dauth.ovh"}var m=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"GET",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/user",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),h=function(){var e=a(i().m((function e(t,n,r){var a,o;return i().w((function(e){for(;;)switch(e.n){case 0:return a={method:"PATCH",headers:{Authorization:r,"Content-Type":"application/json"},body:JSON.stringify(n)},e.n=1,fetch(l()+"/app/"+t+"/user",a);case 1:return o=e.v,e.n=2,o.json();case 2:return e.a(2,{response:o,data:e.v})}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),y=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"GET",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/resend-email-verification",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),v=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})},e.n=1,fetch(l()+"/app/"+t+"/refresh-token",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),S=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"DELETE",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/user",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),g=function(){var e=a(i().m((function e(t,n){var r;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})},e.n=1,fetch(l()+"/app/"+t+"/logout",r);case 1:return e.a(2,{response:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),I="dauth_state",w="dauth_refresh_token";function E(e){return _.apply(this,arguments)}function _(){return(_=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=t.token,a=t.refreshToken,o=t.domainName,(n=t.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),e.p=1,e.n=2,m(o,r);case 2:if(200!==(u=e.v).response.status){e.n=3;break}return n({type:s,payload:{user:u.data.user,domain:u.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,window.location.pathname),localStorage.setItem(I,r),localStorage.setItem(w,a),e.a(2);case 3:return e.a(2,U(n));case 4:e.n=6;break;case 5:return e.p=5,console.error(e.v),e.a(2,U(n));case 6:return e.p=6,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.f(6);case 7:return e.a(2)}}),e,null,[[1,5,6,7]])})))).apply(this,arguments)}function T(e){return b.apply(this,arguments)}function b(){return(b=a(i().m((function e(t){var n,r,a,o,u,c,f;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(r=t.domainName,(n=t.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),a=localStorage.getItem(w)){e.n=1;break}return n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.a(2,U(n));case 1:return e.p=1,e.n=2,v(r,a);case 2:if(200!==(o=e.v).response.status){e.n=4;break}return u=o.data.accessToken,c=o.data.refreshToken,localStorage.setItem(I,u),localStorage.setItem(w,c),e.n=3,m(r,u);case 3:if(200!==(f=e.v).response.status){e.n=4;break}return n({type:s,payload:{user:f.data.user,domain:f.data.domain,isAuthenticated:!0}}),e.a(2);case 4:U(n),e.n=6;break;case 5:e.p=5,console.error(e.v),U(n);case 6:return e.p=6,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.f(6);case 7:return e.a(2)}}),e,null,[[1,5,6,7]])})))).apply(this,arguments)}function A(){return(A=a(i().m((function e(t){var n,r,a;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,!(a=localStorage.getItem(w))||!r){e.n=4;break}return e.p=1,e.n=2,g(r,a);case 2:e.n=4;break;case 3:e.p=3;case 4:return n({type:"SET_IS_LOADING",payload:{isLoading:!0}}),n({type:s,payload:{user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isAuthenticated:!1}}),localStorage.removeItem(I),localStorage.removeItem(w),e.a(2,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}))}}),e,null,[[1,3]])})))).apply(this,arguments)}function k(e){return N.apply(this,arguments)}function N(){return(N=a(i().m((function e(t){var n,r,a,o;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,a=localStorage.getItem(w)){e.n=1;break}return e.a(2,U(n));case 1:return e.p=1,e.n=2,v(r,a);case 2:if(200!==(o=e.v).response.status){e.n=3;break}return localStorage.setItem(I,o.data.accessToken),localStorage.setItem(w,o.data.refreshToken),e.a(2);case 3:U(n),e.n=5;break;case 4:e.p=4,console.error(e.v),U(n);case 5:return e.a(2)}}),e,null,[[1,4]])})))).apply(this,arguments)}function O(e){return L.apply(this,arguments)}function L(){return(L=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,o=t.token,(a=t.user).language&&window.document.documentElement.setAttribute("lang",a.language),o){e.n=1;break}return n({type:"UPDATE_USER",payload:a}),e.a(2,!1);case 1:return e.p=1,e.n=2,h(r,a,o);case 2:if(200!==(u=e.v).response.status){e.n=3;break}return n({type:"UPDATE_USER",payload:u.data.user}),e.a(2,!0);case 3:return console.error("Update user error",u.data.message),e.a(2,!1);case 4:e.n=6;break;case 5:return e.p=5,console.error("Update user error",e.v),e.a(2,!1);case 6:return e.a(2)}}),e,null,[[1,5]])})))).apply(this,arguments)}function D(e){return C.apply(this,arguments)}function C(){return(C=a(i().m((function e(t){var n,r,a,o;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=t.domainName,a=t.token,(n=t.dispatch)({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!0}),n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"info",message:"Sending email verification..."}}),e.p=1,e.n=2,y(r,a);case 2:if(200!==(o=e.v).response.status){e.n=3;break}return n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"success",message:o.data.message}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!0);case 3:return n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:o.data.message}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!1);case 4:e.n=6;break;case 5:return e.p=5,n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:"Send email verification fetch error"}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!1);case 6:return e.a(2)}}),e,null,[[1,5]])})))).apply(this,arguments)}function j(e){return P.apply(this,arguments)}function P(){return(P=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,a=localStorage.getItem(I)){e.n=1;break}return e.a(2,"token-not-found");case 1:if(e.p=1,!(o=a.split(".")[1])){e.n=3;break}if(!(1e3*(JSON.parse(atob(o)).exp||0)-Date.now()<3e5)){e.n=3;break}return e.n=2,k({dispatch:n,domainName:r});case 2:return u=localStorage.getItem(I),e.a(2,u||"token-not-found");case 3:e.n=5;break;case 4:e.p=4;case 5:return e.a(2,a)}}),e,null,[[1,4]])})))).apply(this,arguments)}function G(e){return R.apply(this,arguments)}function R(){return(R=a(i().m((function e(t){var n,r,a;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return n=t.dispatch,r=t.domainName,a=t.token,e.p=1,e.n=2,S(r,a);case 2:if(200!==e.v.response.status){e.n=3;break}return U(n),e.a(2,!0);case 3:return e.a(2,!1);case 4:return e.p=4,console.error("Delete account error",e.v),e.a(2,!1)}}),e,null,[[1,4]])})))).apply(this,arguments)}var U=function(e){return localStorage.removeItem(I),localStorage.removeItem(w),e({type:s,payload:{user:{},domain:{},isAuthenticated:!1}})},V=t.createContext(c);exports.DauthProvider=function(e){var r=e.domainName,u=e.children,s=t.useReducer(f,c),p=s[0],l=s[1],m=t.useRef(null),h=t.useCallback((function(){m.current&&clearTimeout(m.current);var e=localStorage.getItem(I);if(e)try{var t=e.split(".")[1];if(!t)return;var n=1e3*(JSON.parse(atob(t)).exp||0)-Date.now(),o=Math.max(n-3e5,1e4);m.current=setTimeout(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,k({dispatch:l,domainName:r});case 1:h();case 2:return e.a(2)}}),e)}))),o)}catch(e){m.current=setTimeout(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,k({dispatch:l,domainName:r});case 1:h();case 2:return e.a(2)}}),e)}))),3e5)}}),[r]);t.useEffect((function(){a(i().m((function e(){var t,n,a,o;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=window.location.search){e.n=1;break}return e.a(2);case 1:if(n=new URLSearchParams(t),a=n.get(I),o=n.get(w),!a||!o||p.isAuthenticated){e.n=2;break}return e.a(2,E({dispatch:l,token:a,refreshToken:o,domainName:r}));case 2:return e.a(2)}}),e)})))()}),[]),t.useEffect((function(){a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:if(!localStorage.getItem(w)||p.isAuthenticated){e.n=1;break}return e.a(2,T({dispatch:l,domainName:r}));case 1:return e.a(2,l({type:"SET_IS_LOADING",payload:{isLoading:!1}}));case 2:return e.a(2)}}),e)})))()}),[]),t.useEffect((function(){return p.isAuthenticated&&h(),function(){m.current&&clearTimeout(m.current)}}),[p.isAuthenticated,h]);var y=t.useCallback((function(){return window.location.replace(d()+"/"+r+"/signin")}),[r]),v=t.useCallback((function(){return m.current&&clearTimeout(m.current),function(e){return A.apply(this,arguments)}({dispatch:l,domainName:r})}),[r]),S=t.useCallback(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,j({dispatch:l,domainName:r});case 1:return e.a(2,e.v)}}),e)}))),[r]),g=t.useCallback(function(){var e=a(i().m((function e(t){var n,a;return i().w((function(e){for(;;)switch(e.n){case 0:return n=localStorage.getItem(I),a={name:t.name,lastname:t.lastname,nickname:t.nickname,telPrefix:t.telPrefix,telSuffix:t.telSuffix,language:t.language,avatar:t.avatar,birthDate:t.birthDate,country:t.country,metadata:t.metadata},e.n=1,O({dispatch:l,domainName:r,user:a,token:n});case 1:return e.a(2,e.v)}}),e)})));return function(t){return e.apply(this,arguments)}}(),[r]),_=t.useCallback((function(){var e=localStorage.getItem(I);if(e)return window.location.replace(d()+"/"+r+"/update-user/"+e)}),[r]),b=t.useCallback(a(i().m((function e(){var t;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=localStorage.getItem(I)){e.n=1;break}return e.a(2,!1);case 1:return e.n=2,D({dispatch:l,domainName:r,token:t});case 2:return e.a(2,e.v)}}),e)}))),[r]),N=t.useCallback(a(i().m((function e(){var t;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=localStorage.getItem(I)){e.n=1;break}return e.a(2,!1);case 1:return m.current&&clearTimeout(m.current),e.n=2,G({dispatch:l,domainName:r,token:t});case 2:return e.a(2,e.v)}}),e)}))),[r]),L=t.useMemo((function(){return o({},p,{loginWithRedirect:y,logout:v,getAccessToken:S,updateUser:g,updateUserWithRedirect:_,sendEmailVerification:b,deleteAccount:N})}),[p,y,v,S,g,_,b,N]);return n.createElement(V.Provider,{value:L},u)},exports.useDauth=function(){var e=t.useContext(V);if(!e)throw new Error("useDauth must be used inside DauthProvider");return e};
|
|
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.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import {\n IActionStatus,\n IDauthDomainState,\n IDauthState,\n IDauthUser,\n} from './interfaces';\n\nconst initialDauthState: IDauthState = {\n user: {\n language:\n (typeof window !== 'undefined'\n ? window.document.documentElement.getAttribute('lang')\n : null) || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: true,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nfunction checkIsLocalhost(): boolean {\n if (typeof window === 'undefined') return false;\n const hostname = window.location.hostname;\n return Boolean(\n hostname === 'localhost' ||\n hostname === '[::1]' ||\n 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 hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n );\n}\n\nexport function getServerBasePath() {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;\n return isLocalhost ? serverLocalUrl : serverProdUrl;\n}\n\nexport function getClientBasePath() {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${serverDomain}`;\n return isLocalhost ? clientLocalUrl : clientProdUrl;\n}\n","import { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IrefreshTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IupdateUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IsendEmailVerificationAPIResponse> => {\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()}/app/${domainName}/resend-email-verification`,\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<IrefreshAccessTokenAPIResponse> => {\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()}/app/${domainName}/refresh-access-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshTokenAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<IrefreshTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/refresh-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const logoutAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<{ response: Response }> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/logout`,\n params\n );\n return { response };\n};\n","export const TOKEN_LS = 'dauth_state';\nexport const REFRESH_TOKEN_LS = 'dauth_refresh_token';\n","import {\n getUserAPI,\n logoutAPI,\n refreshTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { TOKEN_LS, REFRESH_TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n refreshToken: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n refreshToken,\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({}, document.title, window.location.pathname);\n localStorage.setItem(TOKEN_LS, token);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshToken);\n return;\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(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 domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n const newAccessToken = refreshResult.data.accessToken;\n const newRefreshToken = refreshResult.data.refreshToken;\n localStorage.setItem(TOKEN_LS, newAccessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, newRefreshToken);\n const getUserFetch = await getUserAPI(domainName, newAccessToken);\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 return;\n }\n }\n // Refresh failed — session expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (storedRefreshToken && domainName) {\n try {\n await logoutAPI(domainName, storedRefreshToken);\n } catch (_) {\n // Best-effort server-side logout\n }\n }\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language:\n window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(TOKEN_LS);\n localStorage.removeItem(REFRESH_TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\nexport async function refreshSessionAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n localStorage.setItem(TOKEN_LS, refreshResult.data.accessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshResult.data.refreshToken);\n return;\n }\n // Refresh failed — revoked or expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\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.error('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.error('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 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 'token-not-found';\n // Decode JWT to check expiry (without verification — that's the server's job)\n try {\n const payloadB64 = token_ls.split('.')[1];\n if (payloadB64) {\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // If token expires in less than 5 minutes, refresh proactively\n if (expiresIn < 5 * 60 * 1000) {\n await refreshSessionAction({ dispatch, domainName });\n const refreshedToken = localStorage.getItem(TOKEN_LS);\n return refreshedToken || 'token-not-found';\n }\n }\n } catch (_) {\n // If decode fails, return stored token and let server validate\n }\n return token_ls;\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n localStorage.removeItem(REFRESH_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 useRef,\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, REFRESH_TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n const refreshTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Schedule next proactive refresh based on access token expiry\n const scheduleRefresh = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n const token = localStorage.getItem(TOKEN_LS);\n if (!token) return;\n try {\n const payloadB64 = token.split('.')[1];\n if (!payloadB64) return;\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // Refresh 5 minutes before expiry, minimum 10 seconds\n const refreshIn = Math.max(expiresIn - 5 * 60 * 1000, 10_000);\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, refreshIn);\n } catch (_) {\n // If decode fails, retry in 5 minutes\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, 5 * 60 * 1000);\n }\n }, [domainName]);\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 const refresh_url = urlParams.get(REFRESH_TOKEN_LS);\n if (token_url && refresh_url && !dauthState.isAuthenticated) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n refreshToken: refresh_url,\n domainName,\n });\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const refreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (refreshToken && !dauthState.isAuthenticated) {\n return action.setAutoLoginAction({ dispatch, domainName });\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n // Schedule proactive refresh when authenticated\n useEffect(() => {\n if (dauthState.isAuthenticated) {\n scheduleRefresh();\n }\n return () => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n };\n }, [dauthState.isAuthenticated, scheduleRefresh]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n return action.setLogoutAction({ dispatch, domainName });\n }, [domainName]);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, [domainName]);\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}/${routes.updateUser}/${token_ls}`\n );\n }, [domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","LOGIN","userReducer","state","action","payload","DauthTypes","_extends","checkIsLocalhost","hostname","location","Boolean","match","getServerBasePath","isLocalhost","serverLocalUrl","protocol","getClientBasePath","clientLocalUrl","getUserAPI","_ref","_asyncToGenerator","_regenerator","m","_callee","domainName","token","params","response","w","_context","n","method","headers","Authorization","Content-Type","fetch","v","json","a","data","_x","_x2","apply","arguments","updateUserAPI","_ref2","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshTokenAPI","_ref5","_callee5","refreshToken","_context5","_x0","_x1","logoutAPI","_ref6","_callee6","_context6","_x10","_x11","TOKEN_LS","REFRESH_TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","p","history","replaceState","title","pathname","localStorage","setItem","resetUser","console","error","f","setAutoLoginAction","_setAutoLoginAction","storedRefreshToken","refreshResult","newAccessToken","newRefreshToken","getItem","accessToken","_setLogoutAction","removeItem","refreshSessionAction","_refreshSessionAction","_callee4","_ref4","_context4","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","getAccessTokenAction","_getAccessTokenAction","_callee7","_ref7","token_ls","payloadB64","refreshedToken","_context7","split","parse","atob","exp","Date","now","DauthContext","createContext","props","children","_useReducer","useReducer","dauthState","refreshTimerRef","useRef","scheduleRefresh","useCallback","current","clearTimeout","expiresIn","refreshIn","Math","max","setTimeout","_","useEffect","queryString","urlParams","token_url","refresh_url","search","URLSearchParams","get","replace","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.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["import {\n IActionStatus,\n IDauthDomainState,\n IDauthState,\n IDauthUser,\n} from './interfaces';\n\nconst initialDauthState: IDauthState = {\n user: {\n language:\n (typeof window !== 'undefined'\n ? window.document.documentElement.getAttribute('lang')\n : null) || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: true,\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 deleteAccount: () => Promise.resolve(false),\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nfunction checkIsLocalhost(): boolean {\n if (typeof window === 'undefined') return false;\n const hostname = window.location.hostname;\n return Boolean(\n hostname === 'localhost' ||\n hostname === '[::1]' ||\n 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 hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n );\n}\n\nexport function getServerBasePath() {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;\n return isLocalhost ? serverLocalUrl : serverProdUrl;\n}\n\nexport function getClientBasePath() {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${serverDomain}`;\n return isLocalhost ? clientLocalUrl : clientProdUrl;\n}\n","import { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IdeleteAccountAPIResponse,\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IrefreshTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IupdateUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IsendEmailVerificationAPIResponse> => {\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()}/app/${domainName}/resend-email-verification`,\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<IrefreshAccessTokenAPIResponse> => {\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()}/app/${domainName}/refresh-access-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshTokenAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<IrefreshTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/refresh-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const deleteAccountAPI = async (\n domainName: string,\n token: string\n): Promise<IdeleteAccountAPIResponse> => {\n const params = {\n method: 'DELETE',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const logoutAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<{ response: Response }> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/logout`,\n params\n );\n return { response };\n};\n","export const TOKEN_LS = 'dauth_state';\nexport const REFRESH_TOKEN_LS = 'dauth_refresh_token';\n","import {\n deleteAccountAPI,\n getUserAPI,\n logoutAPI,\n refreshTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { TOKEN_LS, REFRESH_TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n refreshToken: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n refreshToken,\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({}, document.title, window.location.pathname);\n localStorage.setItem(TOKEN_LS, token);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshToken);\n return;\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(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 domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n const newAccessToken = refreshResult.data.accessToken;\n const newRefreshToken = refreshResult.data.refreshToken;\n localStorage.setItem(TOKEN_LS, newAccessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, newRefreshToken);\n const getUserFetch = await getUserAPI(domainName, newAccessToken);\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 return;\n }\n }\n // Refresh failed — session expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (storedRefreshToken && domainName) {\n try {\n await logoutAPI(domainName, storedRefreshToken);\n } catch (_) {\n // Best-effort server-side logout\n }\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 localStorage.removeItem(REFRESH_TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\nexport async function refreshSessionAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n localStorage.setItem(TOKEN_LS, refreshResult.data.accessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshResult.data.refreshToken);\n return;\n }\n // Refresh failed — revoked or expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\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.error('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.error('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 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 'token-not-found';\n // Decode JWT to check expiry (without verification — that's the server's job)\n try {\n const payloadB64 = token_ls.split('.')[1];\n if (payloadB64) {\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // If token expires in less than 5 minutes, refresh proactively\n if (expiresIn < 5 * 60 * 1000) {\n await refreshSessionAction({ dispatch, domainName });\n const refreshedToken = localStorage.getItem(TOKEN_LS);\n return refreshedToken || 'token-not-found';\n }\n }\n } catch (_) {\n // If decode fails, return stored token and let server validate\n }\n return token_ls;\n}\n\nexport async function deleteAccountAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const result = await deleteAccountAPI(domainName, token);\n if (result.response.status === 200) {\n resetUser(dispatch);\n return true;\n }\n return false;\n } catch (error) {\n console.error('Delete account error', error);\n return false;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n localStorage.removeItem(REFRESH_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 useRef,\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, REFRESH_TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n const refreshTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Schedule next proactive refresh based on access token expiry\n const scheduleRefresh = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n const token = localStorage.getItem(TOKEN_LS);\n if (!token) return;\n try {\n const payloadB64 = token.split('.')[1];\n if (!payloadB64) return;\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // Refresh 5 minutes before expiry, minimum 10 seconds\n const refreshIn = Math.max(expiresIn - 5 * 60 * 1000, 10_000);\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, refreshIn);\n } catch (_) {\n // If decode fails, retry in 5 minutes\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, 5 * 60 * 1000);\n }\n }, [domainName]);\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 const refresh_url = urlParams.get(REFRESH_TOKEN_LS);\n if (token_url && refresh_url && !dauthState.isAuthenticated) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n refreshToken: refresh_url,\n domainName,\n });\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const refreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (refreshToken && !dauthState.isAuthenticated) {\n return action.setAutoLoginAction({ dispatch, domainName });\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n // Schedule proactive refresh when authenticated\n useEffect(() => {\n if (dauthState.isAuthenticated) {\n scheduleRefresh();\n }\n return () => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n };\n }, [dauthState.isAuthenticated, scheduleRefresh]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n return action.setLogoutAction({ dispatch, domainName });\n }, [domainName]);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, [domainName]);\n\n const updateUser = useCallback(\n async (fields: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n birthDate,\n country,\n metadata,\n } = fields;\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n birthDate,\n country,\n metadata,\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}/${routes.updateUser}/${token_ls}`\n );\n }, [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 deleteAccount = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n return (await action.deleteAccountAction({\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 deleteAccount,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n deleteAccount,\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","deleteAccount","LOGIN","userReducer","state","action","payload","DauthTypes","_extends","checkIsLocalhost","hostname","location","Boolean","match","getServerBasePath","isLocalhost","serverLocalUrl","protocol","getClientBasePath","clientLocalUrl","getUserAPI","_ref","_asyncToGenerator","_regenerator","m","_callee","domainName","token","params","response","w","_context","n","method","headers","Authorization","Content-Type","fetch","v","json","a","data","_x","_x2","apply","arguments","updateUserAPI","_ref2","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshTokenAPI","_ref5","_callee5","refreshToken","_context5","_x0","_x1","deleteAccountAPI","_ref6","_callee6","_context6","_x10","_x11","logoutAPI","_ref7","_callee7","_context7","_x12","_x13","TOKEN_LS","REFRESH_TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","p","history","replaceState","title","pathname","localStorage","setItem","resetUser","console","error","f","setAutoLoginAction","_setAutoLoginAction","storedRefreshToken","refreshResult","newAccessToken","newRefreshToken","getItem","accessToken","_setLogoutAction","removeItem","refreshSessionAction","_refreshSessionAction","_callee4","_ref4","_context4","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","getAccessTokenAction","_getAccessTokenAction","token_ls","payloadB64","refreshedToken","split","parse","atob","exp","Date","now","deleteAccountAction","_x8","_deleteAccountAction","_callee8","_ref8","_context8","DauthContext","createContext","props","children","_useReducer","useReducer","dauthState","refreshTimerRef","useRef","scheduleRefresh","useCallback","current","clearTimeout","expiresIn","refreshIn","Math","max","setTimeout","_","useEffect","queryString","urlParams","token_url","refresh_url","search","URLSearchParams","get","replace","fields","name","lastname","nickname","telPrefix","telSuffix","avatar","birthDate","country","metadata","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}
|
|
@@ -169,6 +169,9 @@ var initialDauthState = {
|
|
|
169
169
|
},
|
|
170
170
|
sendEmailVerification: function sendEmailVerification() {
|
|
171
171
|
return Promise.resolve(false);
|
|
172
|
+
},
|
|
173
|
+
deleteAccount: function deleteAccount() {
|
|
174
|
+
return Promise.resolve(false);
|
|
172
175
|
}
|
|
173
176
|
};
|
|
174
177
|
|
|
@@ -384,11 +387,43 @@ var refreshTokenAPI = /*#__PURE__*/function () {
|
|
|
384
387
|
return _ref5.apply(this, arguments);
|
|
385
388
|
};
|
|
386
389
|
}();
|
|
387
|
-
var
|
|
388
|
-
var _ref6 = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(domainName,
|
|
389
|
-
var params, response;
|
|
390
|
+
var deleteAccountAPI = /*#__PURE__*/function () {
|
|
391
|
+
var _ref6 = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(domainName, token) {
|
|
392
|
+
var params, response, data;
|
|
390
393
|
return _regenerator().w(function (_context6) {
|
|
391
394
|
while (1) switch (_context6.n) {
|
|
395
|
+
case 0:
|
|
396
|
+
params = {
|
|
397
|
+
method: 'DELETE',
|
|
398
|
+
headers: {
|
|
399
|
+
Authorization: token,
|
|
400
|
+
'Content-Type': 'application/json'
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
_context6.n = 1;
|
|
404
|
+
return fetch(getServerBasePath() + "/app/" + domainName + "/user", params);
|
|
405
|
+
case 1:
|
|
406
|
+
response = _context6.v;
|
|
407
|
+
_context6.n = 2;
|
|
408
|
+
return response.json();
|
|
409
|
+
case 2:
|
|
410
|
+
data = _context6.v;
|
|
411
|
+
return _context6.a(2, {
|
|
412
|
+
response: response,
|
|
413
|
+
data: data
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
}, _callee6);
|
|
417
|
+
}));
|
|
418
|
+
return function deleteAccountAPI(_x10, _x11) {
|
|
419
|
+
return _ref6.apply(this, arguments);
|
|
420
|
+
};
|
|
421
|
+
}();
|
|
422
|
+
var logoutAPI = /*#__PURE__*/function () {
|
|
423
|
+
var _ref7 = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7(domainName, refreshToken) {
|
|
424
|
+
var params, response;
|
|
425
|
+
return _regenerator().w(function (_context7) {
|
|
426
|
+
while (1) switch (_context7.n) {
|
|
392
427
|
case 0:
|
|
393
428
|
params = {
|
|
394
429
|
method: 'POST',
|
|
@@ -399,18 +434,18 @@ var logoutAPI = /*#__PURE__*/function () {
|
|
|
399
434
|
refreshToken: refreshToken
|
|
400
435
|
})
|
|
401
436
|
};
|
|
402
|
-
|
|
437
|
+
_context7.n = 1;
|
|
403
438
|
return fetch(getServerBasePath() + "/app/" + domainName + "/logout", params);
|
|
404
439
|
case 1:
|
|
405
|
-
response =
|
|
406
|
-
return
|
|
440
|
+
response = _context7.v;
|
|
441
|
+
return _context7.a(2, {
|
|
407
442
|
response: response
|
|
408
443
|
});
|
|
409
444
|
}
|
|
410
|
-
},
|
|
445
|
+
}, _callee7);
|
|
411
446
|
}));
|
|
412
|
-
return function logoutAPI(
|
|
413
|
-
return
|
|
447
|
+
return function logoutAPI(_x12, _x13) {
|
|
448
|
+
return _ref7.apply(this, arguments);
|
|
414
449
|
};
|
|
415
450
|
}();
|
|
416
451
|
|
|
@@ -801,8 +836,6 @@ function _sendEmailVerificationAction() {
|
|
|
801
836
|
function getAccessTokenAction(_x7) {
|
|
802
837
|
return _getAccessTokenAction.apply(this, arguments);
|
|
803
838
|
}
|
|
804
|
-
///////////////////////////////////////////
|
|
805
|
-
//////////////////////////////////////////
|
|
806
839
|
function _getAccessTokenAction() {
|
|
807
840
|
_getAccessTokenAction = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7(_ref7) {
|
|
808
841
|
var dispatch, domainName, token_ls, payloadB64, payload, expiresIn, refreshedToken;
|
|
@@ -849,6 +882,41 @@ function _getAccessTokenAction() {
|
|
|
849
882
|
}));
|
|
850
883
|
return _getAccessTokenAction.apply(this, arguments);
|
|
851
884
|
}
|
|
885
|
+
function deleteAccountAction(_x8) {
|
|
886
|
+
return _deleteAccountAction.apply(this, arguments);
|
|
887
|
+
}
|
|
888
|
+
///////////////////////////////////////////
|
|
889
|
+
//////////////////////////////////////////
|
|
890
|
+
function _deleteAccountAction() {
|
|
891
|
+
_deleteAccountAction = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8(_ref8) {
|
|
892
|
+
var dispatch, domainName, token, result, _t8;
|
|
893
|
+
return _regenerator().w(function (_context8) {
|
|
894
|
+
while (1) switch (_context8.p = _context8.n) {
|
|
895
|
+
case 0:
|
|
896
|
+
dispatch = _ref8.dispatch, domainName = _ref8.domainName, token = _ref8.token;
|
|
897
|
+
_context8.p = 1;
|
|
898
|
+
_context8.n = 2;
|
|
899
|
+
return deleteAccountAPI(domainName, token);
|
|
900
|
+
case 2:
|
|
901
|
+
result = _context8.v;
|
|
902
|
+
if (!(result.response.status === 200)) {
|
|
903
|
+
_context8.n = 3;
|
|
904
|
+
break;
|
|
905
|
+
}
|
|
906
|
+
resetUser(dispatch);
|
|
907
|
+
return _context8.a(2, true);
|
|
908
|
+
case 3:
|
|
909
|
+
return _context8.a(2, false);
|
|
910
|
+
case 4:
|
|
911
|
+
_context8.p = 4;
|
|
912
|
+
_t8 = _context8.v;
|
|
913
|
+
console.error('Delete account error', _t8);
|
|
914
|
+
return _context8.a(2, false);
|
|
915
|
+
}
|
|
916
|
+
}, _callee8, null, [[1, 4]]);
|
|
917
|
+
}));
|
|
918
|
+
return _deleteAccountAction.apply(this, arguments);
|
|
919
|
+
}
|
|
852
920
|
var resetUser = function resetUser(dispatch) {
|
|
853
921
|
localStorage.removeItem(TOKEN_LS);
|
|
854
922
|
localStorage.removeItem(REFRESH_TOKEN_LS);
|
|
@@ -1020,13 +1088,13 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1020
1088
|
}, _callee5);
|
|
1021
1089
|
})), [domainName]);
|
|
1022
1090
|
var updateUser = useCallback(/*#__PURE__*/function () {
|
|
1023
|
-
var
|
|
1024
|
-
var name, lastname, nickname, telPrefix, telSuffix, language, avatar,
|
|
1091
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(fields) {
|
|
1092
|
+
var token_ls, name, lastname, nickname, telPrefix, telSuffix, language, avatar, birthDate, country, metadata, user;
|
|
1025
1093
|
return _regenerator().w(function (_context6) {
|
|
1026
1094
|
while (1) switch (_context6.n) {
|
|
1027
1095
|
case 0:
|
|
1028
|
-
name = _ref6.name, lastname = _ref6.lastname, nickname = _ref6.nickname, telPrefix = _ref6.telPrefix, telSuffix = _ref6.telSuffix, language = _ref6.language, avatar = _ref6.avatar;
|
|
1029
1096
|
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1097
|
+
name = fields.name, lastname = fields.lastname, nickname = fields.nickname, telPrefix = fields.telPrefix, telSuffix = fields.telSuffix, language = fields.language, avatar = fields.avatar, birthDate = fields.birthDate, country = fields.country, metadata = fields.metadata;
|
|
1030
1098
|
user = {
|
|
1031
1099
|
name: name,
|
|
1032
1100
|
lastname: lastname,
|
|
@@ -1034,7 +1102,10 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1034
1102
|
telPrefix: telPrefix,
|
|
1035
1103
|
telSuffix: telSuffix,
|
|
1036
1104
|
language: language,
|
|
1037
|
-
avatar: avatar
|
|
1105
|
+
avatar: avatar,
|
|
1106
|
+
birthDate: birthDate,
|
|
1107
|
+
country: country,
|
|
1108
|
+
metadata: metadata
|
|
1038
1109
|
};
|
|
1039
1110
|
_context6.n = 1;
|
|
1040
1111
|
return setUpdateUserAction({
|
|
@@ -1049,7 +1120,7 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1049
1120
|
}, _callee6);
|
|
1050
1121
|
}));
|
|
1051
1122
|
return function (_x) {
|
|
1052
|
-
return
|
|
1123
|
+
return _ref6.apply(this, arguments);
|
|
1053
1124
|
};
|
|
1054
1125
|
}(), [domainName]);
|
|
1055
1126
|
var updateUserWithRedirect = useCallback(function () {
|
|
@@ -1080,6 +1151,30 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1080
1151
|
}
|
|
1081
1152
|
}, _callee7);
|
|
1082
1153
|
})), [domainName]);
|
|
1154
|
+
var deleteAccount = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {
|
|
1155
|
+
var token_ls;
|
|
1156
|
+
return _regenerator().w(function (_context8) {
|
|
1157
|
+
while (1) switch (_context8.n) {
|
|
1158
|
+
case 0:
|
|
1159
|
+
token_ls = localStorage.getItem(TOKEN_LS);
|
|
1160
|
+
if (token_ls) {
|
|
1161
|
+
_context8.n = 1;
|
|
1162
|
+
break;
|
|
1163
|
+
}
|
|
1164
|
+
return _context8.a(2, false);
|
|
1165
|
+
case 1:
|
|
1166
|
+
if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);
|
|
1167
|
+
_context8.n = 2;
|
|
1168
|
+
return deleteAccountAction({
|
|
1169
|
+
dispatch: dispatch,
|
|
1170
|
+
domainName: domainName,
|
|
1171
|
+
token: token_ls
|
|
1172
|
+
});
|
|
1173
|
+
case 2:
|
|
1174
|
+
return _context8.a(2, _context8.v);
|
|
1175
|
+
}
|
|
1176
|
+
}, _callee8);
|
|
1177
|
+
})), [domainName]);
|
|
1083
1178
|
var memoProvider = useMemo(function () {
|
|
1084
1179
|
return _extends({}, dauthState, {
|
|
1085
1180
|
loginWithRedirect: loginWithRedirect,
|
|
@@ -1087,9 +1182,10 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
1087
1182
|
getAccessToken: getAccessToken,
|
|
1088
1183
|
updateUser: updateUser,
|
|
1089
1184
|
updateUserWithRedirect: updateUserWithRedirect,
|
|
1090
|
-
sendEmailVerification: sendEmailVerification
|
|
1185
|
+
sendEmailVerification: sendEmailVerification,
|
|
1186
|
+
deleteAccount: deleteAccount
|
|
1091
1187
|
});
|
|
1092
|
-
}, [dauthState, loginWithRedirect, logout, getAccessToken, updateUser, updateUserWithRedirect, sendEmailVerification]);
|
|
1188
|
+
}, [dauthState, loginWithRedirect, logout, getAccessToken, updateUser, updateUserWithRedirect, sendEmailVerification, deleteAccount]);
|
|
1093
1189
|
return React.createElement(DauthContext.Provider, {
|
|
1094
1190
|
value: memoProvider
|
|
1095
1191
|
}, children);
|