x-twitter-scraper 0.7.2 → 0.9.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 (157) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +3 -3
  4. data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +5 -5
  5. data/lib/x_twitter_scraper/models/draw_export_params.rb +8 -3
  6. data/lib/x_twitter_scraper/models/draw_list_params.rb +2 -2
  7. data/lib/x_twitter_scraper/models/error.rb +8 -0
  8. data/lib/x_twitter_scraper/models/event_list_params.rb +13 -5
  9. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +731 -82
  10. data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +1 -0
  11. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +145 -1
  12. data/lib/x_twitter_scraper/models/extraction_list_params.rb +2 -2
  13. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +70 -3
  14. data/lib/x_twitter_scraper/models/extraction_run_params.rb +662 -1
  15. data/lib/x_twitter_scraper/models/extraction_run_response.rb +27 -48
  16. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +8 -8
  17. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +9 -9
  18. data/lib/x_twitter_scraper/models/monitor.rb +29 -1
  19. data/lib/x_twitter_scraper/models/paginated_tweets.rb +4 -4
  20. data/lib/x_twitter_scraper/models/paginated_users.rb +5 -5
  21. data/lib/x_twitter_scraper/models/support/attachment_download_params.rb +28 -0
  22. data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +113 -1
  23. data/lib/x_twitter_scraper/models/x/community_retrieve_moderators_params.rb +117 -1
  24. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +117 -6
  25. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +116 -1
  26. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +117 -6
  27. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +153 -1
  28. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +246 -16
  29. data/lib/x_twitter_scraper/models/x/tweet_get_replies_response.rb +3 -2
  30. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +117 -6
  31. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +187 -14
  32. data/lib/x_twitter_scraper/models/x/tweet_search_response.rb +299 -0
  33. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +143 -10
  34. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_response.rb +241 -0
  35. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +117 -6
  36. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +143 -10
  37. data/lib/x_twitter_scraper/models/x/user_retrieve_following_response.rb +241 -0
  38. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +153 -1
  39. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +153 -1
  40. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +153 -1
  41. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +159 -7
  42. data/lib/x_twitter_scraper/models/x/user_retrieve_search_params.rb +116 -1
  43. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +159 -7
  44. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +157 -8
  45. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rb +245 -0
  46. data/lib/x_twitter_scraper/models/x/x_account.rb +7 -11
  47. data/lib/x_twitter_scraper/resources/credits.rb +2 -2
  48. data/lib/x_twitter_scraper/resources/draws.rb +5 -2
  49. data/lib/x_twitter_scraper/resources/events.rb +10 -4
  50. data/lib/x_twitter_scraper/resources/extractions.rb +383 -84
  51. data/lib/x_twitter_scraper/resources/guest_wallets.rb +9 -13
  52. data/lib/x_twitter_scraper/resources/support/attachments.rb +42 -0
  53. data/lib/x_twitter_scraper/resources/support.rb +5 -0
  54. data/lib/x_twitter_scraper/resources/x/communities.rb +95 -4
  55. data/lib/x_twitter_scraper/resources/x/lists.rb +96 -5
  56. data/lib/x_twitter_scraper/resources/x/tweets.rb +286 -28
  57. data/lib/x_twitter_scraper/resources/x/users.rb +531 -41
  58. data/lib/x_twitter_scraper/version.rb +1 -1
  59. data/lib/x_twitter_scraper.rb +7 -1
  60. data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +6 -6
  61. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +6 -3
  62. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +2 -2
  63. data/rbi/x_twitter_scraper/models/error.rbi +40 -0
  64. data/rbi/x_twitter_scraper/models/event_list_params.rbi +15 -4
  65. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +1338 -86
  66. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +5 -0
  67. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +198 -0
  68. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +2 -2
  69. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +194 -2
  70. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +1221 -0
  71. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +35 -162
  72. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +8 -6
  73. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +9 -7
  74. data/rbi/x_twitter_scraper/models/monitor.rbi +54 -3
  75. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +4 -4
  76. data/rbi/x_twitter_scraper/models/paginated_users.rbi +5 -5
  77. data/rbi/x_twitter_scraper/models/support/attachment_download_params.rbi +51 -0
  78. data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +154 -0
  79. data/rbi/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbi +154 -0
  80. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +160 -8
  81. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +154 -0
  82. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +160 -8
  83. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +209 -0
  84. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +403 -20
  85. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_response.rbi +3 -2
  86. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +160 -8
  87. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +279 -16
  88. data/rbi/x_twitter_scraper/models/x/tweet_search_response.rbi +543 -0
  89. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +228 -12
  90. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_response.rbi +440 -0
  91. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +160 -8
  92. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +228 -12
  93. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_response.rbi +440 -0
  94. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +209 -0
  95. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +209 -0
  96. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +209 -0
  97. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +217 -8
  98. data/rbi/x_twitter_scraper/models/x/user_retrieve_search_params.rbi +154 -0
  99. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +217 -8
  100. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +248 -10
  101. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbi +440 -0
  102. data/rbi/x_twitter_scraper/models/x/x_account.rbi +9 -15
  103. data/rbi/x_twitter_scraper/resources/credits.rbi +2 -2
  104. data/rbi/x_twitter_scraper/resources/draws.rbi +3 -2
  105. data/rbi/x_twitter_scraper/resources/events.rbi +5 -2
  106. data/rbi/x_twitter_scraper/resources/extractions.rbi +525 -83
  107. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +9 -13
  108. data/rbi/x_twitter_scraper/resources/support/attachments.rbi +35 -0
  109. data/rbi/x_twitter_scraper/resources/support.rbi +4 -0
  110. data/rbi/x_twitter_scraper/resources/x/communities.rbi +84 -0
  111. data/rbi/x_twitter_scraper/resources/x/lists.rbi +87 -4
  112. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +307 -31
  113. data/rbi/x_twitter_scraper/resources/x/users.rbi +558 -34
  114. data/sig/x_twitter_scraper/models/error.rbs +16 -0
  115. data/sig/x_twitter_scraper/models/event_list_params.rbs +7 -0
  116. data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +605 -1
  117. data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +2 -0
  118. data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +127 -1
  119. data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +74 -1
  120. data/sig/x_twitter_scraper/models/extraction_run_params.rbs +611 -1
  121. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +29 -67
  122. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +4 -4
  123. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +4 -4
  124. data/sig/x_twitter_scraper/models/monitor.rbs +29 -3
  125. data/sig/x_twitter_scraper/models/support/attachment_download_params.rbs +32 -0
  126. data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +103 -1
  127. data/sig/x_twitter_scraper/models/x/community_retrieve_moderators_params.rbs +102 -1
  128. data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +103 -1
  129. data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +103 -1
  130. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +103 -1
  131. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +134 -1
  132. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +207 -2
  133. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +103 -1
  134. data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +154 -1
  135. data/sig/x_twitter_scraper/models/x/tweet_search_response.rbs +258 -0
  136. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +119 -1
  137. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_response.rbs +216 -0
  138. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +103 -1
  139. data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +119 -1
  140. data/sig/x_twitter_scraper/models/x/user_retrieve_following_response.rbs +216 -0
  141. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +134 -1
  142. data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +134 -1
  143. data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +134 -1
  144. data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +134 -1
  145. data/sig/x_twitter_scraper/models/x/user_retrieve_search_params.rbs +102 -1
  146. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +134 -1
  147. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +137 -1
  148. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_response.rbs +216 -0
  149. data/sig/x_twitter_scraper/resources/events.rbs +1 -0
  150. data/sig/x_twitter_scraper/resources/extractions.rbs +137 -0
  151. data/sig/x_twitter_scraper/resources/support/attachments.rbs +15 -0
  152. data/sig/x_twitter_scraper/resources/support.rbs +2 -0
  153. data/sig/x_twitter_scraper/resources/x/communities.rbs +28 -0
  154. data/sig/x_twitter_scraper/resources/x/lists.rbs +28 -0
  155. data/sig/x_twitter_scraper/resources/x/tweets.rbs +93 -1
  156. data/sig/x_twitter_scraper/resources/x/users.rbs +173 -3
  157. metadata +19 -1
