@fctc/interface-logic 5.0.0 → 5.0.1

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.js CHANGED
@@ -700,7 +700,7 @@ var MainProvider = ({ children }) => {
700
700
  };
701
701
 
702
702
  // src/provider/version-gate-provider.tsx
703
- var import_react70 = require("react");
703
+ var import_react73 = require("react");
704
704
  var import_react_query2 = require("@tanstack/react-query");
705
705
 
706
706
  // src/services/action-service/index.ts
@@ -7336,6 +7336,60 @@ var assignRoleService = (env) => {
7336
7336
  };
7337
7337
  };
7338
7338
 
7339
+ // src/services/pos-service/supabase/get-states.ts
7340
+ var import_react70 = require("react");
7341
+ var getStatesSupabaseService = () => {
7342
+ const supabase = useSupabaseOptional();
7343
+ const getStatesSupabase = (0, import_react70.useCallback)(async () => {
7344
+ if (!supabase) return { data: [], fields: {}, relations: {} };
7345
+ const { data, error } = await supabase.from("states" /* STATES */).select("*");
7346
+ if (error) {
7347
+ console.error("Error fetching states:", error);
7348
+ return { data: [], fields: {}, relations: {} };
7349
+ }
7350
+ return { data: data || [], fields: {}, relations: {} };
7351
+ }, [supabase]);
7352
+ return {
7353
+ getStatesSupabase
7354
+ };
7355
+ };
7356
+
7357
+ // src/services/pos-service/supabase/get-wards.ts
7358
+ var import_react71 = require("react");
7359
+ var getWardsSupabaseService = () => {
7360
+ const supabase = useSupabaseOptional();
7361
+ const getWardsSupabase = (0, import_react71.useCallback)(async () => {
7362
+ if (!supabase) return { data: [], fields: {}, relations: {} };
7363
+ const { data, error } = await supabase.from("wards" /* WARDS */).select("*");
7364
+ if (error) {
7365
+ console.error("Error fetching wards:", error);
7366
+ return { data: [], fields: {}, relations: {} };
7367
+ }
7368
+ return { data: data || [], fields: {}, relations: {} };
7369
+ }, [supabase]);
7370
+ return {
7371
+ getWardsSupabase
7372
+ };
7373
+ };
7374
+
7375
+ // src/services/pos-service/supabase/get-partner-titles.ts
7376
+ var import_react72 = require("react");
7377
+ var getPartnerTitlesSupabaseService = () => {
7378
+ const supabase = useSupabaseOptional();
7379
+ const getPartnerTitlesSupabase = (0, import_react72.useCallback)(async () => {
7380
+ if (!supabase) return { data: [], fields: {}, relations: {} };
7381
+ const { data, error } = await supabase.from("partner_titles" /* PARTNER_TITLES */).select("*");
7382
+ if (error) {
7383
+ console.error("Error fetching partner titles:", error);
7384
+ return { data: [], fields: {}, relations: {} };
7385
+ }
7386
+ return { data: data || [], fields: {}, relations: {} };
7387
+ }, [supabase]);
7388
+ return {
7389
+ getPartnerTitlesSupabase
7390
+ };
7391
+ };
7392
+
7339
7393
  // src/services/pos-service/index.ts
