@q2devel/q2-core 1.0.24 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/auth/auth.config.d.ts +3 -0
- package/dist/auth/auth/auth.config.d.ts.map +1 -1
- package/dist/auth/auth/auth.d.ts.map +1 -1
- package/dist/auth/auth/auth.js +19 -18
- package/dist/auth/auth/auth.types.d.ts +1 -0
- package/dist/auth/auth/auth.types.d.ts.map +1 -1
- package/dist/auth/context/AuthContext.d.ts.map +1 -1
- package/dist/auth/context/AuthContext.js +22 -13
- package/dist/auth/hooks/useSignIn.d.ts.map +1 -1
- package/dist/auth/hooks/useSignIn.js +17 -1
- package/dist/auth/hooks/useSignOut.d.ts.map +1 -1
- package/dist/auth/hooks/useSignOut.js +2 -0
- package/dist/auth/services/user.service.d.ts +3 -1
- package/dist/auth/services/user.service.d.ts.map +1 -1
- package/dist/auth/services/user.service.js +40 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/utils/mapProducts.d.ts.map +1 -1
- package/dist/utils/mapProducts.js +0 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.config.d.ts","sourceRoot":"","sources":["../../../auth/auth/auth.config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;QACpC,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;
|
|
1
|
+
{"version":3,"file":"auth.config.d.ts","sourceRoot":"","sources":["../../../auth/auth/auth.config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;QACpC,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,OAAO,CAAC,EAAE,GAAG,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,UAAU,CAAA;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../auth/auth/auth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE5D,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CAEjB,CAAA;AAED,MAAM,MAAM,2CAA2C,GAAG;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAEhB,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,aAAa,GACtB,MAAM,wBAAwB,EAC9B,QAAQ,UAAU,KACnB,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../auth/auth/auth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE5D,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CAEjB,CAAA;AAED,MAAM,MAAM,2CAA2C,GAAG;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAEhB,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,aAAa,GACtB,MAAM,wBAAwB,EAC9B,QAAQ,UAAU,KACnB,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAmCvC,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC5B,cAAc,MAAM,EACpB,QAAQ,UAAU,KACnB,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CA6BvC,CAAA;AAGD,eAAO,MAAM,aAAa,GAAU,aAAa,MAAM,EAAE,QAAQ,UAAU,KAAG,OAAO,CAAC,IAAI,CAkCzF,CAAA;AAED,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,IAAI,CAKnD,CAAA;AAGD,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,GAAG,IAAI,KAAG,OAQvD,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,SAAS;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,OAEjF,CAAA"}
|
package/dist/auth/auth/auth.js
CHANGED
|
@@ -19,8 +19,13 @@ export const signInService = async (data, config) => {
|
|
|
19
19
|
throw new Error('Invalid credentials');
|
|
20
20
|
}
|
|
21
21
|
const tokenData = await response.json();
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
let userInfo;
|
|
23
|
+
try {
|
|
24
|
+
userInfo = await fetchUserInfo(tokenData.access_token, config);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
throw new Error('invalid-customer');
|
|
28
|
+
}
|
|
24
29
|
return {
|
|
25
30
|
...userInfo,
|
|
26
31
|
token: tokenData.access_token,
|
|
@@ -64,29 +69,25 @@ export const fetchUserInfo = async (accessToken, config) => {
|
|
|
64
69
|
});
|
|
65
70
|
// Použít existující getUser službu
|
|
66
71
|
const userData = await getUser({
|
|
72
|
+
authConfig: config,
|
|
67
73
|
axiosInstance,
|
|
68
74
|
userId: decoded.sub,
|
|
69
75
|
token: accessToken,
|
|
70
76
|
});
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
};
|
|
77
|
+
if (config.control && config.control.field_under_customer?.id) {
|
|
78
|
+
const requiredId = config.control.field_under_customer.id;
|
|
79
|
+
const userId = userData.field_under_customer?.id;
|
|
80
|
+
if (userId !== requiredId) {
|
|
81
|
+
throw new Error('User does not have required field_under_customer.id');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Base user data
|
|
85
|
+
const baseUserData = { ...userData, id: decoded.sub ?? '' };
|
|
86
|
+
return baseUserData;
|
|
80
87
|
}
|
|
81
88
|
catch (error) {
|
|
82
89
|
console.error('Error fetching user info:', error);
|
|
83
|
-
|
|
84
|
-
const decoded = jwtDecode(accessToken);
|
|
85
|
-
return { id: decoded.sub ?? '' };
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
return { id: '' };
|
|
89
|
-
}
|
|
90
|
+
throw error;
|
|
90
91
|
}
|
|
91
92
|
};
|
|
92
93
|
export const signOutService = async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.types.d.ts","sourceRoot":"","sources":["../../../auth/auth/auth.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC,MAAM,MAAM,IAAI,GAAG;IACf,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"auth.types.d.ts","sourceRoot":"","sources":["../../../auth/auth/auth.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC,MAAM,MAAM,IAAI,GAAG;IACf,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG;IACzC,KAAK,EAAE,WAAW,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;IAClB,kBAAkB,CAAC,EAAE,WAAW,CAAA;IAChC,kBAAkB,CAAC,EAAE,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;IACtB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;IACpC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IAC/B,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAA;IACnD,SAAS,EAAE,OAAO,CAAA;CACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../../auth/context/AuthContext.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAe,gBAAgB,EAAE,iBAAiB,EAAQ,MAAM,oBAAoB,CAAA;AAI3F,eAAO,MAAM,mBAAmB,GAAI,+DAKjC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../../auth/context/AuthContext.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAe,gBAAgB,EAAE,iBAAiB,EAAQ,MAAM,oBAAoB,CAAA;AAI3F,eAAO,MAAM,mBAAmB,GAAI,+DAKjC,iBAAiB,4CAkKnB,CAAA;AAED,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import Cookies from 'js-cookie';
|
|
4
|
-
import { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import { fetchUserInfo, refreshTokenService } from '../auth/auth';
|
|
6
6
|
const AuthContext = createContext(undefined);
|
|
7
7
|
export const AuthContextProvider = ({ children, config, initialAccessToken, initialCurrentUser, }) => {
|
|
@@ -11,11 +11,15 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
|
|
|
11
11
|
const [isLoading, setIsLoading] = useState(false);
|
|
12
12
|
const [isReady, setIsReady] = useState(false);
|
|
13
13
|
const refreshingRef = useRef(false);
|
|
14
|
-
const COOKIE_OPTIONS = {
|
|
14
|
+
const COOKIE_OPTIONS = useMemo(() => ({
|
|
15
15
|
secure: config.cookieOptions?.secure ?? false,
|
|
16
16
|
sameSite: config.cookieOptions?.sameSite ?? 'strict',
|
|
17
17
|
expires: config.cookieOptions?.expires ?? 1,
|
|
18
|
-
}
|
|
18
|
+
}), [
|
|
19
|
+
config.cookieOptions?.secure,
|
|
20
|
+
config.cookieOptions?.sameSite,
|
|
21
|
+
config.cookieOptions?.expires,
|
|
22
|
+
]);
|
|
19
23
|
useEffect(() => {
|
|
20
24
|
const savedToken = Cookies.get('accessToken');
|
|
21
25
|
const savedRefreshToken = Cookies.get('refreshToken');
|
|
@@ -32,7 +36,8 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
|
|
|
32
36
|
}
|
|
33
37
|
if (savedUser) {
|
|
34
38
|
try {
|
|
35
|
-
|
|
39
|
+
const parsedUser = JSON.parse(savedUser);
|
|
40
|
+
setUser(parsedUser);
|
|
36
41
|
}
|
|
37
42
|
catch (e) {
|
|
38
43
|
console.error('Failed to parse user from cookie');
|
|
@@ -50,14 +55,23 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
|
|
|
50
55
|
}
|
|
51
56
|
else {
|
|
52
57
|
Cookies.remove('accessToken');
|
|
53
|
-
Cookies.remove('refreshToken');
|
|
54
58
|
Cookies.remove('expiresAt');
|
|
55
59
|
Cookies.remove('user');
|
|
56
60
|
}
|
|
57
61
|
}, [accessToken, expiresAt, user, COOKIE_OPTIONS]);
|
|
62
|
+
const clearAllAuth = useCallback(() => {
|
|
63
|
+
Cookies.remove('accessToken');
|
|
64
|
+
Cookies.remove('refreshToken');
|
|
65
|
+
Cookies.remove('expiresAt');
|
|
66
|
+
Cookies.remove('user');
|
|
67
|
+
setAccessToken(undefined);
|
|
68
|
+
setExpiresAt(undefined);
|
|
69
|
+
setUser(undefined);
|
|
70
|
+
}, []);
|
|
58
71
|
// ✅ Čítajte refresh token priamo z cookies keď ho potrebujete
|
|
59
72
|
const refreshTokenIfNeeded = useCallback(async () => {
|
|
60
73
|
const currentRefreshToken = Cookies.get('refreshToken'); // ✅ z cookie
|
|
74
|
+
console.log('🔄 Refresh začína, refresh token:', !!currentRefreshToken); // Debug
|
|
61
75
|
if (refreshingRef.current || !currentRefreshToken)
|
|
62
76
|
return;
|
|
63
77
|
if (expiresAt && Date.now() < expiresAt - 10000)
|
|
@@ -68,6 +82,7 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
|
|
|
68
82
|
const refreshed = await refreshTokenService(currentRefreshToken, config);
|
|
69
83
|
// ✅ Uložiť nový refresh token priamo do cookie
|
|
70
84
|
Cookies.set('refreshToken', refreshed.refreshToken, COOKIE_OPTIONS);
|
|
85
|
+
console.log('✅ Nový refresh token uložený'); // Debug
|
|
71
86
|
setAccessToken(refreshed.token);
|
|
72
87
|
setExpiresAt(refreshed.expiresAt);
|
|
73
88
|
setUser({ ...refreshed });
|
|
@@ -77,20 +92,14 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
|
|
|
77
92
|
// Pokud refresh token selhal, můžeme vymazat autentifikační data
|
|
78
93
|
if (error instanceof Error && error.message === 'Failed to refresh token') {
|
|
79
94
|
// Odstranění cookies
|
|
80
|
-
|
|
81
|
-
Cookies.remove('refreshToken');
|
|
82
|
-
Cookies.remove('expiresAt');
|
|
83
|
-
Cookies.remove('user');
|
|
84
|
-
setAccessToken(undefined);
|
|
85
|
-
setExpiresAt(undefined);
|
|
86
|
-
setUser(undefined);
|
|
95
|
+
clearAllAuth();
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
98
|
finally {
|
|
90
99
|
setIsLoading(false);
|
|
91
100
|
refreshingRef.current = false;
|
|
92
101
|
}
|
|
93
|
-
}, [expiresAt, config]);
|
|
102
|
+
}, [expiresAt, config, COOKIE_OPTIONS, clearAllAuth]);
|
|
94
103
|
// Pravidelný refresh tokenu
|
|
95
104
|
useEffect(() => {
|
|
96
105
|
if (!refreshTokenIfNeeded)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignIn.d.ts","sourceRoot":"","sources":["../../../auth/hooks/useSignIn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAGlE,eAAO,MAAM,SAAS,GAAI,iBAAiB,GAAG,wBAAwB;mBAKjD,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"useSignIn.d.ts","sourceRoot":"","sources":["../../../auth/hooks/useSignIn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAGlE,eAAO,MAAM,SAAS,GAAI,iBAAiB,GAAG,wBAAwB;mBAKjD,iBAAiB;;CA6DrC,CAAA"}
|
|
@@ -19,6 +19,7 @@ export const useSignIn = () => {
|
|
|
19
19
|
expires: config.cookieOptions?.expires ?? 1,
|
|
20
20
|
};
|
|
21
21
|
Cookies.set('refreshToken', result.refreshToken, COOKIE_OPTIONS);
|
|
22
|
+
// Base user data
|
|
22
23
|
const userData = {
|
|
23
24
|
id: result.id,
|
|
24
25
|
name: result.name,
|
|
@@ -27,7 +28,22 @@ export const useSignIn = () => {
|
|
|
27
28
|
address: result.address,
|
|
28
29
|
uuid: result.uuid,
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
+
// Custom fields
|
|
32
|
+
const customFields = (config.customFields ?? []).reduce((acc, field) => {
|
|
33
|
+
if (result[field] !== undefined) {
|
|
34
|
+
acc[field] = result[field];
|
|
35
|
+
}
|
|
36
|
+
return acc;
|
|
37
|
+
}, {});
|
|
38
|
+
// Relationships fields
|
|
39
|
+
const relationshipsFields = (config.relationshipsFields ?? []).reduce((acc, field) => {
|
|
40
|
+
if (result[field] !== undefined) {
|
|
41
|
+
acc[field] = result[field];
|
|
42
|
+
}
|
|
43
|
+
return acc;
|
|
44
|
+
}, {});
|
|
45
|
+
const finalUserData = { ...userData, ...customFields, ...relationshipsFields };
|
|
46
|
+
setUser(finalUserData);
|
|
31
47
|
return result;
|
|
32
48
|
}
|
|
33
49
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignOut.d.ts","sourceRoot":"","sources":["../../../auth/hooks/useSignOut.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSignOut.d.ts","sourceRoot":"","sources":["../../../auth/hooks/useSignOut.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU;;;CAwBtB,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { useAuth } from '../context/AuthContext';
|
|
3
3
|
import { signOutService } from '../auth/auth';
|
|
4
4
|
import { useCallback, useState } from 'react';
|
|
5
|
+
import Cookies from 'js-cookie';
|
|
5
6
|
export const useSignOut = () => {
|
|
6
7
|
const [isLoading, setIsLoading] = useState(false);
|
|
7
8
|
const { setAccessToken, setExpiresAt, setUser } = useAuth();
|
|
@@ -9,6 +10,7 @@ export const useSignOut = () => {
|
|
|
9
10
|
try {
|
|
10
11
|
setIsLoading(true);
|
|
11
12
|
await signOutService();
|
|
13
|
+
Cookies.remove('refreshToken');
|
|
12
14
|
setAccessToken(undefined);
|
|
13
15
|
setExpiresAt(undefined);
|
|
14
16
|
setUser(undefined);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { AxiosInstance, AxiosRequestConfig } from 'axios';
|
|
2
2
|
import { User } from '../auth/auth.types';
|
|
3
|
+
import { AuthConfig } from '../auth/auth.config';
|
|
3
4
|
type GetUserParams = {
|
|
4
5
|
axiosInstance: AxiosInstance;
|
|
6
|
+
authConfig?: AuthConfig;
|
|
5
7
|
config?: AxiosRequestConfig;
|
|
6
8
|
userId?: string;
|
|
7
9
|
token?: string;
|
|
8
10
|
};
|
|
9
|
-
export declare const getUser: ({ axiosInstance, config, userId, token, }: GetUserParams) => Promise<User>;
|
|
11
|
+
export declare const getUser: ({ axiosInstance, authConfig, config, userId, token, }: GetUserParams) => Promise<User>;
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=user.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../../auth/services/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../../auth/services/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,KAAK,aAAa,GAAG;IACjB,aAAa,EAAE,aAAa,CAAA;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,uDAM3B,aAAa,KAAG,OAAO,CAAC,IAAI,CA6E9B,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DrupalJsonApiParams } from 'drupal-jsonapi-params';
|
|
2
|
-
export const getUser = async ({ axiosInstance, config = {}, userId, token, }) => {
|
|
2
|
+
export const getUser = async ({ axiosInstance, authConfig, config = {}, userId, token, }) => {
|
|
3
3
|
const params = new DrupalJsonApiParams();
|
|
4
4
|
userId && params.addFilter('drupal_internal__uid', userId, 'IN');
|
|
5
5
|
const queryString = params.getQueryString();
|
|
@@ -10,11 +10,48 @@ export const getUser = async ({ axiosInstance, config = {}, userId, token, }) =>
|
|
|
10
10
|
});
|
|
11
11
|
const firstItem = data.data?.[0];
|
|
12
12
|
const customerId = firstItem?.relationships?.customer_profiles?.data?.[0]?.id;
|
|
13
|
+
const attributes = firstItem?.attributes;
|
|
14
|
+
// Base user data
|
|
13
15
|
let mappedUser = {
|
|
14
|
-
name:
|
|
15
|
-
email:
|
|
16
|
+
name: attributes?.name ?? '',
|
|
17
|
+
email: attributes?.mail ?? '',
|
|
16
18
|
id: customerId ?? '',
|
|
17
19
|
};
|
|
20
|
+
// Custom fields
|
|
21
|
+
let customFields = {};
|
|
22
|
+
if (authConfig && authConfig.customFields) {
|
|
23
|
+
customFields = (authConfig.customFields ?? []).reduce((acc, field) => {
|
|
24
|
+
if (attributes && attributes[field] !== undefined) {
|
|
25
|
+
acc[field] = attributes[field];
|
|
26
|
+
}
|
|
27
|
+
return acc;
|
|
28
|
+
}, {});
|
|
29
|
+
}
|
|
30
|
+
// Relationships fields
|
|
31
|
+
let relationshipsFields = {};
|
|
32
|
+
if (authConfig && authConfig.relationshipsFields) {
|
|
33
|
+
relationshipsFields = (authConfig.relationshipsFields ?? []).reduce((acc, field) => {
|
|
34
|
+
const rel = firstItem?.relationships?.[field]?.data;
|
|
35
|
+
if (rel) {
|
|
36
|
+
if (Array.isArray(rel)) {
|
|
37
|
+
// Pokud je to pole (např. více vztahů)
|
|
38
|
+
acc[field] = rel.map((item) => ({
|
|
39
|
+
id: item.id,
|
|
40
|
+
drupal_internal__target_id: item.meta?.drupal_internal__target_id
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Pokud je to objekt
|
|
45
|
+
acc[field] = {
|
|
46
|
+
id: rel.id,
|
|
47
|
+
drupal_internal__target_id: rel.meta?.drupal_internal__target_id
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return acc;
|
|
52
|
+
}, {});
|
|
53
|
+
}
|
|
54
|
+
mappedUser = { ...mappedUser, ...customFields, ...relationshipsFields };
|
|
18
55
|
if (customerId) {
|
|
19
56
|
const { data: customerData } = await axiosInstance.get(`/jsonapi/profile/customer/${customerId}`, {
|
|
20
57
|
...config,
|
package/dist/index.d.ts
CHANGED
|
@@ -32,5 +32,6 @@ export * from './context/cart/BasketContext';
|
|
|
32
32
|
export * from './api/cart/Cart.service';
|
|
33
33
|
export * from './api/cart/CartService.types';
|
|
34
34
|
export * from './utils/mapProducts';
|
|
35
|
+
export * from './utils/mapIncludedResources';
|
|
35
36
|
export { useUrlModal } from './auth/hooks/useUrlModal';
|
|
36
37
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AAErC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AAGpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAG5B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AAGxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,oCAAoC,CAAA;AAElD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kCAAkC,CAAA;AAEhD,cAAc,mCAAmC,CAAA;AACjD,cAAc,wCAAwC,CAAA;AAGtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,gDAAgD,CAAA;AAC9D,cAAc,yBAAyB,CAAA;AAGvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AAEpD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAG/C,cAAc,WAAW,CAAA;AACzB,cAAc,8BAA8B,CAAA;AAE5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAE5C,cAAc,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AAErC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AAGpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAG5B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AAGxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,oCAAoC,CAAA;AAElD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kCAAkC,CAAA;AAEhD,cAAc,mCAAmC,CAAA;AACjD,cAAc,wCAAwC,CAAA;AAGtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,gDAAgD,CAAA;AAC9D,cAAc,yBAAyB,CAAA;AAGvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AAEpD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAG/C,cAAc,WAAW,CAAA;AACzB,cAAc,8BAA8B,CAAA;AAE5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAE5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -38,4 +38,5 @@ export * from './context/cart/BasketContext';
|
|
|
38
38
|
export * from './api/cart/Cart.service';
|
|
39
39
|
export * from './api/cart/CartService.types';
|
|
40
40
|
export * from './utils/mapProducts';
|
|
41
|
+
export * from './utils/mapIncludedResources';
|
|
41
42
|
export { useUrlModal } from './auth/hooks/useUrlModal';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapProducts.d.ts","sourceRoot":"","sources":["../../utils/mapProducts.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,OAAO,EAAE,MAAM,2BAA2B,CAAC;AA0EzE,wBAAgB,UAAU,CAAC,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAaxF;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"mapProducts.d.ts","sourceRoot":"","sources":["../../utils/mapProducts.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,OAAO,EAAE,MAAM,2BAA2B,CAAC;AA0EzE,wBAAgB,UAAU,CAAC,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAaxF;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAKxF"}
|
|
@@ -70,7 +70,6 @@ export function mapProduct(defaultProduct, variationProduct, ctx) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
export function mapProductLite(defaultProduct, variationProduct, ctx) {
|
|
73
|
-
// console.log('Mapping product lite', defaultProduct, variationProduct);
|
|
74
73
|
return {
|
|
75
74
|
...mapProductBase(defaultProduct, variationProduct, ctx),
|
|
76
75
|
related_products: [],
|