brand.dev 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fda4fc2056b5d95165ea2382b716c6289a31530ac84e95ad5184882c77c8b16c
4
- data.tar.gz: 446f5ace123e360e235d06acf5f0b0ff012f0b233993afa9bbaba89850bf4707
3
+ metadata.gz: ccf8dd90507c84dcea927392291711080cc1dff713f6033bb87f974573f66417
4
+ data.tar.gz: dab13e3371525060dcf6a098cc9d75faba070512dd62aca367addff096cfab1f
5
5
  SHA512:
6
- metadata.gz: d4dc5e7f463794528ebb79f2bab854dd169ed4088343568c7c6332c987b4544d9743580aa75c3936159723df6087848de2c3b9d2b8584079d13a684c09492aac
7
- data.tar.gz: 8807c59f396a4e6a1e9217dba3c8fcdddc85497917b762a6ed9fc2ece4ba721885cf9f6c8e280aade89c3d5ad4e6fe75bf1df5cc9045843813e6eb9f585203f3
6
+ metadata.gz: 48199f00792a5f903f0ebb82179675614a0e3f0a68e75b7e03adc7f26cb061b4a44f704b4afcfa6400caf5c539b62c10e2b89120740d3faf661a7e57fe3525db
7
+ data.tar.gz: ad14e379feafc54eb6989a0fb16c9b37d1eb29424566344f6b0c442921eeafbaf92826d7a5ef5e3f5e4c5acd04749c4700de34be20336965c3d9653671ebb36f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.16.0 (2025-12-01)
4
+
5
+ Full Changelog: [v0.15.0...v0.16.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.15.0...v0.16.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([dcb86fa](https://github.com/brand-dot-dev/ruby-sdk/commit/dcb86fa97e3a08822e0a379989adbf766b7638c2))
10
+
11
+ ## 0.15.0 (2025-11-29)
12
+
13
+ Full Changelog: [v0.14.0...v0.15.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.14.0...v0.15.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** manual updates ([1586ca9](https://github.com/brand-dot-dev/ruby-sdk/commit/1586ca9407bc0c7821563fb93b640c1e7308528d))
18
+
3
19
  ## 0.14.0 (2025-11-24)
4
20
 
5
21
  Full Changelog: [v0.13.0...v0.14.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.13.0...v0.14.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "brand.dev", "~> 0.14.0"
20
+ gem "brand.dev", "~> 0.16.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -73,7 +73,25 @@ module BrandDev
73
73
  # @return [Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::DatapointType]
74
74
  required :datapoint_type, enum: -> { BrandDev::BrandAIQueryParams::DataToExtract::DatapointType }
75
75
 
76
- # @!method initialize(datapoint_description:, datapoint_example:, datapoint_name:, datapoint_type:)
76
+ # @!attribute datapoint_list_type
77
+ # Type of items in the list when datapoint_type is 'list'. Defaults to 'string'.
78
+ # Use 'object' to extract an array of objects matching a schema.
79
+ #
80
+ # @return [Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::DatapointListType, nil]
81
+ optional :datapoint_list_type, enum: -> { BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType }
82
+
83
+ # @!attribute datapoint_object_schema
84
+ # Schema definition for objects when datapoint_list_type is 'object'. Provide a
85
+ # map of field names to their scalar types.
86
+ #
87
+ # @return [Hash{Symbol=>Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::DatapointObjectSchema}, nil]
88
+ optional :datapoint_object_schema,
89
+ -> { BrandDev::Internal::Type::HashOf[enum: BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema] }
90
+
91
+ # @!method initialize(datapoint_description:, datapoint_example:, datapoint_name:, datapoint_type:, datapoint_list_type: nil, datapoint_object_schema: nil)
92
+ # Some parameter documentations has been truncated, see
93
+ # {BrandDev::Models::BrandAIQueryParams::DataToExtract} for more details.
94
+ #
77
95
  # @param datapoint_description [String] Description of what to extract
78
96
  #
79
97
  # @param datapoint_example [String] Example of the expected value
@@ -81,6 +99,10 @@ module BrandDev
81
99
  # @param datapoint_name [String] Name of the data point to extract
82
100
  #
83
101
  # @param datapoint_type [Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::DatapointType] Type of the data point
102
+ #
103
+ # @param datapoint_list_type [Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::DatapointListType] Type of items in the list when datapoint_type is 'list'. Defaults to 'string'. U
104
+ #
105
+ # @param datapoint_object_schema [Hash{Symbol=>Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::DatapointObjectSchema}] Schema definition for objects when datapoint_list_type is 'object'. Provide a ma
84
106
 
85
107
  # Type of the data point
86
108
  #
@@ -98,6 +120,38 @@ module BrandDev
98
120
  # @!method self.values
99
121
  # @return [Array<Symbol>]
100
122
  end
123
+
124
+ # Type of items in the list when datapoint_type is 'list'. Defaults to 'string'.
125
+ # Use 'object' to extract an array of objects matching a schema.
126
+ #
127
+ # @see BrandDev::Models::BrandAIQueryParams::DataToExtract#datapoint_list_type
128
+ module DatapointListType
129
+ extend BrandDev::Internal::Type::Enum
130
+
131
+ STRING = :string
132
+ TEXT = :text
133
+ NUMBER = :number
134
+ DATE = :date
135
+ BOOLEAN = :boolean
136
+ LIST = :list
137
+ URL = :url
138
+ OBJECT = :object
139
+
140
+ # @!method self.values
141
+ # @return [Array<Symbol>]
142
+ end
143
+
144
+ module DatapointObjectSchema
145
+ extend BrandDev::Internal::Type::Enum
146
+
147
+ STRING = :string
148
+ NUMBER = :number
149
+ DATE = :date
150
+ BOOLEAN = :boolean
151
+
152
+ # @!method self.values
153
+ # @return [Array<Symbol>]
154
+ end
101
155
  end
102
156
 
103
157
  class SpecificPages < BrandDev::Internal::Type::BaseModel
@@ -137,6 +191,12 @@ module BrandDev
137
191
  # @return [Boolean, nil]
138
192
  optional :home_page, BrandDev::Internal::Type::Boolean
139
193
 
194
+ # @!attribute pricing
195
+ # Whether to analyze the pricing page
196
+ #
197
+ # @return [Boolean, nil]
198
+ optional :pricing, BrandDev::Internal::Type::Boolean
199
+
140
200
  # @!attribute privacy_policy
141
201
  # Whether to analyze the privacy policy page
142
202
  #
@@ -149,7 +209,7 @@ module BrandDev
149
209
  # @return [Boolean, nil]
150
210
  optional :terms_and_conditions, BrandDev::Internal::Type::Boolean
151
211
 
152
- # @!method initialize(about_us: nil, blog: nil, careers: nil, contact_us: nil, faq: nil, home_page: nil, privacy_policy: nil, terms_and_conditions: nil)
212
+ # @!method initialize(about_us: nil, blog: nil, careers: nil, contact_us: nil, faq: nil, home_page: nil, pricing: nil, privacy_policy: nil, terms_and_conditions: nil)
153
213
  # Optional object specifying which pages to analyze
154
214
  #
155
215
  # @param about_us [Boolean] Whether to analyze the about us page
@@ -164,6 +224,8 @@ module BrandDev
164
224
  #
165
225
  # @param home_page [Boolean] Whether to analyze the home page
166
226
  #
227
+ # @param pricing [Boolean] Whether to analyze the pricing page
228
+ #
167
229
  # @param privacy_policy [Boolean] Whether to analyze the privacy policy page
168
230
  #
169
231
  # @param terms_and_conditions [Boolean] Whether to analyze the terms and conditions page
@@ -46,18 +46,23 @@ module BrandDev
46
46
  optional :datapoint_name, String
47
47
 
48
48
  # @!attribute datapoint_value
49
- # Value of the extracted data point
49
+ # Value of the extracted data point. Can be a primitive type, an array of
50
+ # primitives, or an array of objects when datapoint_list_type is 'object'.
50
51
  #
51
- # @return [String, Float, Boolean, Array<String>, Array<Float>, nil]
52
+ # @return [String, Float, Boolean, Array<String>, Array<Float>, Array<Object>, nil]
52
53
  optional :datapoint_value,
53
54
  union: -> { BrandDev::Models::BrandAIQueryResponse::DataExtracted::DatapointValue }
54
55
 
55
56
  # @!method initialize(datapoint_name: nil, datapoint_value: nil)
57
+ # Some parameter documentations has been truncated, see
58
+ # {BrandDev::Models::BrandAIQueryResponse::DataExtracted} for more details.
59
+ #
56
60
  # @param datapoint_name [String] Name of the extracted data point
57
61
  #
58
- # @param datapoint_value [String, Float, Boolean, Array<String>, Array<Float>] Value of the extracted data point
62
+ # @param datapoint_value [String, Float, Boolean, Array<String>, Array<Float>, Array<Object>] Value of the extracted data point. Can be a primitive type, an array of primitiv
59
63
 
60
- # Value of the extracted data point
64
+ # Value of the extracted data point. Can be a primitive type, an array of
65
+ # primitives, or an array of objects when datapoint_list_type is 'object'.
61
66
  #
62
67
  # @see BrandDev::Models::BrandAIQueryResponse::DataExtracted#datapoint_value
63
68
  module DatapointValue
@@ -73,14 +78,19 @@ module BrandDev
73
78
 
74
79
  variant -> { BrandDev::Models::BrandAIQueryResponse::DataExtracted::DatapointValue::FloatArray }
75
80
 
81
+ variant -> { BrandDev::Models::BrandAIQueryResponse::DataExtracted::DatapointValue::UnionMember5Array }
82
+
76
83
  # @!method self.variants
77
- # @return [Array(String, Float, Boolean, Array<String>, Array<Float>)]
84
+ # @return [Array(String, Float, Boolean, Array<String>, Array<Float>, Array<Object>)]
78
85
 
79
86
  # @type [BrandDev::Internal::Type::Converter]
80
87
  StringArray = BrandDev::Internal::Type::ArrayOf[String]
81
88
 
82
89
  # @type [BrandDev::Internal::Type::Converter]
83
90
  FloatArray = BrandDev::Internal::Type::ArrayOf[Float]
91
+
92
+ # @type [BrandDev::Internal::Type::Converter]
93
+ UnionMember5Array = BrandDev::Internal::Type::ArrayOf[BrandDev::Internal::Type::Unknown]
84
94
  end
85
95
  end
86
96
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#fonts
6
+ class BrandFontsParams < BrandDev::Internal::Type::BaseModel
7
+ extend BrandDev::Internal::Type::RequestParameters::Converter
8
+ include BrandDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute domain
11
+ # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
12
+ # domain will be automatically normalized and validated.
13
+ #
14
+ # @return [String]
15
+ required :domain, String
16
+
17
+ # @!attribute timeout_ms
18
+ # Optional timeout in milliseconds for the request. If the request takes longer
19
+ # than this value, it will be aborted with a 408 status code. Maximum allowed
20
+ # value is 300000ms (5 minutes).
21
+ #
22
+ # @return [Integer, nil]
23
+ optional :timeout_ms, Integer
24
+
25
+ # @!method initialize(domain:, timeout_ms: nil, request_options: {})
26
+ # Some parameter documentations has been truncated, see
27
+ # {BrandDev::Models::BrandFontsParams} for more details.
28
+ #
29
+ # @param domain [String] Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domai
30
+ #
31
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
32
+ #
33
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,100 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrandDev
4
+ module Models
5
+ # @see BrandDev::Resources::Brand#fonts
6
+ class BrandFontsResponse < BrandDev::Internal::Type::BaseModel
7
+ # @!attribute code
8
+ # HTTP status code, e.g., 200
9
+ #
10
+ # @return [Integer]
11
+ required :code, Integer
12
+
13
+ # @!attribute domain
14
+ # The normalized domain that was processed
15
+ #
16
+ # @return [String]
17
+ required :domain, String
18
+
19
+ # @!attribute fonts
20
+ # Array of font usage information
21
+ #
22
+ # @return [Array<BrandDev::Models::BrandFontsResponse::Font>]
23
+ required :fonts, -> { BrandDev::Internal::Type::ArrayOf[BrandDev::Models::BrandFontsResponse::Font] }
24
+
25
+ # @!attribute status
26
+ # Status of the response, e.g., 'ok'
27
+ #
28
+ # @return [String]
29
+ required :status, String
30
+
31
+ # @!method initialize(code:, domain:, fonts:, status:)
32
+ # @param code [Integer] HTTP status code, e.g., 200
33
+ #
34
+ # @param domain [String] The normalized domain that was processed
35
+ #
36
+ # @param fonts [Array<BrandDev::Models::BrandFontsResponse::Font>] Array of font usage information
37
+ #
38
+ # @param status [String] Status of the response, e.g., 'ok'
39
+
40
+ class Font < BrandDev::Internal::Type::BaseModel
41
+ # @!attribute fallbacks
42
+ # Array of fallback font families
43
+ #
44
+ # @return [Array<String>]
45
+ required :fallbacks, BrandDev::Internal::Type::ArrayOf[String]
46
+
47
+ # @!attribute font
48
+ # Font family name
49
+ #
50
+ # @return [String]
51
+ required :font, String
52
+
53
+ # @!attribute num_elements
54
+ # Number of elements using this font
55
+ #
56
+ # @return [Float]
57
+ required :num_elements, Float
58
+
59
+ # @!attribute num_words
60
+ # Number of words using this font
61
+ #
62
+ # @return [Float]
63
+ required :num_words, Float
64
+
65
+ # @!attribute percent_elements
66
+ # Percentage of elements using this font
67
+ #
68
+ # @return [Float]
69
+ required :percent_elements, Float
70
+
71
+ # @!attribute percent_words
72
+ # Percentage of words using this font
73
+ #
74
+ # @return [Float]
75
+ required :percent_words, Float
76
+
77
+ # @!attribute uses
78
+ # Array of CSS selectors or element types where this font is used
79
+ #
80
+ # @return [Array<String>]
81
+ required :uses, BrandDev::Internal::Type::ArrayOf[String]
82
+
83
+ # @!method initialize(fallbacks:, font:, num_elements:, num_words:, percent_elements:, percent_words:, uses:)
84
+ # @param fallbacks [Array<String>] Array of fallback font families
85
+ #
86
+ # @param font [String] Font family name
87
+ #
88
+ # @param num_elements [Float] Number of elements using this font
89
+ #
90
+ # @param num_words [Float] Number of words using this font
91
+ #
92
+ # @param percent_elements [Float] Percentage of elements using this font
93
+ #
94
+ # @param percent_words [Float] Percentage of words using this font
95
+ #
96
+ # @param uses [Array<String>] Array of CSS selectors or element types where this font is used
97
+ end
98
+ end
99
+ end
100
+ end
@@ -41,6 +41,8 @@ module BrandDev
41
41
 
42
42
  BrandAIQueryParams = BrandDev::Models::BrandAIQueryParams
43
43
 
44
+ BrandFontsParams = BrandDev::Models::BrandFontsParams
45
+
44
46
  BrandIdentifyFromTransactionParams = BrandDev::Models::BrandIdentifyFromTransactionParams
45
47
 
46
48
  BrandPrefetchParams = BrandDev::Models::BrandPrefetchParams
@@ -68,6 +68,34 @@ module BrandDev
68
68
  )
69
69
  end
70
70
 
71
+ # Some parameter documentations has been truncated, see
72
+ # {BrandDev::Models::BrandFontsParams} for more details.
73
+ #
74
+ # Beta feature: Extract font information from a brand's website including font
75
+ # families, usage statistics, fallbacks, and element/word counts.
76
+ #
77
+ # @overload fonts(domain:, timeout_ms: nil, request_options: {})
78
+ #
79
+ # @param domain [String] Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domai
80
+ #
81
+ # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th
82
+ #
83
+ # @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
84
+ #
85
+ # @return [BrandDev::Models::BrandFontsResponse]
86
+ #
87
+ # @see BrandDev::Models::BrandFontsParams
88
+ def fonts(params)
89
+ parsed, options = BrandDev::BrandFontsParams.dump_request(params)
90
+ @client.request(
91
+ method: :get,
92
+ path: "brand/fonts",
93
+ query: parsed.transform_keys(timeout_ms: "timeoutMS"),
94
+ model: BrandDev::Models::BrandFontsResponse,
95
+ options: options
96
+ )
97
+ end
98
+
71
99
  # Some parameter documentations has been truncated, see
72
100
  # {BrandDev::Models::BrandIdentifyFromTransactionParams} for more details.
73
101
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrandDev
4
- VERSION = "0.14.0"
4
+ VERSION = "0.16.0"
5
5
  end
data/lib/brand_dev.rb CHANGED
@@ -54,6 +54,8 @@ require_relative "brand_dev/internal/transport/pooled_net_requester"
54
54
  require_relative "brand_dev/client"
55
55
  require_relative "brand_dev/models/brand_ai_query_params"
56
56
  require_relative "brand_dev/models/brand_ai_query_response"
57
+ require_relative "brand_dev/models/brand_fonts_params"
58
+ require_relative "brand_dev/models/brand_fonts_response"
57
59
  require_relative "brand_dev/models/brand_identify_from_transaction_params"
58
60
  require_relative "brand_dev/models/brand_identify_from_transaction_response"
59
61
  require_relative "brand_dev/models/brand_prefetch_params"
@@ -108,13 +108,64 @@ module BrandDev
108
108
  end
109
109
  attr_accessor :datapoint_type
110
110
 
111
+ # Type of items in the list when datapoint_type is 'list'. Defaults to 'string'.
112
+ # Use 'object' to extract an array of objects matching a schema.
113
+ sig do
114
+ returns(
115
+ T.nilable(
116
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::OrSymbol
117
+ )
118
+ )
119
+ end
120
+ attr_reader :datapoint_list_type
121
+
122
+ sig do
123
+ params(
124
+ datapoint_list_type:
125
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::OrSymbol
126
+ ).void
127
+ end
128
+ attr_writer :datapoint_list_type
129
+
130
+ # Schema definition for objects when datapoint_list_type is 'object'. Provide a
131
+ # map of field names to their scalar types.
132
+ sig do
133
+ returns(
134
+ T.nilable(
135
+ T::Hash[
136
+ Symbol,
137
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::OrSymbol
138
+ ]
139
+ )
140
+ )
141
+ end
142
+ attr_reader :datapoint_object_schema
143
+
144
+ sig do
145
+ params(
146
+ datapoint_object_schema:
147
+ T::Hash[
148
+ Symbol,
149
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::OrSymbol
150
+ ]
151
+ ).void
152
+ end
153
+ attr_writer :datapoint_object_schema
154
+
111
155
  sig do
112
156
  params(
113
157
  datapoint_description: String,
114
158
  datapoint_example: String,
115
159
  datapoint_name: String,
116
160
  datapoint_type:
117
- BrandDev::BrandAIQueryParams::DataToExtract::DatapointType::OrSymbol
161
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointType::OrSymbol,
162
+ datapoint_list_type:
163
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::OrSymbol,
164
+ datapoint_object_schema:
165
+ T::Hash[
166
+ Symbol,
167
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::OrSymbol
168
+ ]
118
169
  ).returns(T.attached_class)
119
170
  end
120
171
  def self.new(
@@ -125,7 +176,13 @@ module BrandDev
125
176
  # Name of the data point to extract
126
177
  datapoint_name:,
127
178
  # Type of the data point
128
- datapoint_type:
179
+ datapoint_type:,
180
+ # Type of items in the list when datapoint_type is 'list'. Defaults to 'string'.
181
+ # Use 'object' to extract an array of objects matching a schema.
182
+ datapoint_list_type: nil,
183
+ # Schema definition for objects when datapoint_list_type is 'object'. Provide a
184
+ # map of field names to their scalar types.
185
+ datapoint_object_schema: nil
129
186
  )
130
187
  end
131
188
 
@@ -136,7 +193,14 @@ module BrandDev
136
193
  datapoint_example: String,
137
194
  datapoint_name: String,
138
195
  datapoint_type:
139
- BrandDev::BrandAIQueryParams::DataToExtract::DatapointType::OrSymbol
196
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointType::OrSymbol,
197
+ datapoint_list_type:
198
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::OrSymbol,
199
+ datapoint_object_schema:
200
+ T::Hash[
201
+ Symbol,
202
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::OrSymbol
203
+ ]
140
204
  }
141
205
  )
142
206
  end
@@ -197,6 +261,116 @@ module BrandDev
197
261
  def self.values
198
262
  end
199
263
  end
264
+
265
+ # Type of items in the list when datapoint_type is 'list'. Defaults to 'string'.
266
+ # Use 'object' to extract an array of objects matching a schema.
267
+ module DatapointListType
268
+ extend BrandDev::Internal::Type::Enum
269
+
270
+ TaggedSymbol =
271
+ T.type_alias do
272
+ T.all(
273
+ Symbol,
274
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType
275
+ )
276
+ end
277
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
278
+
279
+ STRING =
280
+ T.let(
281
+ :string,
282
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
283
+ )
284
+ TEXT =
285
+ T.let(
286
+ :text,
287
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
288
+ )
289
+ NUMBER =
290
+ T.let(
291
+ :number,
292
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
293
+ )
294
+ DATE =
295
+ T.let(
296
+ :date,
297
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
298
+ )
299
+ BOOLEAN =
300
+ T.let(
301
+ :boolean,
302
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
303
+ )
304
+ LIST =
305
+ T.let(
306
+ :list,
307
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
308
+ )
309
+ URL =
310
+ T.let(
311
+ :url,
312
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
313
+ )
314
+ OBJECT =
315
+ T.let(
316
+ :object,
317
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
318
+ )
319
+
320
+ sig do
321
+ override.returns(
322
+ T::Array[
323
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointListType::TaggedSymbol
324
+ ]
325
+ )
326
+ end
327
+ def self.values
328
+ end
329
+ end
330
+
331
+ module DatapointObjectSchema
332
+ extend BrandDev::Internal::Type::Enum
333
+
334
+ TaggedSymbol =
335
+ T.type_alias do
336
+ T.all(
337
+ Symbol,
338
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema
339
+ )
340
+ end
341
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
342
+
343
+ STRING =
344
+ T.let(
345
+ :string,
346
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::TaggedSymbol
347
+ )
348
+ NUMBER =
349
+ T.let(
350
+ :number,
351
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::TaggedSymbol
352
+ )
353
+ DATE =
354
+ T.let(
355
+ :date,
356
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::TaggedSymbol
357
+ )
358
+ BOOLEAN =
359
+ T.let(
360
+ :boolean,
361
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::TaggedSymbol
362
+ )
363
+
364
+ sig do
365
+ override.returns(
366
+ T::Array[
367
+ BrandDev::BrandAIQueryParams::DataToExtract::DatapointObjectSchema::TaggedSymbol
368
+ ]
369
+ )
370
+ end
371
+ def self.values
372
+ end
373
+ end
200
374
  end
201
375
 
202
376
  class SpecificPages < BrandDev::Internal::Type::BaseModel
@@ -250,6 +424,13 @@ module BrandDev
250
424
  sig { params(home_page: T::Boolean).void }
251
425
  attr_writer :home_page
252
426
 
427
+ # Whether to analyze the pricing page
428
+ sig { returns(T.nilable(T::Boolean)) }
429
+ attr_reader :pricing
430
+
431
+ sig { params(pricing: T::Boolean).void }
432
+ attr_writer :pricing
433
+
253
434
  # Whether to analyze the privacy policy page
254
435
  sig { returns(T.nilable(T::Boolean)) }
255
436
  attr_reader :privacy_policy
@@ -273,6 +454,7 @@ module BrandDev
273
454
  contact_us: T::Boolean,
274
455
  faq: T::Boolean,
275
456
  home_page: T::Boolean,
457
+ pricing: T::Boolean,
276
458
  privacy_policy: T::Boolean,
277
459
  terms_and_conditions: T::Boolean
278
460
  ).returns(T.attached_class)
@@ -290,6 +472,8 @@ module BrandDev
290
472
  faq: nil,
291
473
  # Whether to analyze the home page
292
474
  home_page: nil,
475
+ # Whether to analyze the pricing page
476
+ pricing: nil,
293
477
  # Whether to analyze the privacy policy page
294
478
  privacy_policy: nil,
295
479
  # Whether to analyze the terms and conditions page
@@ -306,6 +490,7 @@ module BrandDev
306
490
  contact_us: T::Boolean,
307
491
  faq: T::Boolean,
308
492
  home_page: T::Boolean,
493
+ pricing: T::Boolean,
309
494
  privacy_policy: T::Boolean,
310
495
  terms_and_conditions: T::Boolean
311
496
  }
@@ -105,7 +105,8 @@ module BrandDev
105
105
  sig { params(datapoint_name: String).void }
106
106
  attr_writer :datapoint_name
107
107
 
108
- # Value of the extracted data point
108
+ # Value of the extracted data point. Can be a primitive type, an array of
109
+ # primitives, or an array of objects when datapoint_list_type is 'object'.
109
110
  sig do
110
111
  returns(
111
112
  T.nilable(
@@ -133,7 +134,8 @@ module BrandDev
133
134
  def self.new(
134
135
  # Name of the extracted data point
135
136
  datapoint_name: nil,
136
- # Value of the extracted data point
137
+ # Value of the extracted data point. Can be a primitive type, an array of
138
+ # primitives, or an array of objects when datapoint_list_type is 'object'.
137
139
  datapoint_value: nil
138
140
  )
139
141
  end
@@ -150,7 +152,8 @@ module BrandDev
150
152
  def to_hash
151
153
  end
152
154
 
153
- # Value of the extracted data point
155
+ # Value of the extracted data point. Can be a primitive type, an array of
156
+ # primitives, or an array of objects when datapoint_list_type is 'object'.
154
157
  module DatapointValue
155
158
  extend BrandDev::Internal::Type::Union
156
159
 
@@ -161,7 +164,8 @@ module BrandDev
161
164
  Float,
162
165
  T::Boolean,
163
166
  T::Array[String],
164
- T::Array[Float]
167
+ T::Array[Float],
168
+ T::Array[T.anything]
165
169
  )
166
170
  end
167
171
 
@@ -186,6 +190,14 @@ module BrandDev
186
190
  BrandDev::Internal::Type::ArrayOf[Float],
187
191
  BrandDev::Internal::Type::Converter
188
192
  )
193
+
194
+ UnionMember5Array =
195
+ T.let(
196
+ BrandDev::Internal::Type::ArrayOf[
197
+ BrandDev::Internal::Type::Unknown
198
+ ],
199
+ BrandDev::Internal::Type::Converter
200
+ )
189
201
  end
190
202
  end
191
203
  end
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module BrandDev
4
+ module Models
5
+ class BrandFontsParams < BrandDev::Internal::Type::BaseModel
6
+ extend BrandDev::Internal::Type::RequestParameters::Converter
7
+ include BrandDev::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(BrandDev::BrandFontsParams, BrandDev::Internal::AnyHash)
12
+ end
13
+
14
+ # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
15
+ # domain will be automatically normalized and validated.
16
+ sig { returns(String) }
17
+ attr_accessor :domain
18
+
19
+ # Optional timeout in milliseconds for the request. If the request takes longer
20
+ # than this value, it will be aborted with a 408 status code. Maximum allowed
21
+ # value is 300000ms (5 minutes).
22
+ sig { returns(T.nilable(Integer)) }
23
+ attr_reader :timeout_ms
24
+
25
+ sig { params(timeout_ms: Integer).void }
26
+ attr_writer :timeout_ms
27
+
28
+ sig do
29
+ params(
30
+ domain: String,
31
+ timeout_ms: Integer,
32
+ request_options: BrandDev::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
37
+ # domain will be automatically normalized and validated.
38
+ domain:,
39
+ # Optional timeout in milliseconds for the request. If the request takes longer
40
+ # than this value, it will be aborted with a 408 status code. Maximum allowed
41
+ # value is 300000ms (5 minutes).
42
+ timeout_ms: nil,
43
+ request_options: {}
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ domain: String,
51
+ timeout_ms: Integer,
52
+ request_options: BrandDev::RequestOptions
53
+ }
54
+ )
55
+ end
56
+ def to_hash
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,147 @@
1
+ # typed: strong
2
+
3
+ module BrandDev
4
+ module Models
5
+ class BrandFontsResponse < BrandDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ BrandDev::Models::BrandFontsResponse,
10
+ BrandDev::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # HTTP status code, e.g., 200
15
+ sig { returns(Integer) }
16
+ attr_accessor :code
17
+
18
+ # The normalized domain that was processed
19
+ sig { returns(String) }
20
+ attr_accessor :domain
21
+
22
+ # Array of font usage information
23
+ sig { returns(T::Array[BrandDev::Models::BrandFontsResponse::Font]) }
24
+ attr_accessor :fonts
25
+
26
+ # Status of the response, e.g., 'ok'
27
+ sig { returns(String) }
28
+ attr_accessor :status
29
+
30
+ sig do
31
+ params(
32
+ code: Integer,
33
+ domain: String,
34
+ fonts: T::Array[BrandDev::Models::BrandFontsResponse::Font::OrHash],
35
+ status: String
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # HTTP status code, e.g., 200
40
+ code:,
41
+ # The normalized domain that was processed
42
+ domain:,
43
+ # Array of font usage information
44
+ fonts:,
45
+ # Status of the response, e.g., 'ok'
46
+ status:
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ code: Integer,
54
+ domain: String,
55
+ fonts: T::Array[BrandDev::Models::BrandFontsResponse::Font],
56
+ status: String
57
+ }
58
+ )
59
+ end
60
+ def to_hash
61
+ end
62
+
63
+ class Font < BrandDev::Internal::Type::BaseModel
64
+ OrHash =
65
+ T.type_alias do
66
+ T.any(
67
+ BrandDev::Models::BrandFontsResponse::Font,
68
+ BrandDev::Internal::AnyHash
69
+ )
70
+ end
71
+
72
+ # Array of fallback font families
73
+ sig { returns(T::Array[String]) }
74
+ attr_accessor :fallbacks
75
+
76
+ # Font family name
77
+ sig { returns(String) }
78
+ attr_accessor :font
79
+
80
+ # Number of elements using this font
81
+ sig { returns(Float) }
82
+ attr_accessor :num_elements
83
+
84
+ # Number of words using this font
85
+ sig { returns(Float) }
86
+ attr_accessor :num_words
87
+
88
+ # Percentage of elements using this font
89
+ sig { returns(Float) }
90
+ attr_accessor :percent_elements
91
+
92
+ # Percentage of words using this font
93
+ sig { returns(Float) }
94
+ attr_accessor :percent_words
95
+
96
+ # Array of CSS selectors or element types where this font is used
97
+ sig { returns(T::Array[String]) }
98
+ attr_accessor :uses
99
+
100
+ sig do
101
+ params(
102
+ fallbacks: T::Array[String],
103
+ font: String,
104
+ num_elements: Float,
105
+ num_words: Float,
106
+ percent_elements: Float,
107
+ percent_words: Float,
108
+ uses: T::Array[String]
109
+ ).returns(T.attached_class)
110
+ end
111
+ def self.new(
112
+ # Array of fallback font families
113
+ fallbacks:,
114
+ # Font family name
115
+ font:,
116
+ # Number of elements using this font
117
+ num_elements:,
118
+ # Number of words using this font
119
+ num_words:,
120
+ # Percentage of elements using this font
121
+ percent_elements:,
122
+ # Percentage of words using this font
123
+ percent_words:,
124
+ # Array of CSS selectors or element types where this font is used
125
+ uses:
126
+ )
127
+ end
128
+
129
+ sig do
130
+ override.returns(
131
+ {
132
+ fallbacks: T::Array[String],
133
+ font: String,
134
+ num_elements: Float,
135
+ num_words: Float,
136
+ percent_elements: Float,
137
+ percent_words: Float,
138
+ uses: T::Array[String]
139
+ }
140
+ )
141
+ end
142
+ def to_hash
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
@@ -3,6 +3,8 @@
3
3
  module BrandDev