@@ -29,37 +29,170 @@ module XTwitterScraper
29
29
  sig { params(after: String).void }
30
30
  attr_writer :after
31
31
 
32
- # Pagination cursor for followers list
32
+ # Match any comma-separated or line-separated bio term, ignoring case.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :bio_contains
35
+
36
+ sig { params(bio_contains: String).void }
37
+ attr_writer :bio_contains
38
+
39
+ # Cursor from the previous response. Xquik cursors resume automatic coverage.
40
+ # Existing unprefixed cursors keep legacy standard behavior.
33
41
  sig { returns(T.nilable(String)) }
34
42
  attr_reader :cursor
35
43
 
36
44
  sig { params(cursor: String).void }
37
45
  attr_writer :cursor
38
46
 
39
- # Legacy integer page size alias for following lists. Prefer pageSize.
47
+ # Only return profiles with a location.
48
+ sig { returns(T.nilable(T::Boolean)) }
49
+ attr_reader :has_location
50
+
51
+ sig { params(has_location: T::Boolean).void }
52
+ attr_writer :has_location
53
+
54
+ # Only return profiles with a website.
55
+ sig { returns(T.nilable(T::Boolean)) }
56
+ attr_reader :has_website
57
+
58
+ sig { params(has_website: T::Boolean).void }
59
+ attr_writer :has_website
60
+
61
+ # Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
62
+ # Prefer pageSize.
40
63
  sig { returns(T.nilable(Integer)) }
