tornapi-typescript 0.0.6 → 0.1.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/index.d.ts CHANGED
@@ -9,6 +9,52 @@
9
9
 
10
10
  export type RaceClassEnum = "A" | "B" | "C" | "D" | "E";
11
11
 
12
+ export type FactionStatEnum =
13
+ | "medicalitemsused"
14
+ | "criminaloffences"
15
+ | "organisedcrimerespect"
16
+ | "organisedcrimemoney"
17
+ | "organisedcrimesuccess"
18
+ | "organisedcrimefail"
19
+ | "attackswon"
20
+ | "attackslost"
21
+ | "attackschain"
22
+ | "attacksleave"
23
+ | "attacksmug"
24
+ | "attackshosp"
25
+ | "bestchain"
26
+ | "busts"
27
+ | "revives"
28
+ | "jails"
29
+ | "hosps"
30
+ | "medicalitemrecovery"
31
+ | "medicalcooldownused"
32
+ | "gymtrains"
33
+ | "gymstrength"
34
+ | "gymspeed"
35
+ | "gymdefense"
36
+ | "gymdexterity"
37
+ | "candyused"
38
+ | "alcoholused"
39
+ | "energydrinkused"
40
+ | "drugsused"
41
+ | "drugoverdoses"
42
+ | "rehabs"
43
+ | "caymaninterest"
44
+ | "traveltimes"
45
+ | "traveltime"
46
+ | "hunting"
47
+ | "attacksdamagehits"
48
+ | "attacksdamage"
49
+ | "hosptimegiven"
50
+ | "hosptimereceived"
51
+ | "attacksdamaging"
52
+ | "attacksrunaway"
53
+ | "highestterritories"
54
+ | "territoryrespect";
55
+
56
+ export type FactionBranchStateEnum = "war" | "peace";
57
+
12
58
  export type FactionOrganizedCrimePayoutType =
13
59
  | "balance"
14
60
  | "wallet"
@@ -310,13 +356,6 @@ export type ItemUid = number;
310
356
 
311
357
  export type UserId = number;
312
358
 
313
- export type UserIdNullable = number | null;
314
-
315
- export type UserIdNullableDeprecated =
316
- /** This field is replaced with the 'user.id' and will be removed on the 1st of May 2025. */
317
- | number /** This field is replaced with the 'user.id' and will be removed on the 1st of May 2025. */
318
- | null;
319
-
320
359
  export type ReviveId = number;
321
360
 
322
361
  export type LogId = number;
@@ -325,7 +364,7 @@ export type LogCategoryId = number;
325
364
 
326
365
  export type FactionId = number;
327
366
 
328
- export type FactionIdNullable = number | null;
367
+ export type FactionBranchId = number;
329
368
 
330
369
  export type FactionCrimeId = number;
331
370
 
@@ -342,10 +381,8 @@ export type ForumThreadId = number;
342
381
  export type ForumPostId = number;
343
382
 
344
383
  export interface RequestLinks {
345
- next: /** Auto-generated link to get the next set of records. */
346
- string /** Auto-generated link to get the next set of records. */ | null;
347
- prev: /** Auto-generated link to get the prev set of records. */
348
- string /** Auto-generated link to get the prev set of records. */ | null;
384
+ next: string | null;
385
+ prev: string | null;
349
386
  }
350
387
 
