rettiwt-api 5.0.0-alpha.3 → 5.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 (162) hide show
  1. package/README.md +160 -87
  2. package/dist/collections/Extractors.d.ts +6 -2
  3. package/dist/collections/Extractors.js +1 -0
  4. package/dist/collections/Extractors.js.map +1 -1
  5. package/dist/collections/Groups.js +1 -0
  6. package/dist/collections/Groups.js.map +1 -1
  7. package/dist/collections/Requests.d.ts +1 -1
  8. package/dist/collections/Requests.js +4 -2
  9. package/dist/collections/Requests.js.map +1 -1
  10. package/dist/collections/Tweet.d.ts +10 -0
  11. package/dist/collections/Tweet.js +17 -0
  12. package/dist/collections/Tweet.js.map +1 -0
  13. package/dist/commands/Tweet.js +0 -16
  14. package/dist/commands/Tweet.js.map +1 -1
  15. package/dist/commands/User.js +15 -15
  16. package/dist/commands/User.js.map +1 -1
  17. package/dist/enums/Api.d.ts +1 -51
  18. package/dist/enums/Api.js +1 -52
  19. package/dist/enums/Api.js.map +1 -1
  20. package/dist/enums/Resource.d.ts +1 -0
  21. package/dist/enums/Resource.js +1 -0
  22. package/dist/enums/Resource.js.map +1 -1
  23. package/dist/enums/Tweet.d.ts +8 -0
  24. package/dist/enums/Tweet.js +13 -0
  25. package/dist/enums/Tweet.js.map +1 -0
  26. package/dist/enums/raw/Tweet.d.ts +11 -1
  27. package/dist/enums/raw/Tweet.js +13 -2
  28. package/dist/enums/raw/Tweet.js.map +1 -1
  29. package/dist/index.d.ts +6 -6
  30. package/dist/index.js +3 -5
  31. package/dist/index.js.map +1 -1
  32. package/dist/models/RettiwtConfig.d.ts +27 -3
  33. package/dist/models/RettiwtConfig.js +37 -4
  34. package/dist/models/RettiwtConfig.js.map +1 -1
  35. package/dist/models/args/FetchArgs.d.ts +3 -3
  36. package/dist/models/args/FetchArgs.js +3 -2
  37. package/dist/models/args/FetchArgs.js.map +1 -1
  38. package/dist/models/args/PostArgs.d.ts +2 -3
  39. package/dist/models/args/PostArgs.js +3 -3
  40. package/dist/models/args/PostArgs.js.map +1 -1
  41. package/dist/models/auth/AuthCookie.d.ts +1 -1
  42. package/dist/models/auth/AuthCookie.js +1 -1
  43. package/dist/models/auth/AuthCredential.d.ts +1 -1
  44. package/dist/models/auth/AuthCredential.js +1 -1
  45. package/dist/models/data/List.d.ts +4 -0
  46. package/dist/models/data/List.js +7 -0
  47. package/dist/models/data/List.js.map +1 -1
  48. package/dist/models/data/Notification.d.ts +4 -0
  49. package/dist/models/data/Notification.js +7 -0
  50. package/dist/models/data/Notification.js.map +1 -1
  51. package/dist/models/data/Tweet.d.ts +4 -0
  52. package/dist/models/data/Tweet.js +7 -0
  53. package/dist/models/data/Tweet.js.map +1 -1
  54. package/dist/models/data/User.d.ts +4 -0
  55. package/dist/models/data/User.js +7 -0
  56. package/dist/models/data/User.js.map +1 -1
  57. package/dist/models/errors/TwitterError.d.ts +37 -0
  58. package/dist/models/errors/TwitterError.js +60 -0
  59. package/dist/models/errors/TwitterError.js.map +1 -0
  60. package/dist/requests/List.js +28 -9
  61. package/dist/requests/List.js.map +1 -1
  62. package/dist/requests/Tweet.d.ts +2 -1
  63. package/dist/requests/Tweet.js +94 -38
  64. package/dist/requests/Tweet.js.map +1 -1
  65. package/dist/requests/User.js +231 -111
  66. package/dist/requests/User.js.map +1 -1
  67. package/dist/services/internal/AuthService.d.ts +6 -6
  68. package/dist/services/internal/AuthService.js +7 -8
  69. package/dist/services/internal/AuthService.js.map +1 -1
  70. package/dist/services/internal/ErrorService.d.ts +5 -76
  71. package/dist/services/internal/ErrorService.js +13 -116
  72. package/dist/services/internal/ErrorService.js.map +1 -1
  73. package/dist/services/internal/TidService.d.ts +4 -5
  74. package/dist/services/internal/TidService.js +18 -24
  75. package/dist/services/internal/TidService.js.map +1 -1
  76. package/dist/services/public/FetcherService.d.ts +4 -3
  77. package/dist/services/public/FetcherService.js +8 -7
  78. package/dist/services/public/FetcherService.js.map +1 -1
  79. package/dist/services/public/ListService.d.ts +6 -4
  80. package/dist/services/public/ListService.js +6 -4
  81. package/dist/services/public/ListService.js.map +1 -1
  82. package/dist/services/public/TweetService.d.ts +96 -74
  83. package/dist/services/public/TweetService.js +97 -87
  84. package/dist/services/public/TweetService.js.map +1 -1
  85. package/dist/services/public/UserService.d.ts +106 -38
  86. package/dist/services/public/UserService.js +126 -43
  87. package/dist/services/public/UserService.js.map +1 -1
  88. package/dist/types/args/FetchArgs.d.ts +8 -0
  89. package/dist/types/errors/TwitterError.d.ts +30 -0
  90. package/dist/types/{raw/generic/Error.js → errors/TwitterError.js} +1 -1
  91. package/dist/types/errors/TwitterError.js.map +1 -0
  92. package/dist/types/raw/base/Error.d.ts +32 -0
  93. package/dist/types/raw/base/Error.js +4 -0
  94. package/dist/types/raw/base/Error.js.map +1 -0
  95. package/dist/types/raw/generic/Response.d.ts +0 -2
  96. package/dist/types/raw/tweet/DetailsBulk.d.ts +288 -0
  97. package/dist/types/raw/tweet/DetailsBulk.js +4 -0
  98. package/dist/types/raw/tweet/DetailsBulk.js.map +1 -0
  99. package/dist/types/raw/user/DetailsBulk.d.ts +91 -0
  100. package/dist/types/raw/user/DetailsBulk.js +4 -0
  101. package/dist/types/raw/user/DetailsBulk.js.map +1 -0
  102. package/package.json +1 -1
  103. package/src/collections/Extractors.ts +8 -2
  104. package/src/collections/Groups.ts +1 -0
  105. package/src/collections/Requests.ts +6 -2
  106. package/src/collections/Tweet.ts +17 -0
  107. package/src/commands/Tweet.ts +0 -16
  108. package/src/commands/User.ts +15 -15
  109. package/src/enums/Api.ts +0 -51
  110. package/src/enums/Resource.ts +1 -0
  111. package/src/enums/Tweet.ts +8 -0
  112. package/src/enums/raw/Tweet.ts +12 -1
  113. package/src/index.ts +6 -6
  114. package/src/models/RettiwtConfig.ts +43 -4
  115. package/src/models/args/FetchArgs.ts +4 -3
  116. package/src/models/args/PostArgs.ts +3 -4
  117. package/src/models/auth/AuthCookie.ts +1 -1
  118. package/src/models/auth/AuthCredential.ts +1 -1
  119. package/src/models/data/List.ts +9 -0
  120. package/src/models/data/Notification.ts +10 -0
  121. package/src/models/data/Tweet.ts +9 -0
  122. package/src/models/data/User.ts +9 -0
  123. package/src/models/errors/TwitterError.ts +65 -0
  124. package/src/requests/List.ts +28 -9
  125. package/src/requests/Tweet.ts +95 -39
  126. package/src/requests/User.ts +231 -111
  127. package/src/services/internal/AuthService.ts +8 -9
  128. package/src/services/internal/ErrorService.ts +14 -132
  129. package/src/services/internal/TidService.ts +21 -28
  130. package/src/services/public/FetcherService.ts +8 -7
  131. package/src/services/public/ListService.ts +6 -4
  132. package/src/services/public/TweetService.ts +104 -95
  133. package/src/services/public/UserService.ts +143 -51
  134. package/src/types/args/FetchArgs.ts +10 -0
  135. package/src/types/errors/TwitterError.ts +37 -0
  136. package/src/types/raw/base/Error.ts +37 -0
  137. package/src/types/raw/generic/Response.ts +0 -3
  138. package/src/types/raw/tweet/DetailsBulk.ts +338 -0
  139. package/src/types/raw/user/DetailsBulk.ts +104 -0
  140. package/dist/enums/Http.d.ts +0 -68
  141. package/dist/enums/Http.js +0 -73
  142. package/dist/enums/Http.js.map +0 -1
  143. package/dist/models/errors/ApiError.d.ts +0 -15
  144. package/dist/models/errors/ApiError.js +0 -23
  145. package/dist/models/errors/ApiError.js.map +0 -1
  146. package/dist/models/errors/HttpError.d.ts +0 -15
  147. package/dist/models/errors/HttpError.js +0 -23
  148. package/dist/models/errors/HttpError.js.map +0 -1
  149. package/dist/models/errors/RettiwtError.d.ts +0 -9
  150. package/dist/models/errors/RettiwtError.js +0 -17
  151. package/dist/models/errors/RettiwtError.js.map +0 -1
  152. package/dist/models/errors/TimeoutError.d.ts +0 -12
  153. package/dist/models/errors/TimeoutError.js +0 -19
  154. package/dist/models/errors/TimeoutError.js.map +0 -1
  155. package/dist/types/raw/generic/Error.d.ts +0 -30
  156. package/dist/types/raw/generic/Error.js.map +0 -1
  157. package/src/enums/Http.ts +0 -68
  158. package/src/models/errors/ApiError.ts +0 -21
  159. package/src/models/errors/HttpError.ts +0 -21
  160. package/src/models/errors/RettiwtError.ts +0 -13
  161. package/src/models/errors/TimeoutError.ts +0 -15
  162. package/src/types/raw/generic/Error.ts +0 -35
