@fctc/interface-logic 1.8.6 → 1.8.8

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/provider.mjs CHANGED
@@ -43,11 +43,13 @@ var breadcrums_slice_default = breadcrumbsSlice.reducer;
43
43
  import { createSlice as createSlice2 } from "@reduxjs/toolkit";
44
44
  var initialState2 = {
45
45
  baseUrl: "",
46
- requests: null,
47
46
  companies: [],
48
47
  user: {},
48
+ db: "",
49
+ refreshTokenEndpoint: "",
49
50
  config: null,
50
51
  envFile: null,
52
+ requests: null,
51
53
  defaultCompany: {
52
54
  id: null,
53
55
  logo: "",
@@ -646,9 +648,300 @@ var MainProvider = ({ children }) => {
646
648
  };
647
649
 
648
650
  // src/provider/version-gate-provider.tsx
649
- import { useEffect as useEffect2, useState as useState2 } from "react";
651
+ import { useEffect, useState } from "react";
650
652
  import { useQueryClient } from "@tanstack/react-query";
651
653
 
654
+ // src/services/view-service/backup.ts
655
+ import { useCallback } from "react";
656
+ function useViewService() {
657
+ const { env } = useEnv();
658
+ const getView = useCallback(
659
+ async ({ model, views, context = {}, options = {}, aid }) => {
660
+ const defaultOptions = {
661
+ load_filters: true,
662
+ toolbar: true,
663
+ action_id: aid
664
+ };
665
+ const jsonDataView = {
666
+ model,
667
+ method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
668
+ kwargs: {
669
+ views,
670
+ options: { ...options, ...defaultOptions }
671
+ },
672
+ with_context: context
673
+ };
674
+ return env?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
675
+ headers: {
676
+ "Content-Type": "application/json"
677
+ }
678
+ });
679
+ },
680
+ [env]
681
+ );
682
+ const getMenu = useCallback(
683
+ async (context) => {
684
+ const jsonData = {
685
+ model: "ir.ui.menu" /* MENU */,
686
+ method: "web_search_read" /* WEB_SEARCH_READ */,
687
+ ids: [],
688
+ with_context: context,
689
+ kwargs: {
690
+ specification: {
691
+ active: {},
692
+ name: {},
693
+ is_display: {},
694
+ sequence: {},
695
+ complete_name: {},
696
+ action: {
697
+ fields: {
698
+ display_name: {},
699
+ type: {},
700
+ binding_view_types: {}
701
+ }
702
+ },
703
+ url_icon: {},
704
+ web_icon: {},
705
+ web_icon_data: {},
706
+ groups_id: {
707
+ fields: {
708
+ full_name: {}
709
+ },
710
+ limit: 40,
711
+ order: ""
712
+ },
713
+ display_name: {},
714
+ child_id: {
715
+ fields: {
716
+ active: {},
717
+ name: {},
718
+ is_display: {},
719
+ sequence: {},
720
+ complete_name: {},
721
+ action: {
722
+ fields: {
723
+ display_name: {},
724
+ type: {},
725
+ binding_view_types: {}
726
+ }
727
+ },
728
+ url_icon: {},
729
+ web_icon: {},
730
+ web_icon_data: {},
731
+ groups_id: {
732
+ fields: {
733
+ full_name: {}
734
+ },
735
+ limit: 40,
736
+ order: ""
737
+ },
738
+ display_name: {},
739
+ child_id: {
740
+ fields: {
741
+ active: {},
742
+ name: {},
743
+ is_display: {},
744
+ sequence: {},
745
+ complete_name: {},
746
+ action: {
747
+ fields: {
748
+ display_name: {},
749
+ type: {},
750
+ binding_view_types: {}
751
+ }
752
+ },
753
+ url_icon: {},
754
+ web_icon: {},
755
+ web_icon_data: {},
756
+ groups_id: {
757
+ fields: {
758
+ full_name: {}
759
+ },
760
+ limit: 40,
761
+ order: ""
762
+ },
763
+ display_name: {},
764
+ child_id: {
765
+ fields: {},
766
+ limit: 40,
767
+ order: ""
768
+ }
769
+ },
770
+ limit: 40,
771
+ order: ""
772
+ }
773
+ },
774
+ limit: 40,
775
+ order: ""
776
+ }
777
+ },
778
+ domain: [
779
+ "&",
780
+ ["is_display", "=", true],
781
+ "&",
782
+ ["active", "=", true],
783
+ ["parent_id", "=", false]
784
+ ]
785
+ }
786
+ };
787
+ return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
788
+ headers: {
789
+ "Content-Type": "application/json"
790
+ }
791
+ });
792
+ },
793
+ [env]
794
+ );
795
+ const getActionDetail = useCallback(
796
+ async (aid, context) => {
797
+ const jsonData = {
798
+ model: "ir.actions.act_window" /* WINDOW_ACTION */,
799
+ method: "web_read" /* WEB_READ */,
800
+ ids: [aid],
801
+ with_context: context,
802
+ kwargs: {
803
+ specification: {
804
+ id: {},
805
+ name: {},
806
+ res_model: {},
807
+ views: {},
808
+ view_mode: {},
809
+ mobile_view_mode: {},
810
+ domain: {},
811
+ context: {},
812
+ groups_id: {},
813
+ search_view_id: {}
814
+ }
815
+ }
816
+ };
817
+ return env?.requests?.post("/call" /* CALL_PATH */, jsonData, {
818
+ headers: {
819
+ "Content-Type": "application/json"
820
+ }
821
+ });
822
+ },
823
+ [env]
824
+ );
825
+ const getResequence = useCallback(
826
+ async ({ model, ids, context, offset }) => {
827
+ const jsonData = {
828
+ model,
829
+ with_context: context,
830
+ ids,
831
+ field: "sequence",
832
+ ...offset > 0 ? { offset } : {}
833
+ };
834
+ return env?.requests.post("/web/dataset/resequence", jsonData, {
835
+ headers: {
836
+ "Content-Type": "application/json"
837
+ }
838
+ });
839
+ },
840
+ [env]
841
+ );
842
+ const getSelectionItem = useCallback(
843
+ async ({ data }) => {
844
+ const jsonData = {
845
+ model: data.model,
846
+ ids: [],
847
+ method: "get_data_select",
848
+ with_context: data.context,
849
+ kwargs: {
850
+ count_limit: 10001,
851
+ domain: data.domain ? data.domain : [],
852
+ offset: 0,
853
+ order: "",
854
+ specification: data?.specification ?? {
855
+ id: {},
856
+ name: {},
857
+ display_name: {}
858
+ }
859
+ }
860
+ };
861
+ return env?.requests.post("/call" /* CALL_PATH */, jsonData, {
862
+ headers: {
863
+ "Content-Type": "application/json"
864
+ }
865
+ });
866
+ },
867
+ [env]
868
+ );
869
+ const loadMessages = useCallback(
870
+ async () => {
871
+ return env.requests.post(
872
+ "/load_message_failures" /* LOAD_MESSAGE */,
873
+ {},
874
+ {
875
+ headers: {
876
+ "Content-Type": "application/json"
877
+ }
878
+ }
879
+ );
880
+ },
881
+ [env]
882
+ );
883
+ const getVersion = useCallback(
884
+ async () => {
885
+ console.log("env?.requests", env, env?.requests);
886
+ return env?.requests?.get("", {
887
+ headers: {
888
+ "Content-Type": "application/json"
889
+ }
890
+ });
891
+ },
892
+ [env]
893
+ );
894
+ return {
895
+ getView,
896
+ getMenu,
897
+ getActionDetail,
898
+ getResequence,
899
+ getSelectionItem,
900
+ loadMessages,
901
+ getVersion
902
+ };
903
+ }
904
+
905
+ // src/provider/version-gate-provider.tsx
906
+ import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
907
+ var VersionGate = ({ children }) => {
908
+ const queryClient = useQueryClient();
909
+ const [ready, setReady] = useState(false);
910
+ const { getVersion } = useViewService();
911
+ useEffect(() => {
912
+ const clearVersion = () => {
913
+ queryClient.clear();
914
+ localStorage.removeItem("__api_version__");
915
+ };
916
+ const validateVersion = async () => {
917
+ const serverVersion = await getVersion();
918
+ console.log("serverVersion", serverVersion);
919
+ const cached = localStorage.getItem("__api_version__");
920
+ if (cached !== serverVersion?.api_version) {
921
+ clearVersion();
922
+ localStorage.setItem("__api_version__", serverVersion?.api_version);
923
+ } else {
924
+ console.log("Api version:", serverVersion?.api_version);
925
+ }
926
+ setReady(true);
927
+ };
928
+ validateVersion();
929
+ if (typeof window !== "undefined") {
930
+ const onKey = (e) => {
931
+ const key = e.key.toLowerCase();
932
+ const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
933
+ if (isHardRefresh) clearVersion();
934
+ };
935
+ window.addEventListener("keydown", onKey);
936
+ return () => window.removeEventListener("keydown", onKey);
937
+ }
938
+ }, [queryClient]);
939
+ return ready ? /* @__PURE__ */ jsx4(Fragment, { children }) : null;
940
+ };
941
+
942
+ // src/provider/env-provider.tsx
943
+ import { createContext, useContext, useState as useState3, useCallback as useCallback2 } from "react";
944
+
652
945
  // src/configs/axios-client.ts
