@glagan/rettiwt-api 7.0.0

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 (165) hide show
  1. package/.eslintrc.js +166 -0
  2. package/.gitattributes +3 -0
  3. package/.github/FUNDING.yml +4 -0
  4. package/.github/ISSUE_TEMPLATE/bug-report.yml +57 -0
  5. package/.github/ISSUE_TEMPLATE/feature-request.yml +20 -0
  6. package/.github/ISSUE_TEMPLATE/question.yml +15 -0
  7. package/.github/PULL_REQUEST_TEMPLATE.md +32 -0
  8. package/.github/workflows/ci.yml +32 -0
  9. package/.github/workflows/publish.yml +23 -0
  10. package/.nvmrc +1 -0
  11. package/.prettierignore +3 -0
  12. package/.prettierrc +13 -0
  13. package/LICENSE +21 -0
  14. package/README.md +566 -0
  15. package/dist/cli.js +43 -0
  16. package/eslint.config.mjs +17 -0
  17. package/package.json +50 -0
  18. package/src/Rettiwt.ts +97 -0
  19. package/src/cli.ts +48 -0
  20. package/src/collections/Extractors.ts +155 -0
  21. package/src/collections/Groups.ts +81 -0
  22. package/src/collections/Requests.ts +89 -0
  23. package/src/collections/Tweet.ts +17 -0
  24. package/src/commands/DirectMessage.ts +62 -0
  25. package/src/commands/List.ts +90 -0
  26. package/src/commands/Tweet.ts +437 -0
  27. package/src/commands/User.ts +367 -0
  28. package/src/enums/Api.ts +10 -0
  29. package/src/enums/Authentication.ts +10 -0
  30. package/src/enums/Data.ts +13 -0
  31. package/src/enums/Logging.ts +14 -0
  32. package/src/enums/Media.ts +10 -0
  33. package/src/enums/Notification.ts +12 -0
  34. package/src/enums/Resource.ts +69 -0
  35. package/src/enums/Tweet.ts +8 -0
  36. package/src/enums/raw/Analytics.ts +32 -0
  37. package/src/enums/raw/Media.ts +10 -0
  38. package/src/enums/raw/Notification.ts +11 -0
  39. package/src/enums/raw/Tweet.ts +20 -0
  40. package/src/helper/CliUtils.ts +17 -0
  41. package/src/helper/JsonUtils.ts +70 -0
  42. package/src/index.ts +128 -0
  43. package/src/models/RettiwtConfig.ts +101 -0
  44. package/src/models/args/FetchArgs.ts +169 -0
  45. package/src/models/args/PostArgs.ts +93 -0
  46. package/src/models/args/ProfileArgs.ts +68 -0
  47. package/src/models/auth/AuthCookie.ts +58 -0
  48. package/src/models/auth/AuthCredential.ts +83 -0
  49. package/src/models/data/Analytics.ts +97 -0
  50. package/src/models/data/BookmarkFolder.ts +73 -0
  51. package/src/models/data/Conversation.ts +344 -0
  52. package/src/models/data/CursoredData.ts +64 -0
  53. package/src/models/data/DirectMessage.ts +335 -0
  54. package/src/models/data/Inbox.ts +124 -0
  55. package/src/models/data/List.ts +113 -0
  56. package/src/models/data/Notification.ts +84 -0
  57. package/src/models/data/Tweet.ts +388 -0
  58. package/src/models/data/User.ts +187 -0
  59. package/src/models/errors/TwitterError.ts +65 -0
  60. package/src/models/params/Variables.ts +62 -0
  61. package/src/requests/DirectMessage.ts +229 -0
  62. package/src/requests/List.ts +203 -0
  63. package/src/requests/Media.ts +67 -0
  64. package/src/requests/Tweet.ts +607 -0
  65. package/src/requests/User.ts +1191 -0
  66. package/src/services/internal/AuthService.ts +115 -0
  67. package/src/services/internal/ErrorService.ts +41 -0
  68. package/src/services/internal/LogService.ts +34 -0
  69. package/src/services/public/DirectMessageService.ts +159 -0
  70. package/src/services/public/FetcherService.ts +366 -0
  71. package/src/services/public/ListService.ts +241 -0
  72. package/src/services/public/TweetService.ts +886 -0
  73. package/src/services/public/UserService.ts +1154 -0
  74. package/src/types/ErrorHandler.ts +13 -0
  75. package/src/types/Fetch.ts +3 -0
  76. package/src/types/RettiwtConfig.ts +48 -0
  77. package/src/types/args/FetchArgs.ts +233 -0
  78. package/src/types/args/PostArgs.ts +142 -0
  79. package/src/types/args/ProfileArgs.ts +33 -0
  80. package/src/types/auth/AuthCookie.ts +22 -0
  81. package/src/types/auth/AuthCredential.ts +28 -0
  82. package/src/types/auth/TransactionHeader.ts +8 -0
  83. package/src/types/data/Analytics.ts +58 -0
  84. package/src/types/data/BookmarkFolder.ts +12 -0
  85. package/src/types/data/Conversation.ts +44 -0
  86. package/src/types/data/CursoredData.ts +24 -0
  87. package/src/types/data/DirectMessage.ts +33 -0
  88. package/src/types/data/Inbox.ts +23 -0
  89. package/src/types/data/List.ts +33 -0
  90. package/src/types/data/Notification.ts +26 -0
  91. package/src/types/data/Tweet.ts +99 -0
  92. package/src/types/data/User.ts +54 -0
  93. package/src/types/errors/TwitterError.ts +37 -0
  94. package/src/types/params/Variables.ts +41 -0
  95. package/src/types/raw/base/Analytic.ts +32 -0
  96. package/src/types/raw/base/BookmarkFolder.ts +12 -0
  97. package/src/types/raw/base/Cursor.ts +13 -0
  98. package/src/types/raw/base/Error.ts +38 -0
  99. package/src/types/raw/base/LimitedVisibilityTweet.ts +40 -0
  100. package/src/types/raw/base/List.ts +50 -0
  101. package/src/types/raw/base/Media.ts +53 -0
  102. package/src/types/raw/base/Message.ts +22 -0
  103. package/src/types/raw/base/Notification.ts +66 -0
  104. package/src/types/raw/base/Space.ts +35 -0
  105. package/src/types/raw/base/Tweet.ts +139 -0
  106. package/src/types/raw/base/User.ts +182 -0
  107. package/src/types/raw/composite/DataResult.ts +8 -0
  108. package/src/types/raw/composite/TimelineList.ts +10 -0
  109. package/src/types/raw/composite/TimelineTweet.ts +14 -0
  110. package/src/types/raw/composite/TimelineUser.ts +13 -0
  111. package/src/types/raw/dm/Conversation.ts +59 -0
  112. package/src/types/raw/dm/InboxInitial.ts +155 -0
  113. package/src/types/raw/dm/InboxTimeline.ts +301 -0
  114. package/src/types/raw/dm/UserUpdates.ts +46 -0
  115. package/src/types/raw/generic/Response.ts +10 -0
  116. package/src/types/raw/list/AddMember.ts +175 -0
  117. package/src/types/raw/list/Details.ts +176 -0
  118. package/src/types/raw/list/Members.ts +154 -0
  119. package/src/types/raw/list/RemoveMember.ts +174 -0
  120. package/src/types/raw/list/Tweets.ts +2296 -0
  121. package/src/types/raw/media/FinalizeUpload.ts +20 -0
  122. package/src/types/raw/media/InitalizeUpload.ts +12 -0
  123. package/src/types/raw/media/LiveVideoStream.ts +21 -0
  124. package/src/types/raw/space/Details.ts +359 -0
  125. package/src/types/raw/tweet/Bookmark.ts +14 -0
  126. package/src/types/raw/tweet/Details.ts +210 -0
  127. package/src/types/raw/tweet/DetailsBulk.ts +338 -0
  128. package/src/types/raw/tweet/Like.ts +14 -0
  129. package/src/types/raw/tweet/Likers.ts +200 -0
  130. package/src/types/raw/tweet/Post.ts +150 -0
  131. package/src/types/raw/tweet/Replies.ts +539 -0
  132. package/src/types/raw/tweet/Retweet.ts +31 -0
  133. package/src/types/raw/tweet/Retweeters.ts +208 -0
  134. package/src/types/raw/tweet/Schedule.ts +18 -0
  135. package/src/types/raw/tweet/Search.ts +597 -0
  136. package/src/types/raw/tweet/Unbookmark.ts +14 -0
  137. package/src/types/raw/tweet/Unlike.ts +14 -0
  138. package/src/types/raw/tweet/Unpost.ts +20 -0
  139. package/src/types/raw/tweet/Unretweet.ts +31 -0
  140. package/src/types/raw/tweet/Unschedule.ts +14 -0
  141. package/src/types/raw/user/Affiliates.ts +179 -0
  142. package/src/types/raw/user/Analytics.ts +23 -0
  143. package/src/types/raw/user/BookmarkFolderTweets.ts +53 -0
  144. package/src/types/raw/user/BookmarkFolders.ts +41 -0
  145. package/src/types/raw/user/Bookmarks.ts +637 -0
  146. package/src/types/raw/user/Details.ts +185 -0
  147. package/src/types/raw/user/DetailsBulk.ts +104 -0
  148. package/src/types/raw/user/Follow.ts +280 -0
  149. package/src/types/raw/user/Followed.ts +1942 -0
  150. package/src/types/raw/user/Followers.ts +215 -0
  151. package/src/types/raw/user/Following.ts +215 -0
  152. package/src/types/raw/user/Highlights.ts +1287 -0
  153. package/src/types/raw/user/Likes.ts +1254 -0
  154. package/src/types/raw/user/Lists.ts +378 -0
  155. package/src/types/raw/user/Media.ts +1738 -0
  156. package/src/types/raw/user/Notifications.ts +499 -0
  157. package/src/types/raw/user/ProfileUpdate.ts +80 -0
  158. package/src/types/raw/user/Recommended.ts +2319 -0
  159. package/src/types/raw/user/Scheduled.ts +37 -0
  160. package/src/types/raw/user/Search.ts +230 -0
  161. package/src/types/raw/user/Subscriptions.ts +176 -0
  162. package/src/types/raw/user/Tweets.ts +1254 -0
  163. package/src/types/raw/user/TweetsAndReplies.ts +1254 -0
  164. package/src/types/raw/user/Unfollow.ts +280 -0
  165. package/tsconfig.json +97 -0