41
64
  attr_reader :limit
42
65
 
43
66
  sig { params(limit: Integer).void }
44
67
  attr_writer :limit
45
68
 
46
- # Maximum user profiles requested from this page (20-200, default 200). The
47
- # response can contain fewer profiles because the source returned fewer or
48
- # remaining credits cover fewer results. Keep requesting next_cursor while
49
- # has_next_page is true. The deprecated limit and count aliases remain accepted.
69
+ # Match a location substring, ignoring case.
70
+ sig { returns(T.nilable(String)) }
71
+ attr_reader :location_contains
72
+
73
+ sig { params(location_contains: String).void }
74
+ attr_writer :location_contains
75
+
76
+ # Maximum follower count. Missing counts pass this maximum.
77
+ sig { returns(T.nilable(Integer)) }
78
+ attr_reader :max_followers
79
+
80
+ sig { params(max_followers: Integer).void }
81
+ attr_writer :max_followers
82
+
83
+ # Maximum following count.
84
+ sig { returns(T.nilable(Integer)) }
85
+ attr_reader :max_following
86
+
87
+ sig { params(max_following: Integer).void }
88
+ attr_writer :max_following
89
+
90
+ # Maximum post count. maxPosts is also accepted.
91
+ sig { returns(T.nilable(Integer)) }
92
+ attr_reader :max_statuses
93
+
94
+ sig { params(max_statuses: Integer).void }
95
+ attr_writer :max_statuses
96
+
97
+ # Minimum account age in whole days.
98
+ sig { returns(T.nilable(Integer)) }
99
+ attr_reader :min_account_age_days
100
+
101
+ sig { params(min_account_age_days: Integer).void }
102
+ attr_writer :min_account_age_days
103
+
104
+ # Minimum follower count. Filtering happens before billing.
105
+ sig { returns(T.nilable(Integer)) }
106
+ attr_reader :min_followers
107
+
108
+ sig { params(min_followers: Integer).void }
109
+ attr_writer :min_followers
110
+
111
+ # Minimum following count.
112
+ sig { returns(T.nilable(Integer)) }
113
+ attr_reader :min_following
114
+
115
+ sig { params(min_following: Integer).void }
116
+ attr_writer :min_following
117
+
118
+ # Minimum post count. minPosts is also accepted.
119
+ sig { returns(T.nilable(Integer)) }
120
+ attr_reader :min_statuses
121
+
122
+ sig { params(min_statuses: Integer).void }
123
+ attr_writer :min_statuses
124
+
125
+ # Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
126
+ # Coverage returns diagnostics once and rejects cursors.
127
+ sig do
128
+ returns(
129
+ T.nilable(
130
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode::OrSymbol
131
+ )
132
+ )
133
+ end
134
+ attr_reader :mode
135
+
136
+ sig do
137
+ params(
138
+ mode:
139
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode::OrSymbol
140
+ ).void
141
+ end
142
+ attr_writer :mode
143
+
144
+ # Maximum user profiles: automatic 300; standard 200. Sources return fewer
145
+ # profiles. Continue with has_next_page.
50
146
  sig { returns(T.nilable(Integer)) }
51
147
  attr_reader :page_size
52
148
 
53
149
  sig { params(page_size: Integer).void }
54
150
  attr_writer :page_size
55
151
 
152
+ # Match a username substring, ignoring case.
153
+ sig { returns(T.nilable(String)) }
154
+ attr_reader :username_contains
155
+
156
+ sig { params(username_contains: String).void }
157
+ attr_writer :username_contains
158
+
159
+ # Only return verified profiles.
160
+ sig { returns(T.nilable(T::Boolean)) }
161
+ attr_reader :verified_only
162
+
163
+ sig { params(verified_only: T::Boolean).void }
164
+ attr_writer :verified_only
165
+
166
+ # Match the verification type exactly, ignoring case.
167
+ sig { returns(T.nilable(String)) }
168
+ attr_reader :verified_type
169
+
170
+ sig { params(verified_type: String).void }
171
+ attr_writer :verified_type
172
+
56
173
  sig do
57
174
  params(
58
175
  id: String,
59
176
  after: String,
177
+ bio_contains: String,
60
178
  cursor: String,
179
+ has_location: T::Boolean,
180
+ has_website: T::Boolean,
61
181
  limit: Integer,
182
+ location_contains: String,
183
+ max_followers: Integer,
184
+ max_following: Integer,
185
+ max_statuses: Integer,
186
+ min_account_age_days: Integer,
187
+ min_followers: Integer,
188
+ min_following: Integer,
189
+ min_statuses: Integer,
190
+ mode:
191
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode::OrSymbol,
62
192
  page_size: Integer,
193
+ username_contains: String,
194
+ verified_only: T::Boolean,
195
+ verified_type: String,
63
196
  request_options: XTwitterScraper::RequestOptions::OrHash
64
197
  ).returns(T.attached_class)
