@r2wa-org/eden 0.0.100 → 0.0.102

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.
Files changed (35) hide show
  1. package/dist/admin/index.d.ts +282 -365
  2. package/dist/asset-convert-product/admin/dto.schemas.d.ts +12 -0
  3. package/dist/asset-convert-product/admin/router.d.ts +13 -25
  4. package/dist/asset-convert-product/admin/service.d.ts +12 -12
  5. package/dist/auth/better-auth.d.ts +6 -6
  6. package/dist/auth/permissions.d.ts +5 -5
  7. package/dist/auth/roles.d.ts +15 -15
  8. package/dist/check-in/admin/reward.dto.schemas.d.ts +113 -86
  9. package/dist/check-in/admin/reward.router.d.ts +266 -349
  10. package/dist/check-in/admin/reward.service.d.ts +11 -57
  11. package/dist/check-in/admin/router.d.ts +266 -349
  12. package/dist/check-in/constants.d.ts +2 -0
  13. package/dist/check-in/errors/index.d.ts +1 -0
  14. package/dist/check-in/errors/locales/zh.d.ts +1 -0
  15. package/dist/check-in/index.d.ts +2 -0
  16. package/dist/check-in/internal/reward-config.service.d.ts +31 -0
  17. package/dist/check-in/internal/reward.service.d.ts +31 -0
  18. package/dist/check-in/permissions.d.ts +1 -1
  19. package/dist/check-in/user/dto.schemas.d.ts +3 -22
  20. package/dist/check-in/user/router.d.ts +3 -10
  21. package/dist/check-in/user/service.d.ts +3 -4
  22. package/dist/content-video/user/router.d.ts +1 -13
  23. package/dist/file-storage/user/router.d.ts +13 -1
  24. package/dist/index.d.ts +287 -377
  25. package/dist/ledger/admin/dto.schemas.d.ts +12 -0
  26. package/dist/ledger/admin/router.d.ts +4 -4
  27. package/dist/ledger/db.schemas.d.ts +8 -8
  28. package/dist/ledger/schema.d.ts +6 -6
  29. package/dist/ledger/user/dto.schemas.d.ts +8 -8
  30. package/dist/ledger/user/router.d.ts +2 -2
  31. package/dist/ledger/user/service.d.ts +2 -2
  32. package/dist/referral/admin/router.d.ts +1 -13
  33. package/dist/team/user/router.d.ts +13 -1
  34. package/dist/welfare-cycle/admin/router.d.ts +13 -1
  35. package/package.json +1 -1
@@ -381,26 +381,8 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
381
381
  "reward-plans": {};
