@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,20 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received after finalizing upload of a media file.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IMediaFinalizeUploadResponse {
9
+ media_id: number;
10
+ media_id_string: string;
11
+ size: number;
12
+ expires_after_secs: number;
13
+ image: Image;
14
+ }
15
+
16
+ interface Image {
17
+ image_type: string;
18
+ w: number;
19
+ h: number;
20
+ }
@@ -0,0 +1,12 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received after initalizing the upload process of a media file.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IMediaInitializeUploadResponse {
9
+ media_id: number;
10
+ media_id_string: string;
11
+ expires_after_secs: number;
12
+ }
@@ -0,0 +1,21 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the URL to a live video stream.
5
+ *
6
+ * @public
7
+ */
8
+ export interface IMediaLiveVideoStreamResponse {
9
+ source: Source;
10
+ sessionId: string;
11
+ chatToken: string;
12
+ lifecycleToken: string;
13
+ shareUrl: string;
14
+ }
15
+
16
+ interface Source {
17
+ location: string;
18
+ noRedirectPlaybackUrl: string;
19
+ status: string;
20
+ streamType: string;
21
+ }
@@ -0,0 +1,359 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the details of a given space.
5
+ *
6
+ * @public
7
+ */
8
+ export interface ISpaceDetailsResponse {
9
+ rest_id: string;
10
+ state: string;
11
+ title: string;
12
+ media_key: string;
13
+ created_at: number;
14
+ started_at: number;
15
+ ended_at: string;
16
+ replay_start_time: number;
17
+ updated_at: number;
18
+ creator_results: CreatorResults;
19
+ conversation_controls: number;
20
+ disallow_join: boolean;
21
+ is_employee_only: boolean;
22
+ is_locked: boolean;
23
+ is_muted: boolean;
24
+ is_space_available_for_clipping: boolean;
25
+ is_space_available_for_replay: boolean;
26
+ narrow_cast_space_type: number;
27
+ no_incognito: boolean;
28
+ total_replay_watched: number;
29
+ total_live_listeners: number;
30
+ tweet_results: TweetResults;
31
+ }
32
+
33
+ interface CreatorResults {
34
+ result: Result;
35
+ }
36
+
37
+ interface Result {
38
+ __typename: string;
39
+ id: string;
40
+ rest_id: string;
41
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
42
+ has_graduated_access: boolean;
43
+ is_blue_verified: boolean;
44
+ profile_image_shape: string;
45
+ legacy: Legacy;
46
+ professional: Professional;
47
+ verified_phone_status: boolean;
48
+ }
49
+
50
+ interface AffiliatesHighlightedLabel {
51
+ label: Label;
52
+ }
53
+
54
+ interface Label {
55
+ url: Url;
56
+ badge: Badge;
57
+ description: string;
58
+ userLabelType: string;
59
+ userLabelDisplayType: string;
60
+ }
61
+
62
+ interface Url {
63
+ url: string;
64
+ urlType: string;
65
+ }
66
+
67
+ interface Badge {
68
+ url: string;
69
+ }
70
+
71
+ interface Legacy {
72
+ can_dm: boolean;
73
+ can_media_tag: boolean;
74
+ created_at: string;
75
+ default_profile: boolean;
76
+ default_profile_image: boolean;
77
+ description: string;
78
+ entities: Entities;
79
+ fast_followers_count: number;
80
+ favourites_count: number;
81
+ followers_count: number;
82
+ friends_count: number;
83
+ has_custom_timelines: boolean;
84
+ is_translator: boolean;
85
+ listed_count: number;
86
+ location: string;
87
+ media_count: number;
88
+ name: string;
89
+ normal_followers_count: number;
90
+ pinned_tweet_ids_str: string[];
91
+ possibly_sensitive: boolean;
92
+ profile_banner_url: string;
93
+ profile_image_url_https: string;
94
+ profile_interstitial_type: string;
95
+ screen_name: string;
96
+ statuses_count: number;
97
+ translator_type: string;
98
+ url: string;
99
+ verified: boolean;
100
+ want_retweets: boolean;
101
+ withheld_in_countries: any[];
102
+ }
103
+
104
+ interface Entities {
105
+ description: Description;
106
+ url: Url2;
107
+ }
108
+
109
+ interface Description {
110
+ urls: any[];
111
+ }
112
+
113
+ interface Url2 {
114
+ urls: Url3[];
115
+ }
116
+
117
+ interface Url3 {
118
+ display_url: string;
119
+ expanded_url: string;
120
+ url: string;
121
+ indices: number[];
122
+ }
123
+
124
+ interface Professional {
125
+ rest_id: string;
126
+ professional_type: string;
127
+ category: Category[];
128
+ }
129
+
130
+ interface Category {
131
+ id: number;
132
+ name: string;
133
+ icon_name: string;
134
+ }
135
+
136
+ interface TweetResults {
137
+ result: Result2;
138
+ }
139
+
140
+ interface Result2 {
141
+ __typename: string;
142
+ rest_id: string;
143
+ core: Core;
144
+ card: Card;
145
+ voiceInfo: VoiceInfo;
146
+ unmention_data: UnmentionData;
147
+ unified_card: UnifiedCard;
148
+ edit_control: EditControl;
149
+ is_translatable: boolean;
150
+ views: Views;
151
+ source: string;
152
+ legacy: Legacy4;
153
+ }
154
+
155
+ interface Core {
156
+ user_results: UserResults;
157
+ }
158
+
159
+ interface UserResults {
160
+ result: Result3;
161
+ }
162
+
163
+ interface Result3 {
164
+ __typename: string;
165
+ id: string;
166
+ rest_id: string;
167
+ affiliates_highlighted_label: AffiliatesHighlightedLabel2;
168
+ has_graduated_access: boolean;
169
+ is_blue_verified: boolean;
170
+ profile_image_shape: string;
171
+ legacy: Legacy2;
172
+ professional: Professional2;
173
+ verified_phone_status: boolean;
174
+ }
175
+
176
+ interface AffiliatesHighlightedLabel2 {
177
+ label: Label2;
178
+ }
179
+
180
+ interface Label2 {
181
+ url: Url4;
182
+ badge: Badge2;
183
+ description: string;
184
+ userLabelType: string;
185
+ userLabelDisplayType: string;
186
+ }
187
+
188
+ interface Url4 {
189
+ url: string;
190
+ urlType: string;
191
+ }
192
+
193
+ interface Badge2 {
194
+ url: string;
195
+ }
196
+
197
+ interface Legacy2 {
198
+ can_dm: boolean;
199
+ can_media_tag: boolean;
200
+ created_at: string;
201
+ default_profile: boolean;
202
+ default_profile_image: boolean;
203
+ description: string;
204
+ entities: Entities2;
205
+ fast_followers_count: number;
206
+ favourites_count: number;
207
+ followers_count: number;
208
+ friends_count: number;
209
+ has_custom_timelines: boolean;
210
+ is_translator: boolean;
211
+ listed_count: number;
212
+ location: string;
213
+ media_count: number;
214
+ name: string;
215
+ normal_followers_count: number;
216
+ pinned_tweet_ids_str: string[];
217
+ possibly_sensitive: boolean;
218
+ profile_banner_url: string;
219
+ profile_image_url_https: string;
220
+ profile_interstitial_type: string;
221
+ screen_name: string;
222
+ statuses_count: number;
223
+ translator_type: string;
224
+ url: string;
225
+ verified: boolean;
226
+ want_retweets: boolean;
227
+ withheld_in_countries: any[];
228
+ }
229
+
230
+ interface Entities2 {
231
+ description: Description2;
232
+ url: Url5;
233
+ }
234
+
235
+ interface Description2 {
236
+ urls: any[];
237
+ }
238
+
239
+ interface Url5 {
240
+ urls: Url6[];
241
+ }
242
+
243
+ interface Url6 {
244
+ display_url: string;
245
+ expanded_url: string;
246
+ url: string;
247
+ indices: number[];
248
+ }
249
+
250
+ interface Professional2 {
251
+ rest_id: string;
252
+ professional_type: string;
253
+ category: Category2[];
254
+ }
255
+
256
+ interface Category2 {
257
+ id: number;
258
+ name: string;
259
+ icon_name: string;
260
+ }
261
+
262
+ interface Card {
263
+ rest_id: string;
264
+ legacy: Legacy3;
265
+ }
266
+
267
+ interface Legacy3 {
268
+ binding_values: BindingValue[];
269
+ card_platform: CardPlatform;
270
+ name: string;
271
+ url: string;
272
+ user_refs_results: any[];
273
+ }
274
+
275
+ interface BindingValue {
276
+ key: string;
277
+ value: Value;
278
+ }
279
+
280
+ interface Value {
281
+ string_value: string;
282
+ type: string;
283
+ scribe_key?: string;
284
+ }
285
+
286
+ interface CardPlatform {
287
+ platform: Platform;
288
+ }
289
+
290
+ interface Platform {
291
+ audience: Audience;
292
+ device: Device;
293
+ }
294
+
295
+ interface Audience {
296
+ name: string;
297
+ }
298
+
299
+ interface Device {
300
+ name: string;
301
+ version: string;
302
+ }
303
+
304
+ interface VoiceInfo {}
305
+
306
+ interface UnmentionData {}
307
+
308
+ interface UnifiedCard {
309
+ card_fetch_state: string;
310
+ }
311
+
312
+ interface EditControl {
313
+ edit_tweet_ids: string[];
314
+ editable_until_msecs: string;
315
+ is_edit_eligible: boolean;
316
+ edits_remaining: string;
317
+ }
318
+
319
+ interface Views {
320
+ count: string;
321
+ state: string;
322
+ }
323
+
324
+ interface Legacy4 {
325
+ bookmark_count: number;
326
+ bookmarked: boolean;
327
+ created_at: string;
328
+ conversation_id_str: string;
329
+ display_text_range: number[];
330
+ entities: Entities3;
331
+ favorite_count: number;
332
+ favorited: boolean;
333
+ full_text: string;
334
+ is_quote_status: boolean;
335
+ lang: string;
336
+ possibly_sensitive: boolean;
337
+ possibly_sensitive_editable: boolean;
338
+ quote_count: number;
339
+ reply_count: number;
340
+ retweet_count: number;
341
+ retweeted: boolean;
342
+ user_id_str: string;
343
+ id_str: string;
344
+ }
345
+
346
+ interface Entities3 {
347
+ hashtags: any[];
348
+ symbols: any[];
349
+ timestamps: any[];
350
+ urls: Url7[];
351
+ user_mentions: any[];
352
+ }
353
+
354
+ interface Url7 {
355
+ display_url: string;
356
+ expanded_url: string;
357
+ url: string;
358
+ indices: number[];
359
+ }
@@ -0,0 +1,14 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when bookmarking a given tweet.
5
+ *
6
+ * @public
7
+ */
8
+ export interface ITweetBookmarkResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ tweet_bookmark_put: string;
14
+ }
@@ -0,0 +1,210 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * The raw data received when fetching the details of a given tweet.
5
+ *
6
+ * @public
7
+ */
8
+ export interface ITweetDetailsResponse {
9
+ data: Data;
10
+ }
11
+
12
+ interface Data {
13
+ tweetResult: TweetResult;
14
+ }
15
+
16
+ interface TweetResult {
17
+ result: Result;
18
+ }
19
+
20
+ interface Result {
21
+ __typename: string;
22
+ rest_id: string;
23
+ has_birdwatch_notes: boolean;
24
+ core: Core;
25
+ unmention_data: UnmentionData;
26
+ edit_control: EditControl;
27
+ is_translatable: boolean;
28
+ views: Views;
29
+ source: string;
30
+ note_tweet: NoteTweet;
31
+ legacy: Legacy2;
32
+ quick_promote_eligibility: QuickPromoteEligibility;
33
+ }
34
+
35
+ interface Core {
36
+ user_results: UserResults;
37
+ }
38
+
39
+ interface UserResults {
40
+ result: Result2;
41
+ }
42
+
43
+ interface Result2 {
44
+ __typename: string;
45
+ id: string;
46
+ rest_id: string;
47
+ affiliates_highlighted_label: AffiliatesHighlightedLabel;
48
+ has_graduated_access: boolean;
49
+ is_blue_verified: boolean;
50
+ profile_image_shape: string;
51
+ legacy: Legacy;
52
+ professional: Professional;
53
+ verified_phone_status: boolean;
54
+ }
55
+
56
+ interface AffiliatesHighlightedLabel {}
57
+
58
+ interface Legacy {
59
+ can_dm: boolean;
60
+ can_media_tag: boolean;
61
+ created_at: string;
62
+ default_profile: boolean;
63
+ default_profile_image: boolean;
64
+ description: string;
65
+ entities: Entities;
66
+ fast_followers_count: number;
67
+ favourites_count: number;
68
+ followers_count: number;
69
+ friends_count: number;
70
+ has_custom_timelines: boolean;
71
+ is_translator: boolean;
72
+ listed_count: number;
73
+ location: string;
74
+ media_count: number;
75
+ name: string;
76
+ normal_followers_count: number;
77
+ pinned_tweet_ids_str: string[];
78
+ possibly_sensitive: boolean;
79
+ profile_image_url_https: string;
80
+ profile_interstitial_type: string;
81
+ screen_name: string;
82
+ statuses_count: number;
83
+ translator_type: string;
84
+ url: string;
85
+ verified: boolean;
86
+ want_retweets: boolean;
87
+ withheld_in_countries: any[];
88
+ }
89
+
90
+ interface Entities {
91
+ description: Description;
92
+ url: Url2;
93
+ }
94
+
95
+ interface Description {
96
+ urls: Url[];
97
+ }
98
+
99
+ interface Url {
100
+ display_url: string;
101
+ expanded_url: string;
102
+ url: string;
103
+ indices: number[];
104
+ }
105
+
106
+ interface Url2 {
107
+ urls: Url3[];
108
+ }
109
+
110
+ interface Url3 {
111
+ display_url: string;
112
+ expanded_url: string;
113
+ url: string;
114
+ indices: number[];
115
+ }
116
+
117
+ interface Professional {
118
+ rest_id: string;
119
+ professional_type: string;
120
+ category: Category[];
121
+ }
122
+
123
+ interface Category {
124
+ id: number;
125
+ name: string;
126
+ icon_name: string;
127
+ }
128
+
129
+ interface UnmentionData {}
130
+
131
+ interface EditControl {
132
+ edit_tweet_ids: string[];
133
+ editable_until_msecs: string;
134
+ is_edit_eligible: boolean;
135
+ edits_remaining: string;
136
+ }
137
+
138
+ interface Views {
139
+ count: string;
140
+ state: string;
141
+ }
142
+
143
+ interface NoteTweet {
144
+ is_expandable: boolean;
145
+ note_tweet_results: NoteTweetResults;
146
+ }
147
+
148
+ interface NoteTweetResults {
149
+ result: Result3;
150
+ }
151
+
152
+ interface Result3 {
153
+ id: string;
154
+ text: string;
155
+ entity_set: EntitySet;
156
+ richtext: Richtext;
157
+ media: Media;
158
+ }
159
+
160
+ interface EntitySet {
161
+ user_mentions: any[];
162
+ urls: any[];
163
+ hashtags: any[];
164
+ symbols: any[];
165
+ }
166
+
167
+ interface Richtext {
168
+ richtext_tags: RichtextTag[];
169
+ }
170
+
171
+ interface RichtextTag {
172
+ from_index: number;
173
+ to_index: number;
174
+ richtext_types: string[];
175
+ }
176
+
177
+ interface Media {
178
+ inline_media: any[];
179
+ }
180
+
181
+ interface Legacy2 {
182
+ bookmark_count: number;
183
+ bookmarked: boolean;
184
+ created_at: string;
185
+ conversation_id_str: string;
186
+ display_text_range: number[];
187
+ entities: Entities2;
188
+ favorite_count: number;
189
+ favorited: boolean;
190
+ full_text: string;
191
+ is_quote_status: boolean;
192
+ lang: string;
193
+ quote_count: number;
194
+ reply_count: number;
195
+ retweet_count: number;
196
+ retweeted: boolean;
197
+ user_id_str: string;
198
+ id_str: string;
199
+ }
200
+
201
+ interface Entities2 {
202
+ user_mentions: any[];
203
+ urls: any[];
204
+ hashtags: any[];
205
+ symbols: any[];
206
+ }
207
+
208
+ interface QuickPromoteEligibility {
209
+ eligibility: string;
210
+ }