65
198
  end
@@ -67,15 +200,46 @@ module XTwitterScraper
67
200
  id:,
68
201
  # Legacy cursor alias. Prefer cursor.
69
202
  after: nil,
70
- # Pagination cursor for followers list
203
+ # Match any comma-separated or line-separated bio term, ignoring case.
204
+ bio_contains: nil,
205
+ # Cursor from the previous response. Xquik cursors resume automatic coverage.
206
+ # Existing unprefixed cursors keep legacy standard behavior.
71
207
  cursor: nil,
72
- # Legacy integer page size alias for following lists. Prefer pageSize.
208
+ # Only return profiles with a location.
209
+ has_location: nil,
210
+ # Only return profiles with a website.
211
+ has_website: nil,
212
+ # Legacy page-size alias outside explicit coverage mode. Coverage accepts 1-10000.
213
+ # Prefer pageSize.
73
214
  limit: nil,
74
- # Maximum user profiles requested from this page (20-200, default 200). The
75
- # response can contain fewer profiles because the source returned fewer or
76
- # remaining credits cover fewer results. Keep requesting next_cursor while
77
- # has_next_page is true. The deprecated limit and count aliases remain accepted.
215
+ # Match a location substring, ignoring case.
216
+ location_contains: nil,
217
+ # Maximum follower count. Missing counts pass this maximum.
218
+ max_followers: nil,
219
+ # Maximum following count.
220
+ max_following: nil,
221
+ # Maximum post count. maxPosts is also accepted.
222
+ max_statuses: nil,
223
+ # Minimum account age in whole days.
224
+ min_account_age_days: nil,
225
+ # Minimum follower count. Filtering happens before billing.
226
+ min_followers: nil,
227
+ # Minimum following count.
228
+ min_following: nil,
229
+ # Minimum post count. minPosts is also accepted.
230
+ min_statuses: nil,
231
+ # Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
232
+ # Coverage returns diagnostics once and rejects cursors.
233
+ mode: nil,
234
+ # Maximum user profiles: automatic 300; standard 200. Sources return fewer
235
+ # profiles. Continue with has_next_page.
78
236
  page_size: nil,
237
+ # Match a username substring, ignoring case.
238
+ username_contains: nil,
239
+ # Only return verified profiles.
240
+ verified_only: nil,
241
+ # Match the verification type exactly, ignoring case.
242
+ verified_type: nil,
79
243
  request_options: {}
80
244
  )
81
245
  end
@@ -85,15 +249,67 @@ module XTwitterScraper
85
249
  {
86
250
  id: String,
87
251
  after: String,
252
+ bio_contains: String,
88
253
  cursor: String,
254
+ has_location: T::Boolean,
255
+ has_website: T::Boolean,
89
256
  limit: Integer,
257
+ location_contains: String,
258
+ max_followers: Integer,
259
+ max_following: Integer,
260
+ max_statuses: Integer,
261
+ min_account_age_days: Integer,
262
+ min_followers: Integer,
263
+ min_following: Integer,
264
+ min_statuses: Integer,
265
+ mode:
266
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode::OrSymbol,
90
267
  page_size: Integer,
268
+ username_contains: String,
269
+ verified_only: T::Boolean,
270
+ verified_type: String,
91
271
  request_options: XTwitterScraper::RequestOptions
92
272
  }
93
273
  )
94
274
  end
95
275
  def to_hash
96
276
  end
277
+
278
+ # Omit mode for resumable maximum coverage. Standard keeps legacy pagination.
279
+ # Coverage returns diagnostics once and rejects cursors.
280
+ module Mode
281
+ extend XTwitterScraper::Internal::Type::Enum
282
+
283
+ TaggedSymbol =
284
+ T.type_alias do
285
+ T.all(
286
+ Symbol,
287
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode
288
+ )
289
+ end
290
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
291
+
292
+ STANDARD =
293
+ T.let(
294
+ :standard,
295
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode::TaggedSymbol
296
+ )
297
+ COVERAGE =
298
+ T.let(
299
+ :coverage,
300
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode::TaggedSymbol
301
+ )
302
+
303
+ sig do
304
+ override.returns(
305
+ T::Array[
306
+ XTwitterScraper::X::UserRetrieveFollowersParams::Mode::TaggedSymbol
307
+ ]
308
+ )
309
+ end
310
+ def self.values
311
+ end
312
+ end
97
313
  end
98
314
  end
99
315
  end