crawlberg 1.11.0-x86_64-linux

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.
data/sig/types.rbs ADDED
@@ -0,0 +1,563 @@
1
+ # This file is auto-generated by alef — DO NOT EDIT.
2
+ # alef:hash:ad470f62b746634fbd629f163e7bae4a88fb011bbde28d998e38ade4877adf3f
3
+ # To regenerate: alef generate
4
+ # To verify freshness: alef verify
5
+
6
+ module Crawlberg
7
+
8
+ VERSION: String
9
+
10
+ type json_value = Hash[String, untyped] | Array[untyped] | String | Integer | Float | bool | nil
11
+
12
+ class ActionResult
13
+ attr_reader action_index: Integer
14
+ attr_reader action_type: String
15
+ attr_reader success: bool
16
+ attr_reader data: String?
17
+ attr_reader error: String?
18
+
19
+ def initialize: (?action_index: Integer, ?action_type: String, ?success: bool, ?data: String, ?error: String) -> void
20
+ end
21
+
22
+ class ArticleMetadata
23
+ attr_reader published_time: String?
24
+ attr_reader modified_time: String?
25
+ attr_reader author: String?
26
+ attr_reader section: String?
27
+ attr_reader tags: Array[String]
28
+
29
+ def initialize: (?published_time: String, ?modified_time: String, ?author: String, ?section: String, ?tags: Array[String]) -> void
30
+ end
31
+
32
+ class BatchCrawlResult
33
+ attr_reader url: String
34
+ attr_reader result: CrawlResult?
35
+ attr_reader error: String?
36
+
37
+ def initialize: (?url: String, ?result: CrawlResult, ?error: String) -> void
38
+ end
39
+
40
+ class BatchCrawlResults
41
+ attr_reader results: Array[BatchCrawlResult]
42
+ attr_reader total_count: Integer
43
+ attr_reader completed_count: Integer
44
+ attr_reader failed_count: Integer
45
+
46
+ def initialize: (?results: Array[BatchCrawlResult], ?total_count: Integer, ?completed_count: Integer, ?failed_count: Integer) -> void
47
+ end
48
+
49
+ class BatchCrawlStreamRequest
50
+ attr_reader urls: Array[String]
51
+
52
+ def initialize: (?urls: Array[String]) -> void
53
+ end
54
+
55
+ class BatchScrapeResult
56
+ attr_reader url: String
57
+ attr_reader result: ScrapeResult?
58
+ attr_reader error: String?
59
+
60
+ def initialize: (?url: String, ?result: ScrapeResult, ?error: String) -> void
61
+ end
62
+
63
+ class BatchScrapeResults
64
+ attr_reader results: Array[BatchScrapeResult]
65
+ attr_reader total_count: Integer
66
+ attr_reader completed_count: Integer
67
+ attr_reader failed_count: Integer
68
+
69
+ def initialize: (?results: Array[BatchScrapeResult], ?total_count: Integer, ?completed_count: Integer, ?failed_count: Integer) -> void
70
+ end
71
+
72
+ class BrowserConfig
73
+ attr_reader mode: enum_BrowserMode
74
+ attr_reader backend: enum_BrowserBackend
75
+ attr_reader endpoint: String?
76
+ attr_reader timeout: Integer
77
+ attr_reader overall_timeout: Integer
78
+ attr_reader shutdown_timeout: Integer
79
+ attr_reader wait: enum_BrowserWait
80
+ attr_reader wait_selector: String?
81
+ attr_reader extra_wait: Integer?
82
+ attr_reader proxy: ProxyConfig?
83
+ attr_reader block_url_patterns: Array[String]
84
+ attr_reader eval_script: String?
85
+ attr_reader robots_user_agent: String?
86
+ attr_reader capture_network_events: bool
87
+ attr_reader session_affinity: bool
88
+ attr_reader chrome_path: String?
89
+ attr_reader chrome_args: Array[String]
90
+
91
+ def initialize: (?mode: enum_BrowserMode, ?backend: enum_BrowserBackend, ?endpoint: String, ?timeout: Integer, ?overall_timeout: Integer, ?shutdown_timeout: Integer, ?wait: enum_BrowserWait, ?wait_selector: String, ?extra_wait: Integer, ?proxy: ProxyConfig, ?block_url_patterns: Array[String], ?eval_script: String, ?robots_user_agent: String, ?capture_network_events: bool, ?session_affinity: bool, ?chrome_path: String, ?chrome_args: Array[String]) -> void
92
+ end
93
+
94
+ class BrowserExtras
95
+ attr_reader eval_result: String?
96
+ attr_reader network_events: Array[ResponseMeta]
97
+ attr_reader cookies: Array[CookieInfo]
98
+
99
+ def initialize: (?eval_result: String, ?network_events: Array[ResponseMeta], ?cookies: Array[CookieInfo]) -> void
100
+ end
101
+
102
+ class CitationReference
103
+ attr_reader index: Integer
104
+ attr_reader url: String
105
+ attr_reader text: String
106
+
107
+ def initialize: (?index: Integer, ?url: String, ?text: String) -> void
108
+ end
109
+
110
+ class CitationResult
111
+ attr_reader content: String
112
+ attr_reader references: Array[CitationReference]
113
+
114
+ def initialize: (?content: String, ?references: Array[CitationReference]) -> void
115
+ end
116
+
117
+ class ContentConfig
118
+ attr_reader output_format: String
119
+ attr_reader preprocessing_preset: String
120
+ attr_reader remove_navigation: bool
121
+ attr_reader remove_forms: bool
122
+ attr_reader strip_tags: Array[String]
123
+ attr_reader preserve_tags: Array[String]
124
+ attr_reader exclude_selectors: Array[String]
125
+ attr_reader skip_images: bool
126
+ attr_reader max_depth: Integer?
127
+ attr_reader wrap: bool
128
+ attr_reader wrap_width: Integer
129
+ attr_reader include_document_structure: bool
130
+ attr_reader extract_metadata: bool
131
+ attr_reader strip_newlines: bool
132
+ attr_reader bullets: String
133
+ attr_reader list_indent_width: Integer
134
+ attr_reader strong_em_symbol: String
135
+ attr_reader compact_tables: bool
136
+ attr_reader keep_inline_images_in: Array[String]
137
+ attr_reader keep_hidden: bool
138
+
139
+ def initialize: (?output_format: String, ?preprocessing_preset: String, ?remove_navigation: bool, ?remove_forms: bool, ?strip_tags: Array[String], ?preserve_tags: Array[String], ?exclude_selectors: Array[String], ?skip_images: bool, ?max_depth: Integer, ?wrap: bool, ?wrap_width: Integer, ?include_document_structure: bool, ?extract_metadata: bool, ?strip_newlines: bool, ?bullets: String, ?list_indent_width: Integer, ?strong_em_symbol: String, ?compact_tables: bool, ?keep_inline_images_in: Array[String], ?keep_hidden: bool) -> void
140
+ end
141
+
142
+ class CookieInfo
143
+ attr_reader name: String
144
+ attr_reader value: String
145
+ attr_reader domain: String?
146
+ attr_reader path: String?
147
+
148
+ def initialize: (?name: String, ?value: String, ?domain: String, ?path: String) -> void
149
+ end
150
+
151
+ class CrawlConfig
152
+ attr_reader max_depth: Integer?
153
+ attr_reader max_pages: Integer?
154
+ attr_reader max_links_per_page: Integer?
155
+ attr_reader max_concurrent: Integer?
156
+ attr_reader crawl_strategy: enum_CrawlStrategyKind
157
+ attr_reader content_filter: enum_ContentFilterKind?
158
+ attr_reader bm25_query: String?
159
+ attr_reader bm25_threshold: Float?
160
+ attr_reader respect_robots_txt: bool
161
+ attr_reader soft_http_errors: bool
162
+ attr_reader user_agent: String?
163
+ attr_reader stay_on_domain: bool
164
+ attr_reader allow_subdomains: bool
165
+ attr_reader include_paths: Array[String]
166
+ attr_reader exclude_paths: Array[String]
167
+ attr_reader path_patterns_match_query: bool
168
+ attr_reader path_patterns_match_url: bool
169
+ attr_reader dedup_include_query: bool
170
+ attr_reader strip_tracking_params: bool
171
+ attr_reader tracking_params: Array[String]
172
+ attr_reader custom_headers: Hash[String, String]
173
+ attr_reader request_timeout: Integer
174
+ attr_reader rate_limit_ms: Integer?
175
+ attr_reader max_redirects: Integer
176
+ attr_reader retry_count: Integer
177
+ attr_reader retry_codes: Array[Integer]
178
+ attr_reader retry_initial_delay_ms: Integer
179
+ attr_reader retry_max_delay_ms: Integer
180
+ attr_reader rate_limit_jitter_ratio: Float
181
+ attr_reader cookies_enabled: bool
182
+ attr_reader auth: AuthConfig?
183
+ attr_reader max_body_size: Integer?
184
+ attr_reader remove_tags: Array[String]
185
+ attr_reader content: ContentConfig
186
+ attr_reader map_limit: Integer?
187
+ attr_reader map_search: String?
188
+ attr_reader download_assets: bool
189
+ attr_reader asset_types: Array[enum_AssetCategory]
190
+ attr_reader max_asset_size: Integer?
191
+ attr_reader browser: BrowserConfig
192
+ attr_reader proxy: ProxyConfig?
193
+ attr_reader user_agents: Array[String]
194
+ attr_reader capture_screenshot: bool
195
+ attr_reader follow_document_urls: bool
196
+ attr_reader document_url_depth: Integer?
197
+ attr_reader download_documents: bool
198
+ attr_reader document_max_size: Integer?
199
+ attr_reader document_mime_types: Array[String]
200
+ attr_reader document_output_dir: String?
201
+ attr_reader document_content_encoding: enum_DocumentContentEncoding?
202
+ attr_reader warc_output: String?
203
+ attr_reader browser_profile: String?
204
+ attr_reader save_browser_profile: bool
205
+ attr_reader ssrf: SsrfPolicy
206
+ attr_reader ssrf_deny_private_explicit: bool?
207
+
208
+ def initialize: (?max_depth: Integer, ?max_pages: Integer, ?max_links_per_page: Integer, ?max_concurrent: Integer, ?crawl_strategy: enum_CrawlStrategyKind, ?content_filter: enum_ContentFilterKind, ?bm25_query: String, ?bm25_threshold: Float, ?respect_robots_txt: bool, ?soft_http_errors: bool, ?user_agent: String, ?stay_on_domain: bool, ?allow_subdomains: bool, ?include_paths: Array[String], ?exclude_paths: Array[String], ?path_patterns_match_query: bool, ?path_patterns_match_url: bool, ?dedup_include_query: bool, ?strip_tracking_params: bool, ?tracking_params: Array[String], ?custom_headers: Hash[String, String], ?request_timeout: Integer, ?rate_limit_ms: Integer, ?max_redirects: Integer, ?retry_count: Integer, ?retry_codes: Array[Integer], ?retry_initial_delay_ms: Integer, ?retry_max_delay_ms: Integer, ?rate_limit_jitter_ratio: Float, ?cookies_enabled: bool, ?auth: AuthConfig, ?max_body_size: Integer, ?remove_tags: Array[String], ?content: ContentConfig, ?map_limit: Integer, ?map_search: String, ?download_assets: bool, ?asset_types: Array[enum_AssetCategory], ?max_asset_size: Integer, ?browser: BrowserConfig, ?proxy: ProxyConfig, ?user_agents: Array[String], ?capture_screenshot: bool, ?follow_document_urls: bool, ?document_url_depth: Integer, ?download_documents: bool, ?document_max_size: Integer, ?document_mime_types: Array[String], ?document_output_dir: String, ?document_content_encoding: enum_DocumentContentEncoding, ?warc_output: String, ?browser_profile: String, ?save_browser_profile: bool, ?ssrf: SsrfPolicy, ?ssrf_deny_private_explicit: bool) -> void
209
+ def validate: () -> void
210
+ end
211
+
212
+ class CrawlEngineHandle
213
+ def crawl_stream: (CrawlStreamRequest req) -> Enumerator[CrawlEvent]
214
+ def batch_crawl_stream: (BatchCrawlStreamRequest req) -> Enumerator[CrawlEvent]
215
+ end
216
+
217
+ class CrawlPageResult
218
+ attr_reader url: String
219
+ attr_reader normalized_url: String
220
+ attr_reader status_code: Integer
221
+ attr_reader content_type: String
222
+ attr_reader html: String
223
+ attr_reader body_size: Integer
224
+ attr_reader metadata: PageMetadata
225
+ attr_reader links: Array[LinkInfo]
226
+ attr_reader images: Array[ImageInfo]
227
+ attr_reader feeds: Array[FeedInfo]
228
+ attr_reader json_ld: Array[JsonLdEntry]
229
+ attr_reader depth: Integer
230
+ attr_reader stayed_on_domain: bool
231
+ attr_reader was_skipped: bool
232
+ attr_reader is_pdf: bool
233
+ attr_reader detected_charset: String?
234
+ attr_reader markdown: MarkdownResult?
235
+ attr_reader extracted_data: String?
236
+ attr_reader extraction_meta: ExtractionMeta?
237
+ attr_reader downloaded_document: DownloadedDocument?
238
+ attr_reader browser_used: bool
239
+ attr_reader final_url: String
240
+ attr_reader redirect_count: Integer
241
+ attr_reader noindex_detected: bool
242
+ attr_reader nofollow_detected: bool
243
+ attr_reader ssrf_refused_urls: Array[String]
244
+ attr_reader original_url: String
245
+
246
+ def initialize: (?url: String, ?normalized_url: String, ?status_code: Integer, ?content_type: String, ?html: String, ?body_size: Integer, ?metadata: PageMetadata, ?links: Array[LinkInfo], ?images: Array[ImageInfo], ?feeds: Array[FeedInfo], ?json_ld: Array[JsonLdEntry], ?depth: Integer, ?stayed_on_domain: bool, ?was_skipped: bool, ?is_pdf: bool, ?detected_charset: String, ?markdown: MarkdownResult, ?extracted_data: String, ?extraction_meta: ExtractionMeta, ?downloaded_document: DownloadedDocument, ?browser_used: bool, ?final_url: String, ?redirect_count: Integer, ?noindex_detected: bool, ?nofollow_detected: bool, ?ssrf_refused_urls: Array[String], ?original_url: String) -> void
247
+ end
248
+
249
+ class CrawlResult
250
+ attr_reader pages: Array[CrawlPageResult]
251
+ attr_reader final_url: String
252
+ attr_reader redirect_count: Integer
253
+ attr_reader was_skipped: bool
254
+ attr_reader error: String?
255
+ attr_reader cookies: Array[CookieInfo]
256
+ attr_reader stayed_on_domain: bool
257
+ attr_reader browser_used: bool
258
+
259
+ def initialize: (?pages: Array[CrawlPageResult], ?final_url: String, ?redirect_count: Integer, ?was_skipped: bool, ?error: String, ?cookies: Array[CookieInfo], ?stayed_on_domain: bool, ?browser_used: bool) -> void
260
+ def unique_normalized_urls: () -> Integer
261
+ end
262
+
263
+ class CrawlStreamRequest
264
+ attr_reader url: String
265
+
266
+ def initialize: (?url: String) -> void
267
+ end
268
+
269
+ class DownloadedAsset
270
+ attr_reader url: String
271
+ attr_reader content_hash: String
272
+ attr_reader mime_type: String?
273
+ attr_reader size: Integer
274
+ attr_reader asset_category: enum_AssetCategory
275
+ attr_reader html_tag: String?
276
+
277
+ def initialize: (?url: String, ?content_hash: String, ?mime_type: String, ?size: Integer, ?asset_category: enum_AssetCategory, ?html_tag: String) -> void
278
+ end
279
+
280
+ class DownloadedDocument
281
+ attr_reader url: String
282
+ attr_reader mime_type: String
283
+ attr_reader size: Integer
284
+ attr_reader filename: String?
285
+ attr_reader content_hash: String
286
+ attr_reader headers: Hash[String, String]
287
+ attr_reader truncated: bool
288
+ attr_reader content_path: String?
289
+ attr_reader content_base64: String?
290
+
291
+ def initialize: (?url: String, ?mime_type: String, ?size: Integer, ?filename: String, ?content_hash: String, ?headers: Hash[String, String], ?truncated: bool, ?content_path: String, ?content_base64: String) -> void
292
+ end
293
+
294
+ class ExtractionMeta
295
+ attr_reader cost: Float?
296
+ attr_reader prompt_tokens: Integer?
297
+ attr_reader completion_tokens: Integer?
298
+ attr_reader model: String?
299
+ attr_reader chunks_processed: Integer
300
+
301
+ def initialize: (?cost: Float, ?prompt_tokens: Integer, ?completion_tokens: Integer, ?model: String, ?chunks_processed: Integer) -> void
302
+ end
303
+
304
+ class FaviconInfo
305
+ attr_reader url: String
306
+ attr_reader rel: String
307
+ attr_reader sizes: String?
308
+ attr_reader mime_type: String?
309
+
310
+ def initialize: (?url: String, ?rel: String, ?sizes: String, ?mime_type: String) -> void
311
+ end
312
+
313
+ class FeedInfo
314
+ attr_reader url: String
315
+ attr_reader title: String?
316
+ attr_reader feed_type: enum_FeedType
317
+
318
+ def initialize: (?url: String, ?title: String, ?feed_type: enum_FeedType) -> void
319
+ end
320
+
321
+ class HeadingInfo
322
+ attr_reader level: Integer
323
+ attr_reader text: String
324
+
325
+ def initialize: (?level: Integer, ?text: String) -> void
326
+ end
327
+
328
+ class HreflangEntry
329
+ attr_reader lang: String
330
+ attr_reader url: String
331
+
332
+ def initialize: (?lang: String, ?url: String) -> void
333
+ end
334
+
335
+ class ImageInfo
336
+ attr_reader url: String
337
+ attr_reader alt: String?
338
+ attr_reader width: Integer?
339
+ attr_reader height: Integer?
340
+ attr_reader source: enum_ImageSource
341
+
342
+ def initialize: (?url: String, ?alt: String, ?width: Integer, ?height: Integer, ?source: enum_ImageSource) -> void
343
+ end
344
+
345
+ class InteractionResult
346
+ attr_reader action_results: Array[ActionResult]
347
+ attr_reader final_html: String
348
+ attr_reader final_url: String
349
+ attr_reader screenshot_base64: String?
350
+ attr_reader ssrf_refused_urls: Array[String]
351
+
352
+ def initialize: (?action_results: Array[ActionResult], ?final_html: String, ?final_url: String, ?screenshot_base64: String, ?ssrf_refused_urls: Array[String]) -> void
353
+ end
354
+
355
+ class JsonLdEntry
356
+ attr_reader schema_type: String
357
+ attr_reader name: String?
358
+ attr_reader raw: String
359
+
360
+ def initialize: (?schema_type: String, ?name: String, ?raw: String) -> void
361
+ end
362
+
363
+ class LinkInfo
364
+ attr_reader url: String
365
+ attr_reader text: String
366
+ attr_reader link_type: enum_LinkType
367
+ attr_reader rel: String?
368
+ attr_reader nofollow: bool
369
+ attr_reader original_url: String
370
+
371
+ def initialize: (?url: String, ?text: String, ?link_type: enum_LinkType, ?rel: String, ?nofollow: bool, ?original_url: String) -> void
372
+ end
373
+
374
+ class MapResult
375
+ attr_reader urls: Array[SitemapUrl]
376
+
377
+ def initialize: (?urls: Array[SitemapUrl]) -> void
378
+ end
379
+
380
+ class MarkdownResult
381
+ attr_reader content: String
382
+ attr_reader document_structure: String?
383
+ attr_reader tables: Array[String]
384
+ attr_reader warnings: Array[String]
385
+ attr_reader citations: bool
386
+ attr_reader fit_content: String?
387
+
388
+ def initialize: (?content: String, ?document_structure: String, ?tables: Array[String], ?warnings: Array[String], ?citations: bool, ?fit_content: String) -> void
389
+ end
390
+
391
+ class PageMetadata
392
+ attr_reader title: String?
393
+ attr_reader description: String?
394
+ attr_reader canonical_url: String?
395
+ attr_reader keywords: String?
396
+ attr_reader author: String?
397
+ attr_reader viewport: String?
398
+ attr_reader theme_color: String?
399
+ attr_reader generator: String?
400
+ attr_reader robots: String?
401
+ attr_reader html_lang: String?
402
+ attr_reader html_dir: String?
403
+ attr_reader og_title: String?
404
+ attr_reader og_type: String?
405
+ attr_reader og_image: String?
406
+ attr_reader og_description: String?
407
+ attr_reader og_url: String?
408
+ attr_reader og_site_name: String?
409
+ attr_reader og_locale: String?
410
+ attr_reader og_video: String?
411
+ attr_reader og_audio: String?
412
+ attr_reader og_locale_alternates: Array[String]?
413
+ attr_reader twitter_card: String?
414
+ attr_reader twitter_title: String?
415
+ attr_reader twitter_description: String?
416
+ attr_reader twitter_image: String?
417
+ attr_reader twitter_site: String?
418
+ attr_reader twitter_creator: String?
419
+ attr_reader dc_title: String?
420
+ attr_reader dc_creator: String?
421
+ attr_reader dc_subject: String?
422
+ attr_reader dc_description: String?
423
+ attr_reader dc_publisher: String?
424
+ attr_reader dc_date: String?
425
+ attr_reader dc_type: String?
426
+ attr_reader dc_format: String?
427
+ attr_reader dc_identifier: String?
428
+ attr_reader dc_language: String?
429
+ attr_reader dc_rights: String?
430
+ attr_reader article: ArticleMetadata?
431
+ attr_reader hreflangs: Array[HreflangEntry]?
432
+ attr_reader favicons: Array[FaviconInfo]?
433
+ attr_reader headings: Array[HeadingInfo]?
434
+ attr_reader word_count: Integer?
435
+
436
+ def initialize: (?title: String, ?description: String, ?canonical_url: String, ?keywords: String, ?author: String, ?viewport: String, ?theme_color: String, ?generator: String, ?robots: String, ?html_lang: String, ?html_dir: String, ?og_title: String, ?og_type: String, ?og_image: String, ?og_description: String, ?og_url: String, ?og_site_name: String, ?og_locale: String, ?og_video: String, ?og_audio: String, ?og_locale_alternates: Array[String], ?twitter_card: String, ?twitter_title: String, ?twitter_description: String, ?twitter_image: String, ?twitter_site: String, ?twitter_creator: String, ?dc_title: String, ?dc_creator: String, ?dc_subject: String, ?dc_description: String, ?dc_publisher: String, ?dc_date: String, ?dc_type: String, ?dc_format: String, ?dc_identifier: String, ?dc_language: String, ?dc_rights: String, ?article: ArticleMetadata, ?hreflangs: Array[HreflangEntry], ?favicons: Array[FaviconInfo], ?headings: Array[HeadingInfo], ?word_count: Integer) -> void
437
+ end
438
+
439
+ class ProxyConfig
440
+ attr_reader url: String
441
+ attr_reader username: String?
442
+ attr_reader password: String?
443
+
444
+ def initialize: (?url: String, ?username: String, ?password: String) -> void
445
+ end
446
+
447
+ class ResponseMeta
448
+ attr_reader etag: String?
449
+ attr_reader last_modified: String?
450
+ attr_reader cache_control: String?
451
+ attr_reader server: String?
452
+ attr_reader x_powered_by: String?
453
+ attr_reader content_language: String?
454
+ attr_reader content_encoding: String?
455
+
456
+ def initialize: (?etag: String, ?last_modified: String, ?cache_control: String, ?server: String, ?x_powered_by: String, ?content_language: String, ?content_encoding: String) -> void
457
+ end
458
+
459
+ class ScrapeResult
460
+ attr_reader status_code: Integer
461
+ attr_reader final_url: String
462
+ attr_reader content_type: String
463
+ attr_reader html: String
464
+ attr_reader body_size: Integer
465
+ attr_reader metadata: PageMetadata
466
+ attr_reader links: Array[LinkInfo]
467
+ attr_reader images: Array[ImageInfo]
468
+ attr_reader feeds: Array[FeedInfo]
469
+ attr_reader json_ld: Array[JsonLdEntry]
470
+ attr_reader is_allowed: bool
471
+ attr_reader crawl_delay: Integer?
472
+ attr_reader noindex_detected: bool
473
+ attr_reader nofollow_detected: bool
474
+ attr_reader x_robots_tag: String?
475
+ attr_reader is_pdf: bool
476
+ attr_reader was_skipped: bool
477
+ attr_reader detected_charset: String?
478
+ attr_reader auth_header_sent: bool
479
+ attr_reader response_meta: ResponseMeta?
480
+ attr_reader assets: Array[DownloadedAsset]
481
+ attr_reader js_render_hint: bool
482
+ attr_reader browser_used: bool
483
+ attr_reader markdown: MarkdownResult?
484
+ attr_reader extracted_data: String?
485
+ attr_reader extraction_meta: ExtractionMeta?
486
+ attr_reader screenshot_base64: String?
487
+ attr_reader downloaded_document: DownloadedDocument?
488
+ attr_reader browser: BrowserExtras?
489
+ attr_reader ssrf_refused_urls: Array[String]
490
+
491
+ def initialize: (?status_code: Integer, ?final_url: String, ?content_type: String, ?html: String, ?body_size: Integer, ?metadata: PageMetadata, ?links: Array[LinkInfo], ?images: Array[ImageInfo], ?feeds: Array[FeedInfo], ?json_ld: Array[JsonLdEntry], ?is_allowed: bool, ?crawl_delay: Integer, ?noindex_detected: bool, ?nofollow_detected: bool, ?x_robots_tag: String, ?is_pdf: bool, ?was_skipped: bool, ?detected_charset: String, ?auth_header_sent: bool, ?response_meta: ResponseMeta, ?assets: Array[DownloadedAsset], ?js_render_hint: bool, ?browser_used: bool, ?markdown: MarkdownResult, ?extracted_data: String, ?extraction_meta: ExtractionMeta, ?screenshot_base64: String, ?downloaded_document: DownloadedDocument, ?browser: BrowserExtras, ?ssrf_refused_urls: Array[String]) -> void
492
+ end
493
+
494
+ class SitemapUrl
495
+ attr_reader url: String
496
+ attr_reader lastmod: String?
497
+ attr_reader changefreq: String?
498
+ attr_reader priority: String?
499
+
500
+ def initialize: (?url: String, ?lastmod: String, ?changefreq: String, ?priority: String) -> void
501
+ end
502
+
503
+ class SsrfPolicy
504
+ attr_reader deny_private: bool
505
+ attr_reader allowlist: Array[HostMatcher]
506
+ attr_reader denylist: Array[HostMatcher]
507
+ attr_reader max_redirects: Integer
508
+ attr_reader scheme_allowlist: Array[String]
509
+
510
+ def initialize: (?deny_private: bool, ?allowlist: Array[HostMatcher], ?denylist: Array[HostMatcher], ?max_redirects: Integer, ?scheme_allowlist: Array[String]) -> void
511
+ end
512
+
513
+ type enum_AssetCategory = :document | :image | :audio | :video | :font | :stylesheet | :script | :archive | :data | :other
514
+
515
+ class AuthConfig
516
+ end
517
+
518
+ type enum_BrowserBackend = :chromiumoxide | :native
519
+
520
+ type enum_BrowserMode = :auto | :always | :never | :stealth
521
+
522
+ type enum_BrowserWait = :network_idle | :selector | :fixed
523
+
524
+ type enum_ContentFilterKind = :bm25
525
+
526
+ class CrawlEvent
527
+ end
528
+
529
+ type enum_CrawlStrategyKind = :bfs | :dfs | :best_first | :adaptive
530
+
531
+ type enum_DocumentContentEncoding = :base64
532
+
533
+ type enum_FeedType = :rss | :atom | :json_feed
534
+
535
+ class HostMatcher
536
+ end
537
+
538
+ type enum_ImageSource = :img | :picture_source | :"og:image" | :"twitter:image"
539
+
540
+ type enum_LinkType = :internal | :external | :anchor | :document
541
+
542
+ class PageAction
543
+ end
544
+
545
+ type enum_ScrollDirection = :up | :down
546
+
547
+ def self.batch_crawl: (CrawlEngineHandle engine, Array[String] urls) -> BatchCrawlResults
548
+
549
+ def self.batch_scrape: (CrawlEngineHandle engine, Array[String] urls) -> BatchScrapeResults
550
+
551
+ def self.crawl: (CrawlEngineHandle engine, String url) -> CrawlResult
552
+
553
+ def self.create_engine: (?CrawlConfig config) -> CrawlEngineHandle
554
+
555
+ def self.generate_citations: (String markdown) -> CitationResult
556
+
557
+ def self.interact: (CrawlEngineHandle engine, String url, Array[PageAction] actions) -> InteractionResult
558
+
559
+ def self.map_urls: (CrawlEngineHandle engine, String url) -> MapResult
560
+
561
+ def self.scrape: (CrawlEngineHandle engine, String url) -> ScrapeResult
562
+
563
+ end
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: crawlberg
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.11.0
5
+ platform: x86_64-linux
6
+ authors:
7
+ - Na'aman Hirschfeld
8
+ - Tobias Perlstein
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2026-10-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rb_sys
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 0.9.130
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '0.10'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: 0.9.130
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.10'
34
+ - !ruby/object:Gem::Dependency
35
+ name: sorbet-runtime
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.6'
41
+ type: :runtime
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.6'
48
+ description: High-performance web crawling engine
49
+ email:
50
+ - naaman@xberg.io
51
+ - tobias@xberg.io
52
+ executables: []
53
+ extensions: []
54
+ extra_rdoc_files: []
55
+ files:
56
+ - LICENSE
57
+ - README.md
58
+ - Steepfile
59
+ - ext/crawlberg_rb/native/Cargo.lock
60
+ - ext/crawlberg_rb/native/Cargo.toml
61
+ - ext/crawlberg_rb/native/extconf.rb
62
+ - ext/crawlberg_rb/src/lib.rs
63
+ - lib/crawlberg.rb
64
+ - lib/crawlberg/native.rb
65
+ - lib/crawlberg/version.rb
66
+ - lib/crawlberg_rb/3.3.0/crawlberg_rb.so
67
+ - sig/types.rbs
68
+ homepage: https://github.com/xberg-io/crawlberg
69
+ licenses:
70
+ - MIT
71
+ metadata:
72
+ keywords: crawl,scrape,spider,web
73
+ rubygems_mfa_required: 'true'
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '3.3'
83
+ - - "<"
84
+ - !ruby/object:Gem::Version
85
+ version: '3.4'
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ requirements: []
92
+ rubygems_version: 3.5.22
93
+ signing_key:
94
+ specification_version: 4
95
+ summary: High-performance web crawling engine
96
+ test_files: []