brand.dev 0.25.0 → 0.26.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/brand_dev/models/brand_web_scrape_html_params.rb +22 -0
  5. data/lib/brand_dev/models/brand_web_scrape_html_response.rb +45 -0
  6. data/lib/brand_dev/models/brand_web_scrape_images_params.rb +22 -0
  7. data/lib/brand_dev/models/brand_web_scrape_images_response.rb +111 -0
  8. data/lib/brand_dev/models/brand_web_scrape_md_params.rb +42 -0
  9. data/lib/brand_dev/models/brand_web_scrape_md_response.rb +45 -0
  10. data/lib/brand_dev/models/brand_web_scrape_sitemap_params.rb +26 -0
  11. data/lib/brand_dev/models/brand_web_scrape_sitemap_response.rb +91 -0
  12. data/lib/brand_dev/models.rb +8 -0
  13. data/lib/brand_dev/resources/brand.rb +105 -0
  14. data/lib/brand_dev/version.rb +1 -1
  15. data/lib/brand_dev.rb +8 -0
  16. data/rbi/brand_dev/models/brand_web_scrape_html_params.rbi +40 -0
  17. data/rbi/brand_dev/models/brand_web_scrape_html_response.rbi +92 -0
  18. data/rbi/brand_dev/models/brand_web_scrape_images_params.rbi +43 -0
  19. data/rbi/brand_dev/models/brand_web_scrape_images_response.rbi +259 -0
  20. data/rbi/brand_dev/models/brand_web_scrape_md_params.rbi +67 -0
  21. data/rbi/brand_dev/models/brand_web_scrape_md_response.rbi +92 -0
  22. data/rbi/brand_dev/models/brand_web_scrape_sitemap_params.rbi +45 -0
  23. data/rbi/brand_dev/models/brand_web_scrape_sitemap_response.rbi +167 -0
  24. data/rbi/brand_dev/models.rbi +8 -0
  25. data/rbi/brand_dev/resources/brand.rbi +71 -0
  26. data/sig/brand_dev/models/brand_web_scrape_html_params.rbs +20 -0
  27. data/sig/brand_dev/models/brand_web_scrape_html_response.rbs +40 -0
  28. data/sig/brand_dev/models/brand_web_scrape_images_params.rbs +20 -0
  29. data/sig/brand_dev/models/brand_web_scrape_images_response.rbs +98 -0
  30. data/sig/brand_dev/models/brand_web_scrape_md_params.rbs +36 -0
  31. data/sig/brand_dev/models/brand_web_scrape_md_response.rbs +40 -0
  32. data/sig/brand_dev/models/brand_web_scrape_sitemap_params.rbs +23 -0
  33. data/sig/brand_dev/models/brand_web_scrape_sitemap_response.rbs +77 -0
  34. data/sig/brand_dev/models.rbs +8 -0
  35. data/sig/brand_dev/resources/brand.rbs +22 -0
  36. metadata +26 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 586503b2436acd1a836fdd867ebaf4258c5cb928320defd1b62b70c712439bc8
4
- data.tar.gz: 3adcd4f046fd0a5d7ee98a6ee2367191e1925a3549a0a8a4b779d876d1c2fe72
3
+ metadata.gz: da2f382bfc60d07b03395142e31176eb88b2640e8a5eb2aa6f83156464d409ae
4
+ data.tar.gz: e8f182c0ae6057bce6ad230ccb2e36a6dfec2c1723e5135a2e5ada98841d7f28
5
5
  SHA512:
6
- metadata.gz: 96a199073279aa10b42f908a1fc3705290eebb271559fd8249bfdb2d8cd157dbd32fdb177381139ebed4bc2b6154f6e1b251c6e4278f6f19091c0321d3408063
7
- data.tar.gz: cb915b6992b9ab682c0a0ebec5b11d7245f18c18e23fbf649bd19595157733f99e5d68763b37e2443572fa9911fe32d4f406d3a72e173035a7342a17aafc56ac
6
+ metadata.gz: d7d6d1ffebf9c3cf4e7c5e1a2ff28278fde05b607679987c0d91ca6d0809919bdae6deb4ff39abda7e4f87dfaec83505f6cd4948632fab18e45ee711a5946a1c
7
+ data.tar.gz: 958e744b9d622e3c0f36f4cac53681a8bb85f3a4090b2e827b9e15d9b53f71cca873b916fda66a9eb931bb9626ced4f9314be30740d087b0aa32040c359066ae
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.26.0 (2026-02-23)
4
+
5
+ Full Changelog: [v0.25.0...v0.26.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.25.0...v0.26.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** manual updates ([bfe9b29](https://github.com/brand-dot-dev/ruby-sdk/commit/bfe9b298f2c51f4d2762da550344251c2b0b7256))
10
+
3
11
  ## 0.25.0 (2026-02-22)
4
12
 
5
13
  Full Changelog: [v0.24.0...v0.25.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.24.0...v0.25.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "brand.dev", "~> 0.25.0"
29
+ gem "brand.dev", "~> 0.26.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_html
6
+ class BrandWebScrapeHTMLParams < BrandDev::Internal::Type::BaseModel
7
+ extend BrandDev::Internal::Type::RequestParameters::Converter
8
+ include BrandDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute url
11
+ # Full URL to scrape (must include http:// or https:// protocol)
12
+ #
13
+ # @return [String]
14
+ required :url, String
15
+
16
+ # @!method initialize(url:, request_options: {})
17
+ # @param url [String] Full URL to scrape (must include http:// or https:// protocol)
18
+ #
19
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_html
6
+ class BrandWebScrapeHTMLResponse < BrandDev::Internal::Type::BaseModel
7
+ # @!attribute html
8
+ # Raw HTML content of the page
9
+ #
10
+ # @return [String]
11
+ required :html, String
12
+
13
+ # @!attribute success
14
+ # Indicates success
15
+ #
16
+ # @return [Boolean, BrandDev::Models::BrandWebScrapeHTMLResponse::Success]
17
+ required :success, enum: -> { BrandDev::Models::BrandWebScrapeHTMLResponse::Success }
18
+
19
+ # @!attribute url
20
+ # The URL that was scraped
21
+ #
22
+ # @return [String]
23
+ required :url, String
24
+
25
+ # @!method initialize(html:, success:, url:)
26
+ # @param html [String] Raw HTML content of the page
27
+ #
28
+ # @param success [Boolean, BrandDev::Models::BrandWebScrapeHTMLResponse::Success] Indicates success
29
+ #
30
+ # @param url [String] The URL that was scraped
31
+
32
+ # Indicates success
33
+ #
34
+ # @see BrandDev::Models::BrandWebScrapeHTMLResponse#success
35
+ module Success
36
+ extend BrandDev::Internal::Type::Enum
37
+
38
+ TRUE = true
39
+
40
+ # @!method self.values
41
+ # @return [Array<Boolean>]
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_images
6
+ class BrandWebScrapeImagesParams < BrandDev::Internal::Type::BaseModel
7
+ extend BrandDev::Internal::Type::RequestParameters::Converter
8
+ include BrandDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute url
11
+ # Full URL to scrape images from (must include http:// or https:// protocol)
12
+ #
13
+ # @return [String]
14
+ required :url, String
15
+
16
+ # @!method initialize(url:, request_options: {})
17
+ # @param url [String] Full URL to scrape images from (must include http:// or https:// protocol)
18
+ #
19
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_images
6
+ class BrandWebScrapeImagesResponse < BrandDev::Internal::Type::BaseModel
7
+ # @!attribute images
8
+ # Array of scraped images
9
+ #
10
+ # @return [Array<BrandDev::Models::BrandWebScrapeImagesResponse::Image>]
11
+ required :images,
12
+ -> { BrandDev::Internal::Type::ArrayOf[BrandDev::Models::BrandWebScrapeImagesResponse::Image] }
13
+
14
+ # @!attribute success
15
+ # Indicates success
16
+ #
17
+ # @return [Boolean, BrandDev::Models::BrandWebScrapeImagesResponse::Success]
18
+ required :success, enum: -> { BrandDev::Models::BrandWebScrapeImagesResponse::Success }
19
+
20
+ # @!attribute url
21
+ # The URL that was scraped
22
+ #
23
+ # @return [String]
24
+ required :url, String
25
+
26
+ # @!method initialize(images:, success:, url:)
27
+ # @param images [Array<BrandDev::Models::BrandWebScrapeImagesResponse::Image>] Array of scraped images
28
+ #
29
+ # @param success [Boolean, BrandDev::Models::BrandWebScrapeImagesResponse::Success] Indicates success
30
+ #
31
+ # @param url [String] The URL that was scraped
32
+
33
+ class Image < BrandDev::Internal::Type::BaseModel
34
+ # @!attribute alt
35
+ # Alt text of the image, or null if not present
36
+ #
37
+ # @return [String, nil]
38
+ required :alt, String, nil?: true
39
+
40
+ # @!attribute element
41
+ # The HTML element the image was found in
42
+ #
43
+ # @return [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Element]
44
+ required :element, enum: -> { BrandDev::Models::BrandWebScrapeImagesResponse::Image::Element }
45
+
46
+ # @!attribute src
47
+ # The image source - can be a URL, inline HTML (for SVGs), or a base64 data URI
48
+ #
49
+ # @return [String]
50
+ required :src, String
51
+
52
+ # @!attribute type
53
+ # The type/format of the src value
54
+ #
55
+ # @return [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Type]
56
+ required :type, enum: -> { BrandDev::Models::BrandWebScrapeImagesResponse::Image::Type }
57
+
58
+ # @!method initialize(alt:, element:, src:, type:)
59
+ # @param alt [String, nil] Alt text of the image, or null if not present
60
+ #
61
+ # @param element [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Element] The HTML element the image was found in
62
+ #
63
+ # @param src [String] The image source - can be a URL, inline HTML (for SVGs), or a base64 data URI
64
+ #
65
+ # @param type [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Type] The type/format of the src value
66
+
67
+ # The HTML element the image was found in
68
+ #
69
+ # @see BrandDev::Models::BrandWebScrapeImagesResponse::Image#element
70
+ module Element
71
+ extend BrandDev::Internal::Type::Enum
72
+
73
+ IMG = :img
74
+ SVG = :svg
75
+ LINK = :link
76
+ SOURCE = :source
77
+ VIDEO = :video
78
+
79
+ # @!method self.values
80
+ # @return [Array<Symbol>]
81
+ end
82
+
83
+ # The type/format of the src value
84
+ #
85
+ # @see BrandDev::Models::BrandWebScrapeImagesResponse::Image#type
86
+ module Type
87
+ extend BrandDev::Internal::Type::Enum
88
+
89
+ URL = :url
90
+ HTML = :html
91
+ BASE64 = :base64
92
+
93
+ # @!method self.values
94
+ # @return [Array<Symbol>]
95
+ end
96
+ end
97
+
98
+ # Indicates success
99
+ #
100
+ # @see BrandDev::Models::BrandWebScrapeImagesResponse#success
101
+ module Success
102
+ extend BrandDev::Internal::Type::Enum
103
+
104
+ TRUE = true
105
+
106
+ # @!method self.values
107
+ # @return [Array<Boolean>]
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_md
6
+ class BrandWebScrapeMdParams < BrandDev::Internal::Type::BaseModel
7
+ extend BrandDev::Internal::Type::RequestParameters::Converter
8
+ include BrandDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute url
11
+ # Full URL to scrape and convert to markdown (must include http:// or https://
12
+ # protocol)
13
+ #
14
+ # @return [String]
15
+ required :url, String
16
+
17
+ # @!attribute include_images
18
+ # Include image references in Markdown output
19
+ #
20
+ # @return [Boolean, nil]
21
+ optional :include_images, BrandDev::Internal::Type::Boolean
22
+
23
+ # @!attribute include_links
24
+ # Preserve hyperlinks in Markdown output
25
+ #
26
+ # @return [Boolean, nil]
27
+ optional :include_links, BrandDev::Internal::Type::Boolean
28
+
29
+ # @!method initialize(url:, include_images: nil, include_links: nil, request_options: {})
30
+ # Some parameter documentations has been truncated, see
31
+ # {BrandDev::Models::BrandWebScrapeMdParams} for more details.
32
+ #
33
+ # @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro
34
+ #
35
+ # @param include_images [Boolean] Include image references in Markdown output
36
+ #
37
+ # @param include_links [Boolean] Preserve hyperlinks in Markdown output
38
+ #
39
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_md
6
+ class BrandWebScrapeMdResponse < BrandDev::Internal::Type::BaseModel
7
+ # @!attribute markdown
8
+ # Page content converted to GitHub Flavored Markdown
9
+ #
10
+ # @return [String]
11
+ required :markdown, String
12
+
13
+ # @!attribute success
14
+ # Indicates success
15
+ #
16
+ # @return [Boolean, BrandDev::Models::BrandWebScrapeMdResponse::Success]
17
+ required :success, enum: -> { BrandDev::Models::BrandWebScrapeMdResponse::Success }
18
+
19
+ # @!attribute url
20
+ # The URL that was scraped
21
+ #
22
+ # @return [String]
23
+ required :url, String
24
+
25
+ # @!method initialize(markdown:, success:, url:)
26
+ # @param markdown [String] Page content converted to GitHub Flavored Markdown
27
+ #
28
+ # @param success [Boolean, BrandDev::Models::BrandWebScrapeMdResponse::Success] Indicates success
29
+ #
30
+ # @param url [String] The URL that was scraped
31
+
32
+ # Indicates success
33
+ #
34
+ # @see BrandDev::Models::BrandWebScrapeMdResponse#success
35
+ module Success
36
+ extend BrandDev::Internal::Type::Enum
37
+
38
+ TRUE = true
39
+
40
+ # @!method self.values
41
+ # @return [Array<Boolean>]
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_sitemap
6
+ class BrandWebScrapeSitemapParams < BrandDev::Internal::Type::BaseModel
7
+ extend BrandDev::Internal::Type::RequestParameters::Converter
8
+ include BrandDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute domain
11
+ # Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be
12
+ # automatically normalized and validated.
13
+ #
14
+ # @return [String]
15
+ required :domain, String
16
+
17
+ # @!method initialize(domain:, request_options: {})
18
+ # Some parameter documentations has been truncated, see
19
+ # {BrandDev::Models::BrandWebScrapeSitemapParams} for more details.
20
+ #
21
+ # @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto
22
+ #
23
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#web_scrape_sitemap
6
+ class BrandWebScrapeSitemapResponse < BrandDev::Internal::Type::BaseModel
7
+ # @!attribute domain
8
+ # The normalized domain that was crawled
9
+ #
10
+ # @return [String]
11
+ required :domain, String
12
+
13
+ # @!attribute meta
14
+ # Metadata about the sitemap crawl operation
15
+ #
16
+ # @return [BrandDev::Models::BrandWebScrapeSitemapResponse::Meta]
17
+ required :meta, -> { BrandDev::Models::BrandWebScrapeSitemapResponse::Meta }
18
+
19
+ # @!attribute success
20
+ # Indicates success
21
+ #
22
+ # @return [Boolean, BrandDev::Models::BrandWebScrapeSitemapResponse::Success]
23
+ required :success, enum: -> { BrandDev::Models::BrandWebScrapeSitemapResponse::Success }
24
+
25
+ # @!attribute urls
26
+ # Array of discovered page URLs from the sitemap (max 500)
27
+ #
28
+ # @return [Array<String>]
29
+ required :urls, BrandDev::Internal::Type::ArrayOf[String]
30
+
31
+ # @!method initialize(domain:, meta:, success:, urls:)
32
+ # @param domain [String] The normalized domain that was crawled
33
+ #
34
+ # @param meta [BrandDev::Models::BrandWebScrapeSitemapResponse::Meta] Metadata about the sitemap crawl operation
35
+ #
36
+ # @param success [Boolean, BrandDev::Models::BrandWebScrapeSitemapResponse::Success] Indicates success
37
+ #
38
+ # @param urls [Array<String>] Array of discovered page URLs from the sitemap (max 500)
39
+
40
+ # @see BrandDev::Models::BrandWebScrapeSitemapResponse#meta
41
+ class Meta < BrandDev::Internal::Type::BaseModel
42
+ # @!attribute errors
43
+ # Number of errors encountered during crawling
44
+ #
45
+ # @return [Integer]
46
+ required :errors, Integer
47
+
48
+ # @!attribute sitemaps_discovered
49
+ # Total number of sitemap files discovered
50
+ #
51
+ # @return [Integer]
52
+ required :sitemaps_discovered, Integer, api_name: :sitemapsDiscovered
53
+
54
+ # @!attribute sitemaps_fetched
55
+ # Number of sitemap files successfully fetched and parsed
56
+ #
57
+ # @return [Integer]
58
+ required :sitemaps_fetched, Integer, api_name: :sitemapsFetched
59
+
60
+ # @!attribute sitemaps_skipped
61
+ # Number of sitemap files skipped (due to errors, timeouts, or limits)
62
+ #
63
+ # @return [Integer]
64
+ required :sitemaps_skipped, Integer, api_name: :sitemapsSkipped
65
+
66
+ # @!method initialize(errors:, sitemaps_discovered:, sitemaps_fetched:, sitemaps_skipped:)
67
+ # Metadata about the sitemap crawl operation
68
+ #
69
+ # @param errors [Integer] Number of errors encountered during crawling
70
+ #
71
+ # @param sitemaps_discovered [Integer] Total number of sitemap files discovered
72
+ #
73
+ # @param sitemaps_fetched [Integer] Number of sitemap files successfully fetched and parsed
74
+ #
75
+ # @param sitemaps_skipped [Integer] Number of sitemap files skipped (due to errors, timeouts, or limits)
76
+ end
77
+
78
+ # Indicates success
79
+ #
80
+ # @see BrandDev::Models::BrandWebScrapeSitemapResponse#success
81
+ module Success
82
+ extend BrandDev::Internal::Type::Enum
83
+
84
+ TRUE = true
85
+
86
+ # @!method self.values
87
+ # @return [Array<Boolean>]
88
+ end
89
+ end
90
+ end
91
+ end
@@ -70,4 +70,12 @@ module BrandDev
70
70
  BrandScreenshotParams = BrandDev::Models::BrandScreenshotParams
71
71
 
72
72
  BrandStyleguideParams = BrandDev::Models::BrandStyleguideParams
73
+
74
+ BrandWebScrapeHTMLParams = BrandDev::Models::BrandWebScrapeHTMLParams
75
+
76
+ BrandWebScrapeImagesParams = BrandDev::Models::BrandWebScrapeImagesParams
77
+
78
+ BrandWebScrapeMdParams = BrandDev::Models::BrandWebScrapeMdParams
79
+
80
+ BrandWebScrapeSitemapParams = BrandDev::Models::BrandWebScrapeSitemapParams
73
81
  end
@@ -521,6 +521,111 @@ module BrandDev
521
521
  )
522
522
  end
523
523
 
524
+ # Scrapes the given URL and returns the raw HTML content of the page. Uses
525
+ # automatic proxy escalation to handle blocked sites.
526
+ #
527
+ # @overload web_scrape_html(url:, request_options: {})
528
+ #
529
+ # @param url [String] Full URL to scrape (must include http:// or https:// protocol)
530
+ #
531
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
532
+ #
533
+ # @return [BrandDev::Models::BrandWebScrapeHTMLResponse]
534
+ #
535
+ # @see BrandDev::Models::BrandWebScrapeHTMLParams
536
+ def web_scrape_html(params)
537
+ parsed, options = BrandDev::BrandWebScrapeHTMLParams.dump_request(params)
538
+ @client.request(
539
+ method: :get,
540
+ path: "web/scrape/html",
541
+ query: parsed,
542
+ model: BrandDev::Models::BrandWebScrapeHTMLResponse,
543
+ options: options
544
+ )
545
+ end
546
+
547
+ # Scrapes all images from the given URL. Extracts images from img, svg,
548
+ # picture/source, link, and video elements including inline SVGs, base64 data
549
+ # URIs, and standard URLs.
550
+ #
551
+ # @overload web_scrape_images(url:, request_options: {})
552
+ #
553
+ # @param url [String] Full URL to scrape images from (must include http:// or https:// protocol)
554
+ #
555
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
556
+ #
557
+ # @return [BrandDev::Models::BrandWebScrapeImagesResponse]
558
+ #
559
+ # @see BrandDev::Models::BrandWebScrapeImagesParams
560
+ def web_scrape_images(params)
561
+ parsed, options = BrandDev::BrandWebScrapeImagesParams.dump_request(params)
562
+ @client.request(
563
+ method: :get,
564
+ path: "web/scrape/images",
565
+ query: parsed,
566
+ model: BrandDev::Models::BrandWebScrapeImagesResponse,
567
+ options: options
568
+ )
569
+ end
570
+
571
+ # Some parameter documentations has been truncated, see
572
+ # {BrandDev::Models::BrandWebScrapeMdParams} for more details.
573
+ #
574
+ # Scrapes the given URL, converts the HTML content to GitHub Flavored Markdown
575
+ # (GFM), and returns the result. Uses automatic proxy escalation to handle blocked
576
+ # sites.
577
+ #
578
+ # @overload web_scrape_md(url:, include_images: nil, include_links: nil, request_options: {})
579
+ #
580
+ # @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro
581
+ #
582
+ # @param include_images [Boolean] Include image references in Markdown output
583
+ #
584
+ # @param include_links [Boolean] Preserve hyperlinks in Markdown output
585
+ #
586
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
587
+ #
588
+ # @return [BrandDev::Models::BrandWebScrapeMdResponse]
589
+ #
590
+ # @see BrandDev::Models::BrandWebScrapeMdParams
591
+ def web_scrape_md(params)
592
+ parsed, options = BrandDev::BrandWebScrapeMdParams.dump_request(params)
593
+ @client.request(
594
+ method: :get,
595
+ path: "web/scrape/markdown",
596
+ query: parsed.transform_keys(include_images: "includeImages", include_links: "includeLinks"),
597
+ model: BrandDev::Models::BrandWebScrapeMdResponse,
598
+ options: options
599
+ )
600
+ end
601
+
602
+ # Some parameter documentations has been truncated, see
603
+ # {BrandDev::Models::BrandWebScrapeSitemapParams} for more details.
604
+ #
605
+ # Crawls the sitemap of the given domain and returns all discovered page URLs.
606
+ # Supports sitemap index files (recursive), parallel fetching with concurrency
607
+ # control, deduplication, and filters out non-page resources (images, PDFs, etc.).
608
+ #
609
+ # @overload web_scrape_sitemap(domain:, request_options: {})
610
+ #
611
+ # @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto
612
+ #
613
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
614
+ #
615
+ # @return [BrandDev::Models::BrandWebScrapeSitemapResponse]
616
+ #
617
+ # @see BrandDev::Models::BrandWebScrapeSitemapParams
618
+ def web_scrape_sitemap(params)
619
+ parsed, options = BrandDev::BrandWebScrapeSitemapParams.dump_request(params)
620
+ @client.request(
621
+ method: :get,
622
+ path: "web/scrape/sitemap",
623
+ query: parsed,
624
+ model: BrandDev::Models::BrandWebScrapeSitemapResponse,
625
+ options: options
626
+ )
627
+ end
628
+
524
629
  # @api private
525
630
  #
526
631
  # @param client [BrandDev::Client]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrandDev
4
- VERSION = "0.25.0"
4
+ VERSION = "0.26.0"
5
5
  end
data/lib/brand_dev.rb CHANGED
@@ -84,5 +84,13 @@ require_relative "brand_dev/models/brand_screenshot_params"
84
84
  require_relative "brand_dev/models/brand_screenshot_response"
85
85
  require_relative "brand_dev/models/brand_styleguide_params"
86
86
  require_relative "brand_dev/models/brand_styleguide_response"
87
+ require_relative "brand_dev/models/brand_web_scrape_html_params"
88
+ require_relative "brand_dev/models/brand_web_scrape_html_response"
89
+ require_relative "brand_dev/models/brand_web_scrape_images_params"
90
+ require_relative "brand_dev/models/brand_web_scrape_images_response"
91
+ require_relative "brand_dev/models/brand_web_scrape_md_params"
92
+ require_relative "brand_dev/models/brand_web_scrape_md_response"
93
+ require_relative "brand_dev/models/brand_web_scrape_sitemap_params"
94
+ require_relative "brand_dev/models/brand_web_scrape_sitemap_response"
87
95
  require_relative "brand_dev/models"
88
96
  require_relative "brand_dev/resources/brand"
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module BrandDev
4
+ module Models
5
+ class BrandWebScrapeHTMLParams < BrandDev::Internal::Type::BaseModel
6
+ extend BrandDev::Internal::Type::RequestParameters::Converter
7
+ include BrandDev::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(BrandDev::BrandWebScrapeHTMLParams, BrandDev::Internal::AnyHash)
12
+ end
13
+
14
+ # Full URL to scrape (must include http:// or https:// protocol)
15
+ sig { returns(String) }
16
+ attr_accessor :url
17
+
18
+ sig do
19
+ params(
20
+ url: String,
21
+ request_options: BrandDev::RequestOptions::OrHash
22
+ ).returns(T.attached_class)
23
+ end
24
+ def self.new(
25
+ # Full URL to scrape (must include http:// or https:// protocol)
26
+ url:,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ sig do
32
+ override.returns(
33
+ { url: String, request_options: BrandDev::RequestOptions }
34
+ )
35
+ end
36
+ def to_hash
37
+ end
38
+ end
39
+ end
40
+ end