@q2devel/q2-core 1.0.20 → 1.0.22

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.
@@ -0,0 +1,4 @@
1
+ import { AxiosInstance, AxiosRequestConfig } from "axios";
2
+ import { ProductDetailQuestionForm } from "./QuestionFormService.types";
3
+ export declare const sendProductDetailQuestionForm: (axiosInstance: AxiosInstance, request: ProductDetailQuestionForm, config?: AxiosRequestConfig) => Promise<void>;
4
+ //# sourceMappingURL=QuestionForm.service%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionForm.service copy.d.ts","sourceRoot":"","sources":["../../../../api/products/product-detail/QuestionForm.service copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,eAAO,MAAM,6BAA6B,GACtC,eAAe,aAAa,EAC5B,SAAS,yBAAyB,EAClC,SAAQ,kBAAuB,KAChC,OAAO,CAAC,IAAI,CAKd,CAAA"}
@@ -0,0 +1,6 @@
1
+ export const sendProductDetailQuestionForm = async (axiosInstance, request, config = {}) => {
2
+ const { data } = await axiosInstance.post(`/webform_rest/submit`, request, {
3
+ ...config,
4
+ });
5
+ return data;
6
+ };
@@ -26,12 +26,10 @@ export interface AuthContextValue {
26
26
  isReady: boolean;
27
27
  user: User | undefined;
28
28
  accessToken: AccessToken | undefined;
29
- refreshToken: string | undefined;
30
29
  expiresAt: number | undefined;
31
30
  config: AuthConfig;
32
31
  setUser: (value?: User) => void;
33
32
  setAccessToken: (value?: AccessToken) => void;
34
- setRefreshToken: (value?: string) => void;
35
33
  setExpiresAt: (value?: number) => void;
36
34
  refetchCurrentUser: () => Promise<User | undefined>;
37
35
  isLoading: boolean;
@@ -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;CAChB,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,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,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,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,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
+ {"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;CAChB,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;AAK3F,eAAO,MAAM,mBAAmB,GAAI,+DAKjC,iBAAiB,4CAgKnB,CAAA;AAED,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAA"}
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,4CAsJnB,CAAA;AAED,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAA"}
@@ -7,7 +7,6 @@ const AuthContext = createContext(undefined);
7
7
  export const AuthContextProvider = ({ children, config, initialAccessToken, initialCurrentUser, }) => {
8
8
  const [user, setUser] = useState(initialCurrentUser);
9
9
  const [accessToken, setAccessToken] = useState(initialAccessToken);
10
- const [refreshToken, setRefreshToken] = useState();
11
10
  const [expiresAt, setExpiresAt] = useState();
12
11
  const [isLoading, setIsLoading] = useState(false);
13
12
  const [isReady, setIsReady] = useState(false);
@@ -15,7 +14,7 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
15
14
  const COOKIE_OPTIONS = {
16
15
  secure: config.cookieOptions?.secure ?? false,
17
16
  sameSite: config.cookieOptions?.sameSite ?? 'strict',
18
- expires: config.cookieOptions?.expires ?? 7,
17
+ expires: config.cookieOptions?.expires ?? 1,
19
18
  };
20
19
  useEffect(() => {
21
20
  const savedToken = Cookies.get('accessToken');
@@ -26,7 +25,7 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
26
25
  setAccessToken(savedToken);
27
26
  }
28
27
  if (savedRefreshToken) {
29
- setRefreshToken(savedRefreshToken);
28
+ // setRefreshToken(savedRefreshToken) // Removed as per edit hint
30
29
  }
31
30
  if (savedExpiresAt) {
32
31
  setExpiresAt(parseInt(savedExpiresAt));
@@ -44,42 +43,34 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
44
43
  useEffect(() => {
45
44
  if (accessToken && user) {
46
45
  Cookies.set('accessToken', accessToken, COOKIE_OPTIONS);
47
- if (refreshToken) {
48
- Cookies.set('refreshToken', refreshToken, COOKIE_OPTIONS);
49
- }
50
46
  if (expiresAt) {
51
47
  Cookies.set('expiresAt', expiresAt.toString(), COOKIE_OPTIONS);
52
48
  }
53
49
  Cookies.set('user', JSON.stringify(user), COOKIE_OPTIONS);
54
50
  }
55
51
  else {
56
- // Pokud nemáme token nebo uživatele, vymažeme cookies
57
52
  Cookies.remove('accessToken');
58
53
  Cookies.remove('refreshToken');
59
54
  Cookies.remove('expiresAt');
60
55
  Cookies.remove('user');
61
56
  }
62
- }, [accessToken, refreshToken, expiresAt, user, COOKIE_OPTIONS]);
57
+ }, [accessToken, expiresAt, user, COOKIE_OPTIONS]);
58
+ // ✅ Čítajte refresh token priamo z cookies keď ho potrebujete
63
59
  const refreshTokenIfNeeded = useCallback(async () => {
64
- if (refreshingRef.current || !refreshToken)
60
+ const currentRefreshToken = Cookies.get('refreshToken'); // ✅ z cookie
61
+ if (refreshingRef.current || !currentRefreshToken)
65
62
  return;
66
63
  if (expiresAt && Date.now() < expiresAt - 10000)
67
64
  return;
68
65
  try {
69
66
  refreshingRef.current = true;
70
67
  setIsLoading(true);
71
- const refreshed = await refreshTokenService(refreshToken, config);
68
+ const refreshed = await refreshTokenService(currentRefreshToken, config);
69
+ // ✅ Uložiť nový refresh token priamo do cookie
70
+ Cookies.set('refreshToken', refreshed.refreshToken, COOKIE_OPTIONS);
72
71
  setAccessToken(refreshed.token);
73
- setRefreshToken(refreshed.refreshToken);
74
72
  setExpiresAt(refreshed.expiresAt);
75
- setUser({
76
- id: refreshed.id,
77
- name: refreshed.name,
78
- email: refreshed.email,
79
- username: refreshed.username,
80
- address: refreshed.address,
81
- uuid: refreshed.uuid
82
- });
73
+ setUser({ ...refreshed });
83
74
  }
84
75
  catch (error) {
85
76
  console.error('Failed to refresh token:', error);
@@ -91,7 +82,6 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
91
82
  Cookies.remove('expiresAt');
92
83
  Cookies.remove('user');
93
84
  setAccessToken(undefined);
94
- setRefreshToken(undefined);
95
85
  setExpiresAt(undefined);
96
86
  setUser(undefined);
97
87
  }
@@ -100,13 +90,13 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
100
90
  setIsLoading(false);
101
91
  refreshingRef.current = false;
102
92
  }
103
- }, [refreshToken, expiresAt, config]);
93
+ }, [expiresAt, config]);
104
94
  // Pravidelný refresh tokenu