4
4
  BrandAIQueryParams = BrandDev::Models::BrandAIQueryParams
5
5
 
6
+ BrandFontsParams = BrandDev::Models::BrandFontsParams
7
+
6
8
  BrandIdentifyFromTransactionParams =
7
9
  BrandDev::Models::BrandIdentifyFromTransactionParams
8
10
 
@@ -62,6 +62,27 @@ module BrandDev
62
62
  )
63
63
  end
64
64
 
65
+ # Beta feature: Extract font information from a brand's website including font
66
+ # families, usage statistics, fallbacks, and element/word counts.
67
+ sig do
68
+ params(
69
+ domain: String,
70
+ timeout_ms: Integer,
71
+ request_options: BrandDev::RequestOptions::OrHash
72
+ ).returns(BrandDev::Models::BrandFontsResponse)
73
+ end
74
+ def fonts(
75
+ # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
76
+ # domain will be automatically normalized and validated.
77
+ domain:,
78
+ # Optional timeout in milliseconds for the request. If the request takes longer
79
+ # than this value, it will be aborted with a 408 status code. Maximum allowed
80
+ # value is 300000ms (5 minutes).
81
+ timeout_ms: nil,
82
+ request_options: {}
83
+ )
84
+ end
85
+
65
86
  # Endpoint specially designed for platforms that want to identify transaction data
66
87
  # by the transaction title.
67
88
  sig do
@@ -48,7 +48,9 @@ module BrandDev
48
48
  datapoint_description: String,
49
49
  datapoint_example: String,
50
50
  datapoint_name: String,
51
- datapoint_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type
51
+ datapoint_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type,
52
+ datapoint_list_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_list_type,
53
+ datapoint_object_schema: ::Hash[Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_object_schema]
52
54
  }
53
55
 
54
56
  class DataToExtract < BrandDev::Internal::Type::BaseModel
@@ -60,18 +62,34 @@ module BrandDev
60
62
 
61
63
  attr_accessor datapoint_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type
62
64
 
65
+ attr_reader datapoint_list_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_list_type?
66
+
67
+ def datapoint_list_type=: (
68
+ BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_list_type
69
+ ) -> BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_list_type
70
+
71
+ attr_reader datapoint_object_schema: ::Hash[Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_object_schema]?
72
+
73
+ def datapoint_object_schema=: (
74
+ ::Hash[Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_object_schema]
75
+ ) -> ::Hash[Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_object_schema]
76
+
63
77
  def initialize: (
64
78
  datapoint_description: String,
65
79
  datapoint_example: String,
66
80
  datapoint_name: String,
67
- datapoint_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type
81
+ datapoint_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type,
82
+ ?datapoint_list_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_list_type,
83
+ ?datapoint_object_schema: ::Hash[Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_object_schema]
68
84
  ) -> void
69
85
 
70
86
  def to_hash: -> {
71
87
  datapoint_description: String,
72
88
  datapoint_example: String,
73
89
  datapoint_name: String,
74
- datapoint_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type
90
+ datapoint_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type,
91
+ datapoint_list_type: BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_list_type,
92
+ datapoint_object_schema: ::Hash[Symbol, BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_object_schema]
75
93
  }
76
94
 
77
95
  type datapoint_type = :text | :number | :date | :boolean | :list | :url
@@ -88,6 +106,37 @@ module BrandDev
88
106
 
89
107
  def self?.values: -> ::Array[BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_type]
90
108
  end
109
+
110
+ type datapoint_list_type =
111
+ :string | :text | :number | :date | :boolean | :list | :url | :object
112
+
113
+ module DatapointListType
114
+ extend BrandDev::Internal::Type::Enum
115
+
116
+ STRING: :string
117
+ TEXT: :text
118
+ NUMBER: :number
119
+ DATE: :date
120
+ BOOLEAN: :boolean
121
+ LIST: :list
122
+ URL: :url
123
+ OBJECT: :object
124
+
125
+ def self?.values: -> ::Array[BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_list_type]
126
+ end
127
+
128
+ type datapoint_object_schema = :string | :number | :date | :boolean
129
+
130
+ module DatapointObjectSchema
131
+ extend BrandDev::Internal::Type::Enum
132
+
133
+ STRING: :string
134
+ NUMBER: :number
135
+ DATE: :date
136
+ BOOLEAN: :boolean
137
+
138
+ def self?.values: -> ::Array[BrandDev::Models::BrandAIQueryParams::DataToExtract::datapoint_object_schema]
139
+ end
91
140
  end
92
141
 
93
142
  type specific_pages =
@@ -98,6 +147,7 @@ module BrandDev
98
147
  contact_us: bool,
99
148
  faq: bool,
100
149
  home_page: bool,
150
+ pricing: bool,
101
151
  privacy_policy: bool,
102
152
  terms_and_conditions: bool
103
153
  }
@@ -127,6 +177,10 @@ module BrandDev
127
177
 
128
178
  def home_page=: (bool) -> bool
129
179
 
180
+ attr_reader pricing: bool?
181
+
182
+ def pricing=: (bool) -> bool
183
+
130
184
  attr_reader privacy_policy: bool?
131
185
 
132
186
  def privacy_policy=: (bool) -> bool
@@ -142,6 +196,7 @@ module BrandDev
142
196
  ?contact_us: bool,
143
197
  ?faq: bool,
144
198
  ?home_page: bool,
199
+ ?pricing: bool,
145
200
  ?privacy_policy: bool,
146
201
  ?terms_and_conditions: bool
147
202
  ) -> void
@@ -153,6 +208,7 @@ module BrandDev
153
208
  contact_us: bool,
154
209
  faq: bool,
155
210
  home_page: bool,
211
+ pricing: bool,
156
212
  privacy_policy: bool,
157
213
  terms_and_conditions: bool
158
214
  }
@@ -69,7 +69,12 @@ module BrandDev
69
69
  }
70
70
 
71
71
  type datapoint_value =
72
- String | Float | bool | ::Array[String] | ::Array[Float]
72
+ String
73
+ | Float
74
+ | bool
75
+ | ::Array[String]
76
+ | ::Array[Float]
77
+ | ::Array[top]
73
78
 
74
79
  module DatapointValue
75
80
  extend BrandDev::Internal::Type::Union
@@ -79,6 +84,8 @@ module BrandDev
79
84
  StringArray: BrandDev::Internal::Type::Converter
80
85
 
81
86
  FloatArray: BrandDev::Internal::Type::Converter
87
+
88
+ UnionMember5Array: BrandDev::Internal::Type::Converter
82
89
  end
83
90
  end
84
91
  end
@@ -0,0 +1,30 @@
1
+ module BrandDev
2
+ module Models
3
+ type brand_fonts_params =
4
+ { domain: String, timeout_ms: Integer }
5
+ & BrandDev::Internal::Type::request_parameters
6
+
7
+ class BrandFontsParams < BrandDev::Internal::Type::BaseModel
8
+ extend BrandDev::Internal::Type::RequestParameters::Converter
9
+ include BrandDev::Internal::Type::RequestParameters
10
+
11
+ attr_accessor domain: String
12
+
13
+ attr_reader timeout_ms: Integer?
14
+
15
+ def timeout_ms=: (Integer) -> Integer
16
+
17
+ def initialize: (
18
+ domain: String,
19
+ ?timeout_ms: Integer,
20
+ ?request_options: BrandDev::request_opts
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ domain: String,
25
+ timeout_ms: Integer,
26
+ request_options: BrandDev::RequestOptions
27
+ }
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,82 @@
1
+ module BrandDev
2
+ module Models
3
+ type brand_fonts_response =
4
+ {
5
+ code: Integer,
6
+ domain: String,
7
+ fonts: ::Array[BrandDev::Models::BrandFontsResponse::Font],
8
+ status: String
9
+ }
10
+
11
+ class BrandFontsResponse < BrandDev::Internal::Type::BaseModel
12
+ attr_accessor code: Integer
13
+
14
+ attr_accessor domain: String
15
+
16
+ attr_accessor fonts: ::Array[BrandDev::Models::BrandFontsResponse::Font]
17
+
18
+ attr_accessor status: String
19
+
20
+ def initialize: (
21
+ code: Integer,
22
+ domain: String,
23
+ fonts: ::Array[BrandDev::Models::BrandFontsResponse::Font],
24
+ status: String
25
+ ) -> void
26
+
27
+ def to_hash: -> {
28
+ code: Integer,
29
+ domain: String,
30
+ fonts: ::Array[BrandDev::Models::BrandFontsResponse::Font],
31
+ status: String
32
+ }
33
+
34
+ type font =
35
+ {
36
+ fallbacks: ::Array[String],
37
+ font: String,
38
+ num_elements: Float,
39
+ num_words: Float,
40
+ percent_elements: Float,
41
+ percent_words: Float,
42
+ uses: ::Array[String]
43
+ }
44
+
45
+ class Font < BrandDev::Internal::Type::BaseModel
46
+ attr_accessor fallbacks: ::Array[String]
47
+
48
+ attr_accessor font: String
49
+
50
+ attr_accessor num_elements: Float
51
+
52
+ attr_accessor num_words: Float
53
+
54
+ attr_accessor percent_elements: Float
55
+
56
+ attr_accessor percent_words: Float
57
+
58
+ attr_accessor uses: ::Array[String]
59
+
60
+ def initialize: (
61
+ fallbacks: ::Array[String],
62
+ font: String,
63
+ num_elements: Float,
64
+ num_words: Float,
65
+ percent_elements: Float,
66
+ percent_words: Float,
67
+ uses: ::Array[String]
68
+ ) -> void
69
+
70
+ def to_hash: -> {
71
+ fallbacks: ::Array[String],
72
+ font: String,
73
+ num_elements: Float,
74
+ num_words: Float,
75
+ percent_elements: Float,
76
+ percent_words: Float,
77
+ uses: ::Array[String]
78
+ }
79
+ end
80
+ end
81
+ end
82
+ end
@@ -1,6 +1,8 @@
1
1
  module BrandDev
