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 +4 -4
- data/CHANGELOG.md +24 -0
- data/README.md +1 -1
- data/lib/brand_dev/internal/util.rb +31 -0
- data/lib/brand_dev/models/brand_ai_products_params.rb +77 -34
- data/lib/brand_dev/models/brand_identify_from_transaction_params.rb +11 -1
- data/lib/brand_dev/models/brand_web_scrape_md_params.rb +9 -1
- data/lib/brand_dev/resources/brand.rb +43 -30
- data/lib/brand_dev/version.rb +1 -1
- data/rbi/brand_dev/internal/util.rbi +20 -0
- data/rbi/brand_dev/models/brand_ai_products_params.rbi +152 -44
- data/rbi/brand_dev/models/brand_identify_from_transaction_params.rbi +15 -0
- data/rbi/brand_dev/models/brand_web_scrape_md_params.rbi +11 -0
- data/rbi/brand_dev/resources/brand.rbi +14 -17
- data/sig/brand_dev/internal/util.rbs +10 -0
- data/sig/brand_dev/models/brand_ai_products_params.rbs +68 -25
- data/sig/brand_dev/models/brand_identify_from_transaction_params.rbs +7 -0
- data/sig/brand_dev/models/brand_web_scrape_md_params.rbs +12 -1
- data/sig/brand_dev/resources/brand.rbs +3 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 627fe92d0bc7ddf8f90668f8fea94981c87b86f44e07050a3bb502f3e8448a28
|
|
4
|
+
data.tar.gz: 5438f2a94d3e45e69ce0705e3014f57a81d3d8be04b691b7fbbee2df654aa650
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
@@ -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
|
|
11
|
-
# The domain name to analyze.
|
|
10
|
+
# @!attribute body
|
|
12
11
|
#
|
|
13
|
-
# @return [
|
|
14
|
-
required :
|
|
12
|
+
# @return [BrandDev::Models::BrandAIProductsParams::Body::ByDomain, BrandDev::Models::BrandAIProductsParams::Body::ByDirectURL]
|
|
13
|
+
required :body, union: -> { BrandDev::BrandAIProductsParams::Body }
|
|
15
14
|
|
|
16
|
-
# @!
|
|
17
|
-
#
|
|
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
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
# @!
|
|
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:
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
640
|
+
query: query,
|
|
628
641
|
model: BrandDev::Models::BrandWebScrapeSitemapResponse,
|
|
629
642
|
options: options
|
|
630
643
|
)
|
data/lib/brand_dev/version.rb
CHANGED
|
@@ -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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
{
|
|
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
|
-
|
|
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.
|
|
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-
|
|
11
|
+
date: 2026-03-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cgi
|