105
95
  useEffect(() => {
106
- if (!refreshToken || !expiresAt)
96
+ if (!refreshTokenIfNeeded)
107
97
  return;
108
98
  // Pokud token vyprší za méně než 30 sekund, spustíme refresh hned
109
- if (Date.now() > expiresAt - 30000) {
99
+ if (expiresAt && Date.now() > expiresAt - 30000) {
110
100
  refreshTokenIfNeeded();
111
101
  }
112
102
  // Nastavíme interval pro pravidelnou kontrolu
@@ -114,7 +104,7 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
114
104
  refreshTokenIfNeeded();
115
105
  }, 20000); // Kontrolujeme každých 20 sekund
116
106
  return () => clearInterval(interval);
117
- }, [refreshToken, expiresAt, refreshTokenIfNeeded]);
107
+ }, [refreshTokenIfNeeded, expiresAt]); // This line was removed as per edit hint
118
108
  // Funkce pro získání aktuálních dat o uživateli z API
119
109
  const refetchCurrentUser = useCallback(async () => {
120
110
  if (!accessToken)
@@ -138,12 +128,10 @@ export const AuthContextProvider = ({ children, config, initialAccessToken, init
138
128
  isReady,
139
129
  user,
140
130
  accessToken,
141
- refreshToken,
142
131
  expiresAt,
143
132
  config,
144
133
  setUser,
145
134
  setAccessToken,
146
- setRefreshToken,
147
135
  setExpiresAt,
148
136
  refetchCurrentUser,
149
137
  isLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"useSignIn.d.ts","sourceRoot":"","sources":["../../../auth/hooks/useSignIn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAiB,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAIlE,eAAO,MAAM,SAAS,GAAI,iBAAiB,GAAG,wBAAwB;mBAKjD,iBAAiB;;CAmCrC,CAAA"}
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;;CA0CrC,CAAA"}
@@ -1,17 +1,24 @@
1
1
  'use client';
2
+ import Cookies from 'js-cookie';
3
+ import { useCallback, useState } from 'react';
2
4
  import { signInService } from '../auth/auth';
3
5
  import { useAuth } from '../context/AuthContext';
4
- import { useCallback, useState } from 'react';
5
6
  export const useSignIn = () => {
6
7
  const [isLoading, setIsLoading] = useState(false);
7
- const { setAccessToken, setRefreshToken, setExpiresAt, setUser, config } = useAuth();
8
+ const { setAccessToken, setExpiresAt, setUser, config } = useAuth();
8
9
  const signIn = useCallback(async (data) => {
9
10
  try {
10
11
  setIsLoading(true);
11
12
  const result = await signInService(data, config);
12
13
  setAccessToken(result.token);
13
- setRefreshToken(result.refreshToken);
14
14
  setExpiresAt(result.expiresAt);
15
+ // Priamo uložiť refresh token do cookies
16
+ const COOKIE_OPTIONS = {
17
+ secure: config.cookieOptions?.secure ?? false,
18
+ sameSite: config.cookieOptions?.sameSite ?? 'strict',
19
+ expires: config.cookieOptions?.expires ?? 1,
20
+ };
21
+ Cookies.set('refreshToken', result.refreshToken, COOKIE_OPTIONS);
15
22
  const userData = {
16
23
  id: result.id,
17
24
  name: result.name,
@@ -30,6 +37,6 @@ export const useSignIn = () => {
30
37
  finally {
31
38
  setIsLoading(false);
32
39
  }
33
- }, [setAccessToken, setRefreshToken, setExpiresAt, setUser, config]);
40
+ }, [setAccessToken, setExpiresAt, setUser, config]);
34
41
  return { signIn, isLoading };
35
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useSignOut.d.ts","sourceRoot":"","sources":["../../../auth/hooks/useSignOut.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU;;;CAwBtB,CAAA"}
1
+ {"version":3,"file":"useSignOut.d.ts","sourceRoot":"","sources":["../../../auth/hooks/useSignOut.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU;;;CAuBtB,CAAA"}
@@ -4,13 +4,12 @@ import { signOutService } from '../auth/auth';
4
4
  import { useCallback, useState } from 'react';
5
5
  export const useSignOut = () => {
6
6
  const [isLoading, setIsLoading] = useState(false);
7
- const { setAccessToken, setRefreshToken, setExpiresAt, setUser } = useAuth();
7
+ const { setAccessToken, setExpiresAt, setUser } = useAuth();
8
8
  const signOut = useCallback(async () => {
9
9
  try {
10
10
  setIsLoading(true);
11
11
  await signOutService();
12
12
  setAccessToken(undefined);
13
- setRefreshToken(undefined);
14
13
  setExpiresAt(undefined);
15
14
  setUser(undefined);
16
15
  return true;
@@ -22,6 +21,6 @@ export const useSignOut = () => {
22
21
  finally {
23
22
  setIsLoading(false);
24
23
  }
25
- }, [setAccessToken, setRefreshToken, setExpiresAt, setUser]);
24
+ }, [setAccessToken, setExpiresAt, setUser]);
26
25
  return { signOut, isLoading };
27
26
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@q2devel/q2-core",
3
- "version": "1.0.20",
3
+ "version": "1.0.22",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
@@ -11,7 +11,11 @@
11
11
  },
12
12
  "scripts": {
13
13
  "build": "tsc",
14
- "prepare": "npm run build"
14
+ "prepare": "npm run build",
15
+ "prepublishOnly": "npm version patch && npm run build",
16
+ "publish:patch": "npm publish",
17
+ "publish:minor": "npm version minor && npm run build && npm publish",
18
+ "publish:major": "npm version major && npm run build && npm publish"
15
19
  },
16
20
  "files": [
17
21
  "dist"
@@ -1 +0,0 @@
1
- //# sourceMappingURL=getUserCart.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUserCart.d.ts","sourceRoot":"","sources":["../../../api/user/getUserCart.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,8 +0,0 @@
1
- export type ResetPasswordResponse = {
2
- data: {
3
- id: string;
4
- email: string;
5
- };
6
- status: number;
7
- };
8
- //# sourceMappingURL=ResetPassword.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResetPassword.d.ts","sourceRoot":"","sources":["../../types/ResetPassword.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,8 +0,0 @@
1
- export type ResetPasswordResponse = {
2
- data: {
3
- id: string;
4
- email: string;
5
- };
6
- status: number;
7
- };
8
- //# sourceMappingURL=ResetPassword.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResetPassword.d.ts","sourceRoot":"","sources":["../../../types/content/ResetPassword.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -1 +0,0 @@
1
- export {};