@ducks-tinder-client/auth 1.0.0-alpha.2 → 1.0.0-alpha.3

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.
Files changed (47) hide show
  1. package/dist/cjs/index.css +1 -0
  2. package/dist/cjs/index.js +1 -0
  3. package/dist/entities/user/api/auth/index.d.ts +5 -0
  4. package/dist/entities/user/api/auth/keys.d.ts +3 -0
  5. package/dist/entities/user/api/auth/useLoginMutation.d.ts +2 -0
  6. package/dist/entities/user/api/auth/useLogoutMutation.d.ts +1 -0
  7. package/dist/entities/user/api/auth/useRefreshMutation.d.ts +1 -0
  8. package/dist/entities/user/api/auth/useRegisterMutation.d.ts +2 -0
  9. package/dist/entities/user/api/index.d.ts +2 -0
  10. package/dist/entities/user/api/user/index.d.ts +2 -0
  11. package/dist/entities/user/api/user/keys.d.ts +3 -0
  12. package/dist/entities/user/api/user/useGetCurrentUserQuery.d.ts +1 -0
  13. package/dist/entities/user/index.d.ts +4 -0
  14. package/dist/entities/user/lib/hocs/WithAuthRedirect.d.ts +2 -0
  15. package/dist/entities/user/lib/hocs/WithInitialLoading.d.ts +2 -0
  16. package/dist/entities/user/lib/hocs/WithUserData.d.ts +2 -0
  17. package/dist/entities/user/lib/hocs/index.d.ts +3 -0
  18. package/dist/entities/user/lib/hooks/index.d.ts +1 -0
  19. package/dist/entities/user/lib/hooks/useAuthForm.d.ts +19 -0
  20. package/dist/entities/user/lib/index.d.ts +2 -0
  21. package/dist/entities/user/model/auth/auth.interface.d.ts +6 -0
  22. package/dist/entities/user/model/auth/auth.store.d.ts +24 -0
  23. package/dist/entities/user/model/auth/index.d.ts +2 -0
  24. package/dist/entities/user/model/index.d.ts +2 -0
  25. package/dist/entities/user/model/user/index.d.ts +1 -0
  26. package/dist/entities/user/model/user/user.store.d.ts +22 -0
  27. package/dist/entities/user/ui/AuthLayout/AuthLayout.d.ts +10 -0
  28. package/dist/entities/user/ui/InitialLoading/InitialLoading.d.ts +1 -0
  29. package/dist/entities/user/ui/index.d.ts +2 -0
  30. package/dist/esm/index.css +1 -0
  31. package/dist/esm/index.js +1 -0
  32. package/dist/features/LoginForm/index.d.ts +1 -0
  33. package/dist/features/LoginForm/ui/LoginForm.d.ts +2 -0
  34. package/dist/features/RegistrationForm/index.d.ts +1 -0
  35. package/dist/features/RegistrationForm/ui/RegistrationForm.d.ts +2 -0
  36. package/dist/index.d.ts +4 -0
  37. package/dist/shared/api/index.d.ts +2 -0
  38. package/dist/shared/api/interceptors.d.ts +2 -0
  39. package/dist/shared/api/services/auth/auth.interfaces.d.ts +21 -0
  40. package/dist/shared/api/services/auth/auth.mock-service.d.ts +2 -0
  41. package/dist/shared/api/services/auth/auth.service.d.ts +2 -0
  42. package/dist/shared/api/services/index.d.ts +8 -0
  43. package/dist/shared/api/services/mock/index.d.ts +2 -0
  44. package/dist/shared/api/services/mock/mock.d.ts +8 -0
  45. package/dist/shared/api/services/mock/stub/auth.stub.d.ts +2 -0
  46. package/dist/shared/api/services/mock/stub/index.d.ts +1 -0
  47. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ ._auth_4slza_1{width:100%;margin:0 auto;height:100%}._auth_4slza_1 ._container_4slza_6{width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;padding:15px;background:var(--color--purple-100);background:linear-gradient(-135deg,var(--color--purple-90),var(--color--yellow-60))}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:960px;background:var(--bg-sub-primary);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:50px 130px 40px 95px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{width:316px;height:316px;max-width:100%}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:100px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:700;font-size:24px;color:var(--main-primary);line-height:1.2;text-align:center;width:100%;display:block;padding-bottom:54px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45{font-weight:600;font-size:15px;color:var(--danger-main)}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{max-width:290px;text-align:center;margin-bottom:10px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{text-align:center;padding-top:136px;font-size:12px}@media(max-height:750px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:700px;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:800px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{align-items:center;justify-content:center;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{display:none}}@media(max-width:700px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:350px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:400px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:500;font-size:18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{font-size:13px}}._link_1o9kz_1{font-size:14px;line-height:1.5;color:var(--main-secondary);position:relative;padding:10px}._link_1o9kz_1 ._icon_1o9kz_8{position:absolute;top:13px;right:-10px}._form_1o9kz_14{width:290px}._form_1o9kz_14 ._inputWrapper_1o9kz_17{position:relative;margin-bottom:10px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:50px;z-index:1;color:var(--main-secondary);background:var(--bg-primary);padding:0 30px 0 68px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{font-size:16px;display:flex;align-items:center;position:absolute;border-radius:25px;bottom:18px;left:35px;pointer-events:none;color:var(--main-secondary)}._form_1o9kz_14 ._btn_1o9kz_40{font-weight:700;font-size:15px;color:var(--color--white-100);text-transform:uppercase;height:50px;background:var(--color--green-90);padding:0 25px;margin-top:10px;transition:all .4s}._form_1o9kz_14 ._btn_1o9kz_40._disabled_1o9kz_51{background:var(--bg-secondary)!important;cursor:not-allowed}@media(max-width:400px){._form_1o9kz_14{max-width:290px;width:100%}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:40px;font-size:13px;padding:0 16px 0 40px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{bottom:12px;left:16px}._form_1o9kz_14 ._btn_1o9kz_40{height:40px;font-weight:500;font-size:13px}}
@@ -0,0 +1 @@
1
+ "use strict";var Dt=Object.create;var P=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Bt=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var Kt=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},nt=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Gt(e))!qt.call(t,a)&&a!==r&&P(t,a,{get:()=>e[a],enumerable:!(o=Xt(e,a))||o.enumerable});return t};var Vt=(t,e,r)=>(r=t!=null?Dt(Bt(t)):{},nt(e||!t||!t.__esModule?P(r,"default",{value:t,enumerable:!0}):r,t)),jt=t=>nt(P({},"__esModule",{value:!0}),t);var Yt={};Kt(Yt,{AuthLayout:()=>T,AuthQueryKey:()=>v,InitialLoading:()=>W,LoginForm:()=>Nt,RegistrationForm:()=>Wt,UserQueryKey:()=>Y,WithAuthRedirect:()=>F,WithInitialLoading:()=>O,WithUserData:()=>ot,authResponseStub:()=>E,deleteTestUser:()=>K,getAuthService:()=>x,getMockableService:()=>q,getOrCreateService:()=>xt,getTestUser:()=>V,rejectWithAxiosResponseError:()=>B,resolveAxiosResponse:()=>S,saveTestUser:()=>M,setUpInterceptors:()=>$t,useAuthForm:()=>y,useAuthStore:()=>s,useGetCurrentUserQuery:()=>Z,useLoginMutation:()=>Q,useLogoutMutation:()=>Jt,useRefreshMutation:()=>J,useRegisterMutation:()=>$,useUserStore:()=>g});module.exports=jt(Yt);var _=require("@ducks-tinder-client/common");var It=require("react-hook-form"),p=require("@ducks-tinder-client/common");var v=(e=>(e.AuthMutation="auth-data-mutation",e))(v||{});var h={auth:"_auth_4slza_1",container:"_container_4slza_6",wrapper:"_wrapper_4slza_17",formWrapper:"_formWrapper_4slza_32",title:"_title_4slza_35",validation:"_validation_4slza_45",error:"_error_4slza_50",navigate:"_navigate_4slza_55"};var pt=require("@ducks-tinder-client/ui"),d=require("react/jsx-runtime"),T=({errors:t,title:e,children:r,link:o})=>(0,d.jsx)("div",{className:h.auth,children:(0,d.jsx)("div",{className:h.container,children:(0,d.jsxs)("div",{className:h.wrapper,children:[(0,d.jsx)("img",{draggable:!1,src:pt.authDuck,alt:"IMG"}),(0,d.jsxs)("div",{className:h.formWrapper,children:[(0,d.jsx)("span",{className:h.title,children:e}),(0,d.jsx)("div",{className:h.validation,children:Object.values(t).map((a,i)=>(0,d.jsx)("div",{className:h.error,children:a.message?.toString()},i))}),r,(0,d.jsx)("div",{className:h.navigate,children:o})]})]})})});var ct=require("@ducks-tinder-client/ui");var mt=require("zustand"),ut=require("zustand/middleware"),s=(0,mt.create)()((0,ut.devtools)(t=>({isAuth:null,authData:null,setIsAuth:e=>t(()=>({isAuth:e})),setAuthData:e=>t(()=>({authData:e}))})));var _t=require("zustand"),lt=require("zustand/middleware"),g=(0,_t.create)()((0,lt.devtools)(t=>({currentUser:null,setCurrentUser:e=>t(()=>({currentUser:e}))})));var dt=require("react/jsx-runtime"),W=()=>{let t=s(r=>r.isAuth),e=g(r=>r.currentUser);return(0,dt.jsx)(ct.LoadingPage,{visible:t===null&&e===null||t===!0&&e===null})};var At=require("@tanstack/react-query");var R=require("@ducks-tinder-client/common");async function S(t){return Promise.resolve({config:{},data:t,headers:{},status:200,statusText:""})}async function B(t,e){return Promise.reject({config:{},data:e,headers:{},status:t,statusText:""})}function q(t,e){return R.COMMON_LIB_SETTINGS.WITH_MOCKS?e:t}function M(t){localStorage.setItem("testUser",JSON.stringify(t))}function K(){localStorage.removeItem("testUser")}function V(){let t=localStorage.getItem("testUser");if(!t)return null;let e=JSON.parse(t);return Qt(e)?e:(localStorage.removeItem("testUser"),null)}function Qt(t){if(!t||typeof t!="object")return!1;for(let e in R.userStub)if(!(e in t))return!1;return Object.keys(R.userStub).length===Object.keys(t).length}var E={email:"email@gmail.com",accessToken:"token",id:"id",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};var z=require("@ducks-tinder-client/common"),ft={async registration(t,e,r){return z.mockStorage.currentUser={...z.mockStorage.currentUser,name:e},M(z.mockStorage.currentUser),S({...E,...z.mockStorage.currentUser})},async login(t,e){return M(z.mockStorage.currentUser),S({...E,...z.mockStorage.currentUser})},async refresh(){let t=V();return t?(z.mockStorage.currentUser=t,S({...E,...t})):B(401)},async logout(){return K(),S()}};var f=require("@ducks-tinder-client/common"),ht=()=>q({async refresh(){return f.instance.get(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/refresh`)},async registration(t,e,r){return f.instance.post(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/register`,{email:t,name:e,password:r})},async login(t,e){return f.instance.post(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/login`,{email:t,password:e})},async logout(){return f.instance.patch(`${f.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/logout`)}},ft);var j={authService:null},xt=(t,e)=>(j[t]||(j[t]=e()),j[t]),x=()=>xt("authService",ht);var gt=Vt(require("axios")),zt=require("@ducks-tinder-client/common");function $t(t){t.interceptors.request.use(e=>(e.headers.Authorization="Bearer "+localStorage.getItem("accessToken"),e)),t.interceptors.response.use(e=>e,async e=>{let r=e.config;if(e.config?.url?.endsWith("/auth/refresh"))throw e;if(e.response?.status===401&&!e.config._isRetry){r._isRetry=!0;let o=await gt.default.get(`${zt.COMMON_LIB_SETTINGS.AUTH_SERVICE_URL}/auth/refresh`,{withCredentials:!0});return localStorage.setItem("accessToken",o.data.accessToken),t.request(r)}throw e})}var kt=require("@ducks-tinder-client/common"),vt=require("react-toastify");function Q(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,At.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o})=>x().login(r,o),onError:r=>{t(null),e(!1),(0,vt.toast)((0,kt.returnErrorMessage)(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var Tt=require("@tanstack/react-query");var St=require("@ducks-tinder-client/common"),yt=require("react-toastify");function $(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,Tt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o,name:a})=>x().registration(r,a,o),onError:r=>{t(null),e(!1),(0,yt.toast)((0,St.returnErrorMessage)(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var bt=require("@tanstack/react-query");function J(){let t=s(r=>r.setAuthData),e=s(r=>r.setIsAuth);return(0,bt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async()=>x().refresh(),onError:()=>{t(null),e(!1)},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}var wt=require("@tanstack/react-query");function Jt(){let t=s(o=>o.setAuthData),e=s(o=>o.setIsAuth),r=g(o=>o.setCurrentUser);return(0,wt.useMutation)({mutationKey:["auth-data-mutation"],mutationFn:async()=>(localStorage.removeItem("accessToken"),t(null),e(!1),r(null),x().logout())})}var Y=(e=>(e.User="user",e))(Y||{});var Rt=require("@tanstack/react-query");var Et=require("@ducks-tinder-client/common");function Z(){return(0,Rt.useQuery)({queryKey:["user"],queryFn:async()=>Et.serviceGetter.getUserService().getMe(),select:t=>t.data,retryDelay:2e3})}function y(t){let{mutateAsync:e,isPending:r}=Q(),{mutateAsync:o,isPending:a}=$(),i=r||a,{register:c,formState:{errors:N,isValid:G},handleSubmit:Mt}=(0,It.useForm)({mode:"onChange"}),Ft=Mt(async it=>{t?await o(it):await e(it)}),Ot={type:"text",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.email,...c("email",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.emailRequired,pattern:{value:p.EMAIL_REGEXP,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.emailIncorrect},maxLength:{value:30,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getEmailLengthMax(30)}})},Ht={type:"password",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.password,...c("password",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.passwordRequired,minLength:{value:6,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getPasswordLengthMin(6)},maxLength:{value:30,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getPasswordLengthMax(30)}})},st={fields:{email:Ot,password:Ht},validation:{errors:N,isValid:G},submitHandler:Ft,disabled:i};return t&&(st.fields.name={type:"text",placeholder:p.COMMON_LIB_SETTINGS.TEXTS.auth.name,...c("name",{required:p.COMMON_LIB_SETTINGS.TEXTS.auth.nameRequired,minLength:{value:2,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getNameLengthMin(2)},maxLength:{value:14,message:p.COMMON_LIB_SETTINGS.TEXTS.auth.getNameLengthMax(14)}})}),st}var tt=require("@ducks-tinder-client/common");var et=require("react"),rt=require("react-toastify"),Ut=require("react/jsx-runtime"),ot=t=>r=>{let{data:o,failureCount:a,isError:i,isLoading:c}=Z(),N=g(G=>G.setCurrentUser);return(0,et.useEffect)(()=>{N(o||null)},[o,N]),(0,et.useEffect)(()=>{i&&!o?(0,rt.toast)(tt.COMMON_LIB_SETTINGS.TEXTS.reconnection):a>=1&&(0,rt.toast)(tt.COMMON_LIB_SETTINGS.TEXTS.successConnect)},[o,a,i,c]),!c&&o?(0,Ut.jsx)(t,{...r}):null};var Ct=require("react"),U=require("react-router-dom"),at=require("@ducks-tinder-client/common");var I=require("react/jsx-runtime"),F=t=>r=>{let{pathname:o}=(0,U.useLocation)(),{mutateAsync:a}=J(),i=s(c=>c.isAuth);return(0,Ct.useEffect)(()=>{i===null&&a()},[i,a]),o===at.ROUTES.LOGIN||o===at.ROUTES.REGISTRATION?i?(0,I.jsx)(U.Navigate,{to:"/"}):(0,I.jsx)(t,{...r}):i===!1?(0,I.jsx)(U.Navigate,{to:"/login",replace:!0}):i?(0,I.jsx)(t,{...r}):null};var k=require("react/jsx-runtime"),O=t=>r=>(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(W,{}),(0,k.jsx)(t,{...r})]});var Lt=require("react-router-dom"),b=require("@fortawesome/free-solid-svg-icons"),H=require("@fortawesome/react-fontawesome");var l={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};var C=require("@ducks-tinder-client/ui"),D=require("@ducks-tinder-client/common"),u=require("react/jsx-runtime"),Nt=()=>{let{fields:{email:t,password:e},validation:{errors:r,isValid:o},submitHandler:a,disabled:i}=y();return(0,u.jsx)(T,{errors:r,title:D.COMMON_LIB_SETTINGS.TEXTS.auth.memberLogin,link:(0,u.jsxs)(Lt.Link,{className:l.link,to:"/reg",children:[D.COMMON_LIB_SETTINGS.TEXTS.auth.create,(0,u.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faArrowRightLong})]}),children:(0,u.jsxs)("form",{onSubmit:a,className:l.form,children:[(0,u.jsxs)("div",{className:l.inputWrapper,children:[(0,u.jsx)(C.TextField,{...t,variant:"rounded",extraClassName:l.input}),(0,u.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faEnvelope})]}),(0,u.jsxs)("div",{className:l.inputWrapper,children:[(0,u.jsx)(C.TextField,{...e,variant:"rounded",extraClassName:l.input}),(0,u.jsx)(H.FontAwesomeIcon,{className:l.icon,icon:b.faLock})]}),(0,u.jsx)(C.Button,{type:"submit",rounded:!0,disabled:!o||i,extraClassName:[l.btn,o&&!i?"":l.disabled],children:D.COMMON_LIB_SETTINGS.TEXTS.auth.login})]})})};var Pt=require("react-router-dom"),A=require("@fortawesome/free-solid-svg-icons"),L=require("@fortawesome/react-fontawesome");var m={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};var w=require("@ducks-tinder-client/ui"),X=require("@ducks-tinder-client/common"),n=require("react/jsx-runtime"),Wt=()=>{let{fields:{name:t,email:e,password:r},validation:{errors:o,isValid:a},submitHandler:i,disabled:c}=y(!0);return(0,n.jsx)(T,{errors:o,title:X.COMMON_LIB_SETTINGS.TEXTS.auth.memberSignUp,link:(0,n.jsxs)(Pt.Link,{className:m.link,to:"/login",children:[X.COMMON_LIB_SETTINGS.TEXTS.auth.loginAccount,(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faArrowRightLong})]}),children:(0,n.jsxs)("form",{onSubmit:i,className:m.form,children:[(0,n.jsxs)("div",{className:m.inputWrapper,children:[(0,n.jsx)(w.TextField,{...t,extraClassName:m.input,variant:"rounded"}),(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faFileText})]}),(0,n.jsxs)("div",{className:m.inputWrapper,children:[(0,n.jsx)(w.TextField,{...e,variant:"rounded",extraClassName:m.input}),(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faEnvelope})]}),(0,n.jsxs)("div",{className:m.inputWrapper,children:[(0,n.jsx)(w.TextField,{...r,variant:"rounded",extraClassName:m.input}),(0,n.jsx)(L.FontAwesomeIcon,{className:m.icon,icon:A.faLock})]}),(0,n.jsx)(w.Button,{type:"submit",rounded:!0,disabled:!a||c,extraClassName:[m.btn,a&&!c?"":m.disabled],children:X.COMMON_LIB_SETTINGS.TEXTS.auth.signUp})]})})};_.APP_PRIVATE_HOC_COMPOSITION.addHocs(_.HocCompositionStage.BOOTSTRAPPING,[O]);_.APP_PRIVATE_HOC_COMPOSITION.addHocs(_.HocCompositionStage.AUTH_CHECK,[F]);_.APP_PRIVATE_HOC_COMPOSITION.addHocs(_.HocCompositionStage.USER_HYDRATION,[ot]);_.APP_AUTH_HOC_COMPOSITION.addHocs(_.HocCompositionStage.BOOTSTRAPPING,[O]);_.APP_AUTH_HOC_COMPOSITION.addHocs(_.HocCompositionStage.AUTH_CHECK,[F]);
@@ -0,0 +1,5 @@
1
+ export * from './keys';
2
+ export * from './useLoginMutation';
3
+ export * from './useRegisterMutation';
4
+ export * from './useRefreshMutation';
5
+ export * from './useLogoutMutation';
@@ -0,0 +1,3 @@
1
+ export declare enum AuthQueryKey {
2
+ AuthMutation = "auth-data-mutation"
3
+ }
@@ -0,0 +1,2 @@
1
+ import type { LoginParams } from '../../../../shared/api';
2
+ export declare function useLoginMutation(): import("@tanstack/react-query").UseMutationResult<import("axios").AxiosResponse<import("../../../../shared/api").AuthResponse, any>, unknown, LoginParams, unknown>;
@@ -0,0 +1 @@
1
+ export declare function useLogoutMutation(): import("@tanstack/react-query").UseMutationResult<import("axios").AxiosResponse<boolean, any>, Error, void, unknown>;
@@ -0,0 +1 @@
1
+ export declare function useRefreshMutation(): import("@tanstack/react-query").UseMutationResult<import("axios").AxiosResponse<import("../../../../shared/api").AuthResponse, any>, Error, void, unknown>;
@@ -0,0 +1,2 @@
1
+ import type { RegistrationParams } from '../../../../shared/api';
2
+ export declare function useRegisterMutation(): import("@tanstack/react-query").UseMutationResult<import("axios").AxiosResponse<import("../../../../shared/api").AuthResponse, any>, unknown, RegistrationParams, unknown>;
@@ -0,0 +1,2 @@
1
+ export * from './auth';
2
+ export * from './user';
@@ -0,0 +1,2 @@
1
+ export * from './keys';
2
+ export * from './useGetCurrentUserQuery';
@@ -0,0 +1,3 @@
1
+ export declare enum UserQueryKey {
2
+ User = "user"
3
+ }
@@ -0,0 +1 @@
1
+ export declare function useGetCurrentUserQuery(): import("@tanstack/react-query").UseQueryResult<import("@ducks-tinder-client/common").User, Error>;
@@ -0,0 +1,4 @@
1
+ export * from './ui';
2
+ export * from './lib';
3
+ export * from './model';
4
+ export * from './api';
@@ -0,0 +1,2 @@
1
+ import type { ComponentType, FC } from 'react';
2
+ export declare const WithAuthRedirect: <P extends object>(Component: ComponentType<P>) => FC<P>;
@@ -0,0 +1,2 @@
1
+ import type { ComponentType, FC } from 'react';
2
+ export declare const WithInitialLoading: <P extends object>(Component: ComponentType<P>) => FC<P>;
@@ -0,0 +1,2 @@
1
+ import type { ComponentType, FC } from 'react';
2
+ export declare const WithUserData: <P extends object>(Component: ComponentType<P>) => FC<P>;
@@ -0,0 +1,3 @@
1
+ export * from './WithUserData';
2
+ export * from './WithAuthRedirect';
3
+ export * from './WithInitialLoading';
@@ -0,0 +1 @@
1
+ export { useAuthForm } from './useAuthForm';
@@ -0,0 +1,19 @@
1
+ import type { SubmitEventHandler } from 'react';
2
+ import type { FieldErrors } from 'react-hook-form';
3
+ import type { RegistrationParams } from '@ducks-tinder-client/common';
4
+ import type { TextFieldProps } from '@ducks-tinder-client/ui';
5
+ interface AuthFormReturn {
6
+ fields: {
7
+ email: TextFieldProps;
8
+ password: TextFieldProps;
9
+ name?: TextFieldProps;
10
+ };
11
+ validation: {
12
+ errors: FieldErrors<RegistrationParams>;
13
+ isValid: boolean;
14
+ };
15
+ submitHandler: SubmitEventHandler<HTMLFormElement>;
16
+ disabled: boolean;
17
+ }
18
+ export declare function useAuthForm(isRegisterForm?: boolean): AuthFormReturn;
19
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './hooks';
2
+ export * from './hocs';
@@ -0,0 +1,6 @@
1
+ export interface AuthData {
2
+ id: string;
3
+ email: string;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ }
@@ -0,0 +1,24 @@
1
+ import type { AuthData } from './auth.interface';
2
+ export interface AuthState {
3
+ authData: AuthData | null;
4
+ isAuth: boolean | null;
5
+ setIsAuth: (value: boolean) => void;
6
+ setAuthData: (value: AuthData | null) => void;
7
+ }
8
+ export declare const useAuthStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<AuthState>, "setState" | "devtools"> & {
9
+ setState(partial: AuthState | Partial<AuthState> | ((state: AuthState) => AuthState | Partial<AuthState>), replace?: false | undefined, action?: (string | {
10
+ [x: string]: unknown;
11
+ [x: number]: unknown;
12
+ [x: symbol]: unknown;
13
+ type: string;
14
+ }) | undefined): void;
15
+ setState(state: AuthState | ((state: AuthState) => AuthState), replace: true, action?: (string | {
16
+ [x: string]: unknown;
17
+ [x: number]: unknown;
18
+ [x: symbol]: unknown;
19
+ type: string;
20
+ }) | undefined): void;
21
+ devtools: {
22
+ cleanup: () => void;
23
+ };
24
+ }>;
@@ -0,0 +1,2 @@
1
+ export { useAuthStore } from './auth.store';
2
+ export type { AuthData } from './auth.interface';
@@ -0,0 +1,2 @@
1
+ export * from './auth';
2
+ export * from './user';
@@ -0,0 +1 @@
1
+ export { useUserStore } from './user.store';
@@ -0,0 +1,22 @@
1
+ import type { User } from '@ducks-tinder-client/common';
2
+ export interface UserState {
3
+ currentUser: User | null;
4
+ setCurrentUser: (value: User | null) => void;
5
+ }
6
+ export declare const useUserStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<UserState>, "setState" | "devtools"> & {
7
+ setState(partial: UserState | Partial<UserState> | ((state: UserState) => UserState | Partial<UserState>), replace?: false | undefined, action?: (string | {
8
+ [x: string]: unknown;
9
+ [x: number]: unknown;
10
+ [x: symbol]: unknown;
11
+ type: string;
12
+ }) | undefined): void;
13
+ setState(state: UserState | ((state: UserState) => UserState), replace: true, action?: (string | {
14
+ [x: string]: unknown;
15
+ [x: number]: unknown;
16
+ [x: symbol]: unknown;
17
+ type: string;
18
+ }) | undefined): void;
19
+ devtools: {
20
+ cleanup: () => void;
21
+ };
22
+ }>;
@@ -0,0 +1,10 @@
1
+ import type { FC, PropsWithChildren, ReactNode } from 'react';
2
+ import type { FieldErrors } from 'react-hook-form';
3
+ import type { RegistrationParams } from '@ducks-tinder-client/common';
4
+ interface AuthLayoutProps {
5
+ errors: FieldErrors<RegistrationParams>;
6
+ title: string;
7
+ link: ReactNode;
8
+ }
9
+ export declare const AuthLayout: FC<PropsWithChildren<AuthLayoutProps>>;
10
+ export {};
@@ -0,0 +1 @@
1
+ export declare const InitialLoading: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { AuthLayout } from './AuthLayout/AuthLayout';
2
+ export { InitialLoading } from './InitialLoading/InitialLoading';
@@ -0,0 +1 @@
1
+ ._auth_4slza_1{width:100%;margin:0 auto;height:100%}._auth_4slza_1 ._container_4slza_6{width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;padding:15px;background:var(--color--purple-100);background:linear-gradient(-135deg,var(--color--purple-90),var(--color--yellow-60))}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:960px;background:var(--bg-sub-primary);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:50px 130px 40px 95px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{width:316px;height:316px;max-width:100%}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:100px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:700;font-size:24px;color:var(--main-primary);line-height:1.2;text-align:center;width:100%;display:block;padding-bottom:54px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45{font-weight:600;font-size:15px;color:var(--danger-main)}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{max-width:290px;text-align:center;margin-bottom:10px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{text-align:center;padding-top:136px;font-size:12px}@media(max-height:750px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:700px;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:800px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{align-items:center;justify-content:center;padding:50px 26px 40px 18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 img{display:none}}@media(max-width:700px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17{width:350px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32{padding-top:0}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._navigate_4slza_55{padding-top:50px}}@media(max-width:400px){._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._title_4slza_35{font-weight:500;font-size:18px}._auth_4slza_1 ._container_4slza_6 ._wrapper_4slza_17 ._formWrapper_4slza_32 ._validation_4slza_45 ._error_4slza_50{font-size:13px}}._link_1o9kz_1{font-size:14px;line-height:1.5;color:var(--main-secondary);position:relative;padding:10px}._link_1o9kz_1 ._icon_1o9kz_8{position:absolute;top:13px;right:-10px}._form_1o9kz_14{width:290px}._form_1o9kz_14 ._inputWrapper_1o9kz_17{position:relative;margin-bottom:10px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:50px;z-index:1;color:var(--main-secondary);background:var(--bg-primary);padding:0 30px 0 68px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{font-size:16px;display:flex;align-items:center;position:absolute;border-radius:25px;bottom:18px;left:35px;pointer-events:none;color:var(--main-secondary)}._form_1o9kz_14 ._btn_1o9kz_40{font-weight:700;font-size:15px;color:var(--color--white-100);text-transform:uppercase;height:50px;background:var(--color--green-90);padding:0 25px;margin-top:10px;transition:all .4s}._form_1o9kz_14 ._btn_1o9kz_40._disabled_1o9kz_51{background:var(--bg-secondary)!important;cursor:not-allowed}@media(max-width:400px){._form_1o9kz_14{max-width:290px;width:100%}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._input_1o9kz_17{width:100%;height:40px;font-size:13px;padding:0 16px 0 40px}._form_1o9kz_14 ._inputWrapper_1o9kz_17 ._icon_1o9kz_8{bottom:12px;left:16px}._form_1o9kz_14 ._btn_1o9kz_40{height:40px;font-weight:500;font-size:13px}}
@@ -0,0 +1 @@
1
+ import{APP_AUTH_HOC_COMPOSITION as _t,APP_PRIVATE_HOC_COMPOSITION as D,HocCompositionStage as T}from"@ducks-tinder-client/common";import{useForm as Ft}from"react-hook-form";import{COMMON_LIB_SETTINGS as p,EMAIL_REGEXP as Ot}from"@ducks-tinder-client/common";var g=(e=>(e.AuthMutation="auth-data-mutation",e))(g||{});var _={auth:"_auth_4slza_1",container:"_container_4slza_6",wrapper:"_wrapper_4slza_17",formWrapper:"_formWrapper_4slza_32",title:"_title_4slza_35",validation:"_validation_4slza_45",error:"_error_4slza_50",navigate:"_navigate_4slza_55"};import{authDuck as ht}from"@ducks-tinder-client/ui";import{jsx as d,jsxs as B}from"react/jsx-runtime";var z=({errors:t,title:e,children:r,link:o})=>d("div",{className:_.auth,children:d("div",{className:_.container,children:B("div",{className:_.wrapper,children:[d("img",{draggable:!1,src:ht,alt:"IMG"}),B("div",{className:_.formWrapper,children:[d("span",{className:_.title,children:e}),d("div",{className:_.validation,children:Object.values(t).map((a,s)=>d("div",{className:_.error,children:a.message?.toString()},s))}),r,d("div",{className:_.navigate,children:o})]})]})})});import{LoadingPage as kt}from"@ducks-tinder-client/ui";import{create as xt}from"zustand";import{devtools as gt}from"zustand/middleware";var i=xt()(gt(t=>({isAuth:null,authData:null,setIsAuth:e=>t(()=>({isAuth:e})),setAuthData:e=>t(()=>({authData:e}))})));import{create as zt}from"zustand";import{devtools as At}from"zustand/middleware";var f=zt()(At(t=>({currentUser:null,setCurrentUser:e=>t(()=>({currentUser:e}))})));import{jsx as vt}from"react/jsx-runtime";var C=()=>{let t=i(r=>r.isAuth),e=f(r=>r.currentUser);return vt(kt,{visible:t===null&&e===null||t===!0&&e===null})};import{useMutation as Rt}from"@tanstack/react-query";import{COMMON_LIB_SETTINGS as Tt,userStub as q}from"@ducks-tinder-client/common";async function A(t){return Promise.resolve({config:{},data:t,headers:{},status:200,statusText:""})}async function K(t,e){return Promise.reject({config:{},data:e,headers:{},status:t,statusText:""})}function V(t,e){return Tt.WITH_MOCKS?e:t}function L(t){localStorage.setItem("testUser",JSON.stringify(t))}function j(){localStorage.removeItem("testUser")}function Q(){let t=localStorage.getItem("testUser");if(!t)return null;let e=JSON.parse(t);return St(e)?e:(localStorage.removeItem("testUser"),null)}function St(t){if(!t||typeof t!="object")return!1;for(let e in q)if(!(e in t))return!1;return Object.keys(q).length===Object.keys(t).length}var y={email:"email@gmail.com",accessToken:"token",id:"id",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};import{mockStorage as h}from"@ducks-tinder-client/common";var $={async registration(t,e,r){return h.currentUser={...h.currentUser,name:e},L(h.currentUser),A({...y,...h.currentUser})},async login(t,e){return L(h.currentUser),A({...y,...h.currentUser})},async refresh(){let t=Q();return t?(h.currentUser=t,A({...y,...t})):K(401)},async logout(){return j(),A()}};import{COMMON_LIB_SETTINGS as b,instance as w}from"@ducks-tinder-client/common";var J=()=>V({async refresh(){return w.get(`${b.AUTH_SERVICE_URL}/auth/refresh`)},async registration(t,e,r){return w.post(`${b.AUTH_SERVICE_URL}/auth/register`,{email:t,name:e,password:r})},async login(t,e){return w.post(`${b.AUTH_SERVICE_URL}/auth/login`,{email:t,password:e})},async logout(){return w.patch(`${b.AUTH_SERVICE_URL}/auth/logout`)}},$);var N={authService:null},yt=(t,e)=>(N[t]||(N[t]=e()),N[t]),c=()=>yt("authService",J);import bt from"axios";import{COMMON_LIB_SETTINGS as wt}from"@ducks-tinder-client/common";function ir(t){t.interceptors.request.use(e=>(e.headers.Authorization="Bearer "+localStorage.getItem("accessToken"),e)),t.interceptors.response.use(e=>e,async e=>{let r=e.config;if(e.config?.url?.endsWith("/auth/refresh"))throw e;if(e.response?.status===401&&!e.config._isRetry){r._isRetry=!0;let o=await bt.get(`${wt.AUTH_SERVICE_URL}/auth/refresh`,{withCredentials:!0});return localStorage.setItem("accessToken",o.data.accessToken),t.request(r)}throw e})}import{returnErrorMessage as Et}from"@ducks-tinder-client/common";import{toast as It}from"react-toastify";function Y(){let t=i(r=>r.setAuthData),e=i(r=>r.setIsAuth);return Rt({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o})=>c().login(r,o),onError:r=>{t(null),e(!1),It(Et(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Ut}from"@tanstack/react-query";import{returnErrorMessage as Ct}from"@ducks-tinder-client/common";import{toast as Lt}from"react-toastify";function Z(){let t=i(r=>r.setAuthData),e=i(r=>r.setIsAuth);return Ut({mutationKey:["auth-data-mutation"],mutationFn:async({email:r,password:o,name:a})=>c().registration(r,a,o),onError:r=>{t(null),e(!1),Lt(Ct(r),{autoClose:15e3})},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Nt}from"@tanstack/react-query";function tt(){let t=i(r=>r.setAuthData),e=i(r=>r.setIsAuth);return Nt({mutationKey:["auth-data-mutation"],mutationFn:async()=>c().refresh(),onError:()=>{t(null),e(!1)},onSuccess:r=>{let{accessToken:o,...a}=r.data;localStorage.setItem("accessToken",o),t(a),e(!0)}})}import{useMutation as Pt}from"@tanstack/react-query";function Pr(){let t=i(o=>o.setAuthData),e=i(o=>o.setIsAuth),r=f(o=>o.setCurrentUser);return Pt({mutationKey:["auth-data-mutation"],mutationFn:async()=>(localStorage.removeItem("accessToken"),t(null),e(!1),r(null),c().logout())})}var et=(e=>(e.User="user",e))(et||{});import{useQuery as Wt}from"@tanstack/react-query";import{serviceGetter as Mt}from"@ducks-tinder-client/common";function rt(){return Wt({queryKey:["user"],queryFn:async()=>Mt.getUserService().getMe(),select:t=>t.data,retryDelay:2e3})}function k(t){let{mutateAsync:e,isPending:r}=Y(),{mutateAsync:o,isPending:a}=Z(),s=r||a,{register:u,formState:{errors:S,isValid:U},handleSubmit:lt}=Ft({mode:"onChange"}),ct=lt(async G=>{t?await o(G):await e(G)}),dt={type:"text",placeholder:p.TEXTS.auth.email,...u("email",{required:p.TEXTS.auth.emailRequired,pattern:{value:Ot,message:p.TEXTS.auth.emailIncorrect},maxLength:{value:30,message:p.TEXTS.auth.getEmailLengthMax(30)}})},ft={type:"password",placeholder:p.TEXTS.auth.password,...u("password",{required:p.TEXTS.auth.passwordRequired,minLength:{value:6,message:p.TEXTS.auth.getPasswordLengthMin(6)},maxLength:{value:30,message:p.TEXTS.auth.getPasswordLengthMax(30)}})},X={fields:{email:dt,password:ft},validation:{errors:S,isValid:U},submitHandler:ct,disabled:s};return t&&(X.fields.name={type:"text",placeholder:p.TEXTS.auth.name,...u("name",{required:p.TEXTS.auth.nameRequired,minLength:{value:2,message:p.TEXTS.auth.getNameLengthMin(2)},maxLength:{value:14,message:p.TEXTS.auth.getNameLengthMax(14)}})}),X}import{COMMON_LIB_SETTINGS as ot}from"@ducks-tinder-client/common";import{useEffect as at}from"react";import{toast as st}from"react-toastify";import{jsx as Ht}from"react/jsx-runtime";var it=t=>r=>{let{data:o,failureCount:a,isError:s,isLoading:u}=rt(),S=f(U=>U.setCurrentUser);return at(()=>{S(o||null)},[o,S]),at(()=>{s&&!o?st(ot.TEXTS.reconnection):a>=1&&st(ot.TEXTS.successConnect)},[o,a,s,u]),!u&&o?Ht(t,{...r}):null};import{useEffect as Dt}from"react";import{Navigate as nt,useLocation as Xt}from"react-router-dom";import{ROUTES as pt}from"@ducks-tinder-client/common";import{jsx as R}from"react/jsx-runtime";var P=t=>r=>{let{pathname:o}=Xt(),{mutateAsync:a}=tt(),s=i(u=>u.isAuth);return Dt(()=>{s===null&&a()},[s,a]),o===pt.LOGIN||o===pt.REGISTRATION?s?R(nt,{to:"/"}):R(t,{...r}):s===!1?R(nt,{to:"/login",replace:!0}):s?R(t,{...r}):null};import{Fragment as Gt,jsx as mt,jsxs as Bt}from"react/jsx-runtime";var W=t=>r=>Bt(Gt,{children:[mt(C,{}),mt(t,{...r})]});import{Link as qt}from"react-router-dom";import{faArrowRightLong as Kt,faEnvelope as Vt,faLock as jt}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as M}from"@fortawesome/react-fontawesome";var m={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};import{Button as Qt,TextField as ut}from"@ducks-tinder-client/ui";import{COMMON_LIB_SETTINGS as F}from"@ducks-tinder-client/common";import{jsx as x,jsxs as E}from"react/jsx-runtime";var $t=()=>{let{fields:{email:t,password:e},validation:{errors:r,isValid:o},submitHandler:a,disabled:s}=k();return x(z,{errors:r,title:F.TEXTS.auth.memberLogin,link:E(qt,{className:m.link,to:"/reg",children:[F.TEXTS.auth.create,x(M,{className:m.icon,icon:Kt})]}),children:E("form",{onSubmit:a,className:m.form,children:[E("div",{className:m.inputWrapper,children:[x(ut,{...t,variant:"rounded",extraClassName:m.input}),x(M,{className:m.icon,icon:Vt})]}),E("div",{className:m.inputWrapper,children:[x(ut,{...e,variant:"rounded",extraClassName:m.input}),x(M,{className:m.icon,icon:jt})]}),x(Qt,{type:"submit",rounded:!0,disabled:!o||s,extraClassName:[m.btn,o&&!s?"":m.disabled],children:F.TEXTS.auth.login})]})})};import{Link as Jt}from"react-router-dom";import{faArrowRightLong as Yt,faEnvelope as Zt,faFileText as te,faLock as ee}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as I}from"@fortawesome/react-fontawesome";var n={link:"_link_1o9kz_1",icon:"_icon_1o9kz_8",form:"_form_1o9kz_14",inputWrapper:"_inputWrapper_1o9kz_17",input:"_input_1o9kz_17",btn:"_btn_1o9kz_40",disabled:"_disabled_1o9kz_51"};import{Button as re,TextField as O}from"@ducks-tinder-client/ui";import{COMMON_LIB_SETTINGS as H}from"@ducks-tinder-client/common";import{jsx as l,jsxs as v}from"react/jsx-runtime";var oe=()=>{let{fields:{name:t,email:e,password:r},validation:{errors:o,isValid:a},submitHandler:s,disabled:u}=k(!0);return l(z,{errors:o,title:H.TEXTS.auth.memberSignUp,link:v(Jt,{className:n.link,to:"/login",children:[H.TEXTS.auth.loginAccount,l(I,{className:n.icon,icon:Yt})]}),children:v("form",{onSubmit:s,className:n.form,children:[v("div",{className:n.inputWrapper,children:[l(O,{...t,extraClassName:n.input,variant:"rounded"}),l(I,{className:n.icon,icon:te})]}),v("div",{className:n.inputWrapper,children:[l(O,{...e,variant:"rounded",extraClassName:n.input}),l(I,{className:n.icon,icon:Zt})]}),v("div",{className:n.inputWrapper,children:[l(O,{...r,variant:"rounded",extraClassName:n.input}),l(I,{className:n.icon,icon:ee})]}),l(re,{type:"submit",rounded:!0,disabled:!a||u,extraClassName:[n.btn,a&&!u?"":n.disabled],children:H.TEXTS.auth.signUp})]})})};D.addHocs(T.BOOTSTRAPPING,[W]);D.addHocs(T.AUTH_CHECK,[P]);D.addHocs(T.USER_HYDRATION,[it]);_t.addHocs(T.BOOTSTRAPPING,[W]);_t.addHocs(T.AUTH_CHECK,[P]);export{z as AuthLayout,g as AuthQueryKey,C as InitialLoading,$t as LoginForm,oe as RegistrationForm,et as UserQueryKey,P as WithAuthRedirect,W as WithInitialLoading,it as WithUserData,y as authResponseStub,j as deleteTestUser,c as getAuthService,V as getMockableService,yt as getOrCreateService,Q as getTestUser,K as rejectWithAxiosResponseError,A as resolveAxiosResponse,L as saveTestUser,ir as setUpInterceptors,k as useAuthForm,i as useAuthStore,rt as useGetCurrentUserQuery,Y as useLoginMutation,Pr as useLogoutMutation,tt as useRefreshMutation,Z as useRegisterMutation,f as useUserStore};
@@ -0,0 +1 @@
1
+ export { LoginForm } from './ui/LoginForm';
@@ -0,0 +1,2 @@
1
+ import type { ReactElement } from 'react';
2
+ export declare const LoginForm: () => ReactElement;
@@ -0,0 +1 @@
1
+ export { RegistrationForm } from './ui/RegistrationForm';
@@ -0,0 +1,2 @@
1
+ import type { ReactElement } from 'react';
2
+ export declare const RegistrationForm: () => ReactElement;
@@ -0,0 +1,4 @@
1
+ export * from './entities/user';
2
+ export * from './shared/api';
3
+ export * from './features/LoginForm';
4
+ export * from './features/RegistrationForm';
@@ -0,0 +1,2 @@
1
+ export * from './services';
2
+ export * from './interceptors';
@@ -0,0 +1,2 @@
1
+ import type { AxiosInstance } from 'axios';
2
+ export declare function setUpInterceptors(instance: AxiosInstance): void;
@@ -0,0 +1,21 @@
1
+ import type { AxiosResponse } from 'axios';
2
+ export interface LoginParams {
3
+ email: string;
4
+ password: string;
5
+ }
6
+ export interface RegistrationParams extends LoginParams {
7
+ name: string;
8
+ }
9
+ export interface AuthResponse {
10
+ id: string;
11
+ email: string;
12
+ accessToken: string;
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ }
16
+ export interface AuthService {
17
+ refresh(): Promise<AxiosResponse<AuthResponse>>;
18
+ registration(email: string, name: string, password: string): Promise<AxiosResponse<AuthResponse>>;
19
+ login(email: string, password: string): Promise<AxiosResponse<AuthResponse>>;
20
+ logout(): Promise<AxiosResponse<boolean>>;
21
+ }
@@ -0,0 +1,2 @@
1
+ import type { AuthService } from '../../../api';
2
+ export declare const authMockService: AuthService;
@@ -0,0 +1,2 @@
1
+ import type { AuthService } from './auth.interfaces';
2
+ export declare const createAuthService: () => AuthService;
@@ -0,0 +1,8 @@
1
+ export * from './mock';
2
+ export * from './auth/auth.interfaces';
3
+ import type { AuthService } from './auth/auth.interfaces';
4
+ interface Instances {
5
+ authService: AuthService | null;
6
+ }
7
+ export declare const getOrCreateService: <T extends Instances[keyof Instances]>(key: keyof Instances, createService: () => T) => T;
8
+ export declare const getAuthService: () => AuthService;
@@ -0,0 +1,2 @@
1
+ export * from './mock';
2
+ export * from './stub';
@@ -0,0 +1,8 @@
1
+ import type { User } from '@ducks-tinder-client/common';
2
+ import type { AxiosError, AxiosResponse } from 'axios';
3
+ export declare function resolveAxiosResponse<T>(data?: T): Promise<AxiosResponse<T>>;
4
+ export declare function rejectWithAxiosResponseError<T>(status: number, data?: T): Promise<AxiosError<T>>;
5
+ export declare function getMockableService<T>(service: T, mockService: T): T;
6
+ export declare function saveTestUser(user: User): void;
7
+ export declare function deleteTestUser(): void;
8
+ export declare function getTestUser(): User | null;
@@ -0,0 +1,2 @@
1
+ import type { AuthResponse } from '../../../../api';
2
+ export declare const authResponseStub: AuthResponse;
@@ -0,0 +1 @@
1
+ export * from './auth.stub';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ducks-tinder-client/auth",
3
- "version": "1.0.0-alpha.2",
3
+ "version": "1.0.0-alpha.3",
4
4
  "author": "Stepan B <dark_magic419a@mail.ru> (https://github.com/Stepasha419a)",
5
5
  "license": "MIT",
6
6
  "description": "A module of ui components",