@fctc/interface-logic 4.7.9 → 4.8.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.mjs CHANGED
@@ -704,6 +704,7 @@ var UriConstants = /* @__PURE__ */ ((UriConstants2) => {
704
704
  UriConstants2["READ_GROUP"] = "/read_group";
705
705
  UriConstants2["GET_NOTIFICATION"] = "/mail/data";
706
706
  UriConstants2["PUBLIC_USER_INFO"] = "/public/user/info";
707
+ UriConstants2["FUNCTIONAL_MODULES"] = "/functional-modules";
707
708
  return UriConstants2;
708
709
  })(UriConstants || {});
709
710
 
@@ -6422,11 +6423,34 @@ var completeCurrentStageService = (env) => {
6422
6423
  };
6423
6424
  };
6424
6425
 
6425
- // src/services/pos-service/supabase/add-floor.ts
6426
+ // src/services/pos-service/get-functional-modules.ts
6426
6427
  import { useCallback as useCallback41 } from "react";
6428
+ var getFunctionalModulesService = (env) => {
6429
+ const getFunctionalModules = useCallback41(
6430
+ async ({ xNode, service }) => {
6431
+ return env?.requests.get(
6432
+ "/functional-modules" /* FUNCTIONAL_MODULES */,
6433
+ {
6434
+ headers: {
6435
+ "Content-Type": "application/json",
6436
+ ...xNode ? { "X-Node": xNode } : {}
6437
+ }
6438
+ },
6439
+ service
6440
+ );
6441
+ },
6442
+ [env]
6443
+ );
6444
+ return {
6445
+ getFunctionalModules
6446
+ };
6447
+ };
6448
+
6449
+ // src/services/pos-service/supabase/add-floor.ts
6450
+ import { useCallback as useCallback42 } from "react";
6427
6451
  var addFloorSupabaseService = () => {
6428
6452
  const supabase = useSupabaseOptional();
6429
- const addFloorSupabase = useCallback41(
6453
+ const addFloorSupabase = useCallback42(
6430
6454
  async (values) => {
6431
6455
  if (!supabase) {
6432
6456
  console.error("Supabase client not initialized");
@@ -6457,10 +6481,10 @@ var addFloorSupabaseService = () => {
6457
6481
  };
6458
6482
 
6459
6483
  // src/services/pos-service/supabase/add-table.ts
6460
- import { useCallback as useCallback42 } from "react";
6484
+ import { useCallback as useCallback43 } from "react";
6461
6485
  var addTableSupabaseService = () => {
6462
6486
  const supabase = useSupabaseOptional();
6463
- const addTableSupabase = useCallback42(
6487
+ const addTableSupabase = useCallback43(
6464
6488
  async (values) => {
6465
6489
  if (!supabase) {
6466
6490
  console.error("Supabase client not initialized");
@@ -6490,10 +6514,10 @@ var addTableSupabaseService = () => {
6490
6514
  };
6491
6515
 
6492
6516
  // src/services/pos-service/supabase/update-floor.ts
6493
- import { useCallback as useCallback43 } from "react";
6517
+ import { useCallback as useCallback44 } from "react";
6494
6518
  var updateFloorSupabaseService = () => {
6495
6519
  const supabase = useSupabaseOptional();
6496
- const updateFloorSupabase = useCallback43(
6520
+ const updateFloorSupabase = useCallback44(
6497
6521
  async (values) => {
6498
6522
  if (!supabase) {
6499
6523
  console.error("Supabase client not initialized");
@@ -6520,10 +6544,10 @@ var updateFloorSupabaseService = () => {
6520
6544
  };
6521
6545
 
6522
6546
  // src/services/pos-service/supabase/update-table.ts
6523
- import { useCallback as useCallback44 } from "react";
6547
+ import { useCallback as useCallback45 } from "react";
6524
6548
  var updateTableSupabaseService = () => {
6525
6549
  const supabase = useSupabaseOptional();
6526
- const updateTableSupabase = useCallback44(
6550
+ const updateTableSupabase = useCallback45(
6527
6551
  async (values) => {
6528
6552
  if (!supabase) {
6529
6553
  console.error("Supabase client not initialized");
@@ -6550,10 +6574,10 @@ var updateTableSupabaseService = () => {
6550
6574
  };
6551
6575
 
6552
6576
  // src/services/pos-service/supabase/delete-floor.ts
6553
- import { useCallback as useCallback45 } from "react";
6577
+ import { useCallback as useCallback46 } from "react";
6554
6578
  var deleteFloorSupabaseService = () => {
6555
6579
  const supabase = useSupabaseOptional();
6556
- const deleteFloorSupabase = useCallback45(
6580
+ const deleteFloorSupabase = useCallback46(
6557
6581
  async (values) => {
6558
6582
  if (!supabase) {
6559
6583
  console.error("Supabase client not initialized");
@@ -6579,10 +6603,10 @@ var deleteFloorSupabaseService = () => {
6579
6603
  };
6580
6604
 
6581
6605
  // src/services/pos-service/supabase/delete-table.ts
6582
- import { useCallback as useCallback46 } from "react";
6606
+ import { useCallback as useCallback47 } from "react";
6583
6607
  var deleteTableSupabaseService = () => {
6584
6608
  const supabase = useSupabaseOptional();
6585
- const deleteTableSupabase = useCallback46(
6609
+ const deleteTableSupabase = useCallback47(
6586
6610
  async (values) => {
6587
6611
  if (!supabase) {
6588
6612
  console.error("Supabase client not initialized");
@@ -6608,10 +6632,10 @@ var deleteTableSupabaseService = () => {
6608
6632
  };
6609
6633
 
6610
6634
  // src/services/pos-service/supabase/create-order.ts
6611
- import { useCallback as useCallback47 } from "react";
6635
+ import { useCallback as useCallback48 } from "react";
6612
6636
  var createOrderSupabaseService = () => {
6613
6637
  const supabase = useSupabaseOptional();
6614
- const createOrderSupabase = useCallback47(
6638
+ const createOrderSupabase = useCallback48(
6615
6639
  async (values) => {
6616
6640
  if (!supabase) {
6617
6641
  console.error("Supabase client not initialized");
@@ -6619,7 +6643,6 @@ var createOrderSupabaseService = () => {
6619
6643
  }
6620
6644
  try {
6621
6645
  const { data, error } = await supabase.from("orders" /* ORDERS */).insert({
6622
- name: values.pos_reference,
6623
6646
  session_id: values.session_id,
6624
6647
  pos_reference: values.pos_reference,
6625
6648
  amount_tax: values.amount_tax,
@@ -6627,8 +6650,7 @@ var createOrderSupabaseService = () => {
6627
6650
  amount_paid: values.amount_paid,
6628
6651
  amount_return: values.amount_return,
6629
6652
  table_id: values.table_id,
6630
- partner_id: values.partner_id,
6631
- date_order: (/* @__PURE__ */ new Date()).toISOString()
6653
+ partner_id: values.partner_id
6632
6654
  }).select("id, pos_reference").single();
6633
6655
  if (error) {
6634
6656
  console.error("Error creating order:", error);
@@ -6648,10 +6670,10 @@ var createOrderSupabaseService = () => {
6648
6670
  };
6649
6671
 
6650
6672
  // src/services/pos-service/supabase/add-product-to-order.ts
6651
- import { useCallback as useCallback48 } from "react";
6673
+ import { useCallback as useCallback49 } from "react";
6652
6674
  var addProductToOrderSupabaseService = () => {
6653
6675
  const supabase = useSupabaseOptional();
6654
- const addProductToOrderSupabase = useCallback48(
6676
+ const addProductToOrderSupabase = useCallback49(
6655
6677
  async (values) => {
6656
6678
  if (!supabase) {
6657
6679
  console.error("Supabase client not initialized");
@@ -6688,10 +6710,10 @@ var addProductToOrderSupabaseService = () => {
6688
6710
  };
6689
6711
 
6690
6712
  // src/services/pos-service/supabase/update-order-total-amount.ts
6691
- import { useCallback as useCallback49 } from "react";
6713
+ import { useCallback as useCallback50 } from "react";
6692
6714
  var updateOrderTotalAmountSupabaseService = () => {
6693
6715
  const supabase = useSupabaseOptional();
6694
- const updateOrderTotalAmountSupabase = useCallback49(
6716
+ const updateOrderTotalAmountSupabase = useCallback50(
6695
6717
  async (values) => {
6696
6718
  if (!supabase) {
6697
6719
  console.error("Supabase client not initialized");
@@ -6721,10 +6743,10 @@ var updateOrderTotalAmountSupabaseService = () => {
6721
6743
  };
6722
6744
 
6723
6745
  // src/services/pos-service/supabase/update-order-line.ts
6724
- import { useCallback as useCallback50 } from "react";
6746
+ import { useCallback as useCallback51 } from "react";
6725
6747
  var updateOrderLineSupabaseService = () => {
6726
6748
  const supabase = useSupabaseOptional();
6727
- const updateOrderLineSupabase = useCallback50(
6749
+ const updateOrderLineSupabase = useCallback51(
6728
6750
  async (values) => {
6729
6751
  if (!supabase) {
6730
6752
  console.error("Supabase client not initialized");
@@ -6756,22 +6778,20 @@ var updateOrderLineSupabaseService = () => {
6756
6778
  };
6757
6779
 
6758
6780
  // src/services/pos-service/supabase/update-order.ts
6759
- import { useCallback as useCallback51 } from "react";
6781
+ import { useCallback as useCallback52 } from "react";
6760
6782
  var updateOrderSupabaseService = () => {
6761
6783
  const supabase = useSupabaseOptional();
6762
- const updateOrderSupabase = useCallback51(
6784
+ const updateOrderSupabase = useCallback52(
6763
6785
  async (values) => {
6764
6786
  if (!supabase) {
6765
6787
  console.error("Supabase client not initialized");
6766
6788
  return [];
6767
6789
  }
6768
6790
  const { order_id, ...rest } = values;
6769
- const updateData = Object.fromEntries(
6770
- Object.entries({
6771
- ...rest,
6772
- updated_at: (/* @__PURE__ */ new Date()).toISOString()
6773
- }).filter(([_, v]) => v !== void 0)
6774
- );
6791
+ const updateData = cleanObject({
6792
+ ...rest,
6793
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
6794
+ });
6775
6795
  try {
6776
6796
  const { error, data } = await supabase.from("orders" /* ORDERS */).update(updateData).eq("id", order_id).select("id").single();
6777
6797
  if (error) {
@@ -6792,10 +6812,10 @@ var updateOrderSupabaseService = () => {
6792
6812
  };
6793
6813
 
6794
6814
  // src/services/pos-service/supabase/delete-order.ts
6795
- import { useCallback as useCallback52 } from "react";
6815
+ import { useCallback as useCallback53 } from "react";
6796
6816
  var deleteOrderSupabaseService = () => {
6797
6817
  const supabase = useSupabaseOptional();
6798
- const deleteOrderSupabase = useCallback52(
6818
+ const deleteOrderSupabase = useCallback53(
6799
6819
  async (values) => {
6800
6820
  if (!supabase) {
6801
6821
  console.error("Supabase client not initialized");
@@ -6821,10 +6841,10 @@ var deleteOrderSupabaseService = () => {
6821
6841
  };
6822
6842
 
6823
6843
  // src/services/pos-service/supabase/delete-order-line.ts
6824
- import { useCallback as useCallback53 } from "react";
6844
+ import { useCallback as useCallback54 } from "react";
6825
6845
  var deleteOrderLineSupabaseService = () => {
6826
6846
  const supabase = useSupabaseOptional();
6827
- const deleteOrderLineSupabase = useCallback53(
6847
+ const deleteOrderLineSupabase = useCallback54(
6828
6848
  async (values) => {
6829
6849
  if (!supabase) {
6830
6850
  console.error("Supabase client not initialized");
@@ -6850,10 +6870,10 @@ var deleteOrderLineSupabaseService = () => {
6850
6870
  };
6851
6871
 
6852
6872
  // src/services/pos-service/supabase/add-category.ts
6853
- import { useCallback as useCallback54 } from "react";
6873
+ import { useCallback as useCallback55 } from "react";
6854
6874
  var addCategorySupabaseService = () => {
6855
6875
  const supabase = useSupabaseOptional();
6856
- const addCategorySupabase = useCallback54(
6876
+ const addCategorySupabase = useCallback55(
6857
6877
  async (values) => {
6858
6878
  if (!supabase) {
6859
6879
  console.error("Supabase client not initialized");
@@ -6881,33 +6901,31 @@ var addCategorySupabaseService = () => {
6881
6901
  };
6882
6902
 
6883
6903
  // src/services/pos-service/supabase/add-product.ts
6884
- import { useCallback as useCallback55 } from "react";
6904
+ import { useCallback as useCallback56 } from "react";
6885
6905
  var addProductSupabaseService = () => {
6886
6906
  const supabase = useSupabaseOptional();
6887
- const addProductSupabase = useCallback55(
6907
+ const addProductSupabase = useCallback56(
6888
6908
  async (values) => {
6889
6909
  if (!supabase) {
6890
6910
  console.error("Supabase client not initialized");
6891
6911
  return null;
6892
6912
  }
6893
- const insertData = Object.fromEntries(
6894
- Object.entries({
6895
- name: values.name,
6896
- product_tmpl_id: values.product_tmpl_id,
6897
- product_template_variant_value_ids: values.product_template_variant_value_ids ?? [],
6898
- combo_ids: values.combo_ids ?? [],
6899
- categ_id: values.categ_id,
6900
- pos_categ_ids: values.pos_categ_ids ?? [],
6901
- display_name: values.display_name || values.name,
6902
- default_code: values.default_code ?? "",
6903
- description_sale: values.description_sale ?? "",
6904
- lst_price: values.lst_price ?? 0,
6905
- standard_price: values.standard_price ?? 0,
6906
- barcode: values.barcode ?? "",
6907
- image_url: values.image_url ?? "",
6908
- active: values.active ?? true
6909
- }).filter(([_, v]) => v !== void 0)
6910
- );
6913
+ const insertData = cleanObject({
6914
+ name: values.name,
6915
+ product_tmpl_id: values.product_tmpl_id,
6916
+ product_template_variant_value_ids: values.product_template_variant_value_ids ?? [],
6917
+ combo_ids: values.combo_ids ?? [],
6918
+ categ_id: values.categ_id,
6919
+ pos_categ_ids: values.pos_categ_ids ?? [],
6920
+ display_name: values.display_name || values.name,
6921
+ default_code: values.default_code ?? "",
6922
+ description_sale: values.description_sale ?? "",
6923
+ lst_price: values.lst_price ?? 0,
6924
+ standard_price: values.standard_price ?? 0,
6925
+ barcode: values.barcode ?? "",
6926
+ image_url: values.image_url ?? "",
6927
+ active: values.active ?? true
6928
+ });
6911
6929
  try {
6912
6930
  const { data, error } = await supabase.from("products" /* PRODUCTS */).insert(insertData).select("id, name").single();
6913
6931
  if (error) {
@@ -6927,6 +6945,40 @@ var addProductSupabaseService = () => {
6927
6945
  };
6928
6946
  };
6929
6947
 
6948
+ // src/services/pos-service/supabase/add-payment-method.ts
6949
+ import { useCallback as useCallback57 } from "react";
6950
+ var addPaymentMethodSupabaseService = () => {
6951
+ const supabase = useSupabaseOptional();
6952
+ const addPaymentMethodSupabase = useCallback57(
6953
+ async (values) => {
6954
+ if (!supabase) {
6955
+ console.error("Supabase client not initialized");
6956
+ return null;
6957
+ }
6958
+ const { name, ...rest } = values;
6959
+ const insertData = cleanObject({
6960
+ name,
6961
+ ...rest
6962
+ });
6963
+ try {
6964
+ const { data, error } = await supabase.from("payment_methods" /* PAYMENT_METHODS */).insert(insertData).select("id, name").single();
6965
+ if (error) {
6966
+ console.error("Error adding payment method:", error);
6967
+ return null;
6968
+ }
6969
+ return [[data.id, data.name]];
6970
+ } catch (error) {
6971
+ console.error("Error adding payment method:", error);
6972
+ return null;
6973
+ }
6974
+ },
6975
+ [supabase]
6976
+ );
6977
+ return {
6978
+ addPaymentMethodSupabase
6979
+ };
6980
+ };
6981
+
6930
6982
  // src/services/pos-service/index.ts
6931
6983
  var serviceFactories = [
6932
6984
  addEntityService,
@@ -6973,7 +7025,9 @@ var serviceFactories = [
6973
7025
  updateOrderSupabaseService,
6974
7026
  deleteOrderSupabaseService,
6975
7027
  deleteOrderLineSupabaseService,
6976
- addProductSupabaseService
7028
+ addProductSupabaseService,
7029
+ getFunctionalModulesService,
7030
+ addPaymentMethodSupabaseService
6977
7031
  ];
6978
7032
  var usePosService = () => {
6979
7033
  const { env } = useEnv();
@@ -7022,7 +7076,7 @@ var VersionGate = ({ children }) => {
7022
7076
  };
7023
7077
 
7024
7078
  // src/provider/env-provider.tsx
7025
- import { createContext as createContext2, useContext as useContext2, useState as useState4, useCallback as useCallback56 } from "react";
7079
+ import { createContext as createContext2, useContext as useContext2, useState as useState4, useCallback as useCallback58 } from "react";
7026
7080
 
7027
7081
  // src/configs/axios-client.ts
7028
7082
  import axios from "axios";
@@ -7386,7 +7440,7 @@ function EnvProvider({
7386
7440
  localStorageUtils: localStorageUtil,
7387
7441
  sessionStorageUtils: sessionStorageUtil
7388
7442
  });
7389
- const setupEnv = useCallback56(
7443
+ const setupEnv = useCallback58(
7390
7444
  (envConfig) => {
7391
7445
  const updatedEnv = {
7392
7446
  ...env,
@@ -7400,31 +7454,31 @@ function EnvProvider({
7400
7454
  },
7401
7455
  [env, localStorageUtil, sessionStorageUtil]
7402
7456
  );
7403
- const setUid2 = useCallback56((uid) => {
7457
+ const setUid2 = useCallback58((uid) => {
7404
7458
  setEnvState((prev) => ({
7405
7459
  ...prev,
7406
7460
  context: { ...prev.context, uid }
7407
7461
  }));
7408
7462
  }, []);
7409
- const setLang2 = useCallback56((lang) => {
7463
+ const setLang2 = useCallback58((lang) => {
7410
7464
  setEnvState((prev) => ({
7411
7465
  ...prev,
7412
7466
  context: { ...prev.context, lang }
7413
7467
  }));
7414
7468
  }, []);
7415
- const setAllowCompanies2 = useCallback56((allowed_company_ids) => {
7469
+ const setAllowCompanies2 = useCallback58((allowed_company_ids) => {
7416
7470
  setEnvState((prev) => ({
7417
7471
  ...prev,
7418
7472
  context: { ...prev.context, allowed_company_ids }
7419
7473
  }));
7420
7474
  }, []);
7421
- const setCompanies2 = useCallback56((companies) => {
7475
+ const setCompanies2 = useCallback58((companies) => {
7422
7476
  setEnvState((prev) => ({
7423
7477
  ...prev,
7424
7478
  companies
7425
7479
  }));
7426
7480
  }, []);
7427
- const setDefaultCompany2 = useCallback56(
7481
+ const setDefaultCompany2 = useCallback58(
7428
7482
  (defaultCompany) => {
7429
7483
  setEnvState((prev) => ({
7430
7484
  ...prev,
@@ -7433,19 +7487,19 @@ function EnvProvider({
7433
7487
  },
7434
7488
  []
7435
7489
  );
7436
- const setUserInfo = useCallback56((user) => {
7490
+ const setUserInfo = useCallback58((user) => {
7437
7491
  setEnvState((prev) => ({
7438
7492
  ...prev,
7439
7493
  user
7440
7494
  }));
7441
7495
  }, []);
7442
- const setConfig2 = useCallback56((config) => {
7496
+ const setConfig2 = useCallback58((config) => {
7443
7497
  setEnvState((prev) => ({
7444
7498
  ...prev,
7445
7499
  config
7446
7500
  }));
7447
7501
  }, []);
7448
- const setEnvFile2 = useCallback56((envFile) => {
7502
+ const setEnvFile2 = useCallback58((envFile) => {
7449
7503
  setEnvState((prev) => ({
7450
7504
  ...prev,
7451
7505
  envFile
@@ -8366,9 +8420,9 @@ var BaseModel = class {
8366
8420
  };
8367
8421
 
8368
8422
  // src/hooks/model/use-model.ts
8369
- import { useCallback as useCallback57 } from "react";
8423
+ import { useCallback as useCallback59 } from "react";
8370
8424
  var useModel = () => {
8371
- const initModel = useCallback57((modelData) => {
8425
+ const initModel = useCallback59((modelData) => {
8372
8426
  switch (modelData?.name) {
8373
8427
  default:
8374
8428
  return new BaseModel(modelData);
@@ -9632,6 +9686,26 @@ var useAddProduct = () => {
9632
9686
  };
9633
9687
  var use_add_product_default = useAddProduct;
9634
9688
 
9689
+ // src/hooks/pos/use-get-functional-modules.ts
9690
+ import { useMutation as useMutation103 } from "@tanstack/react-query";
9691
+ var useGetFunctionalModules = () => {
9692
+ const pos = usePosService();
9693
+ return useMutation103({
9694
+ mutationFn: pos.getFunctionalModules
9695
+ });
9696
+ };
9697
+ var use_get_functional_modules_default = useGetFunctionalModules;
9698
+
9699
+ // src/hooks/pos/supabase/use-add-payment-method.ts
9700
+ import { useMutation as useMutation104 } from "@tanstack/react-query";
9701
+ var useAddPaymentMethod = () => {
9702
+ const { addPaymentMethodSupabase } = addPaymentMethodSupabaseService();
9703
+ return useMutation104({
9704
+ mutationFn: addPaymentMethodSupabase
9705
+ });
9706
+ };
9707
+ var use_add_payment_method_default = useAddPaymentMethod;
9708
+
9635
9709
  // src/provider/service-provider.tsx
9636
9710
  import { jsx as jsx7 } from "react/jsx-runtime";
9637
9711
  var ServiceContext = createContext3(null);
@@ -9767,7 +9841,9 @@ var ServiceProvider = ({
9767
9841
  useUpdateOrder: use_update_order_default,
9768
9842
  useDeleteOrder: use_delete_order_default,
9769
9843
  useDeleteOrderLine: use_delete_order_line_default,
9770
- useAddProduct: use_add_product_default
9844
+ useAddProduct: use_add_product_default,
9845
+ useGetFunctionalModules: use_get_functional_modules_default,
9846
+ useAddPaymentMethod: use_add_payment_method_default
9771
9847
  };
9772
9848
  return /* @__PURE__ */ jsx7(ServiceContext.Provider, { value: services, children });
9773
9849
  };
@@ -763,6 +763,23 @@ declare const serviceFactories: readonly [(env: any) => {
763
763
  image_url?: string;
764
764
  active?: boolean;
765
765
  }) => Promise<[number, string][] | null>;
766
+ }, (env: any) => {
767
+ getFunctionalModules: ({ xNode, service }: {
768
+ service?: string;
769
+ xNode?: string;
770
+ }) => Promise<any>;
771
+ }, () => {
772
+ addPaymentMethodSupabase: (values: {
773
+ name: string;
774
+ image?: string;
775
+ is_cash_count?: boolean;
776
+ is_online_payment?: boolean;
777
+ payment_method_type?: string;
778
+ payment_type?: string;
779
+ type?: string;
780
+ sequence?: number;
781
+ active?: boolean;
782
+ }) => Promise<[number, string][] | null>;
766
783
  }];
767
784
  type ServiceFactories = (typeof serviceFactories)[number];
768
785
  type ServiceReturn<T extends ServiceFactories> = ReturnType<T>;
@@ -763,6 +763,23 @@ declare const serviceFactories: readonly [(env: any) => {
763
763
  image_url?: string;
764
764
  active?: boolean;
765
765
  }) => Promise<[number, string][] | null>;
766
+ }, (env: any) => {
767
+ getFunctionalModules: ({ xNode, service }: {
768
+ service?: string;
769
+ xNode?: string;
770
+ }) => Promise<any>;
771
+ }, () => {
772
+ addPaymentMethodSupabase: (values: {
773
+ name: string;
774
+ image?: string;
775
+ is_cash_count?: boolean;
776
+ is_online_payment?: boolean;
777
+ payment_method_type?: string;
778
+ payment_type?: string;
779
+ type?: string;
780
+ sequence?: number;
781
+ active?: boolean;
782
+ }) => Promise<[number, string][] | null>;
766
783
  }];
767
784
  type ServiceFactories = (typeof serviceFactories)[number];
768
785
  type ServiceReturn<T extends ServiceFactories> = ReturnType<T>;