382
382
  } & {
383
383
  "reward-plans": {
384
- post: {
385
- body: {
386
- checkInType?: "app" | "meeting" | undefined;
387
- dailyPayoutAccountTypeId: string;
388
- dailyRewardAmount: string;
389
- dailyRewardCategory?: string | undefined;
390
- isEnabled?: boolean | undefined;
391
- name: string;
392
- rewardAssetId: string;
393
- rules?: {
394
- ruleType: "consecutive" | "cumulative";
395
- thresholdDays: number;
396
- rewardAmount: string;
397
- rewardCategory?: string | undefined;
398
- payoutAccountTypeId: string;
399
- isEnabled?: boolean | undefined;
400
- sortOrder?: number | undefined;
401
- }[] | undefined;
402
- sortOrder?: number | undefined;
403
- };
384
+ get: {
385
+ body: {};
404
386
  params: {};
405
387
  query: {};
406
388
  headers: {};
@@ -474,7 +456,7 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
474
456
  name: string;
475
457
  email: string;
476
458
  } | null;
477
- };
459
+ } | null;
478
460
  401: "Unauthorized";
479
461
  403: "Forbidden: Admins only";
480
462
  422: {
@@ -491,23 +473,61 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
491
473
  };
492
474
  } & {
493
475
  "reward-plans": {
494
- get: {
495
- body: {};
496
- params: {};
497
- query: {
476
+ post: {
477
+ body: {
498
478
  checkInType?: "app" | "meeting" | undefined;
479
+ dailyPayoutAccountTypeId: string;
480
+ dailyRewardAmount: string;
481
+ dailyRewardCategory?: string | undefined;
499
482
  isEnabled?: boolean | undefined;
500
- keyword?: string | undefined;
501
- limit?: number | undefined;
502
- offset?: number | undefined;
503
- pageIndex?: number | undefined;
504
- pageSize?: number | undefined;
483
+ name: string;
484
+ rewardAssetId: string;
485
+ rules?: {
486
+ isEnabled?: boolean | undefined;
487
+ payoutAccountTypeId: string;
488
+ rewardAmount: string;
489
+ rewardCategory?: string | undefined;
490
+ ruleType: "consecutive" | "cumulative";
491
+ sortOrder?: number | undefined;
492
+ thresholdDays: number;
493
+ }[] | undefined;
494
+ sortOrder?: number | undefined;
505
495
  };
496
+ params: {};
497
+ query: {};
506
498
  headers: {};
507
499
  response: {
508
500
  200: {
509
- data: {
510
- checkInType: "app" | "meeting";
501
+ checkInType: "app" | "meeting";
502
+ createdAt: Date;
503
+ createdBy: string;
504
+ creator: {
505
+ id: string;
506
+ name: string;
507
+ email: string;
508
+ } | null;
509
+ dailyPayoutAccountType: {
510
+ id: string;
511
+ key: string;
512
+ name: string;
513
+ isActive: boolean;
514
+ };
515
+ dailyPayoutAccountTypeId: string;
516
+ dailyRewardAmount: string;
517
+ dailyRewardCategory: string;
518
+ id: string;
519
+ isEnabled: boolean;
520
+ name: string;
521
+ rewardAsset: {
522
+ id: string;
523
+ code: string;
524
+ name: string;
525
+ symbol: string | null;
526
+ precision: number;
527
+ isActive: boolean;
528
+ };
529
+ rewardAssetId: string;
530
+ rules: {
511
531
  createdAt: Date;
512
532
  createdBy: string;
513
533
  creator: {
@@ -515,29 +535,21 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
515
535
  name: string;
516
536
  email: string;
517
537
  } | null;
518
- dailyPayoutAccountType: {
519
- id: string;
520
- key: string;
521
- name: string;
522
- isActive: boolean;
523
- };
524
- dailyPayoutAccountTypeId: string;
525
- dailyRewardAmount: string;
526
- dailyRewardCategory: string;
527
538
  id: string;
528
539
  isEnabled: boolean;
529
- name: string;
530
- rewardAsset: {
540
+ payoutAccountType: {
531
541
  id: string;
532
- code: string;
542
+ key: string;
533
543
  name: string;
534
- symbol: string | null;
535
- precision: number;
536
544
  isActive: boolean;
537
545
  };
538
- rewardAssetId: string;
539
- ruleCount: number;
546
+ payoutAccountTypeId: string;
547
+ planId: string;
548
+ rewardAmount: string;
549
+ rewardCategory: string;
550
+ ruleType: "consecutive" | "cumulative";
540
551
  sortOrder: number;
552
+ thresholdDays: number;
541
553
  updatedAt: Date;
542
554
  updatedBy: string | null;
543
555
  updater: {
@@ -546,13 +558,14 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
546
558
  email: string;
547
559
  } | null;
548
560
  }[];
549
- pagination: {
550
- pageSize: number;
551
- pageIndex: number;
552
- total: number;
553
- totalPages: number;
554
- hasNextPage: boolean;
555
- };
561
+ sortOrder: number;
562
+ updatedAt: Date;
563
+ updatedBy: string | null;
564
+ updater: {
565
+ id: string;
566
+ name: string;
567
+ email: string;
568
+ } | null;
556
569
  };
557
570
  401: "Unauthorized";
558
571
  403: "Forbidden: Admins only";
@@ -570,17 +583,70 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
570
583
  };
571
584
  } & {
572
585
  "reward-plans": {
573
- ":id": {
574
- get: {
575
- body: {};
576
- params: {
586
+ patch: {
587
+ body: {
588
+ checkInType?: "app" | "meeting" | undefined;
589
+ dailyPayoutAccountTypeId?: string | undefined;
590
+ dailyRewardAmount?: string | undefined;
591
+ dailyRewardCategory?: string | undefined;
592
+ isEnabled?: boolean | undefined;
593
+ name?: string | undefined;
594
+ rewardAssetId?: string | undefined;
595
+ rules?: ({
577
596
  id: string;
578
- };
579
- query: {};
580
- headers: {};
581
- response: {
582
- 200: {
583
- checkInType: "app" | "meeting";
597
+ isEnabled?: boolean | undefined;
598
+ payoutAccountTypeId?: string | undefined;
599
+ rewardAmount?: string | undefined;
600
+ rewardCategory?: string | undefined;
601
+ ruleType?: "consecutive" | "cumulative" | undefined;
602
+ sortOrder?: number | undefined;
603
+ thresholdDays?: number | undefined;
604
+ } | {
605
+ isEnabled?: boolean | undefined;
606
+ payoutAccountTypeId: string;
607
+ rewardAmount: string;
608
+ rewardCategory?: string | undefined;
609
+ ruleType: "consecutive" | "cumulative";
610
+ sortOrder?: number | undefined;
611
+ thresholdDays: number;
612
+ })[] | undefined;
613
+ sortOrder?: number | undefined;
614
+ };
615
+ params: {};
616
+ query: {};
617
+ headers: {};
618
+ response: {
619
+ 200: {
620
+ checkInType: "app" | "meeting";
621
+ createdAt: Date;
622
+ createdBy: string;
623
+ creator: {
624
+ id: string;
625
+ name: string;
626
+ email: string;
627
+ } | null;
628
+ dailyPayoutAccountType: {
629
+ id: string;
630
+ key: string;
631
+ name: string;
632
+ isActive: boolean;
633
+ };
634
+ dailyPayoutAccountTypeId: string;
635
+ dailyRewardAmount: string;
636
+ dailyRewardCategory: string;
637
+ id: string;
638
+ isEnabled: boolean;
639
+ name: string;
640
+ rewardAsset: {
641
+ id: string;
642
+ code: string;
643
+ name: string;
644
+ symbol: string | null;
645
+ precision: number;
646
+ isActive: boolean;
647
+ };
648
+ rewardAssetId: string;
649
+ rules: {
584
650
  createdAt: Date;
585
651
  createdBy: string;
586
652
  creator: {
@@ -588,59 +654,21 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
588
654
  name: string;
589
655
  email: string;
590
656
  } | null;
591
- dailyPayoutAccountType: {
592
- id: string;
593
- key: string;
594
- name: string;
595
- isActive: boolean;
596
- };
597
- dailyPayoutAccountTypeId: string;
598
- dailyRewardAmount: string;
599
- dailyRewardCategory: string;
600
657
  id: string;
601
658
  isEnabled: boolean;
602
- name: string;
603
- rewardAsset: {
659
+ payoutAccountType: {
604
660
  id: string;
605
- code: string;
661
+ key: string;
606
662
  name: string;
607
- symbol: string | null;
608
- precision: number;
609
663
  isActive: boolean;
610
664
  };
611
- rewardAssetId: string;
612
- rules: {
613
- createdAt: Date;
614
- createdBy: string;
615
- creator: {
616
- id: string;
617
- name: string;
618
- email: string;
619
- } | null;
620
- id: string;
621
- isEnabled: boolean;
622
- payoutAccountType: {
623
- id: string;
624
- key: string;
625
- name: string;
626
- isActive: boolean;
627
- };
628
- payoutAccountTypeId: string;
629
- planId: string;
630
- rewardAmount: string;
631
- rewardCategory: string;
632
- ruleType: "consecutive" | "cumulative";
633
- sortOrder: number;
634
- thresholdDays: number;
635
- updatedAt: Date;
636
- updatedBy: string | null;
637
- updater: {
638
- id: string;
639
- name: string;
640
- email: string;
641
- } | null;
642
- }[];
665
+ payoutAccountTypeId: string;
666
+ planId: string;
667
+ rewardAmount: string;
668
+ rewardCategory: string;
669
+ ruleType: "consecutive" | "cumulative";
643
670
  sortOrder: number;
671
+ thresholdDays: number;
644
672
  updatedAt: Date;
645
673
  updatedBy: string | null;
646
674
  updater: {
@@ -648,39 +676,69 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
648
676
  name: string;
649
677
  email: string;
650
678
  } | null;
651
- };
652
- 401: "Unauthorized";
653
- 403: "Forbidden: Admins only";
654
- 422: {
655
- type: 'validation';
656
- on: string;
657
- summary?: string;
658
- message?: string;
659
- found?: unknown;
660
- property?: string;
661
- expected?: string;
662
- };
679
+ }[];
680
+ sortOrder: number;
681
+ updatedAt: Date;
682
+ updatedBy: string | null;
683
+ updater: {
684
+ id: string;
685
+ name: string;
686
+ email: string;
687
+ } | null;
688
+ };
689
+ 401: "Unauthorized";
690
+ 403: "Forbidden: Admins only";
691
+ 422: {
692
+ type: 'validation';
693
+ on: string;
694
+ summary?: string;
695
+ message?: string;
696
+ found?: unknown;
697
+ property?: string;
698
+ expected?: string;
663
699
  };
664
700
  };
665
701
  };
666
702
  };
667
703
  } & {
668
704
  "reward-plans": {
669
- ":id": {
670
- patch: {
705
+ delete: {
706
+ body: {};
707
+ params: {};
708
+ query: {};
709
+ headers: {};
710
+ response: {
711
+ 200: {
712
+ success: boolean;
713
+ };
714
+ 401: "Unauthorized";
715
+ 403: "Forbidden: Admins only";
716
+ 422: {
717
+ type: 'validation';
718
+ on: string;
719
+ summary?: string;
720
+ message?: string;
721
+ found?: unknown;
722
+ property?: string;
723
+ expected?: string;
724
+ };
725
+ };
726
+ };
727
+ };
728
+ } & {
729
+ "reward-plans": {
730
+ rules: {
731
+ post: {
671
732
  body: {
672
- name?: string | undefined;
673
- rewardAssetId?: string | undefined;
674
- dailyRewardAmount?: string | undefined;
675
- dailyRewardCategory?: string | undefined;
676
- dailyPayoutAccountTypeId?: string | undefined;
677
- checkInType?: "app" | "meeting" | undefined;
678
733
  isEnabled?: boolean | undefined;
734
+ payoutAccountTypeId: string;
735
+ rewardAmount: string;
736
+ rewardCategory?: string | undefined;
737
+ ruleType: "consecutive" | "cumulative";
679
738
  sortOrder?: number | undefined;
739
+ thresholdDays: number;
680
740
  };
681
- params: {
682
- id: string;
683
- };
741
+ params: {};
684
742
  query: {};
685
743
  headers: {};
686
744
  response: {
@@ -771,49 +829,20 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
771
829
  };
772
830
  } & {
773
831
  "reward-plans": {
774
- ":id": {
775
- delete: {
776
- body: {};
777
- params: {
778
- id: string;
779
- };
780
- query: {};
781
- headers: {};
782
- response: {
783
- 200: {
784
- success: boolean;
785
- };
786
- 401: "Unauthorized";
787
- 403: "Forbidden: Admins only";
788
- 422: {
789
- type: 'validation';
790
- on: string;
791
- summary?: string;
792
- message?: string;
793
- found?: unknown;
794
- property?: string;
795
- expected?: string;
796
- };
797
- };
798
- };
799
- };
800
- };
801
- } & {
802
- "reward-plans": {
803
- ":id": {
804
- rules: {
805
- post: {
832
+ rules: {
833
+ ":ruleId": {
834
+ patch: {
806
835
  body: {
807
- ruleType: "consecutive" | "cumulative";
808
- thresholdDays: number;
809
- rewardAmount: string;
810
- rewardCategory?: string | undefined;
811
- payoutAccountTypeId: string;
812
836
  isEnabled?: boolean | undefined;
837
+ payoutAccountTypeId?: string | undefined;
838
+ rewardAmount?: string | undefined;
839
+ rewardCategory?: string | undefined;
840
+ ruleType?: "consecutive" | "cumulative" | undefined;
813
841
  sortOrder?: number | undefined;
842
+ thresholdDays?: number | undefined;
814
843
  };
815
844
  params: {
816
- id: string;
845
+ ruleId: string;
817
846
  };
818
847
  query: {};
819
848
  headers: {};
@@ -906,129 +935,47 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
906
935
  };
907
936
  } & {
908
937
  "reward-plans": {
909
- ":id": {
910
- rules: {
911
- ":ruleId": {
912
- patch: {
913
- body: {
914
- ruleType?: "consecutive" | "cumulative" | undefined;
915
- thresholdDays?: number | undefined;
916
- rewardAmount?: string | undefined;
917
- rewardCategory?: string | undefined;
918
- payoutAccountTypeId?: string | undefined;
919
- isEnabled?: boolean | undefined;
920
- sortOrder?: number | undefined;
921
- };
922
- params: {
923
- id: string;
924
- ruleId: string;
925
- };
926
- query: {};
927
- headers: {};
928
- response: {
929
- 200: {
930
- checkInType: "app" | "meeting";
931
- createdAt: Date;
932
- createdBy: string;
933
- creator: {
934
- id: string;
935
- name: string;
936
- email: string;
937
- } | null;
938
- dailyPayoutAccountType: {
939
- id: string;
940
- key: string;
941
- name: string;
942
- isActive: boolean;
943
- };
944
- dailyPayoutAccountTypeId: string;
945
- dailyRewardAmount: string;
946
- dailyRewardCategory: string;
938
+ rules: {
939
+ ":ruleId": {
940
+ delete: {
941
+ body: {};
942
+ params: {
943
+ ruleId: string;
944
+ };
945
+ query: {};
946
+ headers: {};
947
+ response: {
948
+ 200: {
949
+ checkInType: "app" | "meeting";
950
+ createdAt: Date;
951
+ createdBy: string;
952
+ creator: {
947
953
  id: string;
948
- isEnabled: boolean;
949
954
  name: string;
950
- rewardAsset: {
951
- id: string;
952
- code: string;
953
- name: string;
954
- symbol: string | null;
955
- precision: number;
956
- isActive: boolean;
957
- };
958
- rewardAssetId: string;
959
- rules: {
960
- createdAt: Date;
961
- createdBy: string;
962
- creator: {
963
- id: string;
964
- name: string;
965
- email: string;
966
- } | null;
967
- id: string;
968
- isEnabled: boolean;
969
- payoutAccountType: {
970
- id: string;
971
- key: string;
972
- name: string;
973
- isActive: boolean;
974
- };
975
- payoutAccountTypeId: string;
976
- planId: string;
977
- rewardAmount: string;
978
- rewardCategory: string;
979
- ruleType: "consecutive" | "cumulative";
980
- sortOrder: number;
981
- thresholdDays: number;
982
- updatedAt: Date;
983
- updatedBy: string | null;
984
- updater: {
985
- id: string;
986
- name: string;
987
- email: string;
988
- } | null;
989
- }[];
990
- sortOrder: number;
991
- updatedAt: Date;
992
- updatedBy: string | null;
993
- updater: {
994
- id: string;
995
- name: string;
996
- email: string;
997
- } | null;
998
- };
999
- 401: "Unauthorized";
1000
- 403: "Forbidden: Admins only";
1001
- 422: {
1002
- type: 'validation';
1003
- on: string;
1004
- summary?: string;
1005
- message?: string;
1006
- found?: unknown;
1007
- property?: string;
1008
- expected?: string;
955
+ email: string;
956
+ } | null;
957
+ dailyPayoutAccountType: {
958
+ id: string;
959
+ key: string;
960
+ name: string;
961
+ isActive: boolean;
1009
962
  };
1010
- };
1011
- };
1012
- };
1013
- };
1014
- };
1015
- };
1016
- } & {
1017
- "reward-plans": {
1018
- ":id": {
1019
- rules: {
1020
- ":ruleId": {
1021
- delete: {
1022
- body: {};
1023
- params: {
963
+ dailyPayoutAccountTypeId: string;
964
+ dailyRewardAmount: string;
965
+ dailyRewardCategory: string;
1024
966
  id: string;
1025
- ruleId: string;
1026
- };
1027
- query: {};
1028
- headers: {};
1029
- response: {
1030
- 200: {
1031
- checkInType: "app" | "meeting";
967
+ isEnabled: boolean;
968
+ name: string;
969
+ rewardAsset: {
970
+ id: string;
971
+ code: string;
972
+ name: string;
973
+ symbol: string | null;
974
+ precision: number;
975
+ isActive: boolean;
976
+ };
977
+ rewardAssetId: string;
978
+ rules: {
1032
979
  createdAt: Date;
1033
980
  createdBy: string;
1034
981
  creator: {
@@ -1036,59 +983,21 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
1036
983
  name: string;
1037
984
  email: string;
1038
985
  } | null;
1039
- dailyPayoutAccountType: {
1040
- id: string;
1041
- key: string;
1042
- name: string;
1043
- isActive: boolean;
1044
- };
1045
- dailyPayoutAccountTypeId: string;
1046
- dailyRewardAmount: string;
1047
- dailyRewardCategory: string;
1048
986
  id: string;
1049
987
  isEnabled: boolean;
1050
- name: string;
1051
- rewardAsset: {
988
+ payoutAccountType: {
1052
989
  id: string;
1053
- code: string;
990
+ key: string;
1054
991
  name: string;
1055
- symbol: string | null;
1056
- precision: number;
1057
992
  isActive: boolean;
1058
993
  };
1059
- rewardAssetId: string;
1060
- rules: {
1061
- createdAt: Date;
1062
- createdBy: string;
1063
- creator: {
1064
- id: string;
1065
- name: string;
1066
- email: string;
1067
- } | null;
1068
- id: string;
1069
- isEnabled: boolean;
1070
- payoutAccountType: {
1071
- id: string;
1072
- key: string;
1073
- name: string;
1074
- isActive: boolean;
1075
- };
1076
- payoutAccountTypeId: string;
1077
- planId: string;
1078
- rewardAmount: string;
1079
- rewardCategory: string;
1080
- ruleType: "consecutive" | "cumulative";
1081
- sortOrder: number;
1082
- thresholdDays: number;
1083
- updatedAt: Date;
1084
- updatedBy: string | null;
1085
- updater: {
1086
- id: string;
1087
- name: string;
1088
- email: string;
1089
- } | null;
1090
- }[];
994
+ payoutAccountTypeId: string;
995
+ planId: string;
996
+ rewardAmount: string;
997
+ rewardCategory: string;
998
+ ruleType: "consecutive" | "cumulative";
1091
999
  sortOrder: number;
1000
+ thresholdDays: number;
1092
1001
  updatedAt: Date;
1093
1002
  updatedBy: string | null;
1094
1003
  updater: {
@@ -1096,18 +1005,26 @@ export declare const checkInRewardPlanAdminRouter: Elysia<"/reward-plans", {
1096
1005
  name: string;
1097
1006
  email: string;
1098
1007
  } | null;
1099
- };
1100
- 401: "Unauthorized";
1101
- 403: "Forbidden: Admins only";
1102
- 422: {
1103
- type: 'validation';
1104
- on: string;
1105
- summary?: string;
1106
- message?: string;
1107
- found?: unknown;
1108
- property?: string;
1109
- expected?: string;
1110
- };
1008
+ }[];
1009
+ sortOrder: number;
1010
+ updatedAt: Date;
1011
+ updatedBy: string | null;
1012
+ updater: {
1013
+ id: string;
1014
+ name: string;
1015
+ email: string;
1016
+ } | null;
1017
+ };
1018
+ 401: "Unauthorized";
1019
+ 403: "Forbidden: Admins only";
1020
+ 422: {
1021
+ type: 'validation';
1022
+ on: string;
1023
+ summary?: string;
1024
+ message?: string;
1025
+ found?: unknown;
1026
+ property?: string;
1027
+ expected?: string;
1111
1028
  };
1112
1029
  };
1113
1030
  };