ingeniuscliq-core 0.5.69 → 0.5.71
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/helpers/axiosGlobal.d.ts +10 -4
- package/dist/helpers/axiosGlobal.d.ts.map +1 -1
- package/dist/helpers/axiosGlobal.js +21 -50
- package/dist/index.js +1 -1
- package/dist/modules/CoreAuth/classes/CoreAuthBuilder.d.ts.map +1 -1
- package/dist/modules/CoreAuth/classes/CoreAuthBuilder.js +5 -0
- package/dist/modules/CoreAuth/types/CoreAuth.d.ts +1 -0
- package/dist/modules/CoreAuth/types/CoreAuth.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
|
2
2
|
export declare let api: AxiosInstance;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Returns the existing guest token from localStorage or generates and stores a new one.
|
|
5
5
|
*/
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const getGuestToken: () => string;
|
|
7
|
+
/** Returns the stored auth token, or null if the user is not logged in. */
|
|
8
|
+
export declare const getAuthToken: () => string | null;
|
|
9
|
+
/** Persists the auth token after a successful login/register. */
|
|
10
|
+
export declare const setAuthToken: (token: string) => void;
|
|
11
|
+
/** Removes the auth token on logout or account deletion. */
|
|
12
|
+
export declare const removeAuthToken: () => void;
|
|
7
13
|
/**
|
|
8
|
-
*
|
|
14
|
+
* Configures axios interceptors with the given base URL.
|
|
9
15
|
*/
|
|
10
|
-
export declare const
|
|
16
|
+
export declare const initAxiosConfigs: (baseURL: string) => void;
|
|
11
17
|
export default api;
|
|
12
18
|
//# sourceMappingURL=axiosGlobal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosGlobal.d.ts","sourceRoot":"","sources":["../../src/helpers/axiosGlobal.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"axiosGlobal.d.ts","sourceRoot":"","sources":["../../src/helpers/axiosGlobal.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7C,eAAO,IAAI,GAAG,EAAE,aAKd,CAAC;AAKH;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAOhC,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,YAAY,QAAO,MAAM,GAAG,IACH,CAAC;AAEvC,iEAAiE;AACjE,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,IACA,CAAC;AAE9C,4DAA4D;AAC5D,eAAO,MAAM,eAAe,QAAO,IACM,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,IAiBlD,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
|
@@ -1,68 +1,39 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
|
|
3
3
|
let api = axios.create({
|
|
4
|
-
withCredentials: true,
|
|
5
4
|
headers: {
|
|
6
5
|
"Accept": "application/json",
|
|
7
6
|
"Content-Type": "application/json"
|
|
8
7
|
}
|
|
9
8
|
});
|
|
10
|
-
|
|
9
|
+
const GUEST_TOKEN_KEY = "click_guest_token";
|
|
10
|
+
const AUTH_TOKEN_KEY = "click_auth_token";
|
|
11
|
+
const getGuestToken = () => {
|
|
12
|
+
let token = localStorage.getItem(GUEST_TOKEN_KEY);
|
|
13
|
+
if (!token) {
|
|
14
|
+
token = crypto.randomUUID();
|
|
15
|
+
localStorage.setItem(GUEST_TOKEN_KEY, token);
|
|
16
|
+
}
|
|
17
|
+
return token;
|
|
18
|
+
};
|
|
19
|
+
const getAuthToken = () => localStorage.getItem(AUTH_TOKEN_KEY);
|
|
20
|
+
const setAuthToken = (token) => localStorage.setItem(AUTH_TOKEN_KEY, token);
|
|
21
|
+
const removeAuthToken = () => localStorage.removeItem(AUTH_TOKEN_KEY);
|
|
11
22
|
const initAxiosConfigs = (baseURL) => {
|
|
12
23
|
api.interceptors.request.use(
|
|
13
|
-
|
|
24
|
+
(config) => {
|
|
14
25
|
config.baseURL = baseURL;
|
|
15
26
|
config.headers["X-Tenant"] = window.location.host.split(":")[0];
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
const authToken = getAuthToken();
|
|
28
|
+
if (authToken) {
|
|
29
|
+
config.headers["Authorization"] = `Bearer ${authToken}`;
|
|
30
|
+
} else {
|
|
31
|
+
config.headers["X-Guest-Token"] = getGuestToken();
|
|
21
32
|
}
|
|
22
33
|
return config;
|
|
23
34
|
},
|
|
24
|
-
(error) =>
|
|
25
|
-
return Promise.reject(error);
|
|
26
|
-
}
|
|
27
|
-
);
|
|
28
|
-
api.interceptors.response.use(
|
|
29
|
-
(response) => {
|
|
30
|
-
const setCookieHeader = response.headers["set-cookie"];
|
|
31
|
-
if (setCookieHeader?.find((cookie) => cookie.includes("XSRF-TOKEN"))) {
|
|
32
|
-
console.debug("New CSRF token received from server");
|
|
33
|
-
}
|
|
34
|
-
return response;
|
|
35
|
-
},
|
|
36
|
-
async (error) => {
|
|
37
|
-
return Promise.reject(error);
|
|
38
|
-
}
|
|
35
|
+
(error) => Promise.reject(error)
|
|
39
36
|
);
|
|
40
37
|
};
|
|
41
|
-
const ensureCsrfToken = async (baseURL) => {
|
|
42
|
-
console.log("Ensuring csrf token");
|
|
43
|
-
if (!csrfTokenFetched) {
|
|
44
|
-
try {
|
|
45
|
-
await api.get(`${baseURL}/sanctum/csrf-cookie`);
|
|
46
|
-
csrfTokenFetched = true;
|
|
47
|
-
} catch (error) {
|
|
48
|
-
console.error("Failed to fetch CSRF token:", error);
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
};
|
|
54
|
-
const attachCsrfToken = (config) => {
|
|
55
|
-
console.log("Attaching");
|
|
56
|
-
console.log(document.cookie, "document cookie");
|
|
57
|
-
const xsrfCookie = document.cookie.split("; ").find((cookie) => cookie.startsWith("XSRF-TOKEN="));
|
|
58
|
-
if (xsrfCookie) {
|
|
59
|
-
const token = xsrfCookie.split("=")[1];
|
|
60
|
-
const decodedToken = decodeURIComponent(token);
|
|
61
|
-
console.log(config.headers, "config-headers");
|
|
62
|
-
if (config.headers) {
|
|
63
|
-
config.headers["X-XSRF-TOKEN"] = decodedToken;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
38
|
|
|
68
|
-
export { api, api as default,
|
|
39
|
+
export { api, api as default, getAuthToken, getGuestToken, initAxiosConfigs, removeAuthToken, setAuthToken };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { CoreBuilder } from './classes/CoreBuilder.js';
|
|
2
2
|
export { CoreBaseBuilder } from './classes/CoreBaseBuilder.js';
|
|
3
|
-
export { api,
|
|
3
|
+
export { api, getAuthToken, getGuestToken, initAxiosConfigs, removeAuthToken, setAuthToken } from './helpers/axiosGlobal.js';
|
|
4
4
|
export { capitalizeFirstLetter } from './helpers/strings.js';
|
|
5
5
|
export { getImageUrlByTenant } from './helpers/image.js';
|
|
6
6
|
export { formatSchedule, formatScheduleArray, getTodaySchedule, isStoreOpen } from './helpers/schedule.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreAuthBuilder.d.ts","sourceRoot":"","sources":["../../../../src/modules/CoreAuth/classes/CoreAuthBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAiD,MAAM,mBAAmB,CAAC;AAEhH,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"CoreAuthBuilder.d.ts","sourceRoot":"","sources":["../../../../src/modules/CoreAuth/classes/CoreAuthBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAiD,MAAM,mBAAmB,CAAC;AAEhH,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,qBAAa,eAAe,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,SAAS,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,MAAM,CAAC;IAClI,SAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,YAAY,EAKjB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;gBAGlE,WAAW,GAAE,mBAAmB,CAAC,CAAC,CAAgC,EAClE,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAShC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM;IAiP3C,KAAK;;;;;;;;;;;;;;;;;CAeb"}
|
|
@@ -2,6 +2,7 @@ import { create } from 'zustand';
|
|
|
2
2
|
import { persist } from '../../../node_modules/zustand/esm/middleware.js';
|
|
3
3
|
import { CoreAuthBaseService } from '../services/base.js';
|
|
4
4
|
import { CoreBaseBuilder } from '../../../classes/CoreBaseBuilder.js';
|
|
5
|
+
import { removeAuthToken, setAuthToken } from '../../../helpers/axiosGlobal.js';
|
|
5
6
|
|
|
6
7
|
class CoreAuthBuilder extends CoreBaseBuilder {
|
|
7
8
|
authService;
|
|
@@ -60,6 +61,7 @@ class CoreAuthBuilder extends CoreBaseBuilder {
|
|
|
60
61
|
try {
|
|
61
62
|
set({ loading: true, error: null });
|
|
62
63
|
const response = await this.authService.login(credentials);
|
|
64
|
+
setAuthToken(response.data.data.token);
|
|
63
65
|
await get().getUser();
|
|
64
66
|
onSuccess(response);
|
|
65
67
|
return response.data;
|
|
@@ -83,6 +85,7 @@ class CoreAuthBuilder extends CoreBaseBuilder {
|
|
|
83
85
|
try {
|
|
84
86
|
set({ loading: true, error: null });
|
|
85
87
|
const response = await this.authService.register(credentials);
|
|
88
|
+
setAuthToken(response.data.data.token);
|
|
86
89
|
await get().getUser();
|
|
87
90
|
onSuccess(response);
|
|
88
91
|
return response.data;
|
|
@@ -106,6 +109,7 @@ class CoreAuthBuilder extends CoreBaseBuilder {
|
|
|
106
109
|
try {
|
|
107
110
|
set({ loading: true, error: null });
|
|
108
111
|
await this.authService.logout();
|
|
112
|
+
removeAuthToken();
|
|
109
113
|
set({
|
|
110
114
|
user: null,
|
|
111
115
|
isAuthenticated: false,
|
|
@@ -167,6 +171,7 @@ class CoreAuthBuilder extends CoreBaseBuilder {
|
|
|
167
171
|
try {
|
|
168
172
|
set({ loading: true, error: null });
|
|
169
173
|
const response = await this.authService.deleteOwnAccount();
|
|
174
|
+
removeAuthToken();
|
|
170
175
|
set({
|
|
171
176
|
user: null,
|
|
172
177
|
isAuthenticated: false,
|
|
@@ -48,6 +48,7 @@ export interface CoreAuthStore<T extends CoreUser> extends BaseStore {
|
|
|
48
48
|
}
|
|
49
49
|
export interface CoreAuthLoginResponse<T extends CoreUser> {
|
|
50
50
|
user: T;
|
|
51
|
+
token: string;
|
|
51
52
|
}
|
|
52
53
|
export interface CoreAuthRegisterResponse<T extends CoreUser> extends CoreAuthLoginResponse<T> {
|
|
53
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreAuth.d.ts","sourceRoot":"","sources":["../../../../src/modules/CoreAuth/types/CoreAuth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CoreAuth.d.ts","sourceRoot":"","sources":["../../../../src/modules/CoreAuth/types/CoreAuth.ts"],"names":[],"mappings":"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"}
|