653
946
  import axios from "axios";
654
947
 
@@ -2762,7 +3055,7 @@ function matchDomain(record, domain) {
2762
3055
  }
2763
3056
 
2764
3057
  // src/utils/function.ts
2765
- import { useEffect, useState } from "react";
3058
+ import { useEffect as useEffect2, useState as useState2 } from "react";
2766
3059
  var updateTokenParamInOriginalRequest = (originalRequest, newAccessToken) => {
2767
3060
  if (!originalRequest.data) return originalRequest.data;
2768
3061
  if (typeof originalRequest.data === "string") {
@@ -2844,19 +3137,16 @@ var axiosClient = {
2844
3137
  timeout: 5e4,
2845
3138
  paramsSerializer: (params) => new URLSearchParams(params).toString()
2846
3139
  });
2847
- instance.interceptors.request.use(
2848
- async (config2) => {
2849
- const useRefreshToken = config2.useRefreshToken;
2850
- const token = useRefreshToken ? await localStorage2.getRefreshToken() : await localStorage2.getAccessToken();
2851
- if (token) {
2852
- config2.headers["Authorization"] = "Bearer " + token;
2853
- }
2854
- return config2;
2855
- },
2856
- (error) => {
2857
- Promise.reject(error);
2858
- }
2859
- );
3140
+ instance.interceptors.request.use(async (config2) => {
3141
+ const { useRefreshToken, useActionToken, actionToken } = config2;
3142
+ if (useActionToken && actionToken) {
3143
+ config2.headers["Action-Token"] = actionToken;
3144
+ }
3145
+ const getToken = useRefreshToken ? localStorage2.getRefreshToken : localStorage2.getAccessToken;
3146
+ const token = await getToken?.();
3147
+ if (token) config2.headers["Authorization"] = `Bearer ${token}`;
3148
+ return config2;
3149
+ }, Promise.reject);
2860
3150
  instance.interceptors.response.use(
2861
3151
  (response) => {
2862
3152
  return handleResponse(response);
@@ -2996,562 +3286,7 @@ var axiosClient = {
2996
3286
  }
2997
3287
  };
2998
3288
 
2999
- // src/environment/EnvStore.ts
3000
- function createEnvStore(store, localStorageUtil, sessionStorageUtil) {
3001
- const getEnvState = () => store.getState().env;
3002
- const setupEnvConfig = () => {
3003
- const env2 = getEnvState();
3004
- return {
3005
- baseUrl: env2?.baseUrl,
3006
- requests: env2?.requests,
3007
- context: env2?.context,
3008
- defaultCompany: env2?.defaultCompany,
3009
- config: env2?.config,
3010
- companies: env2?.companies || [],
3011
- user: env2?.user,
3012
- db: env2?.db,
3013
- refreshTokenEndpoint: env2?.refreshTokenEndpoint
3014
- };
3015
- };
3016
- const setupEnv = (envConfig) => {
3017
- const dispatch = store.dispatch;
3018
- const updatedEnv = {
3019
- ...envConfig,
3020
- localStorageUtils: localStorageUtil,
3021
- sessionStorageUtils: sessionStorageUtil
3022
- };
3023
- const requests = axiosClient.init(updatedEnv);
3024
- dispatch(setEnv({ ...updatedEnv, requests }));
3025
- return setupEnvConfig();
3026
- };
3027
- const setupUid = (uid) => {
3028
- store.dispatch(setUid(uid));
3029
- return setupEnvConfig();
3030
- };
3031
- const setupLang = (lang) => {
3032
- store.dispatch(setLang(lang));
3033
- return setupEnvConfig();
3034
- };
3035
- const setupAllowCompanies = (allowCompanies) => {
3036
- store.dispatch(setAllowCompanies(allowCompanies));
3037
- return setupEnvConfig();
3038
- };
3039
- const setupCompanies = (companies) => {
3040
- store.dispatch(setCompanies(companies));
3041
- return setupEnvConfig();
3042
- };
3043
- const setupDefaultCompany = (company) => {
3044
- store.dispatch(setDefaultCompany(company));
3045
- return setupEnvConfig();
3046
- };
3047
- const setUserInfo = (userInfo) => {
3048
- store.dispatch(setUser(userInfo));
3049
- return setupEnvConfig();
3050
- };
3051
- return {
3052
- getEnvConfig: setupEnvConfig,
3053
- setupEnv,
3054
- setUid: setupUid,
3055
- setLang: setupLang,
3056
- setAllowCompanies: setupAllowCompanies,
3057
- setCompanies: setupCompanies,
3058
- setDefaultCompany: setupDefaultCompany,
3059
- setUserInfo
3060
- };
3061
- }
3062
- var env = null;
3063
- function getEnv() {
3064
- if (!env) {
3065
- env = createEnvStore(envStore, localStorageUtils(), sessionStorageUtils());
3066
- }
3067
- return env;
3068
- }
3069
-
3070
- // src/services/view-service/index.ts
3071
- var ViewService = {
3072
- async getView({
3073
- model,
3074
- views,
3075
- context = {},
3076
- options = {},
3077
- aid
3078
- }) {
3079
- const env2 = getEnv();
3080
- const defaultOptions = {
3081
- load_filters: true,
3082
- toolbar: true,
3083
- action_id: aid
3084
- };
3085
- const jsonDataView = {
3086
- model,
3087
- method: "get_fields_view_v2" /* GET_FIELD_VIEW */,
3088
- kwargs: {
3089
- views,
3090
- options: { ...options, ...defaultOptions }
3091
- },
3092
- with_context: context
3093
- };
3094
- return env2?.requests?.post("/call" /* CALL_PATH */, jsonDataView, {
3095
- headers: {
3096
- "Content-Type": "application/json"
3097
- }
3098
- });
3099
- },
3100
- async getMenu(context) {
3101
- const env2 = getEnv();
3102
- const jsonData = {
3103
- model: "ir.ui.menu" /* MENU */,
3104
- method: "web_search_read" /* WEB_SEARCH_READ */,
3105
- ids: [],
3106
- with_context: context,
3107
- kwargs: {
3108
- specification: {
3109
- active: {},
3110
- name: {},
3111
- is_display: {},
3112
- sequence: {},
3113
- complete_name: {},
3114
- action: {
3115
- fields: {
3116
- display_name: {},
3117
- type: {},
3118
- binding_view_types: {}
3119
- // res_model: {},
3120
- }
3121
- },
3122
- url_icon: {},
3123
- web_icon: {},
3124
- web_icon_data: {},
3125
- groups_id: {
3126
- fields: {
3127
- full_name: {}
3128
- },
3129
- limit: 40,
3130
- order: ""
3131
- },
3132
- display_name: {},
3133
- child_id: {
3134
- fields: {
3135
- active: {},
3136
- name: {},
3137
- is_display: {},
3138
- sequence: {},
3139
- complete_name: {},
3140
- action: {
3141
- fields: {
3142
- display_name: {},
3143
- type: {},
3144
- binding_view_types: {}
3145
- // res_model: {},
3146
- }
3147
- },
3148
- url_icon: {},
3149
- web_icon: {},
3150
- web_icon_data: {},
3151
- groups_id: {
3152
- fields: {
3153
- full_name: {}
3154
- },
3155
- limit: 40,
3156
- order: ""
3157
- },
3158
- display_name: {},
3159
- child_id: {
3160
- fields: {
3161
- active: {},
3162
- name: {},
3163
- is_display: {},
3164
- sequence: {},
3165
- complete_name: {},
3166
- action: {
3167
- fields: {
3168
- display_name: {},
3169
- type: {},
3170
- binding_view_types: {}
3171
- // res_model: {},
3172
- }
3173
- },
3174
- url_icon: {},
3175
- web_icon: {},
3176
- web_icon_data: {},
3177
- groups_id: {
3178
- fields: {
3179
- full_name: {}
3180
- },
3181
- limit: 40,
3182
- order: ""
3183
- },
3184
- display_name: {},
3185
- child_id: {
3186
- fields: {
3187
- active: {},
3188
- name: {},
3189
- is_display: {},
3190
- sequence: {},
3191
- complete_name: {},
3192
- action: {
3193
- fields: {
3194
- display_name: {},
3195
- type: {},
3196
- binding_view_types: {}
3197
- // res_model: {},
3198
- }
3199
- },
3200
- url_icon: {},
3201
- web_icon: {},
3202
- web_icon_data: {},
3203
- groups_id: {
3204
- fields: {
3205
- full_name: {}
3206
- },
3207
- limit: 40,
3208
- order: ""
3209
- },
3210
- display_name: {},
3211
- child_id: {
3212
- fields: {},
3213
- limit: 40,
3214
- order: ""
3215
- }
3216
- },
3217
- limit: 40,
3218
- order: ""
3219
- }
3220
- },
3221
- limit: 40,
3222
- order: ""
3223
- }
3224
- },
3225
- limit: 40,
3226
- order: ""
3227
- }
3228
- },
3229
- domain: [
3230
- "&",
3231
- ["is_display", "=", true],
3232
- "&",
3233
- ["active", "=", true],
3234
- ["parent_id", "=", false]
3235
- ]
3236
- }
3237
- };
3238
- return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
3239
- headers: {
3240
- "Content-Type": "application/json"
3241
- }
3242
- });
3243
- },
3244
- async getActionDetail(aid, context) {
3245
- const env2 = getEnv();
3246
- const jsonData = {
3247
- model: "ir.actions.act_window" /* WINDOW_ACTION */,
3248
- method: "web_read" /* WEB_READ */,
3249
- ids: [aid],
3250
- with_context: context,
3251
- kwargs: {
3252
- specification: {
3253
- id: {},
3254
- name: {},
3255
- res_model: {},
3256
- views: {},
3257
- view_mode: {},
3258
- mobile_view_mode: {},
3259
- domain: {},
3260
- context: {},
3261
- groups_id: {},
3262
- search_view_id: {}
3263
- }
3264
- }
3265
- };
3266
- return env2?.requests?.post("/call" /* CALL_PATH */, jsonData, {
3267
- headers: {
3268
- "Content-Type": "application/json"
3269
- }
3270
- });
3271
- },
3272
- async getResequence({
3273
- model,
3274
- ids,
3275
- context,
3276
- offset
3277
- }) {
3278
- const env2 = getEnv();
3279
- const jsonData = {
3280
- model,
3281
- with_context: context,
3282
- ids,
3283
- field: "sequence",
3284
- ...offset > 0 ? { offset } : {}
3285
- };
3286
- return env2?.requests.post("/web/dataset/resequence", jsonData, {
3287
- headers: {
3288
- "Content-Type": "application/json"
3289
- }
3290
- });
3291
- },
3292
- async getSelectionItem({ data }) {
3293
- const env2 = getEnv();
3294
- const jsonData = {
3295
- model: data.model,
3296
- ids: [],
3297
- method: "get_data_select",
3298
- with_context: data.context,
3299
- kwargs: {
3300
- count_limit: 10001,
3301
- domain: data.domain ? data.domain : [],
3302
- offset: 0,
3303
- order: "",
3304
- specification: data?.specification ?? {
3305
- id: {},
3306
- name: {},
3307
- display_name: {}
3308
- }
3309
- }
3310
- };
3311
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3312
- headers: {
3313
- "Content-Type": "application/json"
3314
- }
3315
- });
3316
- },
3317
- async loadMessages() {
3318
- const env2 = getEnv();
3319
- return env2.requests.post(
3320
- "/load_message_failures" /* LOAD_MESSAGE */,
3321
- {},
3322
- {
3323
- headers: {
3324
- "Content-Type": "application/json"
3325
- }
3326
- }
3327
- );
3328
- },
3329
- async getVersion() {
3330
- const { env: env2 } = useEnv();
3331
- console.log("env?.requests", env2, env2?.requests);
3332
- return env2?.requests?.get("", {
3333
- headers: {
3334
- "Content-Type": "application/json"
3335
- }
3336
- });
3337
- },
3338
- async get2FAMethods({
3339
- method,
3340
- with_context
3341
- }) {
3342
- const env2 = getEnv();
3343
- const jsonData = {
3344
- method,
3345
- with_context
3346
- };
3347
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3348
- headers: {
3349
- "Content-Type": "application/json"
3350
- }
3351
- });
3352
- },
3353
- async verify2FA({
3354
- method,
3355
- with_context,
3356
- code,
3357
- device,
3358
- location
3359
- }) {
3360
- const env2 = getEnv();
3361
- const jsonData = {
3362
- method,
3363
- kwargs: {
3364
- vals: {
3365
- code,
3366
- device,
3367
- location
3368
- }
3369
- },
3370
- with_context
3371
- };
3372
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3373
- headers: {
3374
- "Content-Type": "application/json"
3375
- },
3376
- withCredentials: true
3377
- });
3378
- },
3379
- async signInSSO({
3380
- redirect_uri,
3381
- state,
3382
- client_id,
3383
- response_type,
3384
- path
3385
- }) {
3386
- const env2 = getEnv();
3387
- const params = new URLSearchParams({
3388
- response_type,
3389
- client_id,
3390
- redirect_uri,
3391
- state
3392
- });
3393
- const url = `${path}?${params.toString()}`;
3394
- return env2?.requests.get(url, {
3395
- headers: {
3396
- "Content-Type": "application/json"
3397
- },
3398
- withCredentials: true
3399
- });
3400
- },
3401
- async grantAccess({
3402
- redirect_uri,
3403
- state,
3404
- client_id,
3405
- scopes
3406
- }) {
3407
- const env2 = getEnv();
3408
- const jsonData = {
3409
- redirect_uri,
3410
- state,
3411
- client_id,
3412
- scopes
3413
- };
3414
- return env2?.requests.post("/grant-access" /* GRANT_ACCESS */, jsonData, {
3415
- headers: {
3416
- "Content-Type": "application/json"
3417
- },
3418
- withCredentials: true
3419
- });
3420
- },
3421
- async getFieldsViewSecurity({
3422
- method,
3423
- token,
3424
- views
3425
- }) {
3426
- const env2 = getEnv();
3427
- const jsonData = {
3428
- method,
3429
- kwargs: {
3430
- views
3431
- },
3432
- with_context: {
3433
- token
3434
- }
3435
- };
3436
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3437
- headers: {
3438
- "Content-Type": "application/json"
3439
- }
3440
- });
3441
- },
3442
- async settingsWebRead2fa({
3443
- method,
3444
- model,
3445
- kwargs,
3446
- token
3447
- }) {
3448
- const env2 = getEnv();
3449
- const jsonData = {
3450
- method,
3451
- model,
3452
- kwargs,
3453
- with_context: {
3454
- token
3455
- }
3456
- };
3457
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3458
- headers: {
3459
- "Content-Type": "application/json"
3460
- }
3461
- });
3462
- },
3463
- async requestSetupTotp({ method, token }) {
3464
- const env2 = getEnv();
3465
- const jsonData = {
3466
- method,
3467
- with_context: {
3468
- token
3469
- }
3470
- };
3471
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3472
- headers: {
3473
- "Content-Type": "application/json"
3474
- }
3475
- });
3476
- },
3477
- async verifyTotp({
3478
- method,
3479
- action_token,
3480
- code
3481
- }) {
3482
- const env2 = getEnv();
3483
- const jsonData = {
3484
- method,
3485
- kwargs: {
3486
- vals: {
3487
- code
3488
- }
3489
- },
3490
- with_context: {
3491
- action_token
3492
- }
3493
- };
3494
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3495
- headers: {
3496
- "Content-Type": "application/json"
3497
- }
3498
- });
3499
- },
3500
- async removeTotpSetUp({ method, token }) {
3501
- const env2 = getEnv();
3502
- const jsonData = {
3503
- method,
3504
- with_context: {
3505
- token
3506
- }
3507
- };
3508
- return env2?.requests.post("/call" /* CALL_PATH */, jsonData, {
3509
- headers: {
3510
- "Content-Type": "application/json"
3511
- }
3512
- });
3513
- }
3514
- };
3515
- var view_service_default = ViewService;
3516
-
3517
- // src/provider/version-gate-provider.tsx
3518
- import { Fragment, jsx as jsx4 } from "react/jsx-runtime";
3519
- var VersionGate = ({ children }) => {
3520
- const queryClient = useQueryClient();
3521
- const [ready, setReady] = useState2(false);
3522
- useEffect2(() => {
3523
- const clearVersion = () => {
3524
- queryClient.clear();
3525
- localStorage.removeItem("__api_version__");
3526
- };
3527
- const validateVersion = async () => {
3528
- const serverVersion = await view_service_default.getVersion();
3529
- console.log("serverVersion", serverVersion);
3530
- const cached = localStorage.getItem("__api_version__");
3531
- if (cached !== serverVersion?.api_version) {
3532
- clearVersion();
3533
- localStorage.setItem("__api_version__", serverVersion?.api_version);
3534
- } else {
3535
- console.log("Api version:", serverVersion?.api_version);
3536
- }
3537
- setReady(true);
3538
- };
3539
- validateVersion();
3540
- if (typeof window !== "undefined") {
3541
- const onKey = (e) => {
3542
- const key = e.key.toLowerCase();
3543
- const isHardRefresh = (key === "f5" || key === "r") && e.ctrlKey && (key !== "r" || e.shiftKey) || key === "r" && e.metaKey && e.shiftKey || key === "r" && e.metaKey && e.altKey;
3544
- if (isHardRefresh) clearVersion();
3545
- };
3546
- window.addEventListener("keydown", onKey);
3547
- return () => window.removeEventListener("keydown", onKey);
3548
- }
3549
- }, [queryClient]);
3550
- return ready ? /* @__PURE__ */ jsx4(Fragment, { children }) : null;
3551
- };
3552
-
3553
3289
  // src/provider/env-provider.tsx
