@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,637 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the bookmarks of the given user.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IUserBookmarksResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ bookmark_timeline_v2: BookmarkTimelineV2;
14
+ }
15
+
16
+ interface BookmarkTimelineV2 {
17
+ timeline: Timeline;
18
+ }
19
+
20
+ interface Timeline {
21
+ instructions: Instruction[];
22
+ responseObjects: ResponseObjects;
23
+ }
24
+
25
+ interface Instruction {
26
+ type: string;
27
+ entries: Entry[];
28
+ }
29
+
30
+ interface Entry {
31
+ entryId: string;
32
+ sortIndex: string;
33
+ content: Content;
34
+ }
35
+
36
+ interface Content {
37
+ entryType: string;
38
+ __typename: string;
39
+ itemContent?: ItemContent;
40
+ value?: string;
41
+ cursorType?: string;
42
+ stopOnEmptyResponse?: boolean;
43
+ }
44
+
45
+ interface ItemContent {
46
+ itemType: string;
47
+ __typename: string;
48
+ tweet_results: TweetResults;
49
+ tweetDisplayType: string;
50
+ }
51
+
52
+ interface TweetResults {
53
+ result: Result;
54
+ }
55
+
56
+ interface Result {
57
+ __typename: string;
58
+ rest_id: string;
59
+ core: Core;
60
+ unmention_data: UnmentionData;
61
+ edit_control: EditControl;
62
+ is_translatable: boolean;
63
+ views: Views;
64
+ source: string;
65
+ legacy: Legacy2;
66
+ }
67
+
68
+ interface Core {
69
+ user_results: UserResults;
70
+ }
71
+
72
+ interface UserResults {
73
+ result: Result2;
74
+ }
75
+
76
+ interface Result2 {
77
+ __typename: string;
78
+ id: string;
79
+ rest_id: string;
80
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
81
+ has_graduated_access: boolean;
82
+ is_blue_verified: boolean;
83
+ profile_image_shape: string;
84
+ legacy: Legacy;
85
+ professional: Professional;
86
+ tipjar_settings: TipjarSettings;
87
+ super_follow_eligible?: boolean;
88
+ verified_phone_status: boolean;
89
+ }
90
+
91
+ interface AffiliatesHighlightedLabel {
92
+ label?: Label;
93
+ }
94
+
95
+ interface Label {
96
+ url: Url;
97
+ badge: Badge;
98
+ description: string;
99
+ userLabelType: string;
100
+ userLabelDisplayType: string;
101
+ }
102
+
103
+ interface Url {
104
+ url: string;
105
+ urlType: string;
106
+ }
107
+
108
+ interface Badge {
109
+ url: string;
110
+ }
111
+
112
+ interface Legacy {
113
+ following: boolean;
114
+ can_dm: boolean;
115
+ can_media_tag: boolean;
116
+ created_at: string;
117
+ default_profile: boolean;
118
+ default_profile_image: boolean;
119
+ description: string;
120
+ entities: Entities;
121
+ fast_followers_count: number;
122
+ favourites_count: number;
123
+ followers_count: number;
124
+ friends_count: number;
125
+ has_custom_timelines: boolean;
126
+ is_translator: boolean;
127
+ listed_count: number;
128
+ location: string;
129
+ media_count: number;
130
+ name: string;
131
+ normal_followers_count: number;
132
+ pinned_tweet_ids_str: string[];
133
+ possibly_sensitive: boolean;
134
+ profile_banner_url: string;
135
+ profile_image_url_https: string;
136
+ profile_interstitial_type: string;
137
+ screen_name: string;
138
+ statuses_count: number;
139
+ translator_type: string;
140
+ url?: string;
141
+ verified: boolean;
142
+ want_retweets: boolean;
143
+ withheld_in_countries: any[];
144
+ }
145
+
146
+ interface Entities {
147
+ description: Description;
148
+ url?: Url2;
149
+ }
150
+
151
+ interface Description {
152
+ urls: any[];
153
+ }
154
+
155
+ interface Url2 {
156
+ urls: Url3[];
157
+ }
158
+
159
+ interface Url3 {
160
+ display_url: string;
161
+ expanded_url: string;
162
+ url: string;
163
+ indices: number[];
164
+ }
165
+
166
+ interface Professional {
167
+ rest_id: string;
168
+ professional_type: string;
169
+ category: Category[];
170
+ }
171
+
172
+ interface Category {
173
+ id: number;
174
+ name: string;
175
+ icon_name: string;
176
+ }
177
+
178
+ interface TipjarSettings {
179
+ is_enabled?: boolean;
180
+ }
181
+
182
+ interface UnmentionData {}
183
+
184
+ interface EditControl {
185
+ edit_tweet_ids: string[];
186
+ editable_until_msecs: string;
187
+ is_edit_eligible: boolean;
188
+ edits_remaining: string;
189
+ }
190
+
191
+ interface Views {
192
+ count: string;
193
+ state: string;
194
+ }
195
+
196
+ interface Legacy2 {
197
+ bookmark_count: number;
198
+ bookmarked: boolean;
199
+ created_at: string;
200
+ conversation_id_str: string;
201
+ display_text_range: number[];
202
+ entities: Entities2;
203
+ extended_entities: ExtendedEntities;
204
+ favorite_count: number;
205
+ favorited: boolean;
206
+ full_text: string;
207
+ is_quote_status: boolean;
208
+ lang: string;
209
+ possibly_sensitive: boolean;
210
+ possibly_sensitive_editable: boolean;
211
+ quote_count: number;
212
+ reply_count: number;
213
+ retweet_count: number;
214
+ retweeted: boolean;
215
+ user_id_str: string;
216
+ id_str: string;
217
+ }
218
+
219
+ interface Entities2 {
220
+ hashtags: any[];
221
+ media: Medum[];
222
+ symbols: any[];
223
+ timestamps: any[];
224
+ urls: any[];
225
+ user_mentions: any[];
226
+ }
227
+
228
+ interface Medum {
229
+ display_url: string;
230
+ expanded_url: string;
231
+ id_str: string;
232
+ indices: number[];
233
+ media_key: string;
234
+ media_url_https: string;
235
+ source_status_id_str?: string;
236
+ source_user_id_str?: string;
237
+ type: string;
238
+ url: string;
239
+ additional_media_info?: AdditionalMediaInfo;
240
+ ext_media_availability: ExtMediaAvailability;
241
+ sizes: Sizes;
242
+ original_info: OriginalInfo;
243
+ allow_download_status?: AllowDownloadStatus;
244
+ video_info?: VideoInfo;
245
+ media_results: MediaResults;
246
+ features?: Features;
247
+ }
248
+
249
+ interface AdditionalMediaInfo {
250
+ monetizable: boolean;
251
+ source_user: SourceUser;
252
+ }
253
+
254
+ interface SourceUser {
255
+ user_results: UserResults2;
256
+ }
257
+
258
+ interface UserResults2 {
259
+ result: Result3;
260
+ }
261
+
262
+ interface Result3 {
263
+ __typename: string;
264
+ id: string;
265
+ rest_id: string;
266
+ affiliates_highlighted_label: AffiliatesHighlightedLabel2;
267
+ has_graduated_access: boolean;
268
+ is_blue_verified: boolean;
269
+ profile_image_shape: string;
270
+ legacy: Legacy3;
271
+ tipjar_settings: TipjarSettings2;
272
+ super_follow_eligible: boolean;
273
+ verified_phone_status: boolean;
274
+ }
275
+
276
+ interface AffiliatesHighlightedLabel2 {}
277
+
278
+ interface Legacy3 {
279
+ following: boolean;
280
+ can_dm: boolean;
281
+ can_media_tag: boolean;
282
+ created_at: string;
283
+ default_profile: boolean;
284
+ default_profile_image: boolean;
285
+ description: string;
286
+ entities: Entities3;
287
+ fast_followers_count: number;
288
+ favourites_count: number;
289
+ followers_count: number;
290
+ friends_count: number;
291
+ has_custom_timelines: boolean;
292
+ is_translator: boolean;
293
+ listed_count: number;
294
+ location: string;
295
+ media_count: number;
296
+ name: string;
297
+ normal_followers_count: number;
298
+ pinned_tweet_ids_str: any[];
299
+ possibly_sensitive: boolean;
300
+ profile_banner_url: string;
301
+ profile_image_url_https: string;
302
+ profile_interstitial_type: string;
303
+ screen_name: string;
304
+ statuses_count: number;
305
+ translator_type: string;
306
+ url: string;
307
+ verified: boolean;
308
+ want_retweets: boolean;
309
+ withheld_in_countries: any[];
310
+ }
311
+
312
+ interface Entities3 {
313
+ description: Description2;
314
+ url: Url4;
315
+ }
316
+
317
+ interface Description2 {
318
+ urls: any[];
319
+ }
320
+
321
+ interface Url4 {
322
+ urls: Url5[];
323
+ }
324
+
325
+ interface Url5 {
326
+ display_url: string;
327
+ expanded_url: string;
328
+ url: string;
329
+ indices: number[];
330
+ }
331
+
332
+ interface TipjarSettings2 {}
333
+
334
+ interface ExtMediaAvailability {
335
+ status: string;
336
+ }
337
+
338
+ interface Sizes {
339
+ large: Large;
340
+ medium: Medium;
341
+ small: Small;
342
+ thumb: Thumb;
343
+ }
344
+
345
+ interface Large {
346
+ h: number;
347
+ w: number;
348
+ resize: string;
349
+ }
350
+
351
+ interface Medium {
352
+ h: number;
353
+ w: number;
354
+ resize: string;
355
+ }
356
+
357
+ interface Small {
358
+ h: number;
359
+ w: number;
360
+ resize: string;
361
+ }
362
+
363
+ interface Thumb {
364
+ h: number;
365
+ w: number;
366
+ resize: string;
367
+ }
368
+
369
+ interface OriginalInfo {
370
+ height: number;
371
+ width: number;
372
+ focus_rects: FocusRect[];
373
+ }
374
+
375
+ interface FocusRect {
376
+ x: number;
377
+ y: number;
378
+ w: number;
379
+ h: number;
380
+ }
381
+
382
+ interface AllowDownloadStatus {
383
+ allow_download: boolean;
384
+ }
385
+
386
+ interface VideoInfo {
387
+ aspect_ratio: number[];
388
+ duration_millis: number;
389
+ variants: Variant[];
390
+ }
391
+
392
+ interface Variant {
393
+ content_type: string;
394
+ url: string;
395
+ bitrate?: number;
396
+ }
397
+
398
+ interface MediaResults {
399
+ result: Result4;
400
+ }
401
+
402
+ interface Result4 {
403
+ media_key: string;
404
+ }
405
+
406
+ interface Features {
407
+ large: Large2;
408
+ medium: Medium2;
409
+ small: Small2;
410
+ orig: Orig;
411
+ }
412
+
413
+ interface Large2 {
414
+ faces: any[];
415
+ }
416
+
417
+ interface Medium2 {
418
+ faces: any[];
419
+ }
420
+
421
+ interface Small2 {
422
+ faces: any[];
423
+ }
424
+
425
+ interface Orig {
426
+ faces: any[];
427
+ }
428
+
429
+ interface ExtendedEntities {
430
+ media: Medum2[];
431
+ }
432
+
433
+ interface Medum2 {
434
+ display_url: string;
435
+ expanded_url: string;
436
+ id_str: string;
437
+ indices: number[];
438
+ media_key: string;
439
+ media_url_https: string;
440
+ source_status_id_str?: string;
441
+ source_user_id_str?: string;
442
+ type: string;
443
+ url: string;
444
+ additional_media_info?: AdditionalMediaInfo2;
445
+ ext_media_availability: ExtMediaAvailability2;
446
+ sizes: Sizes2;
447
+ original_info: OriginalInfo2;
448
+ allow_download_status?: AllowDownloadStatus2;
449
+ video_info?: VideoInfo2;
450
+ media_results: MediaResults2;
451
+ features?: Features2;
452
+ }
453
+
454
+ interface AdditionalMediaInfo2 {
455
+ monetizable: boolean;
456
+ source_user: SourceUser2;
457
+ }
458
+
459
+ interface SourceUser2 {
460
+ user_results: UserResults3;
461
+ }
462
+
463
+ interface UserResults3 {
464
+ result: Result5;
465
+ }
466
+
467
+ interface Result5 {
468
+ __typename: string;
469
+ id: string;
470
+ rest_id: string;
471
+ affiliates_highlighted_label: AffiliatesHighlightedLabel3;
472
+ has_graduated_access: boolean;
473
+ is_blue_verified: boolean;
474
+ profile_image_shape: string;
475
+ legacy: Legacy4;
476
+ tipjar_settings: TipjarSettings3;
477
+ super_follow_eligible: boolean;
478
+ verified_phone_status: boolean;
479
+ }
480
+
481
+ interface AffiliatesHighlightedLabel3 {}
482
+
483
+ interface Legacy4 {
484
+ following: boolean;
485
+ can_dm: boolean;
486
+ can_media_tag: boolean;
487
+ created_at: string;
488
+ default_profile: boolean;
489
+ default_profile_image: boolean;
490
+ description: string;
491
+ entities: Entities4;
492
+ fast_followers_count: number;
493
+ favourites_count: number;
494
+ followers_count: number;
495
+ friends_count: number;
496
+ has_custom_timelines: boolean;
497
+ is_translator: boolean;
498
+ listed_count: number;
499
+ location: string;
500
+ media_count: number;
501
+ name: string;
502
+ normal_followers_count: number;
503
+ pinned_tweet_ids_str: any[];
504
+ possibly_sensitive: boolean;
505
+ profile_banner_url: string;
506
+ profile_image_url_https: string;
507
+ profile_interstitial_type: string;
508
+ screen_name: string;
509
+ statuses_count: number;
510
+ translator_type: string;
511
+ url: string;
512
+ verified: boolean;
513
+ want_retweets: boolean;
514
+ withheld_in_countries: any[];
515
+ }
516
+
517
+ interface Entities4 {
518
+ description: Description3;
519
+ url: Url6;
520
+ }
521
+
522
+ interface Description3 {
523
+ urls: any[];
524
+ }
525
+
526
+ interface Url6 {
527
+ urls: Url7[];
528
+ }
529
+
530
+ interface Url7 {
531
+ display_url: string;
532
+ expanded_url: string;
533
+ url: string;
534
+ indices: number[];
535
+ }
536
+
537
+ interface TipjarSettings3 {}
538
+
539
+ interface ExtMediaAvailability2 {
540
+ status: string;
541
+ }
542
+
543
+ interface Sizes2 {
544
+ large: Large3;
545
+ medium: Medium3;
546
+ small: Small3;
547
+ thumb: Thumb2;
548
+ }
549
+
550
+ interface Large3 {
551
+ h: number;
552
+ w: number;
553
+ resize: string;
554
+ }
555
+
556
+ interface Medium3 {
557
+ h: number;
558
+ w: number;
559
+ resize: string;
560
+ }
561
+
562
+ interface Small3 {
563
+ h: number;
564
+ w: number;
565
+ resize: string;
566
+ }
567
+
568
+ interface Thumb2 {
569
+ h: number;
570
+ w: number;
571
+ resize: string;
572
+ }
573
+
574
+ interface OriginalInfo2 {
575
+ height: number;
576
+ width: number;
577
+ focus_rects: FocusRect2[];
578
+ }
579
+
580
+ interface FocusRect2 {
581
+ x: number;
582
+ y: number;
583
+ w: number;
584
+ h: number;
585
+ }
586
+
587
+ interface AllowDownloadStatus2 {
588
+ allow_download: boolean;
589
+ }
590
+
591
+ interface VideoInfo2 {
592
+ aspect_ratio: number[];
593
+ duration_millis: number;
594
+ variants: Variant2[];
595
+ }
596
+
597
+ interface Variant2 {
598
+ content_type: string;
599
+ url: string;
600
+ bitrate?: number;
601
+ }
602
+
603
+ interface MediaResults2 {
604
+ result: Result6;
605
+ }
606
+
607
+ interface Result6 {
608
+ media_key: string;
609
+ }
610
+
611
+ interface Features2 {
612
+ large: Large4;
613
+ medium: Medium4;
614
+ small: Small4;
615
+ orig: Orig2;
616
+ }
617
+
618
+ interface Large4 {
619
+ faces: any[];
620
+ }
621
+
622
+ interface Medium4 {
623
+ faces: any[];
624
+ }
625
+
626
+ interface Small4 {
627
+ faces: any[];
628
+ }
629
+
630
+ interface Orig2 {
631
+ faces: any[];
632
+ }
633
+
634
+ interface ResponseObjects {
635
+ feedbackActions: any[];
636
+ immediateReactions: any[];
637
+ }