7340
7394
  var serviceFactories = [
7341
7395
  addEntityService,
@@ -7393,7 +7447,10 @@ var serviceFactories = [
7393
7447
  uploadImageSupabaseService,
7394
7448
  getListUsersService,
7395
7449
  getListRolesService,
7396
- assignRoleService
7450
+ assignRoleService,
7451
+ getStatesSupabaseService,
7452
+ getWardsSupabaseService,
7453
+ getPartnerTitlesSupabaseService
7397
7454
  ];
7398
7455
  var usePosService = () => {
7399
7456
  const { env } = useEnv();
@@ -7409,9 +7466,9 @@ var usePosService = () => {
7409
7466
  var import_jsx_runtime5 = require("react/jsx-runtime");
7410
7467
  var VersionGate = ({ children }) => {
7411
7468
  const queryClient = (0, import_react_query2.useQueryClient)();
7412
- const [ready, setReady] = (0, import_react70.useState)(false);
7469
+ const [ready, setReady] = (0, import_react73.useState)(false);
7413
7470
  const { getVersion } = useViewService();
7414
- (0, import_react70.useEffect)(() => {
7471
+ (0, import_react73.useEffect)(() => {
7415
7472
  const clearVersion = () => {
7416
7473
  queryClient.clear();
7417
7474
  localStorage.removeItem("__api_version__");
@@ -7442,7 +7499,7 @@ var VersionGate = ({ children }) => {
7442
7499
  };
7443
7500
 
7444
7501
  // src/provider/env-provider.tsx
7445
- var import_react71 = require("react");
7502
+ var import_react74 = require("react");
7446
7503
 
7447
7504
  // src/configs/axios-client.ts
7448
7505
  var import_axios = __toESM(require("axios"));
@@ -7796,18 +7853,18 @@ var initialEnvState = {
7796
7853
  excludeLanguages: [],
7797
7854
  isSupaMode: false
7798
7855
  };
7799
- var EnvContext = (0, import_react71.createContext)(null);
7856
+ var EnvContext = (0, import_react74.createContext)(null);
7800
7857
  function EnvProvider({
7801
7858
  children,
7802
7859
  localStorageUtils: localStorageUtil = localStorageUtils(),
7803
7860
  sessionStorageUtils: sessionStorageUtil = sessionStorageUtils
7804
7861
  }) {
7805
- const [env, setEnvState] = (0, import_react71.useState)({
7862
+ const [env, setEnvState] = (0, import_react74.useState)({
7806
7863
  ...initialEnvState,
7807
7864
  localStorageUtils: localStorageUtil,
7808
7865
  sessionStorageUtils: sessionStorageUtil
7809
7866
  });
7810
- const setupEnv = (0, import_react71.useCallback)(
7867
+ const setupEnv = (0, import_react74.useCallback)(
7811
7868
  (envConfig) => {
7812
7869
  const updatedEnv = {
7813
7870
  ...env,
@@ -7821,31 +7878,31 @@ function EnvProvider({
7821
7878
  },
7822
7879
  [env, localStorageUtil, sessionStorageUtil]
7823
7880
  );
7824
- const setUid2 = (0, import_react71.useCallback)((uid) => {
7881
+ const setUid2 = (0, import_react74.useCallback)((uid) => {
7825
7882
  setEnvState((prev) => ({
7826
7883
  ...prev,
7827
7884
  context: { ...prev.context, uid }
7828
7885
  }));
7829
7886
  }, []);
7830
- const setLang2 = (0, import_react71.useCallback)((lang) => {
7887
+ const setLang2 = (0, import_react74.useCallback)((lang) => {
7831
7888
  setEnvState((prev) => ({
7832
7889
  ...prev,
7833
7890
  context: { ...prev.context, lang }
7834
7891
  }));
7835
7892
  }, []);
7836
- const setAllowCompanies2 = (0, import_react71.useCallback)((allowed_company_ids) => {
7893
+ const setAllowCompanies2 = (0, import_react74.useCallback)((allowed_company_ids) => {
7837
7894
  setEnvState((prev) => ({
7838
7895
  ...prev,
7839
7896
  context: { ...prev.context, allowed_company_ids }
7840
7897
  }));
7841
7898
  }, []);
7842
- const setCompanies2 = (0, import_react71.useCallback)((companies) => {
7899
+ const setCompanies2 = (0, import_react74.useCallback)((companies) => {
7843
7900
  setEnvState((prev) => ({
7844
7901
  ...prev,
7845
7902
  companies
7846
7903
  }));
7847
7904
  }, []);
7848
- const setDefaultCompany2 = (0, import_react71.useCallback)(
7905
+ const setDefaultCompany2 = (0, import_react74.useCallback)(
7849
7906
  (defaultCompany) => {
7850
7907
  setEnvState((prev) => ({
7851
7908
  ...prev,
@@ -7854,19 +7911,19 @@ function EnvProvider({
7854
7911
  },
7855
7912
  []
7856
7913
  );
7857
- const setUserInfo = (0, import_react71.useCallback)((user) => {
7914
+ const setUserInfo = (0, import_react74.useCallback)((user) => {
7858
7915
  setEnvState((prev) => ({
7859
7916
  ...prev,
7860
7917
  user
7861
7918
  }));
7862
7919
  }, []);
7863
- const setConfig2 = (0, import_react71.useCallback)((config) => {
7920
+ const setConfig2 = (0, import_react74.useCallback)((config) => {
7864
7921
  setEnvState((prev) => ({
7865
7922
  ...prev,
7866
7923
  config
7867
7924
  }));
7868
7925
  }, []);
7869
- const setEnvFile2 = (0, import_react71.useCallback)((envFile) => {
7926
+ const setEnvFile2 = (0, import_react74.useCallback)((envFile) => {
7870
7927
  setEnvState((prev) => ({
7871
7928
  ...prev,
7872
7929
  envFile
@@ -7892,7 +7949,7 @@ function EnvProvider({
7892
7949
  );
7893
7950
  }
7894
7951
  function useEnv() {
7895
- const context = (0, import_react71.useContext)(EnvContext);
7952
+ const context = (0, import_react74.useContext)(EnvContext);
7896
7953
  if (!context) {
7897
7954
  throw new Error("useEnv must be used within an EnvProvider");
7898
7955
  }
@@ -7900,7 +7957,7 @@ function useEnv() {
7900
7957
  }
7901
7958
 
7902
7959
  // src/provider/service-provider.tsx
7903
- var import_react73 = require("react");
7960
+ var import_react76 = require("react");
7904
7961
 
7905
7962
  // src/hooks/auth/use-forgot-password.ts
7906
7963
  var import_react_query3 = require("@tanstack/react-query");
@@ -8788,9 +8845,9 @@ var BaseModel = class {
8788
8845
  };
8789
8846
 
8790
8847
  // src/hooks/model/use-model.ts
8791
- var import_react72 = require("react");
8848
+ var import_react75 = require("react");
8792
8849
  var useModel = () => {
8793
- const initModel = (0, import_react72.useCallback)((modelData) => {
8850
+ const initModel = (0, import_react75.useCallback)((modelData) => {
8794
8851
  switch (modelData?.name) {
8795
8852
  default:
8796
8853
  return new BaseModel(modelData);
@@ -9485,8 +9542,10 @@ var use_get_version_default = useGetVersion;
9485
9542
  var import_react_query79 = require("@tanstack/react-query");
9486
9543
  var useGetWard = () => {
9487
9544
  const { getWard } = useViewService();
9545
+ const pos = usePosService();
9546
+ const { env } = useEnv();
9488
9547
  return (0, import_react_query79.useMutation)({
9489
- mutationFn: ({
9548
+ mutationFn: env.isSupaMode ? pos.getWardsSupabase : ({
9490
9549
  service,
9491
9550
  xNode,
9492
9551
  kwargs
@@ -9505,8 +9564,10 @@ var use_get_ward_default = useGetWard;
9505
9564
  var import_react_query80 = require("@tanstack/react-query");
9506
9565
  var useGetCity = () => {
9507
9566
  const { getCity } = useViewService();
9567
+ const pos = usePosService();
9568
+ const { env } = useEnv();
9508
9569
  return (0, import_react_query80.useMutation)({
9509
- mutationFn: ({
9570
+ mutationFn: env.isSupaMode ? pos.getStatesSupabase : ({
9510
9571
  service,
9511
9572
  xNode,
9512
9573
  ids,
@@ -9549,8 +9610,10 @@ var use_get_country_default = useGetCountry;
9549
9610
  var import_react_query82 = require("@tanstack/react-query");
9550
9611
  var useGetPartnerTitle = () => {
9551
9612
  const { getPartnerTitle } = useViewService();
9613
+ const pos = usePosService();
9614
+ const { env } = useEnv();
9552
9615
  return (0, import_react_query82.useMutation)({
9553
- mutationFn: ({
9616
+ mutationFn: env.isSupaMode ? pos.getPartnerTitlesSupabase : ({
9554
9617
  service,
9555
9618
  xNode,
9556
9619
  kwargs,
@@ -10176,7 +10239,7 @@ var use_assign_role_default = useAssignRole;
10176
10239
 
10177
10240
  // src/provider/service-provider.tsx
10178
10241
  var import_jsx_runtime7 = require("react/jsx-runtime");
10179
- var ServiceContext = (0, import_react73.createContext)(null);
10242
+ var ServiceContext = (0, import_react76.createContext)(null);
10180
10243
  var ServiceProvider = ({
10181
10244
  children
10182
10245
  }) => {
@@ -10326,7 +10389,7 @@ var ServiceProvider = ({
10326
10389
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ServiceContext.Provider, { value: services, children });
10327
10390
  };
10328
10391
  var useService = () => {
10329
- const context = (0, import_react73.useContext)(ServiceContext);
10392
+ const context = (0, import_react76.useContext)(ServiceContext);
10330
10393
  if (!context) {
10331
10394
  throw new Error("useService must be used within a ServiceProvider");
10332
10395
  }
@@ -10334,7 +10397,7 @@ var useService = () => {
10334
10397
  };
10335
10398
 
10336
10399
  // src/provider/meta-provider.tsx
10337
- var import_react74 = require("react");
10400
+ var import_react77 = require("react");
10338
10401
  var import_jsx_runtime8 = require("react/jsx-runtime");
10339
10402
  var MetaProvider = ({ children }) => {
10340
10403
  const { env } = useEnv();
@@ -10383,7 +10446,7 @@ var MetaProvider = ({ children }) => {
10383
10446
  }
10384
10447
  }
10385
10448
  }
10386
- (0, import_react74.useEffect)(() => {
10449
+ (0, import_react77.useEffect)(() => {
10387
10450
  updateMetadata();
10388
10451
  }, [env?.defaultCompany]);
10389
10452
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children });
package/dist/provider.mjs CHANGED
@@ -7291,6 +7291,60 @@ var assignRoleService = (env) => {
7291
7291
  };
7292
7292
  };
7293
7293
 
7294
+ // src/services/pos-service/supabase/get-states.ts
7295
+ import { useCallback as useCallback67 } from "react";
7296
+ var getStatesSupabaseService = () => {
7297
+ const supabase = useSupabaseOptional();
7298
+ const getStatesSupabase = useCallback67(async () => {
7299
+ if (!supabase) return { data: [], fields: {}, relations: {} };
7300
+ const { data, error } = await supabase.from("states" /* STATES */).select("*");
7301
+ if (error) {
7302
+ console.error("Error fetching states:", error);
7303
+ return { data: [], fields: {}, relations: {} };
7304
+ }
7305
+ return { data: data || [], fields: {}, relations: {} };
7306
+ }, [supabase]);
7307
+ return {
7308
+ getStatesSupabase
7309
+ };
7310
+ };
7311
+
7312
+ // src/services/pos-service/supabase/get-wards.ts
7313
+ import { useCallback as useCallback68 } from "react";
7314
+ var getWardsSupabaseService = () => {
7315
+ const supabase = useSupabaseOptional();
7316
+ const getWardsSupabase = useCallback68(async () => {
7317
+ if (!supabase) return { data: [], fields: {}, relations: {} };
7318
+ const { data, error } = await supabase.from("wards" /* WARDS */).select("*");
7319
+ if (error) {
7320
+ console.error("Error fetching wards:", error);
7321
+ return { data: [], fields: {}, relations: {} };
7322
+ }
7323
+ return { data: data || [], fields: {}, relations: {} };
7324
+ }, [supabase]);
7325
+ return {
7326
+ getWardsSupabase
7327
+ };
7328
+ };
7329
+
7330
+ // src/services/pos-service/supabase/get-partner-titles.ts
7331
+ import { useCallback as useCallback69 } from "react";
7332
+ var getPartnerTitlesSupabaseService = () => {
7333
+ const supabase = useSupabaseOptional();
7334
+ const getPartnerTitlesSupabase = useCallback69(async () => {
7335
+ if (!supabase) return { data: [], fields: {}, relations: {} };
7336
+ const { data, error } = await supabase.from("partner_titles" /* PARTNER_TITLES */).select("*");
7337
+ if (error) {
7338
+ console.error("Error fetching partner titles:", error);
7339
+ return { data: [], fields: {}, relations: {} };
7340
+ }
7341
+ return { data: data || [], fields: {}, relations: {} };
7342
+ }, [supabase]);
7343
+ return {
7344
+ getPartnerTitlesSupabase
7345
+ };
7346
+ };
7347
+
7294
7348
  // src/services/pos-service/index.ts
7295
7349
  var serviceFactories = [
7296
7350
  addEntityService,
@@ -7348,7 +7402,10 @@ var serviceFactories = [
7348
7402
  uploadImageSupabaseService,
7349
7403
  getListUsersService,
7350
7404
  getListRolesService,
7351
- assignRoleService
7405
+ assignRoleService,
7406
+ getStatesSupabaseService,
7407
+ getWardsSupabaseService,
7408
+ getPartnerTitlesSupabaseService
7352
7409
  ];
7353
7410
  var usePosService = () => {
7354
7411
  const { env } = useEnv();
@@ -7397,7 +7454,7 @@ var VersionGate = ({ children }) => {
7397
7454
  };
7398
7455
 
7399
7456
  // src/provider/env-provider.tsx
7400
- import { createContext as createContext2, useContext as useContext2, useState as useState4, useCallback as useCallback67 } from "react";
7457
+ import { createContext as createContext2, useContext as useContext2, useState as useState4, useCallback as useCallback70 } from "react";
7401
7458
 
7402
7459
  // src/configs/axios-client.ts
7403
7460
  import axios from "axios";
@@ -7762,7 +7819,7 @@ function EnvProvider({
7762
7819
  localStorageUtils: localStorageUtil,
7763
7820
  sessionStorageUtils: sessionStorageUtil
7764
7821
  });
7765
- const setupEnv = useCallback67(
7822
+ const setupEnv = useCallback70(
7766
7823
  (envConfig) => {
7767
7824
  const updatedEnv = {
7768
7825
  ...env,
@@ -7776,31 +7833,31 @@ function EnvProvider({
7776
7833
  },
7777
7834
  [env, localStorageUtil, sessionStorageUtil]
7778
7835
  );
7779
- const setUid2 = useCallback67((uid) => {
7836
+ const setUid2 = useCallback70((uid) => {
7780
7837
  setEnvState((prev) => ({
7781
7838
  ...prev,
7782
7839
  context: { ...prev.context, uid }
7783
7840
  }));
7784
7841
  }, []);
7785
- const setLang2 = useCallback67((lang) => {
7842
+ const setLang2 = useCallback70((lang) => {
7786
7843
  setEnvState((prev) => ({
7787
7844
  ...prev,
7788
7845
  context: { ...prev.context, lang }
7789
7846
  }));
7790
7847
  }, []);
7791
- const setAllowCompanies2 = useCallback67((allowed_company_ids) => {
7848
+ const setAllowCompanies2 = useCallback70((allowed_company_ids) => {
7792
7849
  setEnvState((prev) => ({
7793
7850
  ...prev,
7794
7851
  context: { ...prev.context, allowed_company_ids }
7795
7852
  }));
7796
7853
  }, []);
7797
- const setCompanies2 = useCallback67((companies) => {
7854
+ const setCompanies2 = useCallback70((companies) => {
7798
7855
  setEnvState((prev) => ({
7799
7856
  ...prev,
7800
7857
  companies
7801
7858
  }));
7802
7859
  }, []);
7803
- const setDefaultCompany2 = useCallback67(
7860
+ const setDefaultCompany2 = useCallback70(
7804
7861
  (defaultCompany) => {
7805
7862
  setEnvState((prev) => ({
7806
7863
  ...prev,
@@ -7809,19 +7866,19 @@ function EnvProvider({
7809
7866
  },
7810
7867
  []
7811
7868
  );
7812
- const setUserInfo = useCallback67((user) => {
7869
+ const setUserInfo = useCallback70((user) => {
7813
7870
  setEnvState((prev) => ({
7814
7871
  ...prev,
7815
7872
  user
7816
7873
  }));
7817
7874
  }, []);
7818
- const setConfig2 = useCallback67((config) => {
7875
+ const setConfig2 = useCallback70((config) => {
7819
7876
  setEnvState((prev) => ({
7820
7877
  ...prev,
7821
7878
  config
7822
7879
  }));
7823
7880
  }, []);
7824
- const setEnvFile2 = useCallback67((envFile) => {
7881
+ const setEnvFile2 = useCallback70((envFile) => {
7825
7882
  setEnvState((prev) => ({
7826
7883
  ...prev,
7827
7884
  envFile
@@ -8743,9 +8800,9 @@ var BaseModel = class {
8743
8800
  };
8744
8801
 
8745
8802
  // src/hooks/model/use-model.ts
8746
- import { useCallback as useCallback68 } from "react";
8803
+ import { useCallback as useCallback71 } from "react";
8747
8804
  var useModel = () => {
8748
- const initModel = useCallback68((modelData) => {
8805
+ const initModel = useCallback71((modelData) => {
8749
8806
  switch (modelData?.name) {
8750
8807
  default:
8751
8808
  return new BaseModel(modelData);
@@ -9440,8 +9497,10 @@ var use_get_version_default = useGetVersion;
9440
9497
  import { useMutation as useMutation54 } from "@tanstack/react-query";
9441
9498
  var useGetWard = () => {
9442
9499
  const { getWard } = useViewService();
9500
+ const pos = usePosService();
9501
+ const { env } = useEnv();
9443
9502
  return useMutation54({
9444
- mutationFn: ({
9503
+ mutationFn: env.isSupaMode ? pos.getWardsSupabase : ({
9445
9504
  service,
9446
9505
  xNode,
9447
9506
  kwargs
@@ -9460,8 +9519,10 @@ var use_get_ward_default = useGetWard;
9460
9519
  import { useMutation as useMutation55 } from "@tanstack/react-query";
9461
9520
  var useGetCity = () => {
9462
9521
  const { getCity } = useViewService();
9522
+ const pos = usePosService();
9523
+ const { env } = useEnv();
9463
9524
  return useMutation55({
9464
- mutationFn: ({
9525
+ mutationFn: env.isSupaMode ? pos.getStatesSupabase : ({
9465
9526
  service,
9466
9527
  xNode,
9467
9528
  ids,
@@ -9504,8 +9565,10 @@ var use_get_country_default = useGetCountry;
9504
9565
  import { useMutation as useMutation57 } from "@tanstack/react-query";
9505
9566
  var useGetPartnerTitle = () => {
9506
9567
  const { getPartnerTitle } = useViewService();
9568
+ const pos = usePosService();
9569
+ const { env } = useEnv();
9507
9570
  return useMutation57({
9508
- mutationFn: ({
9571
+ mutationFn: env.isSupaMode ? pos.getPartnerTitlesSupabase : ({
9509
9572
  service,
9510
9573
  xNode,
9511
9574
  kwargs,
@@ -830,6 +830,24 @@ declare const serviceFactories: readonly [(env: any) => {
830
830
  userId: string;
831
831
  roleId: string;
832
832
  }) => any;
833
+ }, () => {
834
+ getStatesSupabase: () => Promise<{
835
+ data: any[];
836
+ fields: Record<string, any>;
837
+ relations: Record<string, any>;
838
+ }>;
839
+ }, () => {
840
+ getWardsSupabase: () => Promise<{
841
+ data: any[];
842
+ fields: Record<string, any>;
843
+ relations: Record<string, any>;
844
+ }>;
845
+ }, () => {
846
+ getPartnerTitlesSupabase: () => Promise<{
847
+ data: any[];
848
+ fields: Record<string, any>;
849
+ relations: Record<string, any>;
850
+ }>;
833
851
  }];
834
852
  type ServiceFactories = (typeof serviceFactories)[number];
835
853
  type ServiceReturn<T extends ServiceFactories> = ReturnType<T>;
@@ -830,6 +830,24 @@ declare const serviceFactories: readonly [(env: any) => {
830
830
  userId: string;
831
831
  roleId: string;
832
832
  }) => any;
833
+ }, () => {
834
+ getStatesSupabase: () => Promise<{
835
+ data: any[];
836
+ fields: Record<string, any>;
837
+ relations: Record<string, any>;
838
+ }>;
839
+ }, () => {
840
+ getWardsSupabase: () => Promise<{
841
+ data: any[];
842
+ fields: Record<string, any>;
843
+ relations: Record<string, any>;
844
+ }>;
845
+ }, () => {
846
+ getPartnerTitlesSupabase: () => Promise<{
847
+ data: any[];
848
+ fields: Record<string, any>;
849
+ relations: Record<string, any>;
850
+ }>;
833
851
  }];
834
852
  type ServiceFactories = (typeof serviceFactories)[number];
835
853
  type ServiceReturn<T extends ServiceFactories> = ReturnType<T>;