@@ -0,0 +1,1287 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the highlights of the given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserHighlightsResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ user: User;
14
+ }
15
+
16
+ interface User {
17
+ result: Result;
18
+ }
19
+
20
+ interface Result {
21
+ __typename: string;
22
+ timeline: Timeline;
23
+ }
24
+
25
+ interface Timeline {
26
+ timeline: Timeline2;
27
+ }
28
+
29
+ interface Timeline2 {
30
+ instructions: Instruction[];
31
+ metadata: Metadata;
32
+ }
33
+
34
+ interface Instruction {
35
+ type: string;
36
+ entries?: Entry[];
37
+ }
38
+
39
+ interface Entry {
40
+ entryId: string;
41
+ sortIndex: string;
42
+ content: Content;
43
+ }
44
+
45
+ interface Content {
46
+ entryType: string;
47
+ __typename: string;
48
+ itemContent?: ItemContent;
49
+ clientEventInfo?: ClientEventInfo;
50
+ value?: string;
51
+ cursorType?: string;
52
+ }
53
+
54
+ interface ItemContent {
55
+ itemType: string;
56
+ __typename: string;
57
+ tweet_results: TweetResults;
58
+ tweetDisplayType: string;
59
+ }
60
+
61
+ interface TweetResults {
62
+ result: Result2;
63
+ }
64
+
65
+ interface Result2 {
66
+ __typename: string;
67
+ rest_id: string;
68
+ core: Core;
69
+ unmention_data: UnmentionData;
70
+ edit_control: EditControl;
71
+ is_translatable: boolean;
72
+ views: Views;
73
+ source: string;
74
+ legacy: Legacy2;
75
+ superFollowsReplyUserResult?: SuperFollowsReplyUserResult;
76
+ quoted_status_result?: QuotedStatusResult;
77
+ }
78
+
79
+ interface Core {
80
+ user_results: UserResults;
81
+ }
82
+
83
+ interface UserResults {
84
+ result: Result3;
85
+ }
86
+
87
+ interface Result3 {
88
+ __typename: string;
89
+ id: string;
90
+ rest_id: string;
91
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
92
+ has_graduated_access: boolean;
93
+ is_blue_verified: boolean;
94
+ profile_image_shape: string;
95
+ legacy: Legacy;
96
+ professional: Professional;
97
+ super_follow_eligible: boolean;
98
+ verified_phone_status: boolean;
99
+ }
100
+
101
+ interface AffiliatesHighlightedLabel {
102
+ label: Label;
103
+ }
104
+
105
+ interface Label {
106
+ url: Url;
107
+ badge: Badge;
108
+ description: string;
109
+ userLabelType: string;
110
+ userLabelDisplayType: string;
111
+ }
112
+
113
+ interface Url {
114
+ url: string;
115
+ urlType: string;
116
+ }
117
+
118
+ interface Badge {
119
+ url: string;
120
+ }
121
+
122
+ interface Legacy {
123
+ following: boolean;
124
+ can_dm: boolean;
125
+ can_media_tag: boolean;
126
+ created_at: string;
127
+ default_profile: boolean;
128
+ default_profile_image: boolean;
129
+ description: string;
130
+ entities: Entities;
131
+ fast_followers_count: number;
132
+ favourites_count: number;
133
+ followers_count: number;
134
+ friends_count: number;
135
+ has_custom_timelines: boolean;
136
+ is_translator: boolean;
137
+ listed_count: number;
138
+ location: string;
139
+ media_count: number;
140
+ name: string;
141
+ normal_followers_count: number;
142
+ pinned_tweet_ids_str: string[];
143
+ possibly_sensitive: boolean;
144
+ profile_banner_url: string;
145
+ profile_image_url_https: string;
146
+ profile_interstitial_type: string;
147
+ screen_name: string;
148
+ statuses_count: number;
149
+ translator_type: string;
150
+ verified: boolean;
151
+ want_retweets: boolean;
152
+ withheld_in_countries: any[];
153
+ }
154
+
155
+ interface Entities {
156
+ description: Description;
157
+ }
158
+
159
+ interface Description {
160
+ urls: any[];
161
+ }
162
+
163
+ interface Professional {
164
+ rest_id: string;
165
+ professional_type: string;
166
+ category: any[];
167
+ }
168
+
169
+ interface UnmentionData {}
170
+
171
+ interface EditControl {
172
+ edit_tweet_ids: string[];
173
+ editable_until_msecs: string;
174
+ is_edit_eligible: boolean;
175
+ edits_remaining: string;
176
+ }
177
+
178
+ interface Views {
179
+ count: string;
180
+ state: string;
181
+ }
182
+
183
+ interface Legacy2 {
184
+ bookmark_count: number;
185
+ bookmarked: boolean;
186
+ created_at: string;
187
+ conversation_id_str: string;
188
+ display_text_range: number[];
189
+ entities: Entities2;
190
+ favorite_count: number;
191
+ favorited: boolean;
192
+ full_text: string;
193
+ in_reply_to_screen_name?: string;
194
+ in_reply_to_status_id_str?: string;
195
+ in_reply_to_user_id_str?: string;
196
+ is_quote_status: boolean;
197
+ lang: string;
198
+ quote_count: number;
199
+ reply_count: number;
200
+ retweet_count: number;
201
+ retweeted: boolean;
202
+ user_id_str: string;
203
+ id_str: string;
204
+ quoted_status_id_str?: string;
205
+ quoted_status_permalink?: QuotedStatusPermalink;
206
+ extended_entities?: ExtendedEntities;
207
+ possibly_sensitive?: boolean;
208
+ possibly_sensitive_editable?: boolean;
209
+ }
210
+
211
+ interface Entities2 {
212
+ hashtags: any[];
213
+ symbols: any[];
214
+ timestamps: any[];
215
+ urls: any[];
216
+ user_mentions: UserMention[];
217
+ media?: Medum[];
218
+ }
219
+
220
+ interface UserMention {
221
+ id_str: string;
222
+ name: string;
223
+ screen_name: string;
224
+ indices: number[];
225
+ }
226
+
227
+ interface Medum {
228
+ display_url: string;
229
+ expanded_url: string;
230
+ id_str: string;
231
+ indices: number[];
232
+ media_key: string;
233
+ media_url_https: string;
234
+ source_status_id_str: string;
235
+ source_user_id_str: string;
236
+ type: string;
237
+ url: string;
238
+ additional_media_info: AdditionalMediaInfo;
239
+ ext_media_availability: ExtMediaAvailability;
240
+ sizes: Sizes;
241
+ original_info: OriginalInfo;
242
+ allow_download_status: AllowDownloadStatus;
243
+ video_info: VideoInfo;
244
+ media_results: MediaResults;
245
+ }
246
+
247
+ interface AdditionalMediaInfo {
248
+ monetizable: boolean;
249
+ source_user: SourceUser;
250
+ }
251
+
252
+ interface SourceUser {
253
+ user_results: UserResults2;
254
+ }
255
+
256
+ interface UserResults2 {
257
+ result: Result4;
258
+ }
259
+
260
+ interface Result4 {
261
+ __typename: string;
262
+ id: string;
263
+ rest_id: string;
264
+ affiliates_highlighted_label: AffiliatesHighlightedLabel2;
265
+ has_graduated_access: boolean;
266
+ is_blue_verified: boolean;
267
+ profile_image_shape: string;
268
+ legacy: Legacy3;
269
+ professional: Professional2;
270
+ super_follow_eligible: boolean;
271
+ verified_phone_status: boolean;
272
+ }
273
+
274
+ interface AffiliatesHighlightedLabel2 {}
275
+
276
+ interface Legacy3 {
277
+ can_dm: boolean;
278
+ can_media_tag: boolean;
279
+ created_at: string;
280
+ default_profile: boolean;
281
+ default_profile_image: boolean;
282
+ description: string;
283
+ entities: Entities3;
284
+ fast_followers_count: number;
285
+ favourites_count: number;
286
+ followers_count: number;
287
+ friends_count: number;
288
+ has_custom_timelines: boolean;
289
+ is_translator: boolean;
290
+ listed_count: number;
291
+ location: string;
292
+ media_count: number;
293
+ name: string;
294
+ normal_followers_count: number;
295
+ pinned_tweet_ids_str: string[];
296
+ possibly_sensitive: boolean;
297
+ profile_banner_url: string;
298
+ profile_image_url_https: string;
299
+ profile_interstitial_type: string;
300
+ screen_name: string;
301
+ statuses_count: number;
302
+ translator_type: string;
303
+ url: string;
304
+ verified: boolean;
305
+ want_retweets: boolean;
306
+ withheld_in_countries: any[];
307
+ }
308
+
309
+ interface Entities3 {
310
+ description: Description2;
311
+ url: Url3;
312
+ }
313
+
314
+ interface Description2 {
315
+ urls: Url2[];
316
+ }
317
+
318
+ interface Url2 {
319
+ display_url: string;
320
+ expanded_url: string;
321
+ url: string;
322
+ indices: number[];
323
+ }
324
+
325
+ interface Url3 {
326
+ urls: Url4[];
327
+ }
328
+
329
+ interface Url4 {
330
+ display_url: string;
331
+ expanded_url: string;
332
+ url: string;
333
+ indices: number[];
334
+ }
335
+
336
+ interface Professional2 {
337
+ rest_id: string;
338
+ professional_type: string;
339
+ category: any[];
340
+ }
341
+
342
+ interface ExtMediaAvailability {
343
+ status: string;
344
+ }
345
+
346
+ interface Sizes {
347
+ large: Large;
348
+ medium: Medium;
349
+ small: Small;
350
+ thumb: Thumb;
351
+ }
352
+
353
+ interface Large {
354
+ h: number;
355
+ w: number;
356
+ resize: string;
357
+ }
358
+
359
+ interface Medium {
360
+ h: number;
361
+ w: number;
362
+ resize: string;
363
+ }
364
+
365
+ interface Small {
366
+ h: number;
367
+ w: number;
368
+ resize: string;
369
+ }
370
+
371
+ interface Thumb {
372
+ h: number;
373
+ w: number;
374
+ resize: string;
375
+ }
376
+
377
+ interface OriginalInfo {
378
+ height: number;
379
+ width: number;
380
+ focus_rects: any[];
381
+ }
382
+
383
+ interface AllowDownloadStatus {
384
+ allow_download: boolean;
385
+ }
386
+
387
+ interface VideoInfo {
388
+ aspect_ratio: number[];
389
+ duration_millis: number;
390
+ variants: Variant[];
391
+ }
392
+
393
+ interface Variant {
394
+ bitrate?: number;
395
+ content_type: string;
396
+ url: string;
397
+ }
398
+
399
+ interface MediaResults {
400
+ result: Result5;
401
+ }
402
+
403
+ interface Result5 {
404
+ media_key: string;
405
+ }
406
+
407
+ interface QuotedStatusPermalink {
408
+ url: string;
409
+ expanded: string;
410
+ display: string;
411
+ }
412
+
413
+ interface ExtendedEntities {
414
+ media: Medum2[];
415
+ }
416
+
417
+ interface Medum2 {
418
+ display_url: string;
419
+ expanded_url: string;
420
+ id_str: string;
421
+ indices: number[];
422
+ media_key: string;
423
+ media_url_https: string;
424
+ source_status_id_str: string;
425
+ source_user_id_str: string;
426
+ type: string;
427
+ url: string;
428
+ additional_media_info: AdditionalMediaInfo2;
429
+ ext_media_availability: ExtMediaAvailability2;
430
+ sizes: Sizes2;
431
+ original_info: OriginalInfo2;
432
+ allow_download_status: AllowDownloadStatus2;
433
+ video_info: VideoInfo2;
434
+ media_results: MediaResults2;
435
+ }
436
+
437
+ interface AdditionalMediaInfo2 {
438
+ monetizable: boolean;
439
+ source_user: SourceUser2;
440
+ }
441
+
442
+ interface SourceUser2 {
443
+ user_results: UserResults3;
444
+ }
445
+
446
+ interface UserResults3 {
447
+ result: Result6;
448
+ }
449
+
450
+ interface Result6 {
451
+ __typename: string;
452
+ id: string;
453
+ rest_id: string;
454
+ affiliates_highlighted_label: AffiliatesHighlightedLabel3;
455
+ has_graduated_access: boolean;
456
+ is_blue_verified: boolean;
457
+ profile_image_shape: string;
458
+ legacy: Legacy4;
459
+ professional: Professional3;
460
+ super_follow_eligible: boolean;
461
+ verified_phone_status: boolean;
462
+ }
463
+
464
+ interface AffiliatesHighlightedLabel3 {}
465
+
466
+ interface Legacy4 {
467
+ can_dm: boolean;
468
+ can_media_tag: boolean;
469
+ created_at: string;
470
+ default_profile: boolean;
471
+ default_profile_image: boolean;
472
+ description: string;
473
+ entities: Entities4;
474
+ fast_followers_count: number;
475
+ favourites_count: number;
476
+ followers_count: number;
477
+ friends_count: number;
478
+ has_custom_timelines: boolean;
479
+ is_translator: boolean;
480
+ listed_count: number;
481
+ location: string;
482
+ media_count: number;
483
+ name: string;
484
+ normal_followers_count: number;
485
+ pinned_tweet_ids_str: string[];
486
+ possibly_sensitive: boolean;
487
+ profile_banner_url: string;
488
+ profile_image_url_https: string;
489
+ profile_interstitial_type: string;
490
+ screen_name: string;
491
+ statuses_count: number;
492
+ translator_type: string;
493
+ url: string;
494
+ verified: boolean;
495
+ want_retweets: boolean;
496
+ withheld_in_countries: any[];
497
+ }
498
+
499
+ interface Entities4 {
500
+ description: Description3;
501
+ url: Url6;
502
+ }
503
+
504
+ interface Description3 {
505
+ urls: Url5[];
506
+ }
507
+
508
+ interface Url5 {
509
+ display_url: string;
510
+ expanded_url: string;
511
+ url: string;
512
+ indices: number[];
513
+ }
514
+
515
+ interface Url6 {
516
+ urls: Url7[];
517
+ }
518
+
519
+ interface Url7 {
520
+ display_url: string;
521
+ expanded_url: string;
522
+ url: string;
523
+ indices: number[];
524
+ }
525
+
526
+ interface Professional3 {
527
+ rest_id: string;
528
+ professional_type: string;
529
+ category: any[];
530
+ }
531
+
532
+ interface ExtMediaAvailability2 {
533
+ status: string;
534
+ }
535
+
536
+ interface Sizes2 {
537
+ large: Large2;
538
+ medium: Medium2;
539
+ small: Small2;
540
+ thumb: Thumb2;
541
+ }
542
+
543
+ interface Large2 {
544
+ h: number;
545
+ w: number;
546
+ resize: string;
547
+ }
548
+
549
+ interface Medium2 {
550
+ h: number;
551
+ w: number;
552
+ resize: string;
553
+ }
554
+
555
+ interface Small2 {
556
+ h: number;
557
+ w: number;
558
+ resize: string;
559
+ }
560
+
561
+ interface Thumb2 {
562
+ h: number;
563
+ w: number;
564
+ resize: string;
565
+ }
566
+
567
+ interface OriginalInfo2 {
568
+ height: number;
569
+ width: number;
570
+ focus_rects: any[];
571
+ }
572
+
573
+ interface AllowDownloadStatus2 {
574
+ allow_download: boolean;
575
+ }
576
+
577
+ interface VideoInfo2 {
578
+ aspect_ratio: number[];
579
+ duration_millis: number;
580
+ variants: Variant2[];
581
+ }
582
+
583
+ interface Variant2 {
584
+ bitrate?: number;
585
+ content_type: string;
586
+ url: string;
587
+ }
588
+
589
+ interface MediaResults2 {
590
+ result: Result7;
591
+ }
592
+
593
+ interface Result7 {
594
+ media_key: string;
595
+ }
596
+
597
+ interface SuperFollowsReplyUserResult {
598
+ result: Result8;
599
+ }
600
+
601
+ interface Result8 {
602
+ __typename: string;
603
+ legacy: Legacy5;
604
+ }
605
+
606
+ interface Legacy5 {
607
+ screen_name: string;
608
+ }
609
+
610
+ interface QuotedStatusResult {
611
+ result: Result9;
612
+ }
613
+
614
+ interface Result9 {
615
+ __typename: string;
616
+ rest_id: string;
617
+ core: Core2;
618
+ unmention_data: UnmentionData2;
619
+ edit_control: EditControl2;
620
+ is_translatable: boolean;
621
+ views: Views2;
622
+ source: string;
623
+ legacy: Legacy7;
624
+ card?: Card;
625
+ note_tweet?: NoteTweet;
626
+ quotedRefResult?: QuotedRefResult;
627
+ }
628
+
629
+ interface Core2 {
630
+ user_results: UserResults4;
631
+ }
632
+
633
+ interface UserResults4 {
634
+ result: Result10;
635
+ }
636
+
637
+ interface Result10 {
638
+ __typename: string;
639
+ id: string;
640
+ rest_id: string;
641
+ affiliates_highlighted_label: AffiliatesHighlightedLabel4;
642
+ has_graduated_access: boolean;
643
+ is_blue_verified: boolean;
644
+ profile_image_shape: string;
645
+ legacy: Legacy6;
646
+ verified_phone_status: boolean;
647
+ professional?: Professional4;
648
+ super_follow_eligible?: boolean;
649
+ }
650
+
651
+ interface AffiliatesHighlightedLabel4 {
652
+ label?: Label2;
653
+ }
654
+
655
+ interface Label2 {
656
+ url: Url8;
657
+ badge: Badge2;
658
+ description: string;
659
+ userLabelType: string;
660
+ userLabelDisplayType: string;
661
+ }
662
+
663
+ interface Url8 {
664
+ url: string;
665
+ urlType: string;
666
+ }
667
+
668
+ interface Badge2 {
669
+ url: string;
670
+ }
671
+
672
+ interface Legacy6 {
673
+ can_dm: boolean;
674
+ can_media_tag: boolean;
675
+ created_at: string;
676
+ default_profile: boolean;
677
+ default_profile_image: boolean;
678
+ description: string;
679
+ entities: Entities5;
680
+ fast_followers_count: number;
681
+ favourites_count: number;
682
+ followers_count: number;
683
+ friends_count: number;
684
+ has_custom_timelines: boolean;
685
+ is_translator: boolean;
686
+ listed_count: number;
687
+ location: string;
688
+ media_count: number;
689
+ name: string;
690
+ normal_followers_count: number;
691
+ pinned_tweet_ids_str: string[];
692
+ possibly_sensitive: boolean;
693
+ profile_banner_url: string;
694
+ profile_image_url_https: string;
695
+ profile_interstitial_type: string;
696
+ screen_name: string;
697
+ statuses_count: number;
698
+ translator_type: string;
699
+ url?: string;
700
+ verified: boolean;
701
+ want_retweets: boolean;
702
+ withheld_in_countries: any[];
703
+ following?: boolean;
704
+ verified_type?: string;
705
+ }
706
+
707
+ interface Entities5 {
708
+ description: Description4;
709
+ url?: Url10;
710
+ }
711
+
712
+ interface Description4 {
713
+ urls: Url9[];
714
+ }
715
+
716
+ interface Url9 {
717
+ display_url: string;
718
+ expanded_url: string;
719
+ url: string;
720
+ indices: number[];
721
+ }
722
+
723
+ interface Url10 {
724
+ urls: Url11[];
725
+ }
726
+
727
+ interface Url11 {
728
+ display_url: string;
729
+ expanded_url: string;
730
+ url: string;
731
+ indices: number[];
732
+ }
733
+
734
+ interface Professional4 {
735
+ rest_id: string;
736
+ professional_type: string;
737
+ category: any[];
738
+ }
739
+
740
+ interface UnmentionData2 {}
741
+
742
+ interface EditControl2 {
743
+ edit_tweet_ids: string[];
744
+ editable_until_msecs: string;
745
+ is_edit_eligible: boolean;
746
+ edits_remaining: string;
747
+ }
748
+
749
+ interface Views2 {
750
+ count: string;
751
+ state: string;
752
+ }
753
+
754
+ interface Legacy7 {
755
+ bookmark_count: number;
756
+ bookmarked: boolean;
757
+ created_at: string;
758
+ conversation_id_str: string;
759
+ display_text_range: number[];
760
+ entities: Entities6;
761
+ extended_entities?: ExtendedEntities2;
762
+ favorite_count: number;
763
+ favorited: boolean;
764
+ full_text: string;
765
+ is_quote_status: boolean;
766
+ lang: string;
767
+ possibly_sensitive?: boolean;
768
+ possibly_sensitive_editable?: boolean;
769
+ quote_count: number;
770
+ reply_count: number;
771
+ retweet_count: number;
772
+ retweeted: boolean;
773
+ user_id_str: string;
774
+ id_str: string;
775
+ quoted_status_id_str?: string;
776
+ quoted_status_permalink?: QuotedStatusPermalink2;
777
+ in_reply_to_screen_name?: string;
778
+ in_reply_to_status_id_str?: string;
779
+ in_reply_to_user_id_str?: string;
780
+ }
781
+
782
+ interface Entities6 {
783
+ hashtags: any[];
784
+ media?: Medum3[];
785
+ symbols: any[];
786
+ timestamps: any[];
787
+ urls: Url12[];
788
+ user_mentions: UserMention2[];
789
+ }
790
+
791
+ interface Medum3 {
792
+ display_url: string;
793
+ expanded_url: string;
794
+ id_str: string;
795
+ indices: number[];
796
+ media_key: string;
797
+ media_url_https: string;
798
+ type: string;
799
+ url: string;
800
+ additional_media_info?: AdditionalMediaInfo3;
801
+ ext_media_availability: ExtMediaAvailability3;
802
+ sizes: Sizes3;
803
+ original_info: OriginalInfo3;
804
+ allow_download_status?: AllowDownloadStatus3;
805
+ video_info?: VideoInfo3;
806
+ media_results: MediaResults3;
807
+ features?: Features;
808
+ }
809
+
810
+ interface AdditionalMediaInfo3 {
811
+ title?: string;
812
+ description?: string;
813
+ embeddable?: boolean;
814
+ monetizable: boolean;
815
+ }
816
+
817
+ interface ExtMediaAvailability3 {
818
+ status: string;
819
+ }
820
+
821
+ interface Sizes3 {
822
+ large: Large3;
823
+ medium: Medium3;
824
+ small: Small3;
825
+ thumb: Thumb3;
826
+ }
827
+
828
+ interface Large3 {
829
+ h: number;
830
+ w: number;
831
+ resize: string;
832
+ }
833
+
834
+ interface Medium3 {
835
+ h: number;
836
+ w: number;
837
+ resize: string;
838
+ }
839
+
840
+ interface Small3 {
841
+ h: number;
842
+ w: number;
843
+ resize: string;
844
+ }
845
+
846
+ interface Thumb3 {
847
+ h: number;
848
+ w: number;
849
+ resize: string;
850
+ }
851
+
852
+ interface OriginalInfo3 {
853
+ height: number;
854
+ width: number;
855
+ focus_rects: FocusRect[];
856
+ }
857
+
858
+ interface FocusRect {
859
+ x: number;
860
+ y: number;
861
+ w: number;
862
+ h: number;
863
+ }
864
+
865
+ interface AllowDownloadStatus3 {
866
+ allow_download: boolean;
867
+ }
868
+
869
+ interface VideoInfo3 {
870
+ aspect_ratio: number[];
871
+ duration_millis: number;
872
+ variants: Variant3[];
873
+ }
874
+
875
+ interface Variant3 {
876
+ content_type: string;
877
+ url: string;
878
+ bitrate?: number;
879
+ }
880
+
881
+ interface MediaResults3 {
882
+ result: Result11;
883
+ }
884
+
885
+ interface Result11 {
886
+ media_key: string;
887
+ }
888
+
889
+ interface Features {
890
+ large: Large4;
891
+ medium: Medium4;
892
+ small: Small4;
893
+ orig: Orig;
894
+ }
895
+
896
+ interface Large4 {
897
+ faces: any[];
898
+ }
899
+
900
+ interface Medium4 {
901
+ faces: any[];
902
+ }
903
+
904
+ interface Small4 {
905
+ faces: any[];
906
+ }
907
+
908
+ interface Orig {
909
+ faces: any[];
910
+ }
911
+
912
+ interface Url12 {
913
+ display_url: string;
914
+ expanded_url: string;
915
+ url: string;
916
+ indices: number[];
917
+ }
918
+
919
+ interface UserMention2 {
920
+ id_str: string;
921
+ name: string;
922
+ screen_name: string;
923
+ indices: number[];
924
+ }
925
+
926
+ interface ExtendedEntities2 {
927
+ media: Medum4[];
928
+ }
929
+
930
+ interface Medum4 {
931
+ display_url: string;
932
+ expanded_url: string;
933
+ id_str: string;
934
+ indices: number[];
935
+ media_key: string;
936
+ media_url_https: string;
937
+ type: string;
938
+ url: string;
939
+ additional_media_info?: AdditionalMediaInfo4;
940
+ ext_media_availability: ExtMediaAvailability4;
941
+ sizes: Sizes4;
942
+ original_info: OriginalInfo4;
943
+ allow_download_status?: AllowDownloadStatus4;
944
+ video_info?: VideoInfo4;
945
+ media_results: MediaResults4;
946
+ features?: Features2;
947
+ }
948
+
949
+ interface AdditionalMediaInfo4 {
950
+ title?: string;
951
+ description?: string;
952
+ embeddable?: boolean;
953
+ monetizable: boolean;
954
+ }
955
+
956
+ interface ExtMediaAvailability4 {
957
+ status: string;
958
+ }
959
+
960
+ interface Sizes4 {
961
+ large: Large5;
962
+ medium: Medium5;
963
+ small: Small5;
964
+ thumb: Thumb4;
965
+ }
966
+
967
+ interface Large5 {
968
+ h: number;
969
+ w: number;
970
+ resize: string;
971
+ }
972
+
973
+ interface Medium5 {
974
+ h: number;
975
+ w: number;
976
+ resize: string;
977
+ }
978
+
979
+ interface Small5 {
980
+ h: number;
981
+ w: number;
982
+ resize: string;
983
+ }
984
+
985
+ interface Thumb4 {
986
+ h: number;
987
+ w: number;
988
+ resize: string;
989
+ }
990
+
991
+ interface OriginalInfo4 {
992
+ height: number;
993
+ width: number;
994
+ focus_rects: FocusRect2[];
995
+ }
996
+
997
+ interface FocusRect2 {
998
+ x: number;
999
+ y: number;
1000
+ w: number;
1001
+ h: number;
1002
+ }
1003
+
1004
+ interface AllowDownloadStatus4 {
1005
+ allow_download: boolean;
1006
+ }
1007
+
1008
+ interface VideoInfo4 {
1009
+ aspect_ratio: number[];
1010
+ duration_millis: number;
1011
+ variants: Variant4[];
1012
+ }
1013
+
1014
+ interface Variant4 {
1015
+ content_type: string;
1016
+ url: string;
1017
+ bitrate?: number;
1018
+ }
1019
+
1020
+ interface MediaResults4 {
1021
+ result: Result12;
1022
+ }
1023
+
1024
+ interface Result12 {
1025
+ media_key: string;
1026
+ }
1027
+
1028
+ interface Features2 {
1029
+ large: Large6;
1030
+ medium: Medium6;
1031
+ small: Small6;
1032
+ orig: Orig2;
1033
+ }
1034
+
1035
+ interface Large6 {
1036
+ faces: any[];
1037
+ }
1038
+
1039
+ interface Medium6 {
1040
+ faces: any[];
1041
+ }
1042
+
1043
+ interface Small6 {
1044
+ faces: any[];
1045
+ }
1046
+
1047
+ interface Orig2 {
1048
+ faces: any[];
1049
+ }
1050
+
1051
+ interface QuotedStatusPermalink2 {
1052
+ url: string;
1053
+ expanded: string;
1054
+ display: string;
1055
+ }
1056
+
1057
+ interface Card {
1058
+ rest_id: string;
1059
+ legacy: Legacy8;
1060
+ }
1061
+
1062
+ interface Legacy8 {
1063
+ binding_values: BindingValue[];
1064
+ card_platform: CardPlatform;
1065
+ name: string;
1066
+ url: string;
1067
+ user_refs_results: UserRefsResult[];
1068
+ }
1069
+
1070
+ interface BindingValue {
1071
+ key: string;
1072
+ value: Value;
1073
+ }
1074
+
1075
+ interface Value {
1076
+ image_value?: ImageValue;
1077
+ type: string;
1078
+ string_value?: string;
1079
+ scribe_key?: string;
1080
+ user_value?: UserValue;
1081
+ image_color_value?: ImageColorValue;
1082
+ }
1083
+
1084
+ interface ImageValue {
1085
+ alt: string;
1086
+ height: number;
1087
+ width: number;
1088
+ url: string;
1089
+ }
1090
+
1091
+ interface UserValue {
1092
+ id_str: string;
1093
+ path: any[];
1094
+ }
1095
+
1096
+ interface ImageColorValue {
1097
+ palette: Palette[];
1098
+ }
1099
+
1100
+ interface Palette {
1101
+ rgb: Rgb;
1102
+ percentage: number;
1103
+ }
1104
+
1105
+ interface Rgb {
1106
+ blue: number;
1107
+ green: number;
1108
+ red: number;
1109
+ }
1110
+
1111
+ interface CardPlatform {
1112
+ platform: Platform;
1113
+ }
1114
+
1115
+ interface Platform {
1116
+ audience: Audience;
1117
+ device: Device;
1118
+ }
1119
+
1120
+ interface Audience {
1121
+ name: string;
1122
+ }
1123
+
1124
+ interface Device {
1125
+ name: string;
1126
+ version: string;
1127
+ }
1128
+
1129
+ interface UserRefsResult {
1130
+ result: Result13;
1131
+ }
1132
+
1133
+ interface Result13 {
1134
+ __typename: string;
1135
+ id: string;
1136
+ rest_id: string;
1137
+ affiliates_highlighted_label: AffiliatesHighlightedLabel5;
1138
+ has_graduated_access: boolean;
1139
+ is_blue_verified: boolean;
1140
+ profile_image_shape: string;
1141
+ legacy: Legacy9;
1142
+ professional: Professional5;
1143
+ verified_phone_status: boolean;
1144
+ }
1145
+
1146
+ interface AffiliatesHighlightedLabel5 {}
1147
+
1148
+ interface Legacy9 {
1149
+ can_dm: boolean;
1150
+ can_media_tag: boolean;
1151
+ created_at: string;
1152
+ default_profile: boolean;
1153
+ default_profile_image: boolean;
1154
+ description: string;
1155
+ entities: Entities7;
1156
+ fast_followers_count: number;
1157
+ favourites_count: number;
1158
+ followers_count: number;
1159
+ friends_count: number;
1160
+ has_custom_timelines: boolean;
1161
+ is_translator: boolean;
1162
+ listed_count: number;
1163
+ location: string;
1164
+ media_count: number;
1165
+ name: string;
1166
+ normal_followers_count: number;
1167
+ pinned_tweet_ids_str: any[];
1168
+ possibly_sensitive: boolean;
1169
+ profile_banner_url: string;
1170
+ profile_image_url_https: string;
1171
+ profile_interstitial_type: string;
1172
+ screen_name: string;
1173
+ statuses_count: number;
1174
+ translator_type: string;
1175
+ url: string;
1176
+ verified: boolean;
1177
+ verified_type: string;
1178
+ want_retweets: boolean;
1179
+ withheld_in_countries: any[];
1180
+ }
1181
+
1182
+ interface Entities7 {
1183
+ description: Description5;
1184
+ url: Url14;
1185
+ }
1186
+
1187
+ interface Description5 {
1188
+ urls: Url13[];
1189
+ }
1190
+
1191
+ interface Url13 {
1192
+ display_url: string;
1193
+ expanded_url: string;
1194
+ url: string;
1195
+ indices: number[];
1196
+ }
1197
+
1198
+ interface Url14 {
1199
+ urls: Url15[];
1200
+ }
1201
+
1202
+ interface Url15 {
1203
+ display_url: string;
1204
+ expanded_url: string;
1205
+ url: string;
1206
+ indices: number[];
1207
+ }
1208
+
1209
+ interface Professional5 {
1210
+ rest_id: string;
1211
+ professional_type: string;
1212
+ category: Category[];
1213
+ }
1214
+
1215
+ interface Category {
1216
+ id: number;
1217
+ name: string;
1218
+ icon_name: string;
1219
+ }
1220
+
1221
+ interface NoteTweet {
1222
+ is_expandable: boolean;
1223
+ note_tweet_results: NoteTweetResults;
1224
+ }
1225
+
1226
+ interface NoteTweetResults {
1227
+ result: Result14;
1228
+ }
1229
+
1230
+ interface Result14 {
1231
+ id: string;
1232
+ text: string;
1233
+ entity_set: EntitySet;
1234
+ richtext: Richtext;
1235
+ media: Media;
1236
+ }
1237
+
1238
+ interface EntitySet {
1239
+ hashtags: any[];
1240
+ symbols: any[];
1241
+ timestamps: any[];
1242
+ urls: any[];
1243
+ user_mentions: UserMention3[];
1244
+ }
1245
+
1246
+ interface UserMention3 {
1247
+ id_str: string;
1248
+ name: string;
1249
+ screen_name: string;
1250
+ indices: number[];
1251
+ }
1252
+
1253
+ interface Richtext {
1254
+ richtext_tags: RichtextTag[];
1255
+ }
1256
+
1257
+ interface RichtextTag {
1258
+ from_index: number;
1259
+ to_index: number;
1260
+ richtext_types: string[];
1261
+ }
1262
+
1263
+ interface Media {
1264
+ inline_media: any[];
1265
+ }
1266
+
1267
+ interface QuotedRefResult {
1268
+ result: Result15;
1269
+ }
1270
+
1271
+ interface Result15 {
1272
+ __typename: string;
1273
+ rest_id: string;
1274
+ }
1275
+
1276
+ interface ClientEventInfo {
1277
+ component: string;
1278
+ element: string;
1279
+ }
1280
+
1281
+ interface Metadata {
1282
+ scribeConfig: ScribeConfig;
1283
+ }
1284
+
1285
+ interface ScribeConfig {
1286
+ page: string;
1287
+ }