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
@@ -22,40 +22,224 @@ module XTwitterScraper
22
22
  sig { returns(String) }
23
23
  attr_accessor :id
24
24
 
25
- # Pagination cursor for verified followers
25
+ # Legacy cursor alias. Prefer cursor.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :after
28
+
29
+ sig { params(after: String).void }
30
+ attr_writer :after
31
+
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.
26
41
  sig { returns(T.nilable(String)) }
27
42
  attr_reader :cursor
28
43
 
29
44
  sig { params(cursor: String).void }
30
45
  attr_writer :cursor
31
46
 
32
- # Maximum user profiles requested from this page (20-200, default 200). The
33
- # response can contain fewer profiles because the source returned fewer or
34
- # remaining credits cover fewer results. Keep requesting next_cursor while
35
- # has_next_page is true. The deprecated limit and count aliases remain accepted.
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.
63
+ sig { returns(T.nilable(Integer)) }
64
+ attr_reader :limit
65
+
66
+ sig { params(limit: Integer).void }
67
+ attr_writer :limit
68
+
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::UserRetrieveVerifiedFollowersParams::Mode::OrSymbol
131
+ )
132
+ )
133
+ end
134
+ attr_reader :mode
135
+
136
+ sig do
137
+ params(
138
+ mode:
139
+ XTwitterScraper::X::UserRetrieveVerifiedFollowersParams::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.
36
146
  sig { returns(T.nilable(Integer)) }
37
147
  attr_reader :page_size
38
148
 
39
149
  sig { params(page_size: Integer).void }
40
150
  attr_writer :page_size
41
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
+
42
173
  sig do
43
174
  params(
44
175
  id: String,
176
+ after: String,
177
+ bio_contains: String,
45
178
  cursor: String,
179
+ has_location: T::Boolean,
180
+ has_website: T::Boolean,
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::UserRetrieveVerifiedFollowersParams::Mode::OrSymbol,
46
192
  page_size: Integer,
193
+ username_contains: String,
194
+ verified_only: T::Boolean,
195
+ verified_type: String,
47
196
  request_options: XTwitterScraper::RequestOptions::OrHash
48
197
  ).returns(T.attached_class)
49
198
  end
50
199
  def self.new(
51
200
  id:,
52
- # Pagination cursor for verified followers
201
+ # Legacy cursor alias. Prefer cursor.
202
+ after: nil,
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.
53
207
  cursor: nil,
54
- # Maximum user profiles requested from this page (20-200, default 200). The
55
- # response can contain fewer profiles because the source returned fewer or
56
- # remaining credits cover fewer results. Keep requesting next_cursor while
57
- # has_next_page is true. The deprecated limit and count aliases remain accepted.
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.
214
+ limit: nil,
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.
58
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,
59
243
  request_options: {}
60
244
  )
61
245
  end
@@ -64,14 +248,68 @@ module XTwitterScraper
64
248
  override.returns(
65
249
  {
66
250
  id: String,
251
+ after: String,
252
+ bio_contains: String,
67
253
  cursor: String,
254
+ has_location: T::Boolean,
255
+ has_website: T::Boolean,
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::UserRetrieveVerifiedFollowersParams::Mode::OrSymbol,
68
267
  page_size: Integer,
268
+ username_contains: String,
269
+ verified_only: T::Boolean,
270
+ verified_type: String,
69
271
  request_options: XTwitterScraper::RequestOptions
70
272
  }
71
273
  )
72
274
  end
73
275
  def to_hash
74
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::UserRetrieveVerifiedFollowersParams::Mode
288
+ )
289
+ end
290
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
291
+
292
+ STANDARD =
293
+ T.let(
294
+ :standard,
295
+ XTwitterScraper::X::UserRetrieveVerifiedFollowersParams::Mode::TaggedSymbol
296
+ )
297
+ COVERAGE =
298
+ T.let(
299
+ :coverage,
300
+ XTwitterScraper::X::UserRetrieveVerifiedFollowersParams::Mode::TaggedSymbol
301
+ )
302
+
303
+ sig do
304
+ override.returns(
305
+ T::Array[
306
+ XTwitterScraper::X::UserRetrieveVerifiedFollowersParams::Mode::TaggedSymbol
307
+ ]
308
+ )
309
+ end
310
+ def self.values
311
+ end
312
+ end
75
313
  end
76
314
  end
77
315
  end