@fctc/interface-logic 1.8.7 → 1.8.9

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/services.mjs CHANGED
@@ -2228,19 +2228,16 @@ var axiosClient = {
2228
2228
  timeout: 5e4,
2229
2229
  paramsSerializer: (params) => new URLSearchParams(params).toString()
2230
2230
  });
2231
- instance.interceptors.request.use(
2232
- async (config2) => {
2233
- const useRefreshToken = config2.useRefreshToken;
2234
- const token = useRefreshToken ? await localStorage2.getRefreshToken() : await localStorage2.getAccessToken();
2235
- if (token) {
2236
- config2.headers["Authorization"] = "Bearer " + token;
2237
- }
2238
- return config2;
2239
- },
2240
- (error) => {
2241
- Promise.reject(error);
2242
- }
2243
- );
2231
+ instance.interceptors.request.use(async (config2) => {
2232
+ const { useRefreshToken, useActionToken, actionToken } = config2;
2233
+ if (useActionToken && actionToken) {
2234
+ config2.headers["Action-Token"] = actionToken;
2235
+ }
2236
+ const getToken = useRefreshToken ? localStorage2.getRefreshToken : localStorage2.getAccessToken;
2237
+ const token = await getToken?.();
2238
+ if (token) config2.headers["Authorization"] = `Bearer ${token}`;
2239
+ return config2;
2240
+ }, Promise.reject);
2244
2241
  instance.interceptors.response.use(
2245
2242
  (response) => {
2246
2243
  return handleResponse(response);
@@ -2404,11 +2401,13 @@ var breadcrums_slice_default = breadcrumbsSlice.reducer;
2404
2401
  import { createSlice as createSlice2 } from "@reduxjs/toolkit";
2405
2402
  var initialState2 = {
2406
2403
  baseUrl: "",
2407
- requests: null,
2408
2404
  companies: [],
2409
2405
  user: {},
2406
+ db: "",
2407
+ refreshTokenEndpoint: "",
2410
2408
  config: null,
2411
2409
  envFile: null,
2410
+ requests: null,
2412
2411
  defaultCompany: {
2413
2412
  id: null,
2414
2413
  logo: "",
@@ -2995,73 +2994,83 @@ var envStore = configureStore({
2995
2994
  });
2996
2995
 
2997
2996
  // src/environment/EnvStore.ts
2998
- function createEnvStore(store, localStorageUtil, sessionStorageUtil) {
2999
- const getEnvState = () => store.getState().env;
3000
- const setupEnvConfig = () => {
3001
- const env2 = getEnvState();
3002
- return {
3003
- baseUrl: env2?.baseUrl,
3004
- requests: env2?.requests,
3005
- context: env2?.context,
3006
- defaultCompany: env2?.defaultCompany,
3007
- config: env2?.config,
3008
- companies: env2?.companies || [],
3009
- user: env2?.user,
3010
- db: env2?.db,
3011
- refreshTokenEndpoint: env2?.refreshTokenEndpoint
3012
- };
3013
- };
3014
- const setupEnv = (envConfig) => {
3015
- const dispatch = store.dispatch;
3016
- const updatedEnv = {
2997
+ var EnvStore = class {
2998
+ envStore;
2999
+ baseUrl;
3000
+ requests;
3001
+ context;
3002
+ defaultCompany;
3003
+ config;
3004
+ companies;
3005
+ user;
3006
+ db;
3007
+ localStorageUtils;
3008
+ sessionStorageUtils;
3009
+ refreshTokenEndpoint;
3010
+ constructor(envStore2, localStorageUtils2, sessionStorageUtils2) {
3011
+ this.envStore = envStore2;
3012
+ this.localStorageUtils = localStorageUtils2;
3013
+ this.sessionStorageUtils = sessionStorageUtils2;
3014
+ this.setup();
3015
+ }
3016
+ setup() {
3017
+ const env2 = this.envStore.getState().env;
3018
+ this.baseUrl = env2?.baseUrl;
3019
+ this.requests = env2?.requests;
3020
+ this.context = env2?.context;
3021
+ this.defaultCompany = env2?.defaultCompany;
3022
+ this.config = env2?.config;
3023
+ this.companies = env2?.companies || [];
3024
+ this.user = env2?.user;
3025
+ this.db = env2?.db;
3026
+ this.refreshTokenEndpoint = env2?.refreshTokenEndpoint;
3027
+ }
3028
+ setupEnv(envConfig) {
3029
+ const dispatch = this.envStore.dispatch;
3030
+ const env2 = {
3017
3031
  ...envConfig,
3018
- localStorageUtils: localStorageUtil,
3019
- sessionStorageUtils: sessionStorageUtil
3032
+ localStorageUtils: this.localStorageUtils,
3033
+ sessionStorageUtils: this.sessionStorageUtils
3020
3034
  };
3021
- const requests = axiosClient.init(updatedEnv);
3022
- dispatch(setEnv({ ...updatedEnv, requests }));
3023
- return setupEnvConfig();
3024
- };
3025
- const setupUid = (uid) => {
3026
- store.dispatch(setUid(uid));
3027
- return setupEnvConfig();
3028
- };
3029
- const setupLang = (lang) => {
3030
- store.dispatch(setLang(lang));
3031
- return setupEnvConfig();
3032
- };
3033
- const setupAllowCompanies = (allowCompanies) => {
3034
- store.dispatch(setAllowCompanies(allowCompanies));
3035
- return setupEnvConfig();
3036
- };
3037
- const setupCompanies = (companies) => {
3038
- store.dispatch(setCompanies(companies));
3039
- return setupEnvConfig();
3040
- };
3041
- const setupDefaultCompany = (company) => {
3042
- store.dispatch(setDefaultCompany(company));
3043
- return setupEnvConfig();
3044
- };
3045
- const setUserInfo = (userInfo) => {
3046
- store.dispatch(setUser(userInfo));
3047
- return setupEnvConfig();
3048
- };
3049
- return {
3050
- getEnvConfig: setupEnvConfig,
3051
- setupEnv,
3052
- setUid: setupUid,
3053
- setLang: setupLang,
3054
- setAllowCompanies: setupAllowCompanies,
3055
- setCompanies: setupCompanies,
3056
- setDefaultCompany: setupDefaultCompany,
3057
- setUserInfo
3058
- };
3059
- }
3035
+ const requests = axiosClient.init(env2);
3036
+ dispatch(setEnv({ ...env2, requests }));
3037
+ this.setup();
3038
+ }
3039
+ setUid(uid) {
3040
+ const dispatch = this.envStore.dispatch;
3041
+ dispatch(setUid(uid));
3042
+ this.setup();
3043
+ }
3044
+ setLang(lang) {
3045
+ const dispatch = this.envStore.dispatch;
3046
+ dispatch(setLang(lang));
3047
+ this.setup();
3048
+ }
3049
+ setAllowCompanies(allowCompanies) {
3050
+ const dispatch = this.envStore.dispatch;
3051
+ dispatch(setAllowCompanies(allowCompanies));
3052
+ this.setup();
3053
+ }
3054
+ setCompanies(companies) {
3055
+ const dispatch = this.envStore.dispatch;
3056
+ dispatch(setCompanies(companies));
3057
+ this.setup();
3058
+ }
3059
+ setDefaultCompany(company) {
3060
+ const dispatch = this.envStore.dispatch;
3061
+ dispatch(setDefaultCompany(company));
3062
+ this.setup();
3063
+ }
3064
+ setUserInfo(userInfo) {
3065
+ const dispatch = this.envStore.dispatch;
3066
+ dispatch(setUser(userInfo));
3067
+ this.setup();
3068
+ }
3069
+ };
3060
3070
  var env = null;
3061
3071
  function getEnv() {
3062
- if (!env) {
3063
- env = createEnvStore(envStore, localStorageUtils(), sessionStorageUtils());
3064
- }
3072
+ if (!env)
3073
+ env = new EnvStore(envStore, localStorageUtils(), sessionStorageUtils());
3065
3074
  return env;
3066
3075
  }
3067
3076
 
@@ -3327,6 +3336,20 @@ var AuthService = {
3327
3336
  }
3328
3337
  });
3329
3338
  },
3339
+ async isValidActionToken(actionToken, path) {
3340
+ const env2 = getEnv();
3341
+ return env2?.requests?.post(
3342
+ path,
3343
+ {},
3344
+ {
3345
+ headers: {
3346
+ "Content-Type": "application/json"
3347
+ },
3348
+ useActionToken: true,
3349
+ actionToken
3350
+ }
3351
+ );
3352
+ },
3330
3353
  async loginSocial({
3331
3354
  db,
3332
3355
  state,
@@ -4091,7 +4114,7 @@ var model_service_default = ModelService;
4091
4114
  var UserService = {
4092
4115
  async getProfile(path) {
4093
4116
  const env2 = getEnv();
4094
- return env2.requests.get(path ?? "/userinfo" /* PROFILE_PATH */, {
4117
+ return env2?.requests?.get(path ?? "/userinfo" /* PROFILE_PATH */, {
4095
4118
  headers: {
4096
4119
  "Content-Type": "application/x-www-form-urlencoded"
4097
4120
  }
@@ -4595,6 +4618,260 @@ var ViewService = {
4595
4618
  }
4596
4619
  };
4597
4620
  var view_service_default = ViewService;
4621
+
4622
+ // src/services/auth-service/backup.ts
4623
+ import { useCallback as useCallback3 } from "react";
4624
+
4625
+ // src/provider/react-query-provider.tsx
4626
+ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
4627
+ import { jsx } from "react/jsx-runtime";
4628
+
4629
+ // src/provider/redux-provider.tsx
4630
+ import { Provider } from "react-redux";
4631
+ import { jsx as jsx2 } from "react/jsx-runtime";
4632
+
4633
+ // src/provider/main-provider.tsx
4634
+ import { jsx as jsx3 } from "react/jsx-runtime";
4635
+
4636
+ // src/provider/version-gate-provider.tsx
4637
+ import { useEffect as useEffect2, useState as useState2 } from "react";
4638
+ import { useQueryClient } from "@tanstack/react-query";
4639
+
4640
+ // src/services/view-service/backup.ts
4641
+ import { useCallback } from "react";
4642
+
4643
+ // src/provider/version-gate-provider.tsx
4644
+ import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
4645
+
4646
+ // src/provider/env-provider.tsx
4647
+ import { createContext, useContext, useState as useState3, useCallback as useCallback2 } from "react";
4648
+ import { jsx as jsx5 } from "react/jsx-runtime";
4649
+ var EnvContext = createContext(null);
4650
+ function useEnv() {
4651
+ const context = useContext(EnvContext);
4652
+ if (!context) {
4653
+ throw new Error("useEnv must be used within an EnvProvider");
4654
+ }
4655
+ return context;
4656
+ }
4657
+
4658
+ // src/services/auth-service/backup.ts
4659
+ function useAuthService() {
4660
+ const { env: env2 } = useEnv();
4661
+ const login = useCallback3(
4662
+ async (body) => {
4663
+ const payload = Object.fromEntries(
4664
+ Object.entries({
4665
+ username: body.email,
4666
+ password: body.password,
4667
+ grant_type: env2?.config?.grantType || "",
4668
+ client_id: env2?.config?.clientId || "",
4669
+ client_secret: env2?.config?.clientSecret || ""
4670
+ }).filter(([_, value]) => !!value)
4671
+ );
4672
+ const encodedData = new URLSearchParams(payload).toString();
4673
+ return env2?.requests?.post(body.path, encodedData, {
4674
+ headers: {
4675
+ "Content-Type": "application/x-www-form-urlencoded"
4676
+ }
4677
+ });
4678
+ },
4679
+ [env2]
4680
+ );
4681
+ const forgotPassword = useCallback3(
4682
+ async (email) => {
4683
+ const bodyData = {
4684
+ login: email,
4685
+ url: `${window.location.origin}/reset-password`
4686
+ };
4687
+ return env2?.requests?.post("/reset_password" /* RESET_PASSWORD_PATH */, bodyData, {
4688
+ headers: {
4689
+ "Content-Type": "application/json"
4690
+ }
4691
+ });
4692
+ },
4693
+ [env2]
4694
+ );
4695
+ const forgotPasswordSSO = useCallback3(
4696
+ async ({
4697
+ email,
4698
+ with_context,
4699
+ method
4700
+ }) => {
4701
+ const body = {
4702
+ method,
4703
+ kwargs: {
4704
+ vals: {
4705
+ email
4706
+ }
4707
+ },
4708
+ with_context
4709
+ };
4710
+ return env2?.requests?.post("/call" /* CALL_PATH */, body, {
4711
+ headers: {
4712
+ "Content-Type": "application/json"
4713
+ }
4714
+ });
4715
+ },
4716
+ [env2]
4717
+ );
4718
+ const resetPassword = useCallback3(
4719
+ async (data, token) => {
4720
+ const bodyData = {
4721
+ token,
4722
+ password: data.password,
4723
+ new_password: data.confirmPassword
4724
+ };
4725
+ return env2?.requests?.post("/change_password" /* CHANGE_PASSWORD_PATH */, bodyData, {
4726
+ headers: {
4727
+ "Content-Type": "application/json"
4728
+ }
4729
+ });
4730
+ },
4731
+ [env2]
4732
+ );
4733
+ const resetPasswordSSO = useCallback3(
4734
+ async ({
4735
+ method,
4736
+ password,
4737
+ with_context
4738
+ }) => {
4739
+ const bodyData = {
4740
+ method,
4741
+ kwargs: {
4742
+ vals: {
4743
+ password
4744
+ }
4745
+ },
4746
+ with_context
4747
+ };
4748
+ return env2?.requests?.post("/call" /* CALL_PATH */, bodyData, {
4749
+ headers: {
4750
+ "Content-Type": "application/json"
4751
+ }
4752
+ });
4753
+ },
4754
+ [env2]
4755
+ );
4756
+ const updatePassword = useCallback3(
4757
+ async (data, token) => {
4758
+ const bodyData = {
4759
+ token,
4760
+ old_password: data.oldPassword,
4761
+ new_password: data.newPassword
4762
+ };
4763
+ return env2?.requests?.post("/change_password_parent" /* UPDATE_PASSWORD_PATH */, bodyData, {
4764
+ headers: {
4765
+ "Content-Type": "application/json"
4766
+ }
4767
+ });
4768
+ },
4769
+ [env2]
4770
+ );
4771
+ const isValidToken = useCallback3(
4772
+ async (token) => {
4773
+ const bodyData = {
4774
+ token
4775
+ };
4776
+ return env2?.requests?.post("/check_token" /* TOKEN */, bodyData, {
4777
+ headers: {
4778
+ "Content-Type": "application/json"
4779
+ }
4780
+ });
4781
+ },
4782
+ [env2]
4783
+ );
4784
+ const isValidActionToken = useCallback3(
4785
+ async (actionToken, path) => {
4786
+ return env2?.requests?.post(
4787
+ path,
4788
+ {},
4789
+ {
4790
+ headers: {
4791
+ "Content-Type": "application/json"
4792
+ },
4793
+ useActionToken: true,
4794
+ actionToken
4795
+ }
4796
+ );
4797
+ },
4798
+ [env2]
4799
+ );
4800
+ const loginSocial = useCallback3(
4801
+ async ({
4802
+ db,
4803
+ state,
4804
+ access_token
4805
+ }) => {
4806
+ return env2?.requests?.post(
4807
+ "/token/generate" /* GENTOKEN_SOCIAL */,
4808
+ { state, access_token },
4809
+ {
4810
+ headers: {
4811
+ "Content-Type": "application/json"
4812
+ }
4813
+ }
4814
+ );
4815
+ },
4816
+ [env2]
4817
+ );
4818
+ const getProviders = useCallback3(
4819
+ async (db) => {
4820
+ return env2?.requests?.get("/oauth/providers", { params: { db } });
4821
+ },
4822
+ [env2]
4823
+ );
4824
+ const getAccessByCode = useCallback3(
4825
+ async (code) => {
4826
+ const data = new URLSearchParams();
4827
+ data.append("code", code);
4828
+ data.append("grant_type", "authorization_code");
4829
+ data.append("client_id", env2?.config?.clientId || "");
4830
+ data.append("redirect_uri", env2?.config?.redirectUri || "");
4831
+ return env2?.requests?.post(
4832
+ `${env2?.baseUrl?.replace("/mms/", "/id/")}/${"/token" /* TOKEN_BY_CODE */}`,
4833
+ data,
4834
+ {
4835
+ headers: {
4836
+ "Content-Type": "application/x-www-form-urlencoded"
4837
+ }
4838
+ }
4839
+ );
4840
+ },
4841
+ [env2]
4842
+ );
4843
+ const logout = useCallback3(
4844
+ async (data) => {
4845
+ console.log(data);
4846
+ return env2?.requests?.post(
4847
+ "/logout" /* LOGOUT */,
4848
+ {},
4849
+ {
4850
+ headers: {
4851
+ "Content-Type": "application/json"
4852
+ },
4853
+ withCredentials: true,
4854
+ useRefreshToken: true
4855
+ }
4856
+ );
4857
+ },
4858
+ [env2]
4859
+ );
4860
+ return {
4861
+ login,
4862
+ forgotPassword,
4863
+ forgotPasswordSSO,
4864
+ resetPassword,
4865
+ resetPasswordSSO,
4866
+ updatePassword,
4867
+ isValidToken,
4868
+ isValidActionToken,
4869
+ loginSocial,
4870
+ getProviders,
4871
+ getAccessByCode,
4872
+ logout
4873
+ };
4874
+ }
4598
4875
  export {
4599
4876
  action_service_default as ActionService,
4600
4877
  auth_service_default as AuthService,
@@ -4604,5 +4881,6 @@ export {
4604
4881
  kanban_service_default as KanbanService,
4605
4882
  model_service_default as ModelService,
4606
4883
  user_service_default as UserService,
4607
- view_service_default as ViewService
4884
+ view_service_default as ViewService,
4885
+ useAuthService
4608
4886
  };
package/dist/store.js CHANGED
@@ -127,11 +127,13 @@ var breadcrums_slice_default = breadcrumbsSlice.reducer;
127
127
  var import_toolkit2 = require("@reduxjs/toolkit");
128
128
  var initialState2 = {
129
129
  baseUrl: "",
130
- requests: null,
131
130
  companies: [],
132
131
  user: {},
132
+ db: "",
133
+ refreshTokenEndpoint: "",
133
134
  config: null,
134
135
  envFile: null,
136
+ requests: null,
135
137
  defaultCompany: {
136
138
  id: null,
137
139
  logo: "",
@@ -535,10 +537,6 @@ var selectSearch = (state) => state.search;
535
537
  var selectSearchMap = (state) => state.search.searchMap;
536
538
  var search_slice_default = searchSlice.reducer;
537
539
 
538
- // src/store/index.ts
539
- var useAppDispatch = import_react_redux.useDispatch;
540
- var useAppSelector = import_react_redux.useSelector;
541
-
542
540
  // src/store/store.ts
543
541
  var import_toolkit11 = require("@reduxjs/toolkit");
544
542
 
@@ -730,6 +728,10 @@ var envStore = (0, import_toolkit11.configureStore)({
730
728
  serializableCheck: false
731
729
  })
732
730
  });
731
+
732
+ // src/store/index.ts
733
+ var useAppDispatch = import_react_redux.useDispatch;
734
+ var useAppSelector = import_react_redux.useSelector;
733
735
  // Annotate the CommonJS export names for ESM import in node:
734
736
  0 && (module.exports = {
735
737
  breadcrumbsSlice,
package/dist/store.mjs CHANGED
@@ -23,11 +23,13 @@ var breadcrums_slice_default = breadcrumbsSlice.reducer;
23
23
  import { createSlice as createSlice2 } from "@reduxjs/toolkit";
24
24
  var initialState2 = {
25
25
  baseUrl: "",
26
- requests: null,
27
26
  companies: [],
28
27
  user: {},
28
+ db: "",
29
+ refreshTokenEndpoint: "",
29
30
  config: null,
30
31
  envFile: null,
32
+ requests: null,
31
33
  defaultCompany: {
32
34
  id: null,
33
35
  logo: "",
@@ -431,10 +433,6 @@ var selectSearch = (state) => state.search;
431
433
  var selectSearchMap = (state) => state.search.searchMap;
432
434
  var search_slice_default = searchSlice.reducer;
433
435
 
434
- // src/store/index.ts
435
- var useAppDispatch = useDispatch;
436
- var useAppSelector = useSelector;
437
-
438
436
  // src/store/store.ts
439
437
  import { configureStore } from "@reduxjs/toolkit";
440
438
 
@@ -626,6 +624,10 @@ var envStore = configureStore({
626
624
  serializableCheck: false
627
625
  })
628
626
  });
627
+
628
+ // src/store/index.ts
629
+ var useAppDispatch = useDispatch;
630
+ var useAppSelector = useSelector;
629
631
  export {
630
632
  breadcrumbsSlice,
631
633
  clearSearchMap,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fctc/interface-logic",
3
- "version": "1.8.7",
3
+ "version": "1.8.9",
4
4
  "types": "dist/index.d.ts",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",