3554
- import { createContext, useContext, useState as useState3, useCallback } from "react";
3555
3290
  import { jsx as jsx5 } from "react/jsx-runtime";
3556
3291
  var initialEnvState = {
3557
3292
  baseUrl: "",
@@ -3579,15 +3314,15 @@ function EnvProvider({
3579
3314
  localStorageUtils: localStorageUtil = localStorageUtils(),
3580
3315
  sessionStorageUtils: sessionStorageUtil = sessionStorageUtils()
3581
3316
  }) {
3582
- const [env2, setEnvState] = useState3({
3317
+ const [env, setEnvState] = useState3({
3583
3318
  ...initialEnvState,
3584
3319
  localStorageUtils: localStorageUtil,
3585
3320
  sessionStorageUtils: sessionStorageUtil
3586
3321
  });
3587
- const setupEnv = useCallback(
3322
+ const setupEnv = useCallback2(
3588
3323
  (envConfig) => {
3589
3324
  const updatedEnv = {
3590
- ...env2,
3325
+ ...env,
3591
3326
  ...envConfig,
3592
3327
  localStorageUtils: localStorageUtil,
3593
3328
  sessionStorageUtils: sessionStorageUtil
@@ -3596,33 +3331,33 @@ function EnvProvider({
3596
3331
  setEnvState({ ...updatedEnv, requests });
3597
3332
  return updatedEnv;
3598
3333
  },
3599
- [env2, localStorageUtil, sessionStorageUtil]
3334
+ [env, localStorageUtil, sessionStorageUtil]
3600
3335
  );
3601
- const setUid2 = useCallback((uid) => {
3336
+ const setUid2 = useCallback2((uid) => {
3602
3337
  setEnvState((prev) => ({
3603
3338
  ...prev,
3604
3339
  context: { ...prev.context, uid }
3605
3340
  }));
3606
3341
  }, []);
3607
- const setLang2 = useCallback((lang) => {
3342
+ const setLang2 = useCallback2((lang) => {
3608
3343
  setEnvState((prev) => ({
3609
3344
  ...prev,
3610
3345
  context: { ...prev.context, lang }
3611
3346
  }));
3612
3347
  }, []);
3613
- const setAllowCompanies2 = useCallback((allowed_company_ids) => {
3348
+ const setAllowCompanies2 = useCallback2((allowed_company_ids) => {
3614
3349
  setEnvState((prev) => ({
3615
3350
  ...prev,
3616
3351
  context: { ...prev.context, allowed_company_ids }
3617
3352
  }));
3618
3353
  }, []);
3619
- const setCompanies2 = useCallback((companies) => {
3354
+ const setCompanies2 = useCallback2((companies) => {
3620
3355
  setEnvState((prev) => ({
3621
3356
  ...prev,
3622
3357
  companies
3623
3358
  }));
3624
3359
  }, []);
3625
- const setDefaultCompany2 = useCallback(
3360
+ const setDefaultCompany2 = useCallback2(
3626
3361
  (defaultCompany) => {
3627
3362
  setEnvState((prev) => ({
3628
3363
  ...prev,
@@ -3631,19 +3366,19 @@ function EnvProvider({
3631
3366
  },
3632
3367
  []
3633
3368
  );
3634
- const setUserInfo = useCallback((user) => {
3369
+ const setUserInfo = useCallback2((user) => {
3635
3370
  setEnvState((prev) => ({
3636
3371
  ...prev,
3637
3372
  user
3638
3373
  }));
3639
3374
  }, []);
3640
- const setConfig2 = useCallback((config) => {
3375
+ const setConfig2 = useCallback2((config) => {
3641
3376
  setEnvState((prev) => ({
3642
3377
  ...prev,
3643
3378
  config
3644
3379
  }));
3645
3380
  }, []);
3646
- const setEnvFile2 = useCallback((envFile) => {
3381
+ const setEnvFile2 = useCallback2((envFile) => {
3647
3382
  setEnvState((prev) => ({
3648
3383
  ...prev,
3649
3384
  envFile
@@ -3653,7 +3388,7 @@ function EnvProvider({
3653
3388
  EnvContext.Provider,
3654
3389
  {
3655
3390
  value: {
3656
- env: env2,
3391
+ env,
3657
3392
  setupEnv,
3658
3393
  setUid: setUid2,
3659
3394
  setLang: setLang2,