@@ -1,6 +1,6 @@
1
1
  import { AxiosRequestConfig } from 'axios';
2
2
 
3
- import { ERawTweetSearchResultType } from '../enums/raw/Tweet';
3
+ import { ERawTweetRepliesSortType, ERawTweetSearchResultType } from '../enums/raw/Tweet';
4
4
  import { TweetFilter } from '../models/args/FetchArgs';
5
5
  import { NewTweet } from '../models/args/PostArgs';
6
6
  import { MediaVariable, ReplyVariable } from '../models/params/Variables';
@@ -81,7 +81,7 @@ export class TweetRequests {
81
81
  public static details(id: string): AxiosRequestConfig {
82
82
  return {
83
83
  method: 'get',
84
- url: 'https://x.com/i/api/graphql/0hWvDhmW8YQ-S_ib3azIrw/TweetResultByRestId',
84
+ url: 'https://x.com/i/api/graphql/zAz9764BcLZOJ0JU2wrd1A/TweetResultByRestId',
85
85
  params: {
86
86
  /* eslint-disable @typescript-eslint/naming-convention */
87
87
  variables: JSON.stringify({
@@ -96,25 +96,35 @@ export class TweetRequests {
96
96
  withV2Timeline: false,
97
97
  }),
98
98
  features: JSON.stringify({
99
- rweb_lists_timeline_redesign_enabled: true,
100
- responsive_web_graphql_exclude_directive_enabled: true,
101
- verified_phone_label_enabled: true,
102
99
  creator_subscriptions_tweet_preview_api_enabled: true,
103
- responsive_web_graphql_timeline_navigation_enabled: true,
104
- responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
105
- tweetypie_unmention_optimization_enabled: true,
100
+ premium_content_api_read_enabled: false,
101
+ communities_web_enable_tweet_community_results_fetch: true,
102
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
103
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
104
+ responsive_web_grok_analyze_post_followups_enabled: false,
105
+ responsive_web_jetfuel_frame: false,
106
+ responsive_web_grok_share_attachment_enabled: true,
107
+ articles_preview_enabled: true,
106
108
  responsive_web_edit_tweet_api_enabled: true,
107
109
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
108
110
  view_counts_everywhere_api_enabled: true,
109
111
  longform_notetweets_consumption_enabled: true,
110
- responsive_web_twitter_article_tweet_consumption_enabled: false,
112
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
111
113
  tweet_awards_web_tipping_enabled: false,
114
+ responsive_web_grok_show_grok_translated_post: false,
115
+ responsive_web_grok_analysis_button_from_backend: false,
116
+ creator_subscriptions_quote_tweet_preview_enabled: false,
112
117
  freedom_of_speech_not_reach_fetch_enabled: true,
113
118
  standardized_nudges_misinfo: true,
114
119
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
115
120
  longform_notetweets_rich_text_read_enabled: true,
116
121
  longform_notetweets_inline_media_enabled: true,
117
- responsive_web_media_download_video_enabled: false,
122
+ profile_label_improvements_pcf_label_in_post_enabled: true,
123
+ rweb_tipjar_consumption_enabled: true,
124
+ verified_phone_label_enabled: true,
125
+ responsive_web_grok_image_annotation_enabled: true,
126
+ responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
127
+ responsive_web_graphql_timeline_navigation_enabled: true,
118
128
  responsive_web_enhance_cards_enabled: false,
119
129
  }),
120
130
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -148,7 +158,7 @@ export class TweetRequests {
148
158
  public static likers(id: string, count?: number, cursor?: string): AxiosRequestConfig {
149
159
  return {
150
160
  method: 'get',
151
- url: 'https://x.com/i/api/graphql/9XKD3EWWC2BKpIFyDj4KKQ/Favoriters',
161
+ url: 'https://x.com/i/api/graphql/4AzoFlLkEcs2bx5pO1mvsQ/Favoriters',
152
162
  params: {
153
163
  /* eslint-disable @typescript-eslint/naming-convention */
154
164
  variables: JSON.stringify({
@@ -158,25 +168,36 @@ export class TweetRequests {
158
168
  includePromotedContent: false,
159
169
  }),
160
170
  features: JSON.stringify({
161
- rweb_lists_timeline_redesign_enabled: true,
162
- responsive_web_graphql_exclude_directive_enabled: true,
171
+ rweb_video_screen_enabled: false,
172
+ profile_label_improvements_pcf_label_in_post_enabled: true,
173
+ rweb_tipjar_consumption_enabled: true,
163
174
  verified_phone_label_enabled: true,
164
175
  creator_subscriptions_tweet_preview_api_enabled: true,
165
176
  responsive_web_graphql_timeline_navigation_enabled: true,
166
177
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
167
- tweetypie_unmention_optimization_enabled: true,
178
+ premium_content_api_read_enabled: false,
179
+ communities_web_enable_tweet_community_results_fetch: true,
180
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
181
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
182
+ responsive_web_grok_analyze_post_followups_enabled: true,
183
+ responsive_web_jetfuel_frame: false,
184
+ responsive_web_grok_share_attachment_enabled: true,
185
+ articles_preview_enabled: true,
168
186
  responsive_web_edit_tweet_api_enabled: true,
169
187
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
170
188
  view_counts_everywhere_api_enabled: true,
171
189
  longform_notetweets_consumption_enabled: true,
172
- responsive_web_twitter_article_tweet_consumption_enabled: false,
190
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
173
191
  tweet_awards_web_tipping_enabled: false,
192
+ responsive_web_grok_show_grok_translated_post: false,
193
+ responsive_web_grok_analysis_button_from_backend: true,
194
+ creator_subscriptions_quote_tweet_preview_enabled: false,
174
195
  freedom_of_speech_not_reach_fetch_enabled: true,
175
196
  standardized_nudges_misinfo: true,
176
197
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
177
198
  longform_notetweets_rich_text_read_enabled: true,
178
199
  longform_notetweets_inline_media_enabled: true,
179
- responsive_web_media_download_video_enabled: false,
200
+ responsive_web_grok_image_annotation_enabled: true,
180
201
  responsive_web_enhance_cards_enabled: false,
181
202
  }),
182
203
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -194,7 +215,7 @@ export class TweetRequests {
194
215
 
195
216
  return {
196
217
  method: 'post',
197
- url: 'https://x.com/i/api/graphql/bDE2rBtZb3uyrczSZ_pI9g/CreateTweet',
218
+ url: 'https://x.com/i/api/graphql/IID9x6WsdMnTlXnzXGq8ng/CreateTweet',
198
219
  data: {
199
220
  /* eslint-disable @typescript-eslint/naming-convention */
200
221
  variables: {
@@ -206,26 +227,35 @@ export class TweetRequests {
206
227
  semantic_annotation_ids: [],
207
228
  },
208
229
  features: {
209
- tweetypie_unmention_optimization_enabled: true,
230
+ premium_content_api_read_enabled: false,
231
+ communities_web_enable_tweet_community_results_fetch: true,
232
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
233
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
234
+ responsive_web_grok_analyze_post_followups_enabled: true,
235
+ responsive_web_jetfuel_frame: false,
236
+ responsive_web_grok_share_attachment_enabled: true,
210
237
  responsive_web_edit_tweet_api_enabled: true,
211
238
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
212
239
  view_counts_everywhere_api_enabled: true,
213
240
  longform_notetweets_consumption_enabled: true,
214
- responsive_web_twitter_article_tweet_consumption_enabled: false,
241
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
215
242
  tweet_awards_web_tipping_enabled: false,
243
+ responsive_web_grok_show_grok_translated_post: false,
244
+ responsive_web_grok_analysis_button_from_backend: true,
245
+ creator_subscriptions_quote_tweet_preview_enabled: false,
216
246
  longform_notetweets_rich_text_read_enabled: true,
217
247
  longform_notetweets_inline_media_enabled: true,
218
- responsive_web_graphql_exclude_directive_enabled: true,
248
+ profile_label_improvements_pcf_label_in_post_enabled: true,
249
+ rweb_tipjar_consumption_enabled: true,
219
250
  verified_phone_label_enabled: true,
251
+ articles_preview_enabled: true,
252
+ responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
220
253
  freedom_of_speech_not_reach_fetch_enabled: true,
221
254
  standardized_nudges_misinfo: true,
222
255
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
223
- responsive_web_media_download_video_enabled: false,
224
- responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
256
+ responsive_web_grok_image_annotation_enabled: true,
225
257
  responsive_web_graphql_timeline_navigation_enabled: true,
226
258
  responsive_web_enhance_cards_enabled: false,
227
- rweb_video_timestamps_enabled: true,
228
- c9s_tweet_anatomy_moderator_badge_enabled: true,
229
259
  },
230
260
  /* eslint-enable @typescript-eslint/naming-convention */
231
261
  },
@@ -236,48 +266,63 @@ export class TweetRequests {
236
266
  * @param id - The id of the tweet whose replies are to be fetched.
237
267
  * @param cursor - The cursor to the batch of replies to fetch.
238
268
  */
239
- public static replies(id: string, cursor?: string): AxiosRequestConfig {
269
+ public static replies(id: string, cursor?: string, sortBy?: ERawTweetRepliesSortType): AxiosRequestConfig {
240
270
  return {
241
271
  method: 'get',
242
- url: 'https://x.com/i/api/graphql/B9_KmbkLhXt6jRwGjJrweg/TweetDetail',
272
+ url: 'https://x.com/i/api/graphql/_8aYOgEDz35BrBcBal1-_w/TweetDetail',
243
273
  params: {
244
274
  /* eslint-disable @typescript-eslint/naming-convention */
245
275
  variables: JSON.stringify({
246
276
  focalTweetId: id,
247
277
  cursor: cursor,
248
278
  referrer: 'tweet',
249
- controller_data: cursor,
250
279
  with_rux_injections: false,
251
- includePromotedContent: false,
280
+ rankingMode: sortBy ?? ERawTweetRepliesSortType.RELEVACE,
281
+ includePromotedContent: true,
252
282
  withCommunity: true,
253
283
  withQuickPromoteEligibilityTweetFields: true,
254
284
  withBirdwatchNotes: true,
255
285
  withVoice: true,
256
- withV2Timeline: true,
257
286
  }),
258
287
  features: JSON.stringify({
259
- responsive_web_graphql_exclude_directive_enabled: true,
288
+ rweb_video_screen_enabled: false,
289
+ profile_label_improvements_pcf_label_in_post_enabled: true,
290
+ rweb_tipjar_consumption_enabled: true,
260
291
  verified_phone_label_enabled: true,
261
292
  creator_subscriptions_tweet_preview_api_enabled: true,
262
293
  responsive_web_graphql_timeline_navigation_enabled: true,
263
294
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
295
+ premium_content_api_read_enabled: false,
296
+ communities_web_enable_tweet_community_results_fetch: true,
264
297
  c9s_tweet_anatomy_moderator_badge_enabled: true,
265
- tweetypie_unmention_optimization_enabled: true,
298
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
299
+ responsive_web_grok_analyze_post_followups_enabled: true,
300
+ responsive_web_jetfuel_frame: false,
301
+ responsive_web_grok_share_attachment_enabled: true,
302
+ articles_preview_enabled: true,
266
303
  responsive_web_edit_tweet_api_enabled: true,
267
304
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
268
305
  view_counts_everywhere_api_enabled: true,
269
306
  longform_notetweets_consumption_enabled: true,
270
307
  responsive_web_twitter_article_tweet_consumption_enabled: true,
271
308
  tweet_awards_web_tipping_enabled: false,
309
+ responsive_web_grok_show_grok_translated_post: false,
310
+ responsive_web_grok_analysis_button_from_backend: true,
311
+ creator_subscriptions_quote_tweet_preview_enabled: false,
272
312
  freedom_of_speech_not_reach_fetch_enabled: true,
273
313
  standardized_nudges_misinfo: true,
274
314
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
275
- rweb_video_timestamps_enabled: true,
276
315
  longform_notetweets_rich_text_read_enabled: true,
277
316
  longform_notetweets_inline_media_enabled: true,
278
- responsive_web_media_download_video_enabled: false,
317
+ responsive_web_grok_image_annotation_enabled: true,
279
318
  responsive_web_enhance_cards_enabled: false,
280
319
  }),
320
+ fieldToggles: JSON.stringify({
321
+ withArticleRichContentState: true,
322
+ withArticlePlainText: false,
323
+ withGrokAnalyze: false,
324
+ withDisallowedReplyControls: false,
325
+ }),
281
326
  /* eslint-enable @typescript-eslint/naming-convention */
282
327
  },
283
328
  paramsSerializer: { encode: encodeURIComponent },
@@ -310,7 +355,7 @@ export class TweetRequests {
310
355
  public static retweeters(id: string, count?: number, cursor?: string): AxiosRequestConfig {
311
356
  return {
312
357
  method: 'get',
313
- url: 'https://x.com/i/api/graphql/v5h-KLmyl-wqZ8i-a_q73w/Retweeters',
358
+ url: 'https://x.com/i/api/graphql/i-CI8t2pJD15euZJErEDrg/Retweeters',
314
359
  params: {
315
360
  /* eslint-disable @typescript-eslint/naming-convention */
316
361
  variables: JSON.stringify({
@@ -320,25 +365,36 @@ export class TweetRequests {
320
365
  includePromotedContent: false,
321
366
  }),
322
367
  features: JSON.stringify({
323
- rweb_lists_timeline_redesign_enabled: true,
324
- responsive_web_graphql_exclude_directive_enabled: true,
368
+ rweb_video_screen_enabled: false,
369
+ profile_label_improvements_pcf_label_in_post_enabled: true,
370
+ rweb_tipjar_consumption_enabled: true,
325
371
  verified_phone_label_enabled: true,
326
372
  creator_subscriptions_tweet_preview_api_enabled: true,
327
373
  responsive_web_graphql_timeline_navigation_enabled: true,
328
374
  responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
329
- tweetypie_unmention_optimization_enabled: true,
375
+ premium_content_api_read_enabled: false,
376
+ communities_web_enable_tweet_community_results_fetch: true,
377
+ c9s_tweet_anatomy_moderator_badge_enabled: true,
378
+ responsive_web_grok_analyze_button_fetch_trends_enabled: false,
379
+ responsive_web_grok_analyze_post_followups_enabled: true,
380
+ responsive_web_jetfuel_frame: false,
381
+ responsive_web_grok_share_attachment_enabled: true,
382
+ articles_preview_enabled: true,
330
383
  responsive_web_edit_tweet_api_enabled: true,
331
384
  graphql_is_translatable_rweb_tweet_is_translatable_enabled: true,
332
385
  view_counts_everywhere_api_enabled: true,
333
386
  longform_notetweets_consumption_enabled: true,
334
- responsive_web_twitter_article_tweet_consumption_enabled: false,
387
+ responsive_web_twitter_article_tweet_consumption_enabled: true,
335
388
  tweet_awards_web_tipping_enabled: false,
389
+ responsive_web_grok_show_grok_translated_post: false,
390
+ responsive_web_grok_analysis_button_from_backend: true,
391
+ creator_subscriptions_quote_tweet_preview_enabled: false,
336
392
  freedom_of_speech_not_reach_fetch_enabled: true,
337
393
  standardized_nudges_misinfo: true,
338
394
  tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled: true,
339
395
  longform_notetweets_rich_text_read_enabled: true,
340
396
  longform_notetweets_inline_media_enabled: true,
341
- responsive_web_media_download_video_enabled: false,
397
+ responsive_web_grok_image_annotation_enabled: true,
342
398
  responsive_web_enhance_cards_enabled: false,
343
399
  }),
344
400
  /* eslint-enable @typescript-eslint/naming-convention */