brand.dev 0.27.0 → 0.28.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 352acbb6668a328d87a316a4dba30616f02c7d1d7fcf472df6bb0109d9befdb1
4
- data.tar.gz: 155f0018fd308c55dead3ef2ea0850085d21ded6920a9ae9c2f9229a2a527cd3
3
+ metadata.gz: 627fe92d0bc7ddf8f90668f8fea94981c87b86f44e07050a3bb502f3e8448a28
4
+ data.tar.gz: 5438f2a94d3e45e69ce0705e3014f57a81d3d8be04b691b7fbbee2df654aa650
5
5
  SHA512:
6
- metadata.gz: 1f0a1068ce78f873ff484541d3a482de10824e093a4e70ee4df02804e3be6e02d2b5850bece4540b5519e92cd365af87a93b05d2b6fce9d315131d0fce525c02
7
- data.tar.gz: e91395f9bb9671f7346e2e3dc0cc5d1e5a6a3b86ff28bd6eba0d03d3e8e546acce9dc8dc43b629f9fd7dc6dd9ea39503e64a3d29202e92bc3bbd3de049268aa1
6
+ metadata.gz: 3a0f9f9a79e2bc86585a334051744d31f9c28b2ecd13e99829aee645721a73e3d01a722d0d6254962c817e89ad9a30a85c5e18bc0908491805e0649928df9205
7
+ data.tar.gz: 2e4605272ec70e7a65eb6b6be89b3337bbb1b6fc10daac89d730f23e544177b9352f49f187b3dbc7f3d3d7f1bd440f14ddf96f14cdbe31b4aab144a21b13395a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.28.1 (2026-03-06)
4
+
5
+ Full Changelog: [v0.28.0...v0.28.1](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.28.0...v0.28.1)
6
+
7
+ ### Chores
8
+
9
+ * **ci:** add build step ([b2d8fd1](https://github.com/brand-dot-dev/ruby-sdk/commit/b2d8fd1f17caeda7ab95d69ba33f7ad2a4848f55))
10
+ * **internal:** codegen related update ([f199738](https://github.com/brand-dot-dev/ruby-sdk/commit/f199738e587d42fef1acb3891f4ef9e71f365f6b))
11
+ * **internal:** codegen related update ([e55e75e](https://github.com/brand-dot-dev/ruby-sdk/commit/e55e75ed640d0deacbc1503eca4e12eb4e6c4131))
12
+
13
+ ## 0.28.0 (2026-03-01)
14
+
15
+ Full Changelog: [v0.27.0...v0.28.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.27.0...v0.28.0)
16
+
17
+ ### Features
18
+
19
+ * **api:** api update ([e331b46](https://github.com/brand-dot-dev/ruby-sdk/commit/e331b462ba84b3bf7e1415b30446dd0415fefd8e))
20
+ * **api:** api update ([2a8660e](https://github.com/brand-dot-dev/ruby-sdk/commit/2a8660ed1f64a46657919b4d7cd314ea47e4d8c6))
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * properly mock time in ruby ci tests ([3d3021f](https://github.com/brand-dot-dev/ruby-sdk/commit/3d3021f8b4b775084459fa5559e9dec7d856b4be))
26
+
3
27
  ## 0.27.0 (2026-02-24)
4
28
 
5
29
  Full Changelog: [v0.26.0...v0.27.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.26.0...v0.27.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.27.0"
29
+ gem "brand.dev", "~> 0.28.1"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -490,6 +490,37 @@ module BrandDev
490
490
  JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
491
491
 
492
492
  class << self
493
+ # @api private
494
+ #
495
+ # @param query [Hash{Symbol=>Object}]
496
+ #
497
+ # @return [Hash{Symbol=>Object}]
498
+ def encode_query_params(query)
499
+ out = {}
500
+ query.each { write_query_param_element!(out, _1, _2) }
501
+ out
502
+ end
503
+
504
+ # @api private
505
+ #
506
+ # @param collection [Hash{Symbol=>Object}]
507
+ # @param key [String]
508
+ # @param element [Object]
509
+ #
510
+ # @return [nil]
511
+ private def write_query_param_element!(collection, key, element)
512
+ case element
513
+ in Hash
514
+ element.each do |name, value|
515
+ write_query_param_element!(collection, "#{key}[#{name}]", value)
516
+ end
517
+ in Array
518
+ collection[key] = element.map(&:to_s).join(",")
519
+ else
520
+ collection[key] = element.to_s
521
+ end
522
+ end
523
+
493
524
  # @api private
494
525
  #
495
526
  # @param y [Enumerator::Yielder]
@@ -7,45 +7,88 @@ module BrandDev
7
7
  extend BrandDev::Internal::Type::RequestParameters::Converter
8
8
  include BrandDev::Internal::Type::RequestParameters
9
9
 
10
- # @!attribute domain
11
- # The domain name to analyze.
10
+ # @!attribute body
12
11
  #
13
- # @return [String]
14
- required :domain, String
12
+ # @return [BrandDev::Models::BrandAIProductsParams::Body::ByDomain, BrandDev::Models::BrandAIProductsParams::Body::ByDirectURL]
13
+ required :body, union: -> { BrandDev::BrandAIProductsParams::Body }
15
14
 
16
- # @!attribute max_products
17
- # Maximum number of products to extract.
18
- #
19
- # @return [Integer, nil]
20
- optional :max_products, Integer, api_name: :maxProducts
15
+ # @!method initialize(body:, request_options: {})
16
+ # @param body [BrandDev::Models::BrandAIProductsParams::Body::ByDomain, BrandDev::Models::BrandAIProductsParams::Body::ByDirectURL]
17
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
21
18
 
22
- # @!attribute timeout_ms
23
- # Optional timeout in milliseconds for the request. Maximum allowed value is
24
- # 300000ms (5 minutes).
25
- #
26
- # @return [Integer, nil]
27
- optional :timeout_ms, Integer, api_name: :timeoutMS
19
+ module Body
20
+ extend BrandDev::Internal::Type::Union
28
21
 
29
- # @!attribute direct_url
30
- # A specific URL to use directly as the starting point for extraction without
31
- # domain resolution.
32
- #
33
- # @return [String]
34
- required :direct_url, String, api_name: :directUrl
22
+ variant -> { BrandDev::BrandAIProductsParams::Body::ByDomain }
35
23
 
36
- # @!method initialize(domain:, direct_url:, max_products: nil, timeout_ms: nil, request_options: {})
37
- # Some parameter documentations has been truncated, see
38
- # {BrandDev::Models::BrandAIProductsParams} for more details.
39
- #
40
- # @param domain [String] The domain name to analyze.
41
- #
42
- # @param direct_url [String] A specific URL to use directly as the starting point for extraction without doma
43
- #
44
- # @param max_products [Integer] Maximum number of products to extract.
45
- #
46
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. Maximum allowed value is 30000
47
- #
48
- # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
24
+ variant -> { BrandDev::BrandAIProductsParams::Body::ByDirectURL }
25
+
26
+ class ByDomain < BrandDev::Internal::Type::BaseModel
27
+ # @!attribute domain
28
+ # The domain name to analyze.
29
+ #
30
+ # @return [String]
31
+ required :domain, String
32
+
33
+ # @!attribute max_products
34
+ # Maximum number of products to extract.
35
+ #
36
+ # @return [Integer, nil]
37
+ optional :max_products, Integer, api_name: :maxProducts
38
+
39
+ # @!attribute timeout_ms
40
+ # Optional timeout in milliseconds for the request. Maximum allowed value is
41
+ # 300000ms (5 minutes).
42
+ #
43
+ # @return [Integer, nil]
44
+ optional :timeout_ms, Integer, api_name: :timeoutMS
45
+
46
+ # @!method initialize(domain:, max_products: nil, timeout_ms: nil)
47
+ # Some parameter documentations has been truncated, see
48
+ # {BrandDev::Models::BrandAIProductsParams::Body::ByDomain} for more details.
49
+ #
50
+ # @param domain [String] The domain name to analyze.
51
+ #
52
+ # @param max_products [Integer] Maximum number of products to extract.
53
+ #
54
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. Maximum allowed value is 30000
55
+ end
56
+
57
+ class ByDirectURL < BrandDev::Internal::Type::BaseModel
58
+ # @!attribute direct_url
59
+ # A specific URL to use directly as the starting point for extraction without
60
+ # domain resolution.
61
+ #
62
+ # @return [String]
63
+ required :direct_url, String, api_name: :directUrl
64
+
65
+ # @!attribute max_products
66
+ # Maximum number of products to extract.
67
+ #
68
+ # @return [Integer, nil]
69
+ optional :max_products, Integer, api_name: :maxProducts
70
+
71
+ # @!attribute timeout_ms
72
+ # Optional timeout in milliseconds for the request. Maximum allowed value is
73
+ # 300000ms (5 minutes).
74
+ #
75
+ # @return [Integer, nil]
76
+ optional :timeout_ms, Integer, api_name: :timeoutMS
77
+
78
+ # @!method initialize(direct_url:, max_products: nil, timeout_ms: nil)
79
+ # Some parameter documentations has been truncated, see
80
+ # {BrandDev::Models::BrandAIProductsParams::Body::ByDirectURL} for more details.
81
+ #
82
+ # @param direct_url [String] A specific URL to use directly as the starting point for extraction without doma
83
+ #
84
+ # @param max_products [Integer] Maximum number of products to extract.
85
+ #
86
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. Maximum allowed value is 30000
87
+ end
88
+
89
+ # @!method self.variants
90
+ # @return [Array(BrandDev::Models::BrandAIProductsParams::Body::ByDomain, BrandDev::Models::BrandAIProductsParams::Body::ByDirectURL)]
91
+ end
49
92
  end
50
93
  end
51
94
  end
@@ -32,6 +32,14 @@ module BrandDev
32
32
  # @return [Symbol, BrandDev::Models::BrandIdentifyFromTransactionParams::ForceLanguage, nil]
33
33
  optional :force_language, enum: -> { BrandDev::BrandIdentifyFromTransactionParams::ForceLanguage }
34
34
 
35
+ # @!attribute high_confidence_only
36
+ # When set to true, the API will perform an additional verification steps to
37
+ # ensure the identified brand matches the transaction with high confidence.
38
+ # Defaults to false.
39
+ #
40
+ # @return [Boolean, nil]
41
+ optional :high_confidence_only, BrandDev::Internal::Type::Boolean
42
+
35
43
  # @!attribute max_speed
36
44
  # Optional parameter to optimize the API call for maximum speed. When set to true,
37
45
  # the API will skip time-consuming operations for faster response at the cost of
@@ -61,7 +69,7 @@ module BrandDev
61
69
  # @return [Integer, nil]
62
70
  optional :timeout_ms, Integer
63
71
 
64
- # @!method initialize(transaction_info:, city: nil, country_gl: nil, force_language: nil, max_speed: nil, mcc: nil, phone: nil, timeout_ms: nil, request_options: {})
72
+ # @!method initialize(transaction_info:, city: nil, country_gl: nil, force_language: nil, high_confidence_only: nil, max_speed: nil, mcc: nil, phone: nil, timeout_ms: nil, request_options: {})
65
73
  # Some parameter documentations has been truncated, see
66
74
  # {BrandDev::Models::BrandIdentifyFromTransactionParams} for more details.
67
75
  #
@@ -73,6 +81,8 @@ module BrandDev
73
81
  #
74
82
  # @param force_language [Symbol, BrandDev::Models::BrandIdentifyFromTransactionParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
75
83
  #
84
+ # @param high_confidence_only [Boolean] When set to true, the API will perform an additional verification steps to ensur
85
+ #
76
86
  # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
77
87
  #
78
88
  # @param mcc [String] Optional Merchant Category Code (MCC) to help identify the business category/ind
@@ -26,7 +26,13 @@ module BrandDev
26
26
  # @return [Boolean, nil]
27
27
  optional :include_links, BrandDev::Internal::Type::Boolean
28
28
 
29
- # @!method initialize(url:, include_images: nil, include_links: nil, request_options: {})
29
+ # @!attribute shorten_base64_images
30
+ # Shorten base64-encoded image data in the Markdown output
31
+ #
32
+ # @return [Boolean, nil]
33
+ optional :shorten_base64_images, BrandDev::Internal::Type::Boolean
34
+
35
+ # @!method initialize(url:, include_images: nil, include_links: nil, shorten_base64_images: nil, request_options: {})
30
36
  # Some parameter documentations has been truncated, see
31
37
  # {BrandDev::Models::BrandWebScrapeMdParams} for more details.
32
38
  #
@@ -36,6 +42,8 @@ module BrandDev
36
42
  #
37
43
  # @param include_links [Boolean] Preserve hyperlinks in Markdown output
38
44
  #
45
+ # @param shorten_base64_images [Boolean] Shorten base64-encoded image data in the Markdown output
46
+ #
39
47
  # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
40
48
  end
41
49
  end
@@ -26,10 +26,11 @@ module BrandDev
26
26
  # @see BrandDev::Models::BrandRetrieveParams
27
27
  def retrieve(params)
28
28
  parsed, options = BrandDev::BrandRetrieveParams.dump_request(params)
29
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
29
30
  @client.request(
30
31
  method: :get,
31
32
  path: "brand/retrieve",
32
- query: parsed.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
33
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
33
34
  model: BrandDev::Models::BrandRetrieveResponse,
34
35
  options: options
35
36
  )
@@ -64,23 +65,13 @@ module BrandDev
64
65
  )
65
66
  end
66
67
 
67
- # Some parameter documentations has been truncated, see
68
- # {BrandDev::Models::BrandAIProductsParams} for more details.
69
- #
70
68
  # Beta feature: Extract product information from a brand's website. Brand.dev will
71
69
  # analyze the website and return a list of products with details such as name,
72
70
  # description, image, pricing, features, and more.
73
71
  #
74
- # @overload ai_products(domain:, direct_url:, max_products: nil, timeout_ms: nil, request_options: {})
75
- #
76
- # @param domain [String] The domain name to analyze.
77
- #
78
- # @param direct_url [String] A specific URL to use directly as the starting point for extraction without doma
79
- #
80
- # @param max_products [Integer] Maximum number of products to extract.
81
- #
82
- # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. Maximum allowed value is 30000
72
+ # @overload ai_products(body:, request_options: {})
83
73
  #
74
+ # @param body [BrandDev::Models::BrandAIProductsParams::Body::ByDomain, BrandDev::Models::BrandAIProductsParams::Body::ByDirectURL]
84
75
  # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
85
76
  #
86
77
  # @return [BrandDev::Models::BrandAIProductsResponse]
@@ -91,7 +82,7 @@ module BrandDev
91
82
  @client.request(
92
83
  method: :post,
93
84
  path: "brand/ai/products",
94
- body: parsed,
85
+ body: parsed[:body],
95
86
  model: BrandDev::Models::BrandAIProductsResponse,
96
87
  options: options
97
88
  )
@@ -149,10 +140,11 @@ module BrandDev
149
140
  # @see BrandDev::Models::BrandFontsParams
150
141
  def fonts(params)
151
142
  parsed, options = BrandDev::BrandFontsParams.dump_request(params)
143
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
152
144
  @client.request(
153
145
  method: :get,
154
146
  path: "brand/fonts",
155
- query: parsed.transform_keys(timeout_ms: "timeoutMS"),
147
+ query: query.transform_keys(timeout_ms: "timeoutMS"),
156
148
  model: BrandDev::Models::BrandFontsResponse,
157
149
  options: options
158
150
  )
@@ -164,7 +156,7 @@ module BrandDev
164
156
  # Endpoint specially designed for platforms that want to identify transaction data
165
157
  # by the transaction title.
166
158
  #
167
- # @overload identify_from_transaction(transaction_info:, city: nil, country_gl: nil, force_language: nil, max_speed: nil, mcc: nil, phone: nil, timeout_ms: nil, request_options: {})
159
+ # @overload identify_from_transaction(transaction_info:, city: nil, country_gl: nil, force_language: nil, high_confidence_only: nil, max_speed: nil, mcc: nil, phone: nil, timeout_ms: nil, request_options: {})
168
160
  #
169
161
  # @param transaction_info [String] Transaction information to identify the brand
170
162
  #
@@ -174,6 +166,8 @@ module BrandDev
174
166
  #
175
167
  # @param force_language [Symbol, BrandDev::Models::BrandIdentifyFromTransactionParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data.
176
168
  #
169
+ # @param high_confidence_only [Boolean] When set to true, the API will perform an additional verification steps to ensur
170
+ #
177
171
  # @param max_speed [Boolean] Optional parameter to optimize the API call for maximum speed. When set to true,
178
172
  #
179
173
  # @param mcc [String] Optional Merchant Category Code (MCC) to help identify the business category/ind
@@ -189,10 +183,11 @@ module BrandDev
189
183
  # @see BrandDev::Models::BrandIdentifyFromTransactionParams
190
184
  def identify_from_transaction(params)
191
185
  parsed, options = BrandDev::BrandIdentifyFromTransactionParams.dump_request(params)
186
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
192
187
  @client.request(
193
188
  method: :get,
194
189
  path: "brand/transaction_identifier",
195
- query: parsed.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
190
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
196
191
  model: BrandDev::Models::BrandIdentifyFromTransactionResponse,
197
192
  options: options
198
193
  )
@@ -285,10 +280,11 @@ module BrandDev
285
280
  # @see BrandDev::Models::BrandRetrieveByEmailParams
286
281
  def retrieve_by_email(params)
287
282
  parsed, options = BrandDev::BrandRetrieveByEmailParams.dump_request(params)
283
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
288
284
  @client.request(
289
285
  method: :get,
290
286
  path: "brand/retrieve-by-email",
291
- query: parsed.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
287
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
292
288
  model: BrandDev::Models::BrandRetrieveByEmailResponse,
293
289
  options: options
294
290
  )
@@ -318,10 +314,11 @@ module BrandDev
318
314
  # @see BrandDev::Models::BrandRetrieveByIsinParams
319
315
  def retrieve_by_isin(params)
320
316
  parsed, options = BrandDev::BrandRetrieveByIsinParams.dump_request(params)
317
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
321
318
  @client.request(
322
319
  method: :get,
323
320
  path: "brand/retrieve-by-isin",
324
- query: parsed.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
321
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
325
322
  model: BrandDev::Models::BrandRetrieveByIsinResponse,
326
323
  options: options
327
324
  )
@@ -350,10 +347,11 @@ module BrandDev
350
347
  # @see BrandDev::Models::BrandRetrieveByNameParams
351
348
  def retrieve_by_name(params)
352
349
  parsed, options = BrandDev::BrandRetrieveByNameParams.dump_request(params)
350
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
353
351
  @client.request(
354
352
  method: :get,
355
353
  path: "brand/retrieve-by-name",
356
- query: parsed.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
354
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
357
355
  model: BrandDev::Models::BrandRetrieveByNameResponse,
358
356
  options: options
359
357
  )
@@ -384,10 +382,11 @@ module BrandDev
384
382
  # @see BrandDev::Models::BrandRetrieveByTickerParams
385
383
  def retrieve_by_ticker(params)
386
384
  parsed, options = BrandDev::BrandRetrieveByTickerParams.dump_request(params)
385
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
387
386
  @client.request(
388
387
  method: :get,
389
388
  path: "brand/retrieve-by-ticker",
390
- query: parsed.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
389
+ query: query.transform_keys(max_speed: "maxSpeed", timeout_ms: "timeoutMS"),
391
390
  model: BrandDev::Models::BrandRetrieveByTickerResponse,
392
391
  options: options
393
392
  )
@@ -415,10 +414,11 @@ module BrandDev
415
414
  # @see BrandDev::Models::BrandRetrieveNaicsParams
416
415
  def retrieve_naics(params)
417
416
  parsed, options = BrandDev::BrandRetrieveNaicsParams.dump_request(params)
417
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
418
418
  @client.request(
419
419
  method: :get,
420
420
  path: "brand/naics",
421
- query: parsed.transform_keys(
421
+ query: query.transform_keys(
422
422
  max_results: "maxResults",
423
423
  min_results: "minResults",
424
424
  timeout_ms: "timeoutMS"
@@ -448,10 +448,11 @@ module BrandDev
448
448
  # @see BrandDev::Models::BrandRetrieveSimplifiedParams
449
449
  def retrieve_simplified(params)
450
450
  parsed, options = BrandDev::BrandRetrieveSimplifiedParams.dump_request(params)
451
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
451
452
  @client.request(
452
453
  method: :get,
453
454
  path: "brand/retrieve-simplified",
454
- query: parsed.transform_keys(timeout_ms: "timeoutMS"),
455
+ query: query.transform_keys(timeout_ms: "timeoutMS"),
455
456
  model: BrandDev::Models::BrandRetrieveSimplifiedResponse,
456
457
  options: options
457
458
  )
@@ -482,10 +483,11 @@ module BrandDev
482
483
  # @see BrandDev::Models::BrandScreenshotParams
483
484
  def screenshot(params)
484
485
  parsed, options = BrandDev::BrandScreenshotParams.dump_request(params)
486
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
485
487
  @client.request(
486
488
  method: :get,
487
489
  path: "brand/screenshot",
488
- query: parsed.transform_keys(full_screenshot: "fullScreenshot"),
490
+ query: query.transform_keys(full_screenshot: "fullScreenshot"),
489
491
  model: BrandDev::Models::BrandScreenshotResponse,
490
492
  options: options
491
493
  )
@@ -516,10 +518,11 @@ module BrandDev
516
518
  # @see BrandDev::Models::BrandStyleguideParams
517
519
  def styleguide(params = {})
518
520
  parsed, options = BrandDev::BrandStyleguideParams.dump_request(params)
521
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
519
522
  @client.request(
520
523
  method: :get,
521
524
  path: "brand/styleguide",
522
- query: parsed.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"),
525
+ query: query.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"),
523
526
  model: BrandDev::Models::BrandStyleguideResponse,
524
527
  options: options
525
528
  )
@@ -539,10 +542,11 @@ module BrandDev
539
542
  # @see BrandDev::Models::BrandWebScrapeHTMLParams
540
543
  def web_scrape_html(params)
541
544
  parsed, options = BrandDev::BrandWebScrapeHTMLParams.dump_request(params)
545
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
542
546
  @client.request(
543
547
  method: :get,
544
548
  path: "web/scrape/html",
545
- query: parsed,
549
+ query: query,
546
550
  model: BrandDev::Models::BrandWebScrapeHTMLResponse,
547
551
  options: options
548
552
  )
@@ -563,10 +567,11 @@ module BrandDev
563
567
  # @see BrandDev::Models::BrandWebScrapeImagesParams
564
568
  def web_scrape_images(params)
565
569
  parsed, options = BrandDev::BrandWebScrapeImagesParams.dump_request(params)
570
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
566
571
  @client.request(
567
572
  method: :get,
568
573
  path: "web/scrape/images",
569
- query: parsed,
574
+ query: query,
570
575
  model: BrandDev::Models::BrandWebScrapeImagesResponse,
571
576
  options: options
572
577
  )
@@ -579,7 +584,7 @@ module BrandDev
579
584
  # (GFM), and returns the result. Uses automatic proxy escalation to handle blocked
580
585
  # sites.
581
586
  #
582
- # @overload web_scrape_md(url:, include_images: nil, include_links: nil, request_options: {})
587
+ # @overload web_scrape_md(url:, include_images: nil, include_links: nil, shorten_base64_images: nil, request_options: {})
583
588
  #
584
589
  # @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro
585
590
  #
@@ -587,6 +592,8 @@ module BrandDev
587
592
  #
588
593
  # @param include_links [Boolean] Preserve hyperlinks in Markdown output
589
594
  #
595
+ # @param shorten_base64_images [Boolean] Shorten base64-encoded image data in the Markdown output
596
+ #
590
597
  # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
591
598
  #
592
599
  # @return [BrandDev::Models::BrandWebScrapeMdResponse]
@@ -594,10 +601,15 @@ module BrandDev
594
601
  # @see BrandDev::Models::BrandWebScrapeMdParams
595
602
  def web_scrape_md(params)
596
603
  parsed, options = BrandDev::BrandWebScrapeMdParams.dump_request(params)
604
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
597
605
  @client.request(
598
606
  method: :get,
599
607
  path: "web/scrape/markdown",
600
- query: parsed.transform_keys(include_images: "includeImages", include_links: "includeLinks"),
608
+ query: query.transform_keys(
609
+ include_images: "includeImages",
610
+ include_links: "includeLinks",
611
+ shorten_base64_images: "shortenBase64Images"
612
+ ),
601
613
  model: BrandDev::Models::BrandWebScrapeMdResponse,
602
614
  options: options
603
615
  )
@@ -621,10 +633,11 @@ module BrandDev
621
633
  # @see BrandDev::Models::BrandWebScrapeSitemapParams
622
634
  def web_scrape_sitemap(params)
623
635
  parsed, options = BrandDev::BrandWebScrapeSitemapParams.dump_request(params)
636
+ query = BrandDev::Internal::Util.encode_query_params(parsed)
624
637
  @client.request(
625
638
  method: :get,
626
639
  path: "web/scrape/sitemap",
627
- query: parsed,
640
+ query: query,
628
641
  model: BrandDev::Models::BrandWebScrapeSitemapResponse,
629
642
  options: options
630
643
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrandDev
4
- VERSION = "0.27.0"
4
+ VERSION = "0.28.1"
5
5
  end
@@ -301,6 +301,26 @@ module BrandDev
301
301
  T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
302
302
 
303
303
  class << self
304
+ # @api private
305
+ sig do
306
+ params(query: BrandDev::Internal::AnyHash).returns(
307
+ BrandDev::Internal::AnyHash
308
+ )
309
+ end
310
+ def encode_query_params(query)
311
+ end
312
+
313
+ # @api private
314
+ sig do
315
+ params(
316
+ collection: BrandDev::Internal::AnyHash,
317
+ key: String,
318
+ element: T.anything
319
+ ).void
320
+ end
321
+ private def write_query_param_element!(collection, key, element)
322
+ end
323
+
304
324
  # @api private
305
325
  sig do
306
326
  params(
@@ -11,67 +11,175 @@ module BrandDev
11
11
  T.any(BrandDev::BrandAIProductsParams, BrandDev::Internal::AnyHash)
12
12
  end
13
13
 
14
- # The domain name to analyze.
15
- sig { returns(String) }
16
- attr_accessor :domain
17
-
18
- # Maximum number of products to extract.
19
- sig { returns(T.nilable(Integer)) }
20
- attr_reader :max_products
21
-
22
- sig { params(max_products: Integer).void }
23
- attr_writer :max_products
24
-
25
- # Optional timeout in milliseconds for the request. Maximum allowed value is
26
- # 300000ms (5 minutes).
27
- sig { returns(T.nilable(Integer)) }
28
- attr_reader :timeout_ms
29
-
30
- sig { params(timeout_ms: Integer).void }
31
- attr_writer :timeout_ms
32
-
33
- # A specific URL to use directly as the starting point for extraction without
34
- # domain resolution.
35
- sig { returns(String) }
36
- attr_accessor :direct_url
14
+ sig do
15
+ returns(
16
+ T.any(
17
+ BrandDev::BrandAIProductsParams::Body::ByDomain,
18
+ BrandDev::BrandAIProductsParams::Body::ByDirectURL
19
+ )
20
+ )
21
+ end
22
+ attr_accessor :body
37
23
 
38
24
  sig do
39
25
  params(
40
- domain: String,
41
- direct_url: String,
42
- max_products: Integer,
43
- timeout_ms: Integer,
26
+ body:
27
+ T.any(
28
+ BrandDev::BrandAIProductsParams::Body::ByDomain::OrHash,
29
+ BrandDev::BrandAIProductsParams::Body::ByDirectURL::OrHash
30
+ ),
44
31
  request_options: BrandDev::RequestOptions::OrHash
45
32
  ).returns(T.attached_class)
46
33
  end
47
- def self.new(
48
- # The domain name to analyze.
49
- domain:,
50
- # A specific URL to use directly as the starting point for extraction without
51
- # domain resolution.
52
- direct_url:,
53
- # Maximum number of products to extract.
54
- max_products: nil,
55
- # Optional timeout in milliseconds for the request. Maximum allowed value is
56
- # 300000ms (5 minutes).
57
- timeout_ms: nil,
58
- request_options: {}
59
- )
34
+ def self.new(body:, request_options: {})
60
35
  end
61
36
 
62
37
  sig do
63
38
  override.returns(
64
39
  {
65
- domain: String,
66
- max_products: Integer,
67
- timeout_ms: Integer,
68
- direct_url: String,
40
+ body:
41
+ T.any(
42
+ BrandDev::BrandAIProductsParams::Body::ByDomain,
43
+ BrandDev::BrandAIProductsParams::Body::ByDirectURL
44
+ ),
69
45
  request_options: BrandDev::RequestOptions
70
46
  }
71
47
  )
72
48
  end
73
49
  def to_hash
74
50
  end
51
+
52
+ module Body
53
+ extend BrandDev::Internal::Type::Union
54
+
55
+ Variants =
56
+ T.type_alias do
57
+ T.any(
58
+ BrandDev::BrandAIProductsParams::Body::ByDomain,
59
+ BrandDev::BrandAIProductsParams::Body::ByDirectURL
60
+ )
61
+ end
62
+
63
+ class ByDomain < BrandDev::Internal::Type::BaseModel
64
+ OrHash =
65
+ T.type_alias do
66
+ T.any(
67
+ BrandDev::BrandAIProductsParams::Body::ByDomain,
68
+ BrandDev::Internal::AnyHash
69
+ )
70
+ end
71
+
72
+ # The domain name to analyze.
73
+ sig { returns(String) }
74
+ attr_accessor :domain
75
+
76
+ # Maximum number of products to extract.
77
+ sig { returns(T.nilable(Integer)) }
78
+ attr_reader :max_products
79
+
80
+ sig { params(max_products: Integer).void }
81
+ attr_writer :max_products
82
+
83
+ # Optional timeout in milliseconds for the request. Maximum allowed value is
84
+ # 300000ms (5 minutes).
85
+ sig { returns(T.nilable(Integer)) }
86
+ attr_reader :timeout_ms
87
+
88
+ sig { params(timeout_ms: Integer).void }
89
+ attr_writer :timeout_ms
90
+
91
+ sig do
92
+ params(
93
+ domain: String,
94
+ max_products: Integer,
95
+ timeout_ms: Integer
96
+ ).returns(T.attached_class)
97
+ end
98
+ def self.new(
99
+ # The domain name to analyze.
100
+ domain:,
101
+ # Maximum number of products to extract.
102
+ max_products: nil,
103
+ # Optional timeout in milliseconds for the request. Maximum allowed value is
104
+ # 300000ms (5 minutes).
105
+ timeout_ms: nil
106
+ )
107
+ end
108
+
109
+ sig do
110
+ override.returns(
111
+ { domain: String, max_products: Integer, timeout_ms: Integer }
112
+ )
113
+ end
114
+ def to_hash
115
+ end
116
+ end
117
+
118
+ class ByDirectURL < BrandDev::Internal::Type::BaseModel
119
+ OrHash =
120
+ T.type_alias do
121
+ T.any(
122
+ BrandDev::BrandAIProductsParams::Body::ByDirectURL,
123
+ BrandDev::Internal::AnyHash
124
+ )
125
+ end
126
+
127
+ # A specific URL to use directly as the starting point for extraction without
128
+ # domain resolution.
129
+ sig { returns(String) }
130
+ attr_accessor :direct_url
131
+
132
+ # Maximum number of products to extract.
133
+ sig { returns(T.nilable(Integer)) }
134
+ attr_reader :max_products
135
+
136
+ sig { params(max_products: Integer).void }
137
+ attr_writer :max_products
138
+
139
+ # Optional timeout in milliseconds for the request. Maximum allowed value is
140
+ # 300000ms (5 minutes).
141
+ sig { returns(T.nilable(Integer)) }
142
+ attr_reader :timeout_ms
143
+
144
+ sig { params(timeout_ms: Integer).void }
145
+ attr_writer :timeout_ms
146
+
147
+ sig do
148
+ params(
149
+ direct_url: String,
150
+ max_products: Integer,
151
+ timeout_ms: Integer
152
+ ).returns(T.attached_class)
153
+ end
154
+ def self.new(
155
+ # A specific URL to use directly as the starting point for extraction without
156
+ # domain resolution.
157
+ direct_url:,
158
+ # Maximum number of products to extract.
159
+ max_products: nil,
160
+ # Optional timeout in milliseconds for the request. Maximum allowed value is
161
+ # 300000ms (5 minutes).
162
+ timeout_ms: nil
163
+ )
164
+ end
165
+
166
+ sig do
167
+ override.returns(
168
+ { direct_url: String, max_products: Integer, timeout_ms: Integer }
169
+ )
170
+ end
171
+ def to_hash
172
+ end
173
+ end
174
+
175
+ sig do
176
+ override.returns(
177
+ T::Array[BrandDev::BrandAIProductsParams::Body::Variants]
178
+ )
179
+ end
180
+ def self.variants
181
+ end
182
+ end
75
183
  end
76
184
  end
77
185
  end
@@ -62,6 +62,15 @@ module BrandDev
62
62
  end
63
63
  attr_writer :force_language
64
64
 
65
+ # When set to true, the API will perform an additional verification steps to
66
+ # ensure the identified brand matches the transaction with high confidence.
67
+ # Defaults to false.
68
+ sig { returns(T.nilable(T::Boolean)) }
69
+ attr_reader :high_confidence_only
70
+
71
+ sig { params(high_confidence_only: T::Boolean).void }
72
+ attr_writer :high_confidence_only
73
+
65
74
  # Optional parameter to optimize the API call for maximum speed. When set to true,
66
75
  # the API will skip time-consuming operations for faster response at the cost of
67
76
  # less comprehensive data.
@@ -103,6 +112,7 @@ module BrandDev
103
112
  BrandDev::BrandIdentifyFromTransactionParams::CountryGl::OrSymbol,
104
113
  force_language:
105
114
  BrandDev::BrandIdentifyFromTransactionParams::ForceLanguage::OrSymbol,
115
+ high_confidence_only: T::Boolean,
106
116
  max_speed: T::Boolean,
107
117
  mcc: String,
108
118
  phone: Float,
@@ -120,6 +130,10 @@ module BrandDev
120
130
  country_gl: nil,
121
131
  # Optional parameter to force the language of the retrieved brand data.
122
132
  force_language: nil,
133
+ # When set to true, the API will perform an additional verification steps to
134
+ # ensure the identified brand matches the transaction with high confidence.
135
+ # Defaults to false.
136
+ high_confidence_only: nil,
123
137
  # Optional parameter to optimize the API call for maximum speed. When set to true,
124
138
  # the API will skip time-consuming operations for faster response at the cost of
125
139
  # less comprehensive data.
@@ -146,6 +160,7 @@ module BrandDev
146
160
  BrandDev::BrandIdentifyFromTransactionParams::CountryGl::OrSymbol,
147
161
  force_language:
148
162
  BrandDev::BrandIdentifyFromTransactionParams::ForceLanguage::OrSymbol,
163
+ high_confidence_only: T::Boolean,
149
164
  max_speed: T::Boolean,
150
165
  mcc: String,
151
166
  phone: Float,
@@ -30,11 +30,19 @@ module BrandDev
30
30
  sig { params(include_links: T::Boolean).void }
31
31
  attr_writer :include_links
32
32
 
33
+ # Shorten base64-encoded image data in the Markdown output
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :shorten_base64_images
36
+
37
+ sig { params(shorten_base64_images: T::Boolean).void }
38
+ attr_writer :shorten_base64_images
39
+
33
40
  sig do
34
41
  params(
35
42
  url: String,
36
43
  include_images: T::Boolean,
37
44
  include_links: T::Boolean,
45
+ shorten_base64_images: T::Boolean,
38
46
  request_options: BrandDev::RequestOptions::OrHash
39
47
  ).returns(T.attached_class)
40
48
  end
@@ -46,6 +54,8 @@ module BrandDev
46
54
  include_images: nil,
47
55
  # Preserve hyperlinks in Markdown output
48
56
  include_links: nil,
57
+ # Shorten base64-encoded image data in the Markdown output
58
+ shorten_base64_images: nil,
49
59
  request_options: {}
50
60
  )
51
61
  end
@@ -56,6 +66,7 @@ module BrandDev
56
66
  url: String,
57
67
  include_images: T::Boolean,
58
68
  include_links: T::Boolean,
69
+ shorten_base64_images: T::Boolean,
59
70
  request_options: BrandDev::RequestOptions
60
71
  }
61
72
  )
@@ -59,26 +59,15 @@ module BrandDev
59
59
  # description, image, pricing, features, and more.
60
60
  sig do
61
61
  params(
62
- domain: String,
63
- direct_url: String,
64
- max_products: Integer,
65
- timeout_ms: Integer,
62
+ body:
63
+ T.any(
64
+ BrandDev::BrandAIProductsParams::Body::ByDomain::OrHash,
65
+ BrandDev::BrandAIProductsParams::Body::ByDirectURL::OrHash
66
+ ),
66
67
  request_options: BrandDev::RequestOptions::OrHash
67
68
  ).returns(BrandDev::Models::BrandAIProductsResponse)
68
69
  end
69
- def ai_products(
70
- # The domain name to analyze.
71
- domain:,
72
- # A specific URL to use directly as the starting point for extraction without
73
- # domain resolution.
74
- direct_url:,
75
- # Maximum number of products to extract.
76
- max_products: nil,
77
- # Optional timeout in milliseconds for the request. Maximum allowed value is
78
- # 300000ms (5 minutes).
79
- timeout_ms: nil,
80
- request_options: {}
81
- )
70
+ def ai_products(body:, request_options: {})
82
71
  end
83
72
 
84
73
  # Use AI to extract specific data points from a brand's website. The AI will crawl
@@ -140,6 +129,7 @@ module BrandDev
140
129
  BrandDev::BrandIdentifyFromTransactionParams::CountryGl::OrSymbol,
141
130
  force_language:
142
131
  BrandDev::BrandIdentifyFromTransactionParams::ForceLanguage::OrSymbol,
132
+ high_confidence_only: T::Boolean,
143
133
  max_speed: T::Boolean,
144
134
  mcc: String,
145
135
  phone: Float,
@@ -157,6 +147,10 @@ module BrandDev
157
147
  country_gl: nil,
158
148
  # Optional parameter to force the language of the retrieved brand data.
159
149
  force_language: nil,
150
+ # When set to true, the API will perform an additional verification steps to
151
+ # ensure the identified brand matches the transaction with high confidence.
152
+ # Defaults to false.
153
+ high_confidence_only: nil,
160
154
  # Optional parameter to optimize the API call for maximum speed. When set to true,
161
155
  # the API will skip time-consuming operations for faster response at the cost of
162
156
  # less comprehensive data.
@@ -507,6 +501,7 @@ module BrandDev
507
501
  url: String,
508
502
  include_images: T::Boolean,
509
503
  include_links: T::Boolean,
504
+ shorten_base64_images: T::Boolean,
510
505
  request_options: BrandDev::RequestOptions::OrHash
511
506
  ).returns(BrandDev::Models::BrandWebScrapeMdResponse)
512
507
  end
@@ -518,6 +513,8 @@ module BrandDev
518
513
  include_images: nil,
519
514
  # Preserve hyperlinks in Markdown output
520
515
  include_links: nil,
516
+ # Shorten base64-encoded image data in the Markdown output
517
+ shorten_base64_images: nil,
521
518
  request_options: {}
522
519
  )
523
520
  end
@@ -106,6 +106,16 @@ module BrandDev
106
106
  JSON_CONTENT: Regexp
107
107
  JSONL_CONTENT: Regexp
108
108
 
109
+ def encode_query_params: (
110
+ ::Hash[Symbol, top] query
111
+ ) -> ::Hash[Symbol, top]
112
+
113
+ private def write_query_param_element!: (
114
+ ::Hash[Symbol, top] collection,
115
+ String key,
116
+ top element
117
+ ) -> nil
118
+
109
119
  def self?.write_multipart_content: (
110
120
  Enumerator::Yielder y,
111
121
  val: top,
@@ -1,45 +1,88 @@
1
1
  module BrandDev
2
2
  module Models
3
3
  type brand_ai_products_params =
4
- {
5
- domain: String,
6
- max_products: Integer,
7
- timeout_ms: Integer,
8
- direct_url: String
9
- }
4
+ { body: BrandDev::Models::BrandAIProductsParams::body }
10
5
  & BrandDev::Internal::Type::request_parameters
11
6
 
12
7
  class BrandAIProductsParams < BrandDev::Internal::Type::BaseModel
13
8
  extend BrandDev::Internal::Type::RequestParameters::Converter
14
9
  include BrandDev::Internal::Type::RequestParameters
15
10
 
16
- attr_accessor domain: String
17
-
18
- attr_reader max_products: Integer?
19
-
20
- def max_products=: (Integer) -> Integer
21
-
22
- attr_reader timeout_ms: Integer?
23
-
24
- def timeout_ms=: (Integer) -> Integer
25
-
26
- attr_accessor direct_url: String
11
+ attr_accessor body: BrandDev::Models::BrandAIProductsParams::body
27
12
 
28
13
  def initialize: (
29
- domain: String,
30
- direct_url: String,
31
- ?max_products: Integer,
32
- ?timeout_ms: Integer,
14
+ body: BrandDev::Models::BrandAIProductsParams::body,
33
15
  ?request_options: BrandDev::request_opts
34
16
  ) -> void
35
17
 
36
18
  def to_hash: -> {
37
- domain: String,
38
- max_products: Integer,
39
- timeout_ms: Integer,
40
- direct_url: String,
19
+ body: BrandDev::Models::BrandAIProductsParams::body,
41
20
  request_options: BrandDev::RequestOptions
42
21
  }
22
+
23
+ type body =
24
+ BrandDev::BrandAIProductsParams::Body::ByDomain
25
+ | BrandDev::BrandAIProductsParams::Body::ByDirectURL
26
+
27
+ module Body
28
+ extend BrandDev::Internal::Type::Union
29
+
30
+ type by_domain =
31
+ { domain: String, max_products: Integer, timeout_ms: Integer }
32
+
33
+ class ByDomain < BrandDev::Internal::Type::BaseModel
34
+ attr_accessor domain: String
35
+
36
+ attr_reader max_products: Integer?
37
+
38
+ def max_products=: (Integer) -> Integer
39
+
40
+ attr_reader timeout_ms: Integer?
41
+
42
+ def timeout_ms=: (Integer) -> Integer
43
+
44
+ def initialize: (
45
+ domain: String,
46
+ ?max_products: Integer,
47
+ ?timeout_ms: Integer
48
+ ) -> void
49
+
50
+ def to_hash: -> {
51
+ domain: String,
52
+ max_products: Integer,
53
+ timeout_ms: Integer
54
+ }
55
+ end
56
+
57
+ type by_direct_url =
58
+ { direct_url: String, max_products: Integer, timeout_ms: Integer }
59
+
60
+ class ByDirectURL < BrandDev::Internal::Type::BaseModel
61
+ attr_accessor direct_url: String
62
+
63
+ attr_reader max_products: Integer?
64
+
65
+ def max_products=: (Integer) -> Integer
66
+
67
+ attr_reader timeout_ms: Integer?
68
+
69
+ def timeout_ms=: (Integer) -> Integer
70
+
71
+ def initialize: (
72
+ direct_url: String,
73
+ ?max_products: Integer,
74
+ ?timeout_ms: Integer
75
+ ) -> void
76
+
77
+ def to_hash: -> {
78
+ direct_url: String,
79
+ max_products: Integer,
80
+ timeout_ms: Integer
81
+ }
82
+ end
83
+
84
+ def self?.variants: -> ::Array[BrandDev::Models::BrandAIProductsParams::body]
85
+ end
43
86
  end
44
87
  end
45
88
  end
@@ -6,6 +6,7 @@ module BrandDev
6
6
  city: String,
7
7
  country_gl: BrandDev::Models::BrandIdentifyFromTransactionParams::country_gl,
8
8
  force_language: BrandDev::Models::BrandIdentifyFromTransactionParams::force_language,
9
+ high_confidence_only: bool,
9
10
  max_speed: bool,
10
11
  mcc: String,
11
12
  phone: Float,
@@ -35,6 +36,10 @@ module BrandDev
35
36
  BrandDev::Models::BrandIdentifyFromTransactionParams::force_language
36
37
  ) -> BrandDev::Models::BrandIdentifyFromTransactionParams::force_language
37
38
 
39
+ attr_reader high_confidence_only: bool?
40
+
41
+ def high_confidence_only=: (bool) -> bool
42
+
38
43
  attr_reader max_speed: bool?
39
44
 
40
45
  def max_speed=: (bool) -> bool
@@ -56,6 +61,7 @@ module BrandDev
56
61
  ?city: String,
57
62
  ?country_gl: BrandDev::Models::BrandIdentifyFromTransactionParams::country_gl,
58
63
  ?force_language: BrandDev::Models::BrandIdentifyFromTransactionParams::force_language,
64
+ ?high_confidence_only: bool,
59
65
  ?max_speed: bool,
60
66
  ?mcc: String,
61
67
  ?phone: Float,
@@ -68,6 +74,7 @@ module BrandDev
68
74
  city: String,
69
75
  country_gl: BrandDev::Models::BrandIdentifyFromTransactionParams::country_gl,
70
76
  force_language: BrandDev::Models::BrandIdentifyFromTransactionParams::force_language,
77
+ high_confidence_only: bool,
71
78
  max_speed: bool,
72
79
  mcc: String,
73
80
  phone: Float,
@@ -1,7 +1,12 @@
1
1
  module BrandDev
2
2
  module Models
3
3
  type brand_web_scrape_md_params =
4
- { url: String, include_images: bool, include_links: bool }
4
+ {
5
+ url: String,
6
+ include_images: bool,
7
+ include_links: bool,
8
+ :shorten_base64_images => bool
9
+ }
5
10
  & BrandDev::Internal::Type::request_parameters
6
11
 
7
12
  class BrandWebScrapeMdParams < BrandDev::Internal::Type::BaseModel
@@ -18,10 +23,15 @@ module BrandDev
18
23
 
19
24
  def include_links=: (bool) -> bool
20
25
 
26
+ attr_reader shorten_base64_images: bool?
27
+
28
+ def shorten_base64_images=: (bool) -> bool
29
+
21
30
  def initialize: (
22
31
  url: String,
23
32
  ?include_images: bool,
24
33
  ?include_links: bool,
34
+ ?shorten_base64_images: bool,
25
35
  ?request_options: BrandDev::request_opts
26
36
  ) -> void
27
37
 
@@ -29,6 +39,7 @@ module BrandDev
29
39
  url: String,
30
40
  include_images: bool,
31
41
  include_links: bool,
42
+ :shorten_base64_images => bool,
32
43
  request_options: BrandDev::RequestOptions
33
44
  }
34
45
  end
@@ -16,10 +16,7 @@ module BrandDev
16
16
  ) -> BrandDev::Models::BrandAIProductResponse
17
17
 
18
18
  def ai_products: (
19
- domain: String,
20
- direct_url: String,
21
- ?max_products: Integer,
22
- ?timeout_ms: Integer,
19
+ body: BrandDev::Models::BrandAIProductsParams::body,
23
20
  ?request_options: BrandDev::request_opts
24
21
  ) -> BrandDev::Models::BrandAIProductsResponse
25
22
 
@@ -42,6 +39,7 @@ module BrandDev
42
39
  ?city: String,
43
40
  ?country_gl: BrandDev::Models::BrandIdentifyFromTransactionParams::country_gl,
44
41
  ?force_language: BrandDev::Models::BrandIdentifyFromTransactionParams::force_language,
42
+ ?high_confidence_only: bool,
45
43
  ?max_speed: bool,
46
44
  ?mcc: String,
47
45
  ?phone: Float,
@@ -138,6 +136,7 @@ module BrandDev
138
136
  url: String,
139
137
  ?include_images: bool,
140
138
  ?include_links: bool,
139
+ ?shorten_base64_images: bool,
141
140
  ?request_options: BrandDev::request_opts
142
141
  ) -> BrandDev::Models::BrandWebScrapeMdResponse
143
142
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brand.dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.0
4
+ version: 0.28.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brand Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-24 00:00:00.000000000 Z
11
+ date: 2026-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi