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 +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/brand_dev/models/brand_ai_query_params.rb +64 -2
- data/lib/brand_dev/models/brand_ai_query_response.rb +15 -5
- data/lib/brand_dev/models/brand_fonts_params.rb +36 -0
- data/lib/brand_dev/models/brand_fonts_response.rb +100 -0
- data/lib/brand_dev/models.rb +2 -0
- data/lib/brand_dev/resources/brand.rb +28 -0
- data/lib/brand_dev/version.rb +1 -1
- data/lib/brand_dev.rb +2 -0
- data/rbi/brand_dev/models/brand_ai_query_params.rbi +188 -3
- data/rbi/brand_dev/models/brand_ai_query_response.rbi +16 -4
- data/rbi/brand_dev/models/brand_fonts_params.rbi +60 -0
- data/rbi/brand_dev/models/brand_fonts_response.rbi +147 -0
- data/rbi/brand_dev/models.rbi +2 -0
- data/rbi/brand_dev/resources/brand.rbi +21 -0
- data/sig/brand_dev/models/brand_ai_query_params.rbs +59 -3
- data/sig/brand_dev/models/brand_ai_query_response.rbs +8 -1
- data/sig/brand_dev/models/brand_fonts_params.rbs +30 -0
- data/sig/brand_dev/models/brand_fonts_response.rbs +82 -0
- data/sig/brand_dev/models.rbs +2 -0
- data/sig/brand_dev/resources/brand.rbs +6 -0
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ccf8dd90507c84dcea927392291711080cc1dff713f6033bb87f974573f66417
|
|
4
|
+
data.tar.gz: dab13e3371525060dcf6a098cc9d75faba070512dd62aca367addff096cfab1f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
@@ -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
|
-
# @!
|
|
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
|
data/lib/brand_dev/models.rb
CHANGED
|
@@ -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
|
#
|
data/lib/brand_dev/version.rb
CHANGED
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
|
data/rbi/brand_dev/models.rbi
CHANGED
|
@@ -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
|
|
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
|
data/sig/brand_dev/models.rbs
CHANGED
|
@@ -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.
|
|
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
|
+
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
|