@fctc/interface-logic 1.0.5 → 1.0.6

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/config.js CHANGED
@@ -2146,6 +2146,27 @@ function matchDomain(record, domain) {
2146
2146
  return matchCondition(record, condStack.pop());
2147
2147
  }
2148
2148
 
2149
+ // src/utils/function.ts
2150
+ var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
2151
+ if (!originalRequest.data) return originalRequest.data;
2152
+ if (typeof originalRequest.data === "string") {
2153
+ try {
2154
+ const parsedData = JSON.parse(originalRequest.data);
2155
+ if (parsedData.with_context && typeof parsedData.with_context === "object") {
2156
+ parsedData.with_context.token = newAccessToken;
2157
+ }
2158
+ return JSON.stringify(parsedData);
2159
+ } catch (e) {
2160
+ console.warn("Failed to parse originalRequest.data", e);
2161
+ return originalRequest.data;
2162
+ }
2163
+ }
2164
+ if (typeof originalRequest.data === "object" && originalRequest.data.with_context) {
2165
+ originalRequest.data.with_context.token = newAccessToken;
2166
+ }
2167
+ return originalRequest.data;
2168
+ };
2169
+
2149
2170
  // src/utils/storage/local-storage.ts
2150
2171
  var localStorageUtils = () => {
2151
2172
  const setToken = async (access_token) => {
@@ -2209,7 +2230,8 @@ var axiosClient = {
2209
2230
  });
2210
2231
  instance.interceptors.request.use(
2211
2232
  async (config2) => {
2212
- const token = await localStorage2.getAccessToken();
2233
+ const useRefreshToken = config2.useRefreshToken;
2234
+ const token = useRefreshToken ? await localStorage2.getRefreshToken() : await localStorage2.getAccessToken();
2213
2235
  if (token) {
2214
2236
  config2.headers["Authorization"] = "Bearer " + token;
2215
2237
  }
@@ -2235,7 +2257,7 @@ var axiosClient = {
2235
2257
  return data;
2236
2258
  };
2237
2259
  const originalRequest = error.config;
2238
- if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401].includes(
2260
+ if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
2239
2261
  error.response.data.code
2240
2262
  )) {
2241
2263
  if (isRefreshing) {
@@ -2243,6 +2265,10 @@ var axiosClient = {
2243
2265
  failedQueue.push({ resolve, reject });
2244
2266
  }).then((token) => {
2245
2267
  originalRequest.headers["Authorization"] = "Bearer " + token;
2268
+ originalRequest.data = updateTokenParamInOriginalRequest(
2269
+ originalRequest,
2270
+ token
2271
+ );
2246
2272
  return instance.request(originalRequest);
2247
2273
  }).catch(async (err) => {
2248
2274
  if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
@@ -2267,11 +2293,11 @@ var axiosClient = {
2267
2293
  );
2268
2294
  return new Promise(function(resolve) {
2269
2295
  import_axios.default.post(
2270
- `${config.baseUrl}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2296
+ `${config.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2271
2297
  payload,
2272
2298
  {
2273
2299
  headers: {
2274
- "Content-Type": "multipart/form-data",
2300
+ "Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
2275
2301
  Authorization: `Bearer ${accessTokenExp}`
2276
2302
  }
2277
2303
  }
@@ -2281,10 +2307,14 @@ var axiosClient = {
2281
2307
  await localStorage2.setRefreshToken(data.refresh_token);
2282
2308
  import_axios.default.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
2283
2309
  originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
2310
+ originalRequest.data = updateTokenParamInOriginalRequest(
2311
+ originalRequest,
2312
+ data.access_token
2313
+ );
2284
2314
  processQueue(null, data.access_token);
2285
2315
  resolve(instance.request(originalRequest));
2286
2316
  }).catch(async (err) => {
2287
- if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST")) {
2317
+ if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST") || err?.error_code === "ERR_2FA_006") {
2288
2318
  await clearAuthToken();
2289
2319
  }
2290
2320
  if (err && err.response) {
package/dist/config.mjs CHANGED
@@ -2110,6 +2110,27 @@ function matchDomain(record, domain) {
2110
2110
  return matchCondition(record, condStack.pop());
2111
2111
  }
2112
2112
 
2113
+ // src/utils/function.ts
2114
+ var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
2115
+ if (!originalRequest.data) return originalRequest.data;
2116
+ if (typeof originalRequest.data === "string") {
2117
+ try {
2118
+ const parsedData = JSON.parse(originalRequest.data);
2119
+ if (parsedData.with_context && typeof parsedData.with_context === "object") {
2120
+ parsedData.with_context.token = newAccessToken;
2121
+ }
2122
+ return JSON.stringify(parsedData);
2123
+ } catch (e) {
2124
+ console.warn("Failed to parse originalRequest.data", e);
2125
+ return originalRequest.data;
2126
+ }
2127
+ }
2128
+ if (typeof originalRequest.data === "object" && originalRequest.data.with_context) {
2129
+ originalRequest.data.with_context.token = newAccessToken;
2130
+ }
2131
+ return originalRequest.data;
2132
+ };
2133
+
2113
2134
  // src/utils/storage/local-storage.ts
2114
2135
  var localStorageUtils = () => {
2115
2136
  const setToken = async (access_token) => {
@@ -2173,7 +2194,8 @@ var axiosClient = {
2173
2194
  });
2174
2195
  instance.interceptors.request.use(
2175
2196
  async (config2) => {
2176
- const token = await localStorage2.getAccessToken();
2197
+ const useRefreshToken = config2.useRefreshToken;
2198
+ const token = useRefreshToken ? await localStorage2.getRefreshToken() : await localStorage2.getAccessToken();
2177
2199
  if (token) {
2178
2200
  config2.headers["Authorization"] = "Bearer " + token;
2179
2201
  }
@@ -2199,7 +2221,7 @@ var axiosClient = {
2199
2221
  return data;
2200
2222
  };
2201
2223
  const originalRequest = error.config;
2202
- if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401].includes(
2224
+ if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
2203
2225
  error.response.data.code
2204
2226
  )) {
2205
2227
  if (isRefreshing) {
@@ -2207,6 +2229,10 @@ var axiosClient = {
2207
2229
  failedQueue.push({ resolve, reject });
2208
2230
  }).then((token) => {
2209
2231
  originalRequest.headers["Authorization"] = "Bearer " + token;
2232
+ originalRequest.data = updateTokenParamInOriginalRequest(
2233
+ originalRequest,
2234
+ token
2235
+ );
2210
2236
  return instance.request(originalRequest);
2211
2237
  }).catch(async (err) => {
2212
2238
  if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
@@ -2231,11 +2257,11 @@ var axiosClient = {
2231
2257
  );
2232
2258
  return new Promise(function(resolve) {
2233
2259
  axios.post(
2234
- `${config.baseUrl}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2260
+ `${config.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2235
2261
  payload,
2236
2262
  {
2237
2263
  headers: {
2238
- "Content-Type": "multipart/form-data",
2264
+ "Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
2239
2265
  Authorization: `Bearer ${accessTokenExp}`
2240
2266
  }
2241
2267
  }
@@ -2245,10 +2271,14 @@ var axiosClient = {
2245
2271
  await localStorage2.setRefreshToken(data.refresh_token);
2246
2272
  axios.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
2247
2273
  originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
2274
+ originalRequest.data = updateTokenParamInOriginalRequest(
2275
+ originalRequest,
2276
+ data.access_token
2277
+ );
2248
2278
  processQueue(null, data.access_token);
2249
2279
  resolve(instance.request(originalRequest));
2250
2280
  }).catch(async (err) => {
2251
- if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST")) {
2281
+ if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST") || err?.error_code === "ERR_2FA_006") {
2252
2282
  await clearAuthToken();
2253
2283
  }
2254
2284
  if (err && err.response) {
@@ -45,7 +45,10 @@ declare enum UriConstants {
45
45
  TOKEN = "/check_token",
46
46
  CREATE_UPDATE_PATH = "/create_update",
47
47
  TWOFA_METHOD_PATH = "/id/api/v2/call",
48
- SIGNIN_SSO = "/signin-sso/oauth"
48
+ SIGNIN_SSO = "/signin-sso/oauth",
49
+ GRANT_ACCESS = "/grant-access",
50
+ TOKEN_BY_CODE = "/token",
51
+ LOGOUT = "/logout"
49
52
  }
50
53
 
51
54
  declare enum FieldTypeConstants {
@@ -45,7 +45,10 @@ declare enum UriConstants {
45
45
  TOKEN = "/check_token",
46
46
  CREATE_UPDATE_PATH = "/create_update",
47
47
  TWOFA_METHOD_PATH = "/id/api/v2/call",
48
- SIGNIN_SSO = "/signin-sso/oauth"
48
+ SIGNIN_SSO = "/signin-sso/oauth",
49
+ GRANT_ACCESS = "/grant-access",
50
+ TOKEN_BY_CODE = "/token",
51
+ LOGOUT = "/logout"
49
52
  }
50
53
 
51
54
  declare enum FieldTypeConstants {
package/dist/constants.js CHANGED
@@ -89,6 +89,9 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
89
89
  UriConstants2["CREATE_UPDATE_PATH"] = `/create_update`;
90
90
  UriConstants2["TWOFA_METHOD_PATH"] = `/id/api/v2/call`;
91
91
  UriConstants2["SIGNIN_SSO"] = `/signin-sso/oauth`;
92
+ UriConstants2["GRANT_ACCESS"] = "/grant-access";
93
+ UriConstants2["TOKEN_BY_CODE"] = "/token";
94
+ UriConstants2["LOGOUT"] = "/logout";
92
95
  return UriConstants2;
93
96
  })(UriConstants || {});
94
97
 
@@ -51,6 +51,9 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
51
51
  UriConstants2["CREATE_UPDATE_PATH"] = `/create_update`;
52
52
  UriConstants2["TWOFA_METHOD_PATH"] = `/id/api/v2/call`;
53
53
  UriConstants2["SIGNIN_SSO"] = `/signin-sso/oauth`;
54
+ UriConstants2["GRANT_ACCESS"] = "/grant-access";
55
+ UriConstants2["TOKEN_BY_CODE"] = "/token";
56
+ UriConstants2["LOGOUT"] = "/logout";
54
57
  return UriConstants2;
55
58
  })(UriConstants || {});
56
59
 
@@ -21,6 +21,7 @@ declare class EnvStore {
21
21
  db?: string;
22
22
  localStorageUtils?: any;
23
23
  sessionStorageUtils?: any;
24
+ refreshTokenEndpoint?: string;
24
25
  constructor(envStore: EnhancedStore, localStorageUtils?: any, sessionStorageUtils?: any);
25
26
  setup(): void;
26
27
  setupEnv(envConfig: EnvStore): void;
@@ -21,6 +21,7 @@ declare class EnvStore {
21
21
  db?: string;
22
22
  localStorageUtils?: any;
23
23
  sessionStorageUtils?: any;
24
+ refreshTokenEndpoint?: string;
24
25
  constructor(envStore: EnhancedStore, localStorageUtils?: any, sessionStorageUtils?: any);
25
26
  setup(): void;
26
27
  setupEnv(envConfig: EnvStore): void;
@@ -2149,6 +2149,27 @@ function matchDomain(record, domain) {
2149
2149
  return matchCondition(record, condStack.pop());
2150
2150
  }
2151
2151
 
2152
+ // src/utils/function.ts
2153
+ var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
2154
+ if (!originalRequest.data) return originalRequest.data;
2155
+ if (typeof originalRequest.data === "string") {
2156
+ try {
2157
+ const parsedData = JSON.parse(originalRequest.data);
2158
+ if (parsedData.with_context && typeof parsedData.with_context === "object") {
2159
+ parsedData.with_context.token = newAccessToken;
2160
+ }
2161
+ return JSON.stringify(parsedData);
2162
+ } catch (e) {
2163
+ console.warn("Failed to parse originalRequest.data", e);
2164
+ return originalRequest.data;
2165
+ }
2166
+ }
2167
+ if (typeof originalRequest.data === "object" && originalRequest.data.with_context) {
2168
+ originalRequest.data.with_context.token = newAccessToken;
2169
+ }
2170
+ return originalRequest.data;
2171
+ };
2172
+
2152
2173
  // src/utils/storage/local-storage.ts
2153
2174
  var localStorageUtils = () => {
2154
2175
  const setToken = async (access_token) => {
@@ -2212,7 +2233,8 @@ var axiosClient = {
2212
2233
  });
2213
2234
  instance.interceptors.request.use(
2214
2235
  async (config2) => {
2215
- const token = await localStorage2.getAccessToken();
2236
+ const useRefreshToken = config2.useRefreshToken;
2237
+ const token = useRefreshToken ? await localStorage2.getRefreshToken() : await localStorage2.getAccessToken();
2216
2238
  if (token) {
2217
2239
  config2.headers["Authorization"] = "Bearer " + token;
2218
2240
  }
@@ -2238,7 +2260,7 @@ var axiosClient = {
2238
2260
  return data;
2239
2261
  };
2240
2262
  const originalRequest = error.config;
2241
- if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401].includes(
2263
+ if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
2242
2264
  error.response.data.code
2243
2265
  )) {
2244
2266
  if (isRefreshing) {
@@ -2246,6 +2268,10 @@ var axiosClient = {
2246
2268
  failedQueue.push({ resolve, reject });
2247
2269
  }).then((token) => {
2248
2270
  originalRequest.headers["Authorization"] = "Bearer " + token;
2271
+ originalRequest.data = updateTokenParamInOriginalRequest(
2272
+ originalRequest,
2273
+ token
2274
+ );
2249
2275
  return instance.request(originalRequest);
2250
2276
  }).catch(async (err) => {
2251
2277
  if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
@@ -2270,11 +2296,11 @@ var axiosClient = {
2270
2296
  );
2271
2297
  return new Promise(function(resolve) {
2272
2298
  import_axios.default.post(
2273
- `${config.baseUrl}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2299
+ `${config.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2274
2300
  payload,
2275
2301
  {
2276
2302
  headers: {
2277
- "Content-Type": "multipart/form-data",
2303
+ "Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
2278
2304
  Authorization: `Bearer ${accessTokenExp}`
2279
2305
  }
2280
2306
  }
@@ -2284,10 +2310,14 @@ var axiosClient = {
2284
2310
  await localStorage2.setRefreshToken(data.refresh_token);
2285
2311
  import_axios.default.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
2286
2312
  originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
2313
+ originalRequest.data = updateTokenParamInOriginalRequest(
2314
+ originalRequest,
2315
+ data.access_token
2316
+ );
2287
2317
  processQueue(null, data.access_token);
2288
2318
  resolve(instance.request(originalRequest));
2289
2319
  }).catch(async (err) => {
2290
- if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST")) {
2320
+ if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST") || err?.error_code === "ERR_2FA_006") {
2291
2321
  await clearAuthToken();
2292
2322
  }
2293
2323
  if (err && err.response) {
@@ -2980,6 +3010,7 @@ var EnvStore = class {
2980
3010
  db;
2981
3011
  localStorageUtils;
2982
3012
  sessionStorageUtils;
3013
+ refreshTokenEndpoint;
2983
3014
  constructor(envStore2, localStorageUtils2, sessionStorageUtils2) {
2984
3015
  this.envStore = envStore2;
2985
3016
  this.localStorageUtils = localStorageUtils2;
@@ -2996,6 +3027,7 @@ var EnvStore = class {
2996
3027
  this.companies = env2?.companies || [];
2997
3028
  this.user = env2?.user;
2998
3029
  this.db = env2?.db;
3030
+ this.refreshTokenEndpoint = env2?.refreshTokenEndpoint;
2999
3031
  }
3000
3032
  setupEnv(envConfig) {
3001
3033
  const dispatch = this.envStore.dispatch;
@@ -2110,6 +2110,27 @@ function matchDomain(record, domain) {
2110
2110
  return matchCondition(record, condStack.pop());
2111
2111
  }
2112
2112
 
2113
+ // src/utils/function.ts
2114
+ var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
2115
+ if (!originalRequest.data) return originalRequest.data;
2116
+ if (typeof originalRequest.data === "string") {
2117
+ try {
2118
+ const parsedData = JSON.parse(originalRequest.data);
2119
+ if (parsedData.with_context && typeof parsedData.with_context === "object") {
2120
+ parsedData.with_context.token = newAccessToken;
2121
+ }
2122
+ return JSON.stringify(parsedData);
2123
+ } catch (e) {
2124
+ console.warn("Failed to parse originalRequest.data", e);
2125
+ return originalRequest.data;
2126
+ }
2127
+ }
2128
+ if (typeof originalRequest.data === "object" && originalRequest.data.with_context) {
2129
+ originalRequest.data.with_context.token = newAccessToken;
2130
+ }
2131
+ return originalRequest.data;
2132
+ };
2133
+
2113
2134
  // src/utils/storage/local-storage.ts
2114
2135
  var localStorageUtils = () => {
2115
2136
  const setToken = async (access_token) => {
@@ -2173,7 +2194,8 @@ var axiosClient = {
2173
2194
  });
2174
2195
  instance.interceptors.request.use(
2175
2196
  async (config2) => {
2176
- const token = await localStorage2.getAccessToken();
2197
+ const useRefreshToken = config2.useRefreshToken;
2198
+ const token = useRefreshToken ? await localStorage2.getRefreshToken() : await localStorage2.getAccessToken();
2177
2199
  if (token) {
2178
2200
  config2.headers["Authorization"] = "Bearer " + token;
2179
2201
  }
@@ -2199,7 +2221,7 @@ var axiosClient = {
2199
2221
  return data;
2200
2222
  };
2201
2223
  const originalRequest = error.config;
2202
- if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401].includes(
2224
+ if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
2203
2225
  error.response.data.code
2204
2226
  )) {
2205
2227
  if (isRefreshing) {
@@ -2207,6 +2229,10 @@ var axiosClient = {
2207
2229
  failedQueue.push({ resolve, reject });
2208
2230
  }).then((token) => {
2209
2231
  originalRequest.headers["Authorization"] = "Bearer " + token;
2232
+ originalRequest.data = updateTokenParamInOriginalRequest(
2233
+ originalRequest,
2234
+ token
2235
+ );
2210
2236
  return instance.request(originalRequest);
2211
2237
  }).catch(async (err) => {
2212
2238
  if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
@@ -2231,11 +2257,11 @@ var axiosClient = {
2231
2257
  );
2232
2258
  return new Promise(function(resolve) {
2233
2259
  axios.post(
2234
- `${config.baseUrl}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2260
+ `${config.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
2235
2261
  payload,
2236
2262
  {
2237
2263
  headers: {
2238
- "Content-Type": "multipart/form-data",
2264
+ "Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
2239
2265
  Authorization: `Bearer ${accessTokenExp}`
2240
2266
  }
2241
2267
  }
@@ -2245,10 +2271,14 @@ var axiosClient = {
2245
2271
  await localStorage2.setRefreshToken(data.refresh_token);
2246
2272
  axios.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
2247
2273
  originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
2274
+ originalRequest.data = updateTokenParamInOriginalRequest(
2275
+ originalRequest,
2276
+ data.access_token
2277
+ );
2248
2278
  processQueue(null, data.access_token);
2249
2279
  resolve(instance.request(originalRequest));
2250
2280
  }).catch(async (err) => {
2251
- if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST")) {
2281
+ if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_BAD_REQUEST") || err?.error_code === "ERR_2FA_006") {
2252
2282
  await clearAuthToken();
2253
2283
  }
2254
2284
  if (err && err.response) {
@@ -2941,6 +2971,7 @@ var EnvStore = class {
2941
2971
  db;
2942
2972
  localStorageUtils;
2943
2973
  sessionStorageUtils;
2974
+ refreshTokenEndpoint;
2944
2975
  constructor(envStore2, localStorageUtils2, sessionStorageUtils2) {
2945
2976
  this.envStore = envStore2;
2946
2977
  this.localStorageUtils = localStorageUtils2;
@@ -2957,6 +2988,7 @@ var EnvStore = class {
2957
2988
  this.companies = env2?.companies || [];
2958
2989
  this.user = env2?.user;
2959
2990
  this.db = env2?.db;
2991
+ this.refreshTokenEndpoint = env2?.refreshTokenEndpoint;
2960
2992
  }
2961
2993
  setupEnv(envConfig) {
2962
2994
  const dispatch = this.envStore.dispatch;
package/dist/hook.d.mts CHANGED
@@ -36,6 +36,12 @@ declare const useResetPasswordSSO: () => _tanstack_react_query.UseMutationResult
36
36
 
37
37
  declare const useUpdatePassword: () => _tanstack_react_query.UseMutationResult<any, Error, updatePasswordBody, unknown>;
38
38
 
39
+ declare const useLogout: () => _tanstack_react_query.UseMutationResult<any, Error, string, unknown>;
40
+
41
+ declare const useGetAccessByCode: () => _tanstack_react_query.UseMutationResult<any, Error, {
42
+ code: string;
43
+ }, unknown>;
44
+
39
45
  declare const useGetCompanyInfo: () => _tanstack_react_query.UseMutationResult<any, Error, number, unknown>;
40
46
 
41
47
  declare const useGetCurrentCompany: () => _tanstack_react_query.UseMutationResult<any, Error, void, unknown>;
@@ -292,4 +298,4 @@ declare const useGet2FAMethods: () => _tanstack_react_query.UseMutationResult<an
292
298
  with_context: any;
293
299
  }, unknown>;
294
300
 
295
- export { useButton, useChangeStatus, useDelete, useDeleteComment, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGet2FAMethods, useGetActionDetail, useGetAll, useGetCalendar, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCurrency, useGetCurrentCompany, useGetDetail, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetPrintReport, useGetProGressBar, useGetProfile, useGetProvider, useGetResequence, useGetUser, useGetView, useIsValidToken, useLoadAction, useLoadMessage, useLoginCredential, useLoginSocial, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useRemoveRow, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSendComment, useSignInSSO, useSwitchLocale, useUpdatePassword, useUploadFile, useUploadIdFile, useUploadImage, useVerify2FA };
301
+ export { useButton, useChangeStatus, useDelete, useDeleteComment, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGet2FAMethods, useGetAccessByCode, useGetActionDetail, useGetAll, useGetCalendar, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCurrency, useGetCurrentCompany, useGetDetail, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetPrintReport, useGetProGressBar, useGetProfile, useGetProvider, useGetResequence, useGetUser, useGetView, useIsValidToken, useLoadAction, useLoadMessage, useLoginCredential, useLoginSocial, useLogout, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useRemoveRow, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSendComment, useSignInSSO, useSwitchLocale, useUpdatePassword, useUploadFile, useUploadIdFile, useUploadImage, useVerify2FA };
package/dist/hook.d.ts CHANGED
@@ -36,6 +36,12 @@ declare const useResetPasswordSSO: () => _tanstack_react_query.UseMutationResult
36
36
 
37
37
  declare const useUpdatePassword: () => _tanstack_react_query.UseMutationResult<any, Error, updatePasswordBody, unknown>;
38
38
 
39
+ declare const useLogout: () => _tanstack_react_query.UseMutationResult<any, Error, string, unknown>;
40
+
41
+ declare const useGetAccessByCode: () => _tanstack_react_query.UseMutationResult<any, Error, {
42
+ code: string;
43
+ }, unknown>;
44
+
39
45
  declare const useGetCompanyInfo: () => _tanstack_react_query.UseMutationResult<any, Error, number, unknown>;
40
46
 
41
47
  declare const useGetCurrentCompany: () => _tanstack_react_query.UseMutationResult<any, Error, void, unknown>;
@@ -292,4 +298,4 @@ declare const useGet2FAMethods: () => _tanstack_react_query.UseMutationResult<an
292
298
  with_context: any;
293
299
  }, unknown>;
294
300
 
295
- export { useButton, useChangeStatus, useDelete, useDeleteComment, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGet2FAMethods, useGetActionDetail, useGetAll, useGetCalendar, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCurrency, useGetCurrentCompany, useGetDetail, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetPrintReport, useGetProGressBar, useGetProfile, useGetProvider, useGetResequence, useGetUser, useGetView, useIsValidToken, useLoadAction, useLoadMessage, useLoginCredential, useLoginSocial, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useRemoveRow, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSendComment, useSignInSSO, useSwitchLocale, useUpdatePassword, useUploadFile, useUploadIdFile, useUploadImage, useVerify2FA };
301
+ export { useButton, useChangeStatus, useDelete, useDeleteComment, useDuplicateRecord, useExecuteImport, useExportExcel, useForgotPassword, useForgotPasswordSSO, useGet2FAMethods, useGetAccessByCode, useGetActionDetail, useGetAll, useGetCalendar, useGetComment, useGetCompanyInfo, useGetConversionRate, useGetCurrency, useGetCurrentCompany, useGetDetail, useGetFieldExport, useGetFieldOnChange, useGetFileExcel, useGetFormView, useGetGroups, useGetImage, useGetListCompany, useGetListData, useGetListMyBankAccount, useGetMenu, useGetPrintReport, useGetProGressBar, useGetProfile, useGetProvider, useGetResequence, useGetUser, useGetView, useIsValidToken, useLoadAction, useLoadMessage, useLoginCredential, useLoginSocial, useLogout, useModel, useOdooDataTransform, useOnChangeForm, useParsePreview, usePrint, useRemoveRow, useResetPassword, useResetPasswordSSO, useRunAction, useSave, useSendComment, useSignInSSO, useSwitchLocale, useUpdatePassword, useUploadFile, useUploadIdFile, useUploadImage, useVerify2FA };