351
388
  export interface RequestMetadata {
@@ -520,7 +557,7 @@ export interface AttackPlayer {
520
557
 
521
558
  export interface AttackPlayerSimplified {
522
559
  id: UserId;
523
- faction_id: FactionId & (number | null);
560
+ faction_id: FactionId | null;
524
561
  }
525
562
 
526
563
  export interface AttackingFinishingHitEffects {
@@ -577,11 +614,11 @@ export interface ReviveSimplified {
577
614
  id: ReviveId;
578
615
  reviver: {
579
616
  id: UserId;
580
- faction_id: FactionId & (number | null);
617
+ faction_id: FactionId | null;
581
618
  };
582
619
  target: {
583
620
  id: UserId;
584
- faction_id: FactionId & (number | null);
621
+ faction_id: FactionId | null;
585
622
  hospital_reason: string;
586
623
  early_discharge: boolean;
587
624
  last_action: number;
@@ -633,6 +670,56 @@ export interface TimestampResponse {
633
670
  timestamp: number;
634
671
  }
635
672
 
673
+ export interface FactionUpgradeDetails {
674
+ id: FactionBranchId;
675
+ name: string;
676
+ ability: string;
677
+ level: number;
678
+ cost: number;
679
+ unlocked_at?: number;
680
+ }
681
+
682
+ export interface FactionBranchDetails {
683
+ name: string;
684
+ order: number;
685
+ /** Respect cost multiplier. */
686
+ multiplier: number;
687
+ upgrades: FactionUpgradeDetails[];
688
+ }
689
+
690
+ export interface FactionUpgrades {
691
+ core: {
692
+ upgrades?: FactionUpgradeDetails[];
693
+ };
694
+ peace: FactionBranchDetails[];
695
+ war: FactionBranchDetails[];
696
+ }
697
+
698
+ export interface FactionUpgradesResponse {
699
+ upgrades: FactionUpgrades;
700
+ state: FactionBranchStateEnum;
701
+ }
702
+
703
+ export interface FactionStat {
704
+ name: FactionStatEnum;
705
+ value: number;
706
+ }
707
+
708
+ export interface FactionStatsResponse {
709
+ stats: FactionStat[];
710
+ }
711
+
712
+ export interface FactionContributor {
713
+ id: UserId;
714
+ username: string;
715
+ value: number;
716
+ in_faction: boolean;
717
+ }
718
+
719
+ export interface FactionContributorsResponse {
720
+ contributors: FactionContributor[];
721
+ }
722
+
636
723
  export interface FactionHofStats {
637
724
  rank: HofValueString;
638
725
  respect: HofValue;
@@ -659,7 +746,7 @@ export interface FactionMember {
659
746
  has_early_discharge: boolean;
660
747
  last_action: UserLastAction;
661
748
  status: UserStatus;
662
- life: UserLife;
749
+ life?: UserLife;
663
750
  revive_setting: ReviveSetting;
664
751
  }
665
752
 
@@ -672,8 +759,8 @@ export interface UserLastAction {
672
759
 
673
760
  /** Unfortunately, current life value is often shown incorrectly, and the calculation for each member is very resource heavy, so this field is deprecated and will be removed on 1st of May, 2025. */
674
761
  export interface UserLife {
675
- current: number;
676
- maximum: number;
762
+ current?: number;
763
+ maximum?: number;
677
764
  }
678
765
 
679
766
  /** Details about a user's status. */
@@ -707,9 +794,7 @@ export interface FactionBasic {
707
794
  days_old: number;
708
795
  capacity: number;
709
796
  members: number;
710
- is_enlisted: /** Indicates if the faction is enlisted for ranked wars. Available only with faction AA permissions for your own faction. */
711
- | boolean /** Indicates if the faction is enlisted for ranked wars. Available only with faction AA permissions for your own faction. */
712
- | null;
797
+ is_enlisted: boolean | null;
713
798
  rank: FactionRank;
714
799
  best_chain: number;
715
800
  }
@@ -778,7 +863,7 @@ export interface FactionTerritoryWar {
778
863
  end: number | null;
779
864
  /** The score target of the war. */
780
865
  target: number;
781
- winner: number | null;
866
+ winner?: FactionId | null;
782
867
  /** The factions involved in the territory war. */
783
868
  factions: FactionTerritoryWarParticipant[];
784
869
  }
@@ -929,7 +1014,7 @@ export interface FactionChainReportAttackerAttacks {
929
1014
  retaliations: number;
930
1015
  overseas: number;
931
1016
  draws: number;
932
- escapes: number;
1017
+ escapes?: number;
933
1018
  losses: number;
934
1019
  war: number;
935
1020
  bonuses: number;
@@ -937,7 +1022,7 @@ export interface FactionChainReportAttackerAttacks {
937
1022
 
938
1023
  export interface FactionCrimeUser {
939
1024
  id: UserId;
940
- outcome: FactionCrimeUserOutcome;
1025
+ outcome: FactionCrimeUserOutcome | null;
941
1026
  /** The timestamp at which the user joined the slot. */
942
1027
  joined_at: number;
943
1028
  /** Current planning progress on the slot. */
@@ -974,12 +1059,12 @@ export interface FactionCrimeSlot {
974
1059
  /** Shows if user has the required item. */
975
1060
  is_available: boolean;
976
1061
  } | null;
977
- user_id: UserIdNullableDeprecated;
1062
+ user_id?: UserId | null;
978
1063
  user: FactionCrimeUser | null;
979
1064
  /** This field is replaced with 'checkpoint_pass_rate' field and will be removed on 1st of May 2025. */
980
- success_chance: number;
1065
+ success_chance?: number;
981
1066
  /** This field is replaced with 'checkpoint_pass_rate' field and will be removed on 1st of May 2025. */
982
- crime_pass_rate: number;
1067
+ crime_pass_rate?: number;
983
1068
  /** Returns CPR for the player who joined the slot. If the slot is empty (availalbe), it shows your CPR for that slot. This value is 0 for expired crimes. */
984
1069
  checkpoint_pass_rate: number;
985
1070
  }
@@ -991,16 +1076,11 @@ export interface FactionCrime {
991
1076
  status: FactionCrimeStatusEnum;
992
1077
  /** The timestamp at which the crime was created. */
993
1078
  created_at: number;
994
- planning_at: /** The timestamp at which the planning phase for the crime has begun. */
995
- | number /** The timestamp at which the planning phase for the crime has begun. */
996
- | null;
997
- ready_at: /** The timestamp at which the crime will be ready. */
998
- number /** The timestamp at which the crime will be ready. */ | null;
1079
+ planning_at: number | null;
1080
+ ready_at: number | null;
999
1081
  /** The timestamp at which the crime will expire. */
1000
1082
  expired_at: number;
1001
- executed_at: /** The timestamp at which the crime was executed. <br> Note: this value is null for all crimes executed before January 15th, 2025. */
1002
- | number /** The timestamp at which the crime was executed. <br> Note: this value is null for all crimes executed before January 15th, 2025. */
1003
- | null;
1083
+ executed_at: number | null;
1004
1084
  slots: FactionCrimeSlot[];
1005
1085
  rewards: FactionCrimeReward | null;
1006
1086
  }
@@ -1014,15 +1094,35 @@ export interface FactionCrimeResponse {
1014
1094
  crime: FactionCrime;
1015
1095
  }
1016
1096
 
1017
- /** The following selections will fallback to API v1 and may change at any time: 'armor', 'boosters', 'caches', 'cesium', 'contributors', 'crimeexp', 'currency', 'donations', 'drugs', 'medical', 'positions', 'reports', 'stats', 'temporary', 'upgrades', 'weapons'. */
1097
+ export interface FactionBalance {
1098
+ faction: {
1099
+ money: number;
1100
+ points: number;
1101
+ scope: number;
1102
+ };
1103
+ members: {
1104
+ id: UserId;
1105
+ username: string;
1106
+ money: number;
1107
+ points: number;
1108
+ }[];
1109
+ }
1110
+
1111
+ export interface FactionBalanceResponse {
1112
+ balance: FactionBalance;
1113
+ }
1114
+
1115
+ /** The following selections will fallback to API v1 and may change at any time: 'armor', 'boosters', 'caches', 'cesium', 'crimeexp', 'drugs', 'medical', 'positions', 'reports', 'temporary', 'weapons'. */
1018
1116
  export type FactionSelectionName =
1019
1117
  | "applications"
1020
1118
  | "attacks"
1021
1119
  | "attacksfull"
1120
+ | "balance"
1022
1121
  | "basic"
1023
1122
  | "chain"
1024
1123
  | "chainreport"
1025
1124
  | "chains"
1125
+ | "contributors"
1026
1126
  | "crime"
1027
1127
  | "crimes"
1028
1128
  | "hof"
@@ -1033,24 +1133,21 @@ export type FactionSelectionName =
1033
1133
  | "rankedwarreport"
1034
1134
  | "revives"
1035
1135
  | "revivesfull"
1136
+ | "stats"
1036
1137
  | "timestamp"
1138
+ | "upgrades"
1037
1139
  | "wars"
1038
1140
  | "armor"
1039
1141
  | "boosters"
1040
1142
  | "caches"
1041
1143
  | "cesium"
1042
- | "contributors"
1043
1144
  | "crimeexp"
1044
- | "currency"
1045
- | "donations"
1046
1145
  | "drugs"
1047
1146
  | "medical"
1048
1147
  | "positions"
1049
1148
  | "reports"
1050
- | "stats"
1051
1149
  | "temporary"
1052
1150
  | "territory"
1053
- | "upgrades"
1054
1151
  | "weapons";
1055
1152
 
1056
1153
  export interface FactionLookupResponse {
@@ -1064,12 +1161,12 @@ export interface FactionRankedWarDetails {
1064
1161
  /** Timestamp the war ended at. */
1065
1162
  end: number;
1066
1163
  target: number;
1067
- winner: FactionId & (number | null);
1164
+ winner: FactionId | null;
1068
1165
  factions: {
1069
- id?: FactionId;
1070
- name?: string;
1071
- score?: number;
1072
- chain?: number;
1166
+ id: FactionId;
1167
+ name: string;
1168
+ score: number;
1169
+ chain: number;
1073
1170
  }[];
1074
1171
  }
1075
1172
 
@@ -1088,29 +1185,29 @@ export interface FactionRankedWarReportResponse {
1088
1185
  winner: FactionId;
1089
1186
  forfeit: boolean;
1090
1187
  factions: {
1091
- id?: FactionId;
1092
- name?: string;
1093
- score?: number;
1094
- attacks?: number;
1095
- rank?: {
1096
- before?: string;
1097
- after?: string;
1188
+ id: FactionId;
1189
+ name: string;
1190
+ score: number;
1191
+ attacks: number;
1192
+ rank: {
1193
+ before: string;
1194
+ after: string;
1098
1195
  };
1099
- rewards?: {
1100
- respect?: number;
1101
- points?: number;
1102
- items?: {
1103
- id?: ItemId;
1104
- name?: string;
1105
- quantity?: number;
1196
+ rewards: {
1197
+ respect: number;
1198
+ points: number;
1199
+ items: {
1200
+ id: ItemId;
1201
+ name: string;
1202
+ quantity: number;
1106
1203
  }[];
1107
1204
  };
1108
- members?: {
1109
- id?: UserId;
1110
- name?: string;
1111
- level?: number;
1112
- attacks?: number;
1113
- score?: number;
1205
+ members: {
1206
+ id: UserId;
1207
+ name: string;
1208
+ level: number;
1209
+ attacks: number;
1210
+ score: number;
1114
1211
  }[];
1115
1212
  }[];
1116
1213
  };
@@ -1118,10 +1215,10 @@ export interface FactionRankedWarReportResponse {
1118
1215
 
1119
1216
  export interface ForumCategoriesResponse {
1120
1217
  categories: {
1121
- id?: ForumId;
1122
- title?: string;
1123
- acronym?: string;
1124
- threads?: number;
1218
+ id: ForumId;
1219
+ title: string;
1220
+ acronym: string;
1221
+ threads: number;
1125
1222
  }[];
1126
1223
  }
1127
1224
 
@@ -1151,7 +1248,7 @@ export interface ForumThreadBase {
1151
1248
  /** Total number of times players have opened this thread. */
1152
1249
  views: number;
1153
1250
  author: ForumThreadAuthor;
1154
- last_poster: ForumThreadAuthor;
1251
+ last_poster: ForumThreadAuthor | null;
1155
1252
  first_post_time: number;
1156
1253
  last_post_time: number | null;
1157
1254
  has_poll: boolean;
@@ -1160,9 +1257,9 @@ export interface ForumThreadBase {
1160
1257
  }
1161
1258
 
1162
1259
  export interface ForumThreadExtended extends ForumThreadBase {
1163
- content?: string;
1164
- content_raw?: string;
1165
- poll?: ForumPoll;
1260
+ content: string;
1261
+ content_raw: string;
1262
+ poll: ForumPoll | null;
1166
1263
  }
1167
1264
 
1168
1265
  export interface ForumPost {
@@ -1175,10 +1272,9 @@ export interface ForumPost {
1175
1272
  is_edited: boolean;
1176
1273
  is_pinned: boolean;
1177
1274
  created_time: number;
1178
- edited_by: UserId;
1275
+ edited_by: UserId | null;
1179
1276
  has_quote: boolean;
1180
- quoted_post_id: /** 'quoted_post_id' is null when 'has_quote' is false. */
1181
- number /** 'quoted_post_id' is null when 'has_quote' is false. */ | null;
1277
+ quoted_post_id: number | null;
1182
1278
  /** depending on the input 'cat' parameter, this will either return raw value (with HTML) or plain text. Legacy posts are returned as is, they can't be stripped of tags. */
1183
1279
  content: string;
1184
1280
  likes: number;
@@ -1186,9 +1282,7 @@ export interface ForumPost {
1186
1282
  }
1187
1283
 
1188
1284
  export interface ForumThreadUserExtended extends ForumThreadBase {
1189
- new_posts?: /** Available only when requesting data for yourself (no id or your id) with at least 'Minimal' access type key. */
1190
- | number /** Available only when requesting data for yourself (no id or your id) with at least 'Minimal' access type key. */
1191
- | null;
1285
+ new_posts: number | null;
1192
1286
  }
1193
1287
 
1194
1288
  export interface ForumSubscribedThreadPostsCount {
@@ -1268,7 +1362,7 @@ export interface ItemMarketListingStackable {
1268
1362
  }
1269
1363
 
1270
1364
  export interface ItemMarketListingItemDetails {
1271
- uid: number;
1365
+ uid: ItemUid;
1272
1366
  stats: ItemMarketListingItemStats;
1273
1367
  bonuses: ItemMarketListingItemBonus[];
1274
1368
  rarity: ("yellow" | "orange" | "red") | null;
@@ -1277,7 +1371,8 @@ export interface ItemMarketListingItemDetails {
1277
1371
  export interface ItemMarketListingNonstackable {
1278
1372
  price: number;
1279
1373
  amount: number;
1280
- itemDetails: ItemMarketListingItemDetails;
1374
+ itemDetails?: ItemMarketListingItemDetails;
1375
+ item_details: ItemMarketListingItemDetails;
1281
1376
  }
1282
1377
 
1283
1378
  export interface ItemMarket {
@@ -1378,9 +1473,9 @@ export interface Race {
1378
1473
  end: number | null;
1379
1474
  };
1380
1475
  requirements: {
1381
- car_class: RaceClassEnum;
1382
- driver_class: RaceClassEnum;
1383
- car_item_id: ItemId;
1476
+ car_class: RaceClassEnum | null;
1477
+ driver_class: RaceClassEnum | null;
1478
+ car_item_id: ItemId | null;
1384
1479
  requires_stock_car: boolean;
1385
1480
  requires_password: boolean;
1386
1481
  join_fee: number;
@@ -1413,7 +1508,7 @@ export interface RacerDetails {
1413
1508
  }
1414
1509
 
1415
1510
  export interface RacingRaceDetailsResponse extends Race {
1416
- results?: RacerDetails[];
1511
+ results: RacerDetails[];
1417
1512
  }
1418
1513
 
1419
1514
  export type RacingSelectionName =
@@ -1448,7 +1543,7 @@ export interface TornCrime {
1448
1543
  id: number;
1449
1544
  name: string;
1450
1545
  category_id: number;
1451
- category_name: string;
1546
+ category_name?: string;
1452
1547
  enhancer_id: number;
1453
1548
  enhancer_name: string;
1454
1549
  unique_outcomes_count: number;
@@ -1491,14 +1586,9 @@ export interface TornHofResponse {
1491
1586
  }
1492
1587
 
1493
1588
  export interface FactionHofValues {
1494
- chain: /** Maximum chain achieved by the faction. Null if chosen category is 'rank' or 'respect'. */
1495
- | number /** Maximum chain achieved by the faction. Null if chosen category is 'rank' or 'respect'. */
1496
- | null;
1497
- chain_duration: /** The duration of the chain. Null if chosen category is 'rank' or 'respect'. */
1498
- | number /** The duration of the chain. Null if chosen category is 'rank' or 'respect'. */
1499
- | null;
1500
- respect: /** Null if chosen category is 'chain'. */
1501
- number /** Null if chosen category is 'chain'. */ | null;
1589
+ chain: number | null;
1590
+ chain_duration: number | null;
1591
+ respect: number | null;
1502
1592
  }
1503
1593
 
1504
1594
  export interface TornFactionHof {
@@ -1538,9 +1628,8 @@ export interface Bounty {
1538
1628
  target_id: UserId;
1539
1629
  target_name: string;
1540
1630
  target_level: number;
1541
- lister_id: UserId & (number | null);
1542
- lister_name: /** If the bounty is anonymous this field is null. */
1543
- string /** If the bounty is anonymous this field is null. */ | null;
1631
+ lister_id: UserId | null;
1632
+ lister_name: string | null;
1544
1633
  reward: number;
1545
1634
  reason: string | null;
1546
1635
  quantity: number;
@@ -1549,14 +1638,9 @@ export interface Bounty {
1549
1638
  }
1550
1639
 
1551
1640
  export interface AttackLogSummary {
1552
- id: UserId /** Id of the participant, could be null in stealthed attacks. */ &
1553
- (
1554
- | number /** Id of the participant, could be null in stealthed attacks. */
1555
- | null
1556
- );
1641
+ id: UserId | null;
1557
1642
  name: /** Name of the participant, could be null in stealthed attacks. */
1558
- | string /** Name of the participant, could be null in stealthed attacks. */
1559
- | null;
1643
+ string | null;
1560
1644
  hits: number;
1561
1645
  misses: number;
1562
1646
  damage: number;
@@ -1568,23 +1652,20 @@ export interface AttackLog {
1568
1652
  action: AttackActionEnum;
1569
1653
  icon: string;
1570
1654
  attacker: /** This value could be null in stealthed attacks. */
1571
- | {
1572
- id: UserId;
1573
- name: string;
1574
- item: /** This object could be null if there was no item being used in this turn or during this effect. */
1575
- | {
1576
- id: ItemId;
1577
- name: string;
1578
- } /** This object could be null if there was no item being used in this turn or during this effect. */
1579
- | null;
1580
- } /** This value could be null in stealthed attacks. */
1581
- | null;
1655
+ {
1656
+ id: UserId;
1657
+ name: string;
1658
+ item: /** This object could be null if there was no item being used in this turn or during this effect. */
1659
+ {
1660
+ id?: ItemId;
1661
+ name?: string;
1662
+ } | null;
1663
+ } | null;
1582
1664
  defender: /** This value could be null in stealthed attacks. */
1583
- | {
1584
- id: number;
1585
- name: string;
1586
- } /** This value could be null in stealthed attacks. */
1587
- | null;
1665
+ {
1666
+ id: UserId;
1667
+ name: string;
1668
+ } | null;
1588
1669
  }
1589
1670
 
1590
1671
  export interface AttackLogResponse {
@@ -1666,7 +1747,7 @@ export interface TornItem {
1666
1747
  requirement: string | null;
1667
1748
  image: string;
1668
1749
  type: TornItemTypeEnum;
1669
- sub_type: TornItemWeaponTypeEnum & (string | null);
1750
+ sub_type: TornItemWeaponTypeEnum | null;
1670
1751
  is_masked: boolean;
1671
1752
  is_tradable: boolean;
1672
1753
  is_found_in_city: boolean;
@@ -1680,20 +1761,46 @@ export interface TornItem {
1680
1761
  market_price: number;
1681
1762
  };
1682
1763
  circulation: number;
1683
- details: (TornItemWeaponDetails & TornItemArmorDetails) | null;
1764
+ details: TornItemWeaponDetails | TornItemArmorDetails | null;
1684
1765
  }
1685
1766
 
1686
1767
  export interface TornItemsResponse {
1687
1768
  items: TornItem[];
1688
1769
  }
1689
1770
 
1690
- /** The following selections will fallback to API v1 and may change at any time: 'bank','cards','cityshops','companies','competition','dirtybombs','education','factiontree','gyms','honors','itemdetails','itemstats','medals','organisedcrimes','pawnshop','pokertables','properties','rackets','raidreport','raids','rockpaperscissors','searchforcash','shoplifting','stats','stocks','territory','territorynames','territorywarreport','territorywars'. */
1771
+ export interface TornFactionTreeBranch {
1772
+ id: FactionBranchId;
1773
+ name: string;
1774
+ upgrades: {
1775
+ name: string;
1776
+ level: number;
1777
+ ability: string;
1778
+ cost: number;
1779
+ challenge: {
1780
+ description: string;
1781
+ amount_required: number;
1782
+ stat: FactionStatEnum;
1783
+ } | null;
1784
+ }[];
1785
+ }
1786
+
1787
+ export interface TornFactionTree {
1788
+ name: string;
1789
+ branches: TornFactionTreeBranch[];
1790
+ }
1791
+
1792
+ export interface TornFactionTreeResponse {
1793
+ factionTree: TornFactionTree;
1794
+ }
1795
+
1796
+ /** The following selections will fallback to API v1 and may change at any time: 'bank','cards','cityshops','companies','competition','dirtybombs','education','gyms','honors','itemdetails','itemstats','medals','organisedcrimes','pawnshop','pokertables','properties','rackets','raidreport','raids','rockpaperscissors','searchforcash','shoplifting','stats','stocks','territory','territorynames','territorywarreport','territorywars'. */
1691
1797
  export type TornSelectionName =
1692
1798
  | "attacklog"
1693
1799
  | "bounties"
1694
1800
  | "calendar"
1695
1801
  | "crimes"
1696
1802
  | "factionHof"
1803
+ | "factiontree"
1697
1804
  | "hof"
1698
1805
  | "itemammo"
1699
1806
  | "itemmods"
@@ -1710,7 +1817,6 @@ export type TornSelectionName =
1710
1817
  | "competition"
1711
1818
  | "dirtybombs"
1712
1819
  | "education"
1713
- | "factiontree"
1714
1820
  | "gyms"
1715
1821
  | "honors"
1716
1822
  | "itemdetails"
@@ -2155,7 +2261,7 @@ export interface PersonalStatsAttackingPublic {
2155
2261
  elo: number;
2156
2262
  unarmored_wins: number;
2157
2263
  highest_level_beaten: number;
2158
- escapes: {
2264
+ escapes?: {
2159
2265
  player: number;
2160
2266
  foes: number;
2161
2267
  };
@@ -2671,7 +2777,7 @@ export interface UserCrimeDetailsBootlegging {
2671
2777
  total: number;
2672
2778
  earnings: number;
2673
2779
  };
2674
- dvds_copied: number;
2780
+ dvds_copied?: number;
2675
2781
  }
2676
2782
 
2677
2783
  export interface UserCrimeDetailsGraffiti {
@@ -2693,8 +2799,8 @@ export interface UserCrimeDetailsCardSkimming {
2693
2799
  sold: number;
2694
2800
  lost: number;
2695
2801
  areas: {
2696
- id?: number;
2697
- amount?: number;
2802
+ id: number;
2803
+ amount: number;
2698
2804
  }[];
2699
2805
  };
2700
2806
  skimmers: {
@@ -2828,14 +2934,14 @@ export interface UserRacesResponse {
2828
2934
  }
2829
2935
 
2830
2936
  export interface UserRaceCarDetails extends RaceCar {
2831
- id?: RaceCarId;
2832
- name?: string;
2833
- worth?: number;
2834
- points_spent?: number;
2835
- races_entered?: number;
2836
- races_won?: number;
2837
- is_removed?: boolean;
2838
- parts?: RaceCarUpgradeId[];
2937
+ id: RaceCarId;
2938
+ name: string;
2939
+ worth: number;
2940
+ points_spent: number;
2941
+ races_entered: number;
2942
+ races_won: number;
2943
+ is_removed: boolean;
2944
+ parts: RaceCarUpgradeId[];
2839
2945
  }
2840
2946
 
2841
2947
  export interface UserEnlistedCarsResponse {
@@ -2853,7 +2959,7 @@ export interface UserForumThreadsResponse {
2853
2959
  }
2854
2960
 
2855
2961
  export interface UserForumSubscribedThreadsResponse {
2856
- forumSubscribedThreads: ForumSubscribedThread[];
2962
+ forumSubscribedThreads?: ForumSubscribedThread[];
2857
2963
  }
2858
2964
 
2859
2965
  export interface UserForumFeedResponse {
@@ -2927,7 +3033,7 @@ export interface UserItemMarkeListingItemDetails {
2927
3033
  name: string;
2928
3034
  type: string;
2929
3035
  rarity: ("yellow" | "orange" | "red") | null;
2930
- uid: number | null;
3036
+ uid: ItemUid | null;
2931
3037
  stats: ItemMarketListingItemStats | null;
2932
3038
  bonuses: ItemMarketListingItemBonus[];
2933
3039
  }
@@ -2965,7 +3071,7 @@ export interface UserList {
2965
3071
  id: UserId;
2966
3072
  name: string;
2967
3073
  level: number;
2968
- faction_id: FactionId & (number | null);
3074
+ faction_id: FactionId | null;
2969
3075
  last_action: UserLastAction;
2970
3076
  status: UserStatus;
2971
3077
  }