context.dev 1.35.0 → 2.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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +24 -17
  4. data/lib/context_dev/client.rb +7 -0
  5. data/lib/context_dev/models/brand_retrieve_params.rb +1036 -174
  6. data/lib/context_dev/models/monitor_create_params.rb +361 -0
  7. data/lib/context_dev/models/monitor_create_response.rb +484 -0
  8. data/lib/context_dev/models/monitor_delete_params.rb +20 -0
  9. data/lib/context_dev/models/monitor_delete_response.rb +22 -0
  10. data/lib/context_dev/models/monitor_list_account_changes_params.rb +93 -0
  11. data/lib/context_dev/models/monitor_list_account_changes_response.rb +199 -0
  12. data/lib/context_dev/models/monitor_list_account_runs_params.rb +55 -0
  13. data/lib/context_dev/models/monitor_list_account_runs_response.rb +227 -0
  14. data/lib/context_dev/models/monitor_list_changes_params.rb +57 -0
  15. data/lib/context_dev/models/monitor_list_changes_response.rb +198 -0
  16. data/lib/context_dev/models/monitor_list_params.rb +161 -0
  17. data/lib/context_dev/models/monitor_list_response.rb +507 -0
  18. data/lib/context_dev/models/monitor_list_runs_params.rb +62 -0
  19. data/lib/context_dev/models/monitor_list_runs_response.rb +227 -0
  20. data/lib/context_dev/models/monitor_retrieve_change_params.rb +20 -0
  21. data/lib/context_dev/models/monitor_retrieve_change_response.rb +271 -0
  22. data/lib/context_dev/models/monitor_retrieve_params.rb +20 -0
  23. data/lib/context_dev/models/monitor_retrieve_response.rb +484 -0
  24. data/lib/context_dev/models/monitor_run_params.rb +20 -0
  25. data/lib/context_dev/models/monitor_run_response.rb +35 -0
  26. data/lib/context_dev/models/monitor_update_params.rb +368 -0
  27. data/lib/context_dev/models/monitor_update_response.rb +484 -0
  28. data/lib/context_dev/models/utility_prefetch_params.rb +70 -6
  29. data/lib/context_dev/models/utility_prefetch_response.rb +23 -1
  30. data/lib/context_dev/models/web_extract_response.rb +17 -1
  31. data/lib/context_dev/models/web_extract_styleguide_params.rb +22 -1
  32. data/lib/context_dev/models/web_screenshot_params.rb +245 -1
  33. data/lib/context_dev/models/web_search_params.rb +270 -3
  34. data/lib/context_dev/models/web_web_crawl_md_params.rb +236 -1
  35. data/lib/context_dev/models/web_web_scrape_html_params.rb +234 -1
  36. data/lib/context_dev/models/web_web_scrape_html_response.rb +10 -2
  37. data/lib/context_dev/models/web_web_scrape_images_params.rb +12 -1
  38. data/lib/context_dev/models/web_web_scrape_md_params.rb +234 -1
  39. data/lib/context_dev/models.rb +20 -12
  40. data/lib/context_dev/resources/ai.rb +0 -33
  41. data/lib/context_dev/resources/brand.rb +7 -204
  42. data/lib/context_dev/resources/monitors.rb +352 -0
  43. data/lib/context_dev/resources/utility.rb +9 -35
  44. data/lib/context_dev/resources/web.rb +36 -8
  45. data/lib/context_dev/version.rb +1 -1
  46. data/lib/context_dev.rb +23 -14
  47. data/rbi/context_dev/client.rbi +6 -0
  48. data/rbi/context_dev/models/brand_retrieve_params.rbi +3792 -679
  49. data/rbi/context_dev/models/monitor_create_params.rbi +640 -0
  50. data/rbi/context_dev/models/monitor_create_response.rbi +820 -0
  51. data/rbi/context_dev/models/monitor_delete_params.rbi +35 -0
  52. data/rbi/context_dev/models/monitor_delete_response.rbi +29 -0
  53. data/rbi/context_dev/models/monitor_list_account_changes_params.rbi +211 -0
  54. data/rbi/context_dev/models/monitor_list_account_changes_response.rbi +376 -0
  55. data/rbi/context_dev/models/monitor_list_account_runs_params.rbi +125 -0
  56. data/rbi/context_dev/models/monitor_list_account_runs_response.rbi +464 -0
  57. data/rbi/context_dev/models/monitor_list_changes_params.rbi +91 -0
  58. data/rbi/context_dev/models/monitor_list_changes_response.rbi +372 -0
  59. data/rbi/context_dev/models/monitor_list_params.rbi +332 -0
  60. data/rbi/context_dev/models/monitor_list_response.rbi +885 -0
  61. data/rbi/context_dev/models/monitor_list_runs_params.rbi +125 -0
  62. data/rbi/context_dev/models/monitor_list_runs_response.rbi +455 -0
  63. data/rbi/context_dev/models/monitor_retrieve_change_params.rbi +38 -0
  64. data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +478 -0
  65. data/rbi/context_dev/models/monitor_retrieve_params.rbi +38 -0
  66. data/rbi/context_dev/models/monitor_retrieve_response.rbi +828 -0
  67. data/rbi/context_dev/models/monitor_run_params.rbi +35 -0
  68. data/rbi/context_dev/models/monitor_run_response.rbi +48 -0
  69. data/rbi/context_dev/models/monitor_update_params.rbi +680 -0
  70. data/rbi/context_dev/models/monitor_update_response.rbi +820 -0
  71. data/rbi/context_dev/models/utility_prefetch_params.rbi +129 -7
  72. data/rbi/context_dev/models/utility_prefetch_response.rbi +55 -3
  73. data/rbi/context_dev/models/web_extract_response.rbi +10 -0
  74. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +59 -0
  75. data/rbi/context_dev/models/web_screenshot_params.rbi +295 -0
  76. data/rbi/context_dev/models/web_search_params.rbi +288 -2
  77. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +260 -0
  78. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +465 -0
  79. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +29 -3
  80. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +17 -0
  81. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +259 -0
  82. data/rbi/context_dev/models.rbi +23 -15
  83. data/rbi/context_dev/resources/ai.rbi +0 -28
  84. data/rbi/context_dev/resources/brand.rbi +13 -228
  85. data/rbi/context_dev/resources/monitors.rbi +286 -0
  86. data/rbi/context_dev/resources/utility.rbi +14 -29
  87. data/rbi/context_dev/resources/web.rbi +56 -1
  88. data/sig/context_dev/client.rbs +2 -0
  89. data/sig/context_dev/models/brand_retrieve_params.rbs +1560 -281
  90. data/sig/context_dev/models/monitor_create_params.rbs +311 -0
  91. data/sig/context_dev/models/monitor_create_response.rbs +369 -0
  92. data/sig/context_dev/models/monitor_delete_params.rbs +23 -0
  93. data/sig/context_dev/models/monitor_delete_response.rbs +15 -0
  94. data/sig/context_dev/models/monitor_list_account_changes_params.rbs +104 -0
  95. data/sig/context_dev/models/monitor_list_account_changes_response.rbs +176 -0
  96. data/sig/context_dev/models/monitor_list_account_runs_params.rbs +58 -0
  97. data/sig/context_dev/models/monitor_list_account_runs_response.rbs +184 -0
  98. data/sig/context_dev/models/monitor_list_changes_params.rbs +61 -0
  99. data/sig/context_dev/models/monitor_list_changes_response.rbs +176 -0
  100. data/sig/context_dev/models/monitor_list_params.rbs +160 -0
  101. data/sig/context_dev/models/monitor_list_response.rbs +396 -0
  102. data/sig/context_dev/models/monitor_list_runs_params.rbs +63 -0
  103. data/sig/context_dev/models/monitor_list_runs_response.rbs +184 -0
  104. data/sig/context_dev/models/monitor_retrieve_change_params.rbs +23 -0
  105. data/sig/context_dev/models/monitor_retrieve_change_response.rbs +228 -0
  106. data/sig/context_dev/models/monitor_retrieve_params.rbs +23 -0
  107. data/sig/context_dev/models/monitor_retrieve_response.rbs +369 -0
  108. data/sig/context_dev/models/monitor_run_params.rbs +23 -0
  109. data/sig/context_dev/models/monitor_run_response.rbs +18 -0
  110. data/sig/context_dev/models/monitor_update_params.rbs +331 -0
  111. data/sig/context_dev/models/monitor_update_response.rbs +369 -0
  112. data/sig/context_dev/models/utility_prefetch_params.rbs +52 -4
  113. data/sig/context_dev/models/utility_prefetch_response.rbs +22 -3
  114. data/sig/context_dev/models/web_extract_response.rbs +5 -0
  115. data/sig/context_dev/models/web_extract_styleguide_params.rbs +20 -0
  116. data/sig/context_dev/models/web_screenshot_params.rbs +446 -0
  117. data/sig/context_dev/models/web_search_params.rbs +503 -0
  118. data/sig/context_dev/models/web_web_crawl_md_params.rbs +433 -0
  119. data/sig/context_dev/models/web_web_scrape_html_params.rbs +433 -0
  120. data/sig/context_dev/models/web_web_scrape_html_response.rbs +8 -0
  121. data/sig/context_dev/models/web_web_scrape_images_params.rbs +7 -0
  122. data/sig/context_dev/models/web_web_scrape_md_params.rbs +433 -0
  123. data/sig/context_dev/models.rbs +20 -12
  124. data/sig/context_dev/resources/ai.rbs +0 -8
  125. data/sig/context_dev/resources/brand.rbs +1 -56
  126. data/sig/context_dev/resources/monitors.rbs +101 -0
  127. data/sig/context_dev/resources/utility.rbs +2 -7
  128. data/sig/context_dev/resources/web.rbs +12 -0
  129. metadata +71 -44
  130. data/lib/context_dev/models/ai_ai_query_params.rb +0 -235
  131. data/lib/context_dev/models/ai_ai_query_response.rb +0 -133
  132. data/lib/context_dev/models/brand_identify_from_transaction_params.rb +0 -474
  133. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +0 -1074
  134. data/lib/context_dev/models/brand_retrieve_by_email_params.rb +0 -195
  135. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +0 -1071
  136. data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +0 -195
  137. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +0 -1070
  138. data/lib/context_dev/models/brand_retrieve_by_name_params.rb +0 -452
  139. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +0 -1070
  140. data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +0 -283
  141. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +0 -1072
  142. data/lib/context_dev/models/utility_prefetch_by_email_params.rb +0 -37
  143. data/lib/context_dev/models/utility_prefetch_by_email_response.rb +0 -68
  144. data/rbi/context_dev/models/ai_ai_query_params.rbi +0 -504
  145. data/rbi/context_dev/models/ai_ai_query_response.rbi +0 -267
  146. data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +0 -2020
  147. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +0 -3515
  148. data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +0 -743
  149. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +0 -3511
  150. data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +0 -743
  151. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +0 -3510
  152. data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +0 -1982
  153. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +0 -3510
  154. data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +0 -1153
  155. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +0 -3512
  156. data/rbi/context_dev/models/utility_prefetch_by_email_params.rbi +0 -65
  157. data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +0 -132
  158. data/sig/context_dev/models/ai_ai_query_params.rbs +0 -218
  159. data/sig/context_dev/models/ai_ai_query_response.rbs +0 -121
  160. data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +0 -822
  161. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +0 -1441
  162. data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +0 -305
  163. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +0 -1441
  164. data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +0 -305
  165. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +0 -1441
  166. data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +0 -801
  167. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +0 -1441
  168. data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +0 -467
  169. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +0 -1441
  170. data/sig/context_dev/models/utility_prefetch_by_email_params.rbs +0 -30
  171. data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +0 -64
@@ -18,6 +18,22 @@ module ContextDev
18
18
  sig { returns(String) }
19
19
  attr_accessor :url
20
20
 
21
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
22
+ # When provided, Context.dev fetches the target page from that country.
23
+ sig do
24
+ returns(
25
+ T.nilable(ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol)
26
+ )
27
+ end
28
+ attr_reader :country
29
+
30
+ sig do
31
+ params(
32
+ country: ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol
33
+ ).void
34
+ end
35
+ attr_writer :country
36
+
21
37
  # CSS selectors to remove from the result. Applied after includeSelectors.
22
38
  # Exclusion takes precedence: an element matching both is removed. Examples:
23
39
  # "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -69,6 +85,15 @@ module ContextDev
69
85
  sig { params(pdf: ContextDev::WebWebScrapeHTMLParams::Pdf::OrHash).void }
70
86
  attr_writer :pdf
71
87
 
88
+ # When true, waits briefly for CSS and transition animations to settle before
89
+ # extracting HTML. Defaults to false. This adds a bit of latency in exchange for
90
+ # more stable output on animated pages.
91
+ sig { returns(T.nilable(T::Boolean)) }
92
+ attr_reader :settle_animations
93
+
94
+ sig { params(settle_animations: T::Boolean).void }
95
+ attr_writer :settle_animations
96
+
72
97
  # Optional timeout in milliseconds for the request. If the request takes longer
73
98
  # than this value, it will be aborted with a 408 status code. Maximum allowed
74
99
  # value is 300000ms (5 minutes).
@@ -97,12 +122,14 @@ module ContextDev
97
122
  sig do
98
123
  params(
99
124
  url: String,
125
+ country: ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol,
100
126
  exclude_selectors: T::Array[String],
101
127
  headers: T::Hash[Symbol, String],
102
128
  include_frames: T::Boolean,
103
129
  include_selectors: T::Array[String],
104
130
  max_age_ms: Integer,
105
131
  pdf: ContextDev::WebWebScrapeHTMLParams::Pdf::OrHash,
132
+ settle_animations: T::Boolean,
106
133
  timeout_ms: Integer,
107
134
  use_main_content_only: T::Boolean,
108
135
  wait_for_ms: Integer,
@@ -112,6 +139,9 @@ module ContextDev
112
139
  def self.new(
113
140
  # Full URL to scrape (must include http:// or https:// protocol)
114
141
  url:,
142
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
143
+ # When provided, Context.dev fetches the target page from that country.
144
+ country: nil,
115
145
  # CSS selectors to remove from the result. Applied after includeSelectors.
116
146
  # Exclusion takes precedence: an element matching both is removed. Examples:
117
147
  # "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -133,6 +163,10 @@ module ContextDev
133
163
  # PDF parsing controls. Use start/end to limit text extraction and OCR to an
134
164
  # inclusive 1-based page range.
135
165
  pdf: nil,
166
+ # When true, waits briefly for CSS and transition animations to settle before
167
+ # extracting HTML. Defaults to false. This adds a bit of latency in exchange for
168
+ # more stable output on animated pages.
169
+ settle_animations: nil,
136
170
  # Optional timeout in milliseconds for the request. If the request takes longer
137
171
  # than this value, it will be aborted with a 408 status code. Maximum allowed
138
172
  # value is 300000ms (5 minutes).
@@ -151,12 +185,14 @@ module ContextDev
151
185
  override.returns(
152
186
  {
153
187
  url: String,
188
+ country: ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol,
154
189
  exclude_selectors: T::Array[String],
155
190
  headers: T::Hash[Symbol, String],
156
191
  include_frames: T::Boolean,
157
192
  include_selectors: T::Array[String],
158
193
  max_age_ms: Integer,
159
194
  pdf: ContextDev::WebWebScrapeHTMLParams::Pdf,
195
+ settle_animations: T::Boolean,
160
196
  timeout_ms: Integer,
161
197
  use_main_content_only: T::Boolean,
162
198
  wait_for_ms: Integer,
@@ -167,6 +203,435 @@ module ContextDev
167
203
  def to_hash
168
204
  end
169
205
 
206
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
207
+ # When provided, Context.dev fetches the target page from that country.
208
+ module Country
209
+ extend ContextDev::Internal::Type::Enum
210
+
211
+ TaggedSymbol =
212
+ T.type_alias do
213
+ T.all(Symbol, ContextDev::WebWebScrapeHTMLParams::Country)
214
+ end
215
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
216
+
217
+ AD =
218
+ T.let(:ad, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
219
+ AE =
220
+ T.let(:ae, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
221
+ AF =
222
+ T.let(:af, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
223
+ AG =
224
+ T.let(:ag, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
225
+ AI =
226
+ T.let(:ai, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
227
+ AL =
228
+ T.let(:al, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
229
+ AM =
230
+ T.let(:am, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
231
+ AO =
232
+ T.let(:ao, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
233
+ AR =
234
+ T.let(:ar, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
235
+ AT =
236
+ T.let(:at, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
237
+ AU =
238
+ T.let(:au, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
239
+ AW =
240
+ T.let(:aw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
241
+ AZ =
242
+ T.let(:az, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
243
+ BA =
244
+ T.let(:ba, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
245
+ BB =
246
+ T.let(:bb, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
247
+ BD =
248
+ T.let(:bd, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
249
+ BE =
250
+ T.let(:be, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
251
+ BF =
252
+ T.let(:bf, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
253
+ BG =
254
+ T.let(:bg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
255
+ BH =
256
+ T.let(:bh, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
257
+ BI =
258
+ T.let(:bi, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
259
+ BJ =
260
+ T.let(:bj, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
261
+ BM =
262
+ T.let(:bm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
263
+ BN =
264
+ T.let(:bn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
265
+ BO =
266
+ T.let(:bo, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
267
+ BQ =
268
+ T.let(:bq, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
269
+ BR =
270
+ T.let(:br, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
271
+ BS =
272
+ T.let(:bs, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
273
+ BW =
274
+ T.let(:bw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
275
+ BY =
276
+ T.let(:by, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
277
+ BZ =
278
+ T.let(:bz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
279
+ CA =
280
+ T.let(:ca, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
281
+ CD =
282
+ T.let(:cd, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
283
+ CF =
284
+ T.let(:cf, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
285
+ CG =
286
+ T.let(:cg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
287
+ CH =
288
+ T.let(:ch, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
289
+ CI =
290
+ T.let(:ci, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
291
+ CL =
292
+ T.let(:cl, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
293
+ CM =
294
+ T.let(:cm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
295
+ CN =
296
+ T.let(:cn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
297
+ CO =
298
+ T.let(:co, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
299
+ CR =
300
+ T.let(:cr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
301
+ CV =
302
+ T.let(:cv, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
303
+ CW =
304
+ T.let(:cw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
305
+ CY =
306
+ T.let(:cy, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
307
+ CZ =
308
+ T.let(:cz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
309
+ DE =
310
+ T.let(:de, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
311
+ DJ =
312
+ T.let(:dj, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
313
+ DK =
314
+ T.let(:dk, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
315
+ DM =
316
+ T.let(:dm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
317
+ DO =
318
+ T.let(:do, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
319
+ DZ =
320
+ T.let(:dz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
321
+ EC =
322
+ T.let(:ec, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
323
+ EE =
324
+ T.let(:ee, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
325
+ EG =
326
+ T.let(:eg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
327
+ ES =
328
+ T.let(:es, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
329
+ ET =
330
+ T.let(:et, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
331
+ FI =
332
+ T.let(:fi, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
333
+ FJ =
334
+ T.let(:fj, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
335
+ FR =
336
+ T.let(:fr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
337
+ GA =
338
+ T.let(:ga, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
339
+ GB =
340
+ T.let(:gb, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
341
+ GD =
342
+ T.let(:gd, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
343
+ GE =
344
+ T.let(:ge, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
345
+ GF =
346
+ T.let(:gf, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
347
+ GG =
348
+ T.let(:gg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
349
+ GH =
350
+ T.let(:gh, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
351
+ GM =
352
+ T.let(:gm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
353
+ GN =
354
+ T.let(:gn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
355
+ GP =
356
+ T.let(:gp, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
357
+ GQ =
358
+ T.let(:gq, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
359
+ GR =
360
+ T.let(:gr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
361
+ GT =
362
+ T.let(:gt, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
363
+ GU =
364
+ T.let(:gu, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
365
+ GW =
366
+ T.let(:gw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
367
+ GY =
368
+ T.let(:gy, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
369
+ HK =
370
+ T.let(:hk, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
371
+ HN =
372
+ T.let(:hn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
373
+ HR =
374
+ T.let(:hr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
375
+ HT =
376
+ T.let(:ht, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
377
+ HU =
378
+ T.let(:hu, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
379
+ ID =
380
+ T.let(:id, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
381
+ IE =
382
+ T.let(:ie, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
383
+ IL =
384
+ T.let(:il, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
385
+ IM =
386
+ T.let(:im, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
387
+ IN =
388
+ T.let(:in, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
389
+ IQ =
390
+ T.let(:iq, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
391
+ IR =
392
+ T.let(:ir, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
393
+ IS =
394
+ T.let(:is, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
395
+ IT =
396
+ T.let(:it, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
397
+ JE =
398
+ T.let(:je, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
399
+ JM =
400
+ T.let(:jm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
401
+ JO =
402
+ T.let(:jo, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
403
+ JP =
404
+ T.let(:jp, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
405
+ KE =
406
+ T.let(:ke, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
407
+ KG =
408
+ T.let(:kg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
409
+ KH =
410
+ T.let(:kh, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
411
+ KN =
412
+ T.let(:kn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
413
+ KR =
414
+ T.let(:kr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
415
+ KW =
416
+ T.let(:kw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
417
+ KY =
418
+ T.let(:ky, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
419
+ KZ =
420
+ T.let(:kz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
421
+ LA =
422
+ T.let(:la, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
423
+ LB =
424
+ T.let(:lb, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
425
+ LC =
426
+ T.let(:lc, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
427
+ LK =
428
+ T.let(:lk, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
429
+ LR =
430
+ T.let(:lr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
431
+ LS =
432
+ T.let(:ls, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
433
+ LT =
434
+ T.let(:lt, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
435
+ LU =
436
+ T.let(:lu, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
437
+ LV =
438
+ T.let(:lv, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
439
+ LY =
440
+ T.let(:ly, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
441
+ MA =
442
+ T.let(:ma, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
443
+ MC =
444
+ T.let(:mc, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
445
+ MD =
446
+ T.let(:md, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
447
+ ME =
448
+ T.let(:me, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
449
+ MF =
450
+ T.let(:mf, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
451
+ MG =
452
+ T.let(:mg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
453
+ MK =
454
+ T.let(:mk, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
455
+ ML =
456
+ T.let(:ml, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
457
+ MM =
458
+ T.let(:mm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
459
+ MN =
460
+ T.let(:mn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
461
+ MO =
462
+ T.let(:mo, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
463
+ MQ =
464
+ T.let(:mq, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
465
+ MR =
466
+ T.let(:mr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
467
+ MT =
468
+ T.let(:mt, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
469
+ MU =
470
+ T.let(:mu, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
471
+ MV =
472
+ T.let(:mv, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
473
+ MW =
474
+ T.let(:mw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
475
+ MX =
476
+ T.let(:mx, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
477
+ MY =
478
+ T.let(:my, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
479
+ MZ =
480
+ T.let(:mz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
481
+ NA =
482
+ T.let(:na, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
483
+ NC =
484
+ T.let(:nc, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
485
+ NE =
486
+ T.let(:ne, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
487
+ NG =
488
+ T.let(:ng, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
489
+ NI =
490
+ T.let(:ni, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
491
+ NL =
492
+ T.let(:nl, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
493
+ NO =
494
+ T.let(:no, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
495
+ NP =
496
+ T.let(:np, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
497
+ NZ =
498
+ T.let(:nz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
499
+ OM =
500
+ T.let(:om, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
501
+ PA =
502
+ T.let(:pa, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
503
+ PE =
504
+ T.let(:pe, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
505
+ PF =
506
+ T.let(:pf, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
507
+ PG =
508
+ T.let(:pg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
509
+ PH =
510
+ T.let(:ph, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
511
+ PK =
512
+ T.let(:pk, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
513
+ PL =
514
+ T.let(:pl, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
515
+ PR =
516
+ T.let(:pr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
517
+ PS =
518
+ T.let(:ps, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
519
+ PT =
520
+ T.let(:pt, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
521
+ PY =
522
+ T.let(:py, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
523
+ QA =
524
+ T.let(:qa, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
525
+ RE =
526
+ T.let(:re, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
527
+ RO =
528
+ T.let(:ro, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
529
+ RS =
530
+ T.let(:rs, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
531
+ RU =
532
+ T.let(:ru, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
533
+ RW =
534
+ T.let(:rw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
535
+ SA =
536
+ T.let(:sa, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
537
+ SC =
538
+ T.let(:sc, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
539
+ SD =
540
+ T.let(:sd, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
541
+ SE =
542
+ T.let(:se, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
543
+ SG =
544
+ T.let(:sg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
545
+ SI =
546
+ T.let(:si, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
547
+ SK =
548
+ T.let(:sk, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
549
+ SL =
550
+ T.let(:sl, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
551
+ SM =
552
+ T.let(:sm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
553
+ SN =
554
+ T.let(:sn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
555
+ SO =
556
+ T.let(:so, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
557
+ SR =
558
+ T.let(:sr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
559
+ SS =
560
+ T.let(:ss, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
561
+ ST =
562
+ T.let(:st, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
563
+ SV =
564
+ T.let(:sv, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
565
+ SX =
566
+ T.let(:sx, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
567
+ SY =
568
+ T.let(:sy, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
569
+ SZ =
570
+ T.let(:sz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
571
+ TC =
572
+ T.let(:tc, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
573
+ TD =
574
+ T.let(:td, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
575
+ TG =
576
+ T.let(:tg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
577
+ TH =
578
+ T.let(:th, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
579
+ TJ =
580
+ T.let(:tj, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
581
+ TL =
582
+ T.let(:tl, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
583
+ TM =
584
+ T.let(:tm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
585
+ TN =
586
+ T.let(:tn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
587
+ TR =
588
+ T.let(:tr, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
589
+ TT =
590
+ T.let(:tt, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
591
+ TW =
592
+ T.let(:tw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
593
+ TZ =
594
+ T.let(:tz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
595
+ UA =
596
+ T.let(:ua, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
597
+ UG =
598
+ T.let(:ug, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
599
+ US =
600
+ T.let(:us, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
601
+ UY =
602
+ T.let(:uy, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
603
+ UZ =
604
+ T.let(:uz, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
605
+ VC =
606
+ T.let(:vc, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
607
+ VE =
608
+ T.let(:ve, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
609
+ VG =
610
+ T.let(:vg, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
611
+ VI =
612
+ T.let(:vi, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
613
+ VN =
614
+ T.let(:vn, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
615
+ YE =
616
+ T.let(:ye, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
617
+ YT =
618
+ T.let(:yt, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
619
+ ZA =
620
+ T.let(:za, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
621
+ ZM =
622
+ T.let(:zm, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
623
+ ZW =
624
+ T.let(:zw, ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol)
625
+
626
+ sig do
627
+ override.returns(
628
+ T::Array[ContextDev::WebWebScrapeHTMLParams::Country::TaggedSymbol]
629
+ )
630
+ end
631
+ def self.values
632
+ end
633
+ end
634
+
170
635
  class Pdf < ContextDev::Internal::Type::BaseModel
171
636
  OrHash =
172
637
  T.type_alias do
@@ -38,7 +38,9 @@ module ContextDev
38
38
  attr_accessor :success
39
39
 
40
40
  # Detected content type of the returned `html` field. Sitemaps and feeds are
41
- # surfaced as `xml`; ordinary pages are `html`.
41
+ # surfaced as `xml`; ordinary pages are `html`. Excel workbooks are surfaced as
42
+ # `xlsx`/`xls` with the extracted sheets as HTML tables; PowerPoint presentations
43
+ # are surfaced as `pptx`/`ppt` with the extracted slides as HTML.
42
44
  sig do
43
45
  returns(
44
46
  ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
@@ -90,7 +92,9 @@ module ContextDev
90
92
  # Indicates success
91
93
  success:,
92
94
  # Detected content type of the returned `html` field. Sitemaps and feeds are
93
- # surfaced as `xml`; ordinary pages are `html`.
95
+ # surfaced as `xml`; ordinary pages are `html`. Excel workbooks are surfaced as
96
+ # `xlsx`/`xls` with the extracted sheets as HTML tables; PowerPoint presentations
97
+ # are surfaced as `pptx`/`ppt` with the extracted slides as HTML.
94
98
  type:,
95
99
  # The URL that was scraped
96
100
  url:,
@@ -607,7 +611,9 @@ module ContextDev
607
611
  end
608
612
 
609
613
  # Detected content type of the returned `html` field. Sitemaps and feeds are
610
- # surfaced as `xml`; ordinary pages are `html`.
614
+ # surfaced as `xml`; ordinary pages are `html`. Excel workbooks are surfaced as
615
+ # `xlsx`/`xls` with the extracted sheets as HTML tables; PowerPoint presentations
616
+ # are surfaced as `pptx`/`ppt` with the extracted slides as HTML.
611
617
  module Type
612
618
  extend ContextDev::Internal::Type::Enum
613
619
 
@@ -667,6 +673,26 @@ module ContextDev
667
673
  :doc,
668
674
  ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
669
675
  )
676
+ XLSX =
677
+ T.let(
678
+ :xlsx,
679
+ ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
680
+ )
681
+ XLS =
682
+ T.let(
683
+ :xls,
684
+ ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
685
+ )
686
+ PPTX =
687
+ T.let(
688
+ :pptx,
689
+ ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
690
+ )
691
+ PPT =
692
+ T.let(
693
+ :ppt,
694
+ ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
695
+ )
670
696
 
671
697
  sig do
672
698
  override.returns(
@@ -18,6 +18,16 @@ module ContextDev
18
18
  sig { returns(String) }
19
19
  attr_accessor :url
20
20
 
21
+ # When true, visually duplicate images are removed: every image is loaded and
22
+ # perceptually hashed, and only the highest-resolution copy of each duplicate
23
+ # group is kept. Images that cannot be downloaded or hashed are kept. Default:
24
+ # false.
25
+ sig { returns(T.nilable(T::Boolean)) }
26
+ attr_reader :dedupe
27
+
28
+ sig { params(dedupe: T::Boolean).void }
29
+ attr_writer :dedupe
30
+
21
31
  # Optional per-image processing, sent as deep-object query params such as
22
32
  # enrichment[resolution]=true.
23
33
  sig do
@@ -69,6 +79,7 @@ module ContextDev
69
79
  sig do
70
80
  params(
71
81
  url: String,
82
+ dedupe: T::Boolean,
72
83
  enrichment: ContextDev::WebWebScrapeImagesParams::Enrichment::OrHash,
73
84
  headers: T::Hash[Symbol, String],
74
85
  max_age_ms: Integer,
@@ -80,6 +91,11 @@ module ContextDev
80
91
  def self.new(
81
92
  # Page URL to inspect. Must include http:// or https://.
82
93
  url:,
94
+ # When true, visually duplicate images are removed: every image is loaded and
95
+ # perceptually hashed, and only the highest-resolution copy of each duplicate
96
+ # group is kept. Images that cannot be downloaded or hashed are kept. Default:
97
+ # false.
98
+ dedupe: nil,
83
99
  # Optional per-image processing, sent as deep-object query params such as
84
100
  # enrichment[resolution]=true.
85
101
  enrichment: nil,
@@ -105,6 +121,7 @@ module ContextDev
105
121
  override.returns(
106
122
  {
107
123
  url: String,
124
+ dedupe: T::Boolean,
108
125
  enrichment: ContextDev::WebWebScrapeImagesParams::Enrichment,
109
126
  headers: T::Hash[Symbol, String],
110
127
  max_age_ms: Integer,