2
2
  class BrandAIQueryParams = BrandDev::Models::BrandAIQueryParams
3
3
 
4
+ class BrandFontsParams = BrandDev::Models::BrandFontsParams
5
+
4
6
  class BrandIdentifyFromTransactionParams = BrandDev::Models::BrandIdentifyFromTransactionParams
5
7
 
6
8
  class BrandPrefetchParams = BrandDev::Models::BrandPrefetchParams
@@ -17,6 +17,12 @@ module BrandDev
17
17
  ?request_options: BrandDev::request_opts
18
18
  ) -> BrandDev::Models::BrandAIQueryResponse
19
19
 
20
+ def fonts: (
21
+ domain: String,
22
+ ?timeout_ms: Integer,
23
+ ?request_options: BrandDev::request_opts
24
+ ) -> BrandDev::Models::BrandFontsResponse
25
+
20
26
  def identify_from_transaction: (
21
27
  transaction_info: String,
22
28
  ?city: String,
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.14.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brand Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-11-24 00:00:00.000000000 Z
11
+ date: 2025-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool
@@ -56,6 +56,8 @@ files:
56
56
  - lib/brand_dev/models.rb
57
57
  - lib/brand_dev/models/brand_ai_query_params.rb
58
58
  - lib/brand_dev/models/brand_ai_query_response.rb
59
+ - lib/brand_dev/models/brand_fonts_params.rb
60
+ - lib/brand_dev/models/brand_fonts_response.rb
59
61
  - lib/brand_dev/models/brand_identify_from_transaction_params.rb
60
62
  - lib/brand_dev/models/brand_identify_from_transaction_response.rb
61
63
  - lib/brand_dev/models/brand_prefetch_params.rb
@@ -103,6 +105,8 @@ files:
103
105
  - rbi/brand_dev/models.rbi
104
106
  - rbi/brand_dev/models/brand_ai_query_params.rbi
105
107
  - rbi/brand_dev/models/brand_ai_query_response.rbi
108
+ - rbi/brand_dev/models/brand_fonts_params.rbi
109
+ - rbi/brand_dev/models/brand_fonts_response.rbi
106
110
  - rbi/brand_dev/models/brand_identify_from_transaction_params.rbi
107
111
  - rbi/brand_dev/models/brand_identify_from_transaction_response.rbi
108
112
  - rbi/brand_dev/models/brand_prefetch_params.rbi
@@ -149,6 +153,8 @@ files:
149
153
  - sig/brand_dev/models.rbs
150
154
  - sig/brand_dev/models/brand_ai_query_params.rbs
151
155
  - sig/brand_dev/models/brand_ai_query_response.rbs
156
+ - sig/brand_dev/models/brand_fonts_params.rbs
157
+ - sig/brand_dev/models/brand_fonts_response.rbs
152
158
  - sig/brand_dev/models/brand_identify_from_transaction_params.rbs
153
159
  - sig/brand_dev/models/brand_identify_from_transaction_response.rbs
154
160
  - sig/brand_dev/models/brand_prefetch_params.rbs