brand.dev 0.0.1.pre.alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +229 -0
  3. data/SECURITY.md +23 -0
  4. data/lib/brand_dev/client.rb +74 -0
  5. data/lib/brand_dev/errors.rb +192 -0
  6. data/lib/brand_dev/file_part.rb +55 -0
  7. data/lib/brand_dev/internal/transport/base_client.rb +555 -0
  8. data/lib/brand_dev/internal/transport/pooled_net_requester.rb +209 -0
  9. data/lib/brand_dev/internal/type/array_of.rb +162 -0
  10. data/lib/brand_dev/internal/type/base_model.rb +484 -0
  11. data/lib/brand_dev/internal/type/base_page.rb +55 -0
  12. data/lib/brand_dev/internal/type/boolean.rb +71 -0
  13. data/lib/brand_dev/internal/type/converter.rb +292 -0
  14. data/lib/brand_dev/internal/type/enum.rb +120 -0
  15. data/lib/brand_dev/internal/type/file_input.rb +103 -0
  16. data/lib/brand_dev/internal/type/hash_of.rb +182 -0
  17. data/lib/brand_dev/internal/type/request_parameters.rb +42 -0
  18. data/lib/brand_dev/internal/type/union.rb +227 -0
  19. data/lib/brand_dev/internal/type/unknown.rb +75 -0
  20. data/lib/brand_dev/internal/util.rb +915 -0
  21. data/lib/brand_dev/internal.rb +20 -0
  22. data/lib/brand_dev/models/brand_identify_from_transaction_params.rb +22 -0
  23. data/lib/brand_dev/models/brand_identify_from_transaction_response.rb +435 -0
  24. data/lib/brand_dev/models/brand_retrieve_by_ticker_params.rb +22 -0
  25. data/lib/brand_dev/models/brand_retrieve_by_ticker_response.rb +432 -0
  26. data/lib/brand_dev/models/brand_retrieve_naics_params.rb +27 -0
  27. data/lib/brand_dev/models/brand_retrieve_naics_response.rb +61 -0
  28. data/lib/brand_dev/models/brand_retrieve_params.rb +91 -0
  29. data/lib/brand_dev/models/brand_retrieve_response.rb +432 -0
  30. data/lib/brand_dev/models/brand_search_params.rb +22 -0
  31. data/lib/brand_dev/models/brand_search_response.rb +35 -0
  32. data/lib/brand_dev/models.rb +51 -0
  33. data/lib/brand_dev/request_options.rb +77 -0
  34. data/lib/brand_dev/resources/brand.rb +130 -0
  35. data/lib/brand_dev/version.rb +5 -0
  36. data/lib/brand_dev.rb +64 -0
  37. data/manifest.yaml +15 -0
  38. data/rbi/brand_dev/client.rbi +49 -0
  39. data/rbi/brand_dev/errors.rbi +162 -0
  40. data/rbi/brand_dev/file_part.rbi +37 -0
  41. data/rbi/brand_dev/internal/transport/base_client.rbi +293 -0
  42. data/rbi/brand_dev/internal/transport/pooled_net_requester.rbi +79 -0
  43. data/rbi/brand_dev/internal/type/array_of.rbi +104 -0
  44. data/rbi/brand_dev/internal/type/base_model.rbi +302 -0
  45. data/rbi/brand_dev/internal/type/base_page.rbi +42 -0
  46. data/rbi/brand_dev/internal/type/boolean.rbi +56 -0
  47. data/rbi/brand_dev/internal/type/converter.rbi +162 -0
  48. data/rbi/brand_dev/internal/type/enum.rbi +82 -0
  49. data/rbi/brand_dev/internal/type/file_input.rbi +59 -0
  50. data/rbi/brand_dev/internal/type/hash_of.rbi +104 -0
  51. data/rbi/brand_dev/internal/type/request_parameters.rbi +29 -0
  52. data/rbi/brand_dev/internal/type/union.rbi +116 -0
  53. data/rbi/brand_dev/internal/type/unknown.rbi +56 -0
  54. data/rbi/brand_dev/internal/util.rbi +485 -0
  55. data/rbi/brand_dev/internal.rbi +16 -0
  56. data/rbi/brand_dev/models/brand_identify_from_transaction_params.rbi +46 -0
  57. data/rbi/brand_dev/models/brand_identify_from_transaction_response.rbi +981 -0
  58. data/rbi/brand_dev/models/brand_retrieve_by_ticker_params.rbi +43 -0
  59. data/rbi/brand_dev/models/brand_retrieve_by_ticker_response.rbi +976 -0
  60. data/rbi/brand_dev/models/brand_retrieve_naics_params.rbi +44 -0
  61. data/rbi/brand_dev/models/brand_retrieve_naics_response.rbi +127 -0
  62. data/rbi/brand_dev/models/brand_retrieve_params.rbi +344 -0
  63. data/rbi/brand_dev/models/brand_retrieve_response.rbi +949 -0
  64. data/rbi/brand_dev/models/brand_search_params.rbi +40 -0
  65. data/rbi/brand_dev/models/brand_search_response.rbi +63 -0
  66. data/rbi/brand_dev/models.rbi +14 -0
  67. data/rbi/brand_dev/request_options.rbi +59 -0
  68. data/rbi/brand_dev/resources/brand.rbi +89 -0
  69. data/rbi/brand_dev/version.rbi +5 -0
  70. data/sig/brand_dev/client.rbs +26 -0
  71. data/sig/brand_dev/errors.rbs +101 -0
  72. data/sig/brand_dev/file_part.rbs +21 -0
  73. data/sig/brand_dev/internal/transport/base_client.rbs +131 -0
  74. data/sig/brand_dev/internal/transport/pooled_net_requester.rbs +45 -0
  75. data/sig/brand_dev/internal/type/array_of.rbs +48 -0
  76. data/sig/brand_dev/internal/type/base_model.rbs +102 -0
  77. data/sig/brand_dev/internal/type/base_page.rbs +24 -0
  78. data/sig/brand_dev/internal/type/boolean.rbs +26 -0
  79. data/sig/brand_dev/internal/type/converter.rbs +56 -0
  80. data/sig/brand_dev/internal/type/enum.rbs +32 -0
  81. data/sig/brand_dev/internal/type/file_input.rbs +25 -0
  82. data/sig/brand_dev/internal/type/hash_of.rbs +48 -0
  83. data/sig/brand_dev/internal/type/request_parameters.rbs +17 -0
  84. data/sig/brand_dev/internal/type/union.rbs +52 -0
  85. data/sig/brand_dev/internal/type/unknown.rbs +26 -0
  86. data/sig/brand_dev/internal/util.rbs +185 -0
  87. data/sig/brand_dev/internal.rbs +9 -0
  88. data/sig/brand_dev/models/brand_identify_from_transaction_params.rbs +24 -0
  89. data/sig/brand_dev/models/brand_identify_from_transaction_response.rbs +418 -0
  90. data/sig/brand_dev/models/brand_retrieve_by_ticker_params.rbs +23 -0
  91. data/sig/brand_dev/models/brand_retrieve_by_ticker_response.rbs +418 -0
  92. data/sig/brand_dev/models/brand_retrieve_naics_params.rbs +23 -0
  93. data/sig/brand_dev/models/brand_retrieve_naics_response.rbs +61 -0
  94. data/sig/brand_dev/models/brand_retrieve_params.rbs +148 -0
  95. data/sig/brand_dev/models/brand_retrieve_response.rbs +418 -0
  96. data/sig/brand_dev/models/brand_search_params.rbs +23 -0
  97. data/sig/brand_dev/models/brand_search_response.rbs +29 -0
  98. data/sig/brand_dev/models.rbs +11 -0
  99. data/sig/brand_dev/request_options.rbs +34 -0
  100. data/sig/brand_dev/resources/brand.rbs +33 -0
  101. data/sig/brand_dev/version.rbs +3 -0
  102. metadata +160 -0
@@ -0,0 +1,293 @@
1
+ # typed: strong
2
+
3
+ module BrandDev
4
+ module Internal
5
+ module Transport
6
+ # @api private
7
+ class BaseClient
8
+ extend BrandDev::Internal::Util::SorbetRuntimeSupport
9
+
10
+ abstract!
11
+
12
+ RequestComponents =
13
+ T.type_alias do
14
+ {
15
+ method: Symbol,
16
+ path: T.any(String, T::Array[String]),
17
+ query:
18
+ T.nilable(
19
+ T::Hash[String, T.nilable(T.any(T::Array[String], String))]
20
+ ),
21
+ headers:
22
+ T.nilable(
23
+ T::Hash[
24
+ String,
25
+ T.nilable(
26
+ T.any(
27
+ String,
28
+ Integer,
29
+ T::Array[T.nilable(T.any(String, Integer))]
30
+ )
31
+ )
32
+ ]
33
+ ),
34
+ body: T.nilable(T.anything),
35
+ unwrap:
36
+ T.nilable(
37
+ T.any(
38
+ Symbol,
39
+ Integer,
40
+ T::Array[T.any(Symbol, Integer)],
41
+ T.proc.params(arg0: T.anything).returns(T.anything)
42
+ )
43
+ ),
44
+ page:
45
+ T.nilable(
46
+ T::Class[
47
+ BrandDev::Internal::Type::BasePage[
48
+ BrandDev::Internal::Type::BaseModel
49
+ ]
50
+ ]
51
+ ),
52
+ stream: T.nilable(T::Class[T.anything]),
53
+ model: T.nilable(BrandDev::Internal::Type::Converter::Input),
54
+ options: T.nilable(BrandDev::RequestOptions::OrHash)
55
+ }
56
+ end
57
+
58
+ RequestInput =
59
+ T.type_alias do
60
+ {
61
+ method: Symbol,
62
+ url: URI::Generic,
63
+ headers: T::Hash[String, String],
64
+ body: T.anything,
65
+ max_retries: Integer,
66
+ timeout: Float
67
+ }
68
+ end
69
+
70
+ # from whatwg fetch spec
71
+ MAX_REDIRECTS = 20
72
+
73
+ PLATFORM_HEADERS = T::Hash[String, String]
74
+
75
+ class << self
76
+ # @api private
77
+ sig do
78
+ params(
79
+ req: BrandDev::Internal::Transport::BaseClient::RequestComponents
80
+ ).void
81
+ end
82
+ def validate!(req)
83
+ end
84
+
85
+ # @api private
86
+ sig do
87
+ params(
88
+ status: Integer,
89
+ headers: T.any(T::Hash[String, String], Net::HTTPHeader)
90
+ ).returns(T::Boolean)
91
+ end
92
+ def should_retry?(status, headers:)
93
+ end
94
+
95
+ # @api private
96
+ sig do
97
+ params(
98
+ request: BrandDev::Internal::Transport::BaseClient::RequestInput,
99
+ status: Integer,
100
+ response_headers: T.any(T::Hash[String, String], Net::HTTPHeader)
101
+ ).returns(BrandDev::Internal::Transport::BaseClient::RequestInput)
102
+ end
103
+ def follow_redirect(request, status:, response_headers:)
104
+ end
105
+
106
+ # @api private
107
+ sig do
108
+ params(
109
+ status: T.any(Integer, BrandDev::Errors::APIConnectionError),
110
+ stream: T.nilable(T::Enumerable[String])
111
+ ).void
112
+ end
113
+ def reap_connection!(status, stream:)
114
+ end
115
+ end
116
+
117
+ sig { returns(URI::Generic) }
118
+ attr_reader :base_url
119
+
120
+ sig { returns(Float) }
121
+ attr_reader :timeout
122
+
123
+ sig { returns(Integer) }
124
+ attr_reader :max_retries
125
+
126
+ sig { returns(Float) }
127
+ attr_reader :initial_retry_delay
128
+
129
+ sig { returns(Float) }
130
+ attr_reader :max_retry_delay
131
+
132
+ sig { returns(T::Hash[String, String]) }
133
+ attr_reader :headers
134
+
135
+ sig { returns(T.nilable(String)) }
136
+ attr_reader :idempotency_header
137
+
138
+ # @api private
139
+ sig { returns(BrandDev::Internal::Transport::PooledNetRequester) }
140
+ attr_reader :requester
141
+
142
+ # @api private
143
+ sig do
144
+ params(
145
+ base_url: String,
146
+ timeout: Float,
147
+ max_retries: Integer,
148
+ initial_retry_delay: Float,
149
+ max_retry_delay: Float,
150
+ headers:
151
+ T::Hash[
152
+ String,
153
+ T.nilable(
154
+ T.any(
155
+ String,
156
+ Integer,
157
+ T::Array[T.nilable(T.any(String, Integer))]
158
+ )
159
+ )
160
+ ],
161
+ idempotency_header: T.nilable(String)
162
+ ).returns(T.attached_class)
163
+ end
164
+ def self.new(
165
+ base_url:,
166
+ timeout: 0.0,
167
+ max_retries: 0,
168
+ initial_retry_delay: 0.0,
169
+ max_retry_delay: 0.0,
170
+ headers: {},
171
+ idempotency_header: nil
172
+ )
173
+ end
174
+
175
+ # @api private
176
+ sig { overridable.returns(T::Hash[String, String]) }
177
+ private def auth_headers
178
+ end
179
+
180
+ # @api private
181
+ sig { returns(String) }
182
+ private def generate_idempotency_key
183
+ end
184
+
185
+ # @api private
186
+ sig do
187
+ overridable
188
+ .params(
189
+ req: BrandDev::Internal::Transport::BaseClient::RequestComponents,
190
+ opts: BrandDev::Internal::AnyHash
191
+ )
192
+ .returns(BrandDev::Internal::Transport::BaseClient::RequestInput)
193
+ end
194
+ private def build_request(req, opts)
195
+ end
196
+
197
+ # @api private
198
+ sig do
199
+ params(
200
+ headers: T::Hash[String, String],
201
+ retry_count: Integer
202
+ ).returns(Float)
203
+ end
204
+ private def retry_delay(headers, retry_count:)
205
+ end
206
+
207
+ # @api private
208
+ sig do
209
+ params(
210
+ request: BrandDev::Internal::Transport::BaseClient::RequestInput,
211
+ redirect_count: Integer,
212
+ retry_count: Integer,
213
+ send_retry_header: T::Boolean
214
+ ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
215
+ end
216
+ private def send_request(
217
+ request,
218
+ redirect_count:,
219
+ retry_count:,
220
+ send_retry_header:
221
+ )
222
+ end
223
+
224
+ # Execute the request specified by `req`. This is the method that all resource
225
+ # methods call into.
226
+ #
227
+ # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: BrandDev::Internal::Type::Unknown, options: {})
228
+ sig do
229
+ params(
230
+ method: Symbol,
231
+ path: T.any(String, T::Array[String]),
232
+ query:
233
+ T.nilable(
234
+ T::Hash[String, T.nilable(T.any(T::Array[String], String))]
235
+ ),
236
+ headers:
237
+ T.nilable(
238
+ T::Hash[
239
+ String,
240
+ T.nilable(
241
+ T.any(
242
+ String,
243
+ Integer,
244
+ T::Array[T.nilable(T.any(String, Integer))]
245
+ )
246
+ )
247
+ ]
248
+ ),
249
+ body: T.nilable(T.anything),
250
+ unwrap:
251
+ T.nilable(
252
+ T.any(
253
+ Symbol,
254
+ Integer,
255
+ T::Array[T.any(Symbol, Integer)],
256
+ T.proc.params(arg0: T.anything).returns(T.anything)
257
+ )
258
+ ),
259
+ page:
260
+ T.nilable(
261
+ T::Class[
262
+ BrandDev::Internal::Type::BasePage[
263
+ BrandDev::Internal::Type::BaseModel
264
+ ]
265
+ ]
266
+ ),
267
+ stream: T.nilable(T::Class[T.anything]),
268
+ model: T.nilable(BrandDev::Internal::Type::Converter::Input),
269
+ options: T.nilable(BrandDev::RequestOptions::OrHash)
270
+ ).returns(T.anything)
271
+ end
272
+ def request(
273
+ method,
274
+ path,
275
+ query: {},
276
+ headers: {},
277
+ body: nil,
278
+ unwrap: nil,
279
+ page: nil,
280
+ stream: nil,
281
+ model: BrandDev::Internal::Type::Unknown,
282
+ options: {}
283
+ )
284
+ end
285
+
286
+ # @api private
287
+ sig { returns(String) }
288
+ def inspect
289
+ end
290
+ end
291
+ end
292
+ end
293
+ end
@@ -0,0 +1,79 @@
1
+ # typed: strong
2
+
3
+ module BrandDev
4
+ module Internal
5
+ module Transport
6
+ # @api private
7
+ class PooledNetRequester
8
+ extend BrandDev::Internal::Util::SorbetRuntimeSupport
9
+
10
+ Request =
11
+ T.type_alias do
12
+ {
13
+ method: Symbol,
14
+ url: URI::Generic,
15
+ headers: T::Hash[String, String],
16
+ body: T.anything,
17
+ deadline: Float
18
+ }
19
+ end
20
+
21
+ # from the golang stdlib
22
+ # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
23
+ KEEP_ALIVE_TIMEOUT = 30
24
+
25
+ DEFAULT_MAX_CONNECTIONS = T.let(T.unsafe(nil), Integer)
26
+
27
+ class << self
28
+ # @api private
29
+ sig { params(url: URI::Generic).returns(Net::HTTP) }
30
+ def connect(url)
31
+ end
32
+
33
+ # @api private
34
+ sig { params(conn: Net::HTTP, deadline: Float).void }
35
+ def calibrate_socket_timeout(conn, deadline)
36
+ end
37
+
38
+ # @api private
39
+ sig do
40
+ params(
41
+ request:
42
+ BrandDev::Internal::Transport::PooledNetRequester::Request,
43
+ blk: T.proc.params(arg0: String).void
44
+ ).returns([Net::HTTPGenericRequest, T.proc.void])
45
+ end
46
+ def build_request(request, &blk)
47
+ end
48
+ end
49
+
50
+ # @api private
51
+ sig do
52
+ params(
53
+ url: URI::Generic,
54
+ deadline: Float,
55
+ blk: T.proc.params(arg0: Net::HTTP).void
56
+ ).void
57
+ end
58
+ private def with_pool(url, deadline:, &blk)
59
+ end
60
+
61
+ # @api private
62
+ sig do
63
+ params(
64
+ request: BrandDev::Internal::Transport::PooledNetRequester::Request
65
+ ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
66
+ end
67
+ def execute(request)
68
+ end
69
+
70
+ # @api private
71
+ sig { params(size: Integer).returns(T.attached_class) }
72
+ def self.new(
73
+ size: BrandDev::Internal::Transport::PooledNetRequester::DEFAULT_MAX_CONNECTIONS
74
+ )
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,104 @@
1
+ # typed: strong
2
+
3
+ module BrandDev
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # Array of items of a given type.
9
+ class ArrayOf
10
+ include BrandDev::Internal::Type::Converter
11
+ include BrandDev::Internal::Util::SorbetRuntimeSupport
12
+
13
+ abstract!
14
+
15
+ Elem = type_member(:out)
16
+
17
+ sig do
18
+ params(
19
+ type_info:
20
+ T.any(
21
+ BrandDev::Internal::AnyHash,
22
+ T.proc.returns(BrandDev::Internal::Type::Converter::Input),
23
+ BrandDev::Internal::Type::Converter::Input
24
+ ),
25
+ spec: BrandDev::Internal::AnyHash
26
+ ).returns(T.attached_class)
27
+ end
28
+ def self.[](type_info, spec = {})
29
+ end
30
+
31
+ sig { params(other: T.anything).returns(T::Boolean) }
32
+ def ===(other)
33
+ end
34
+
35
+ sig { params(other: T.anything).returns(T::Boolean) }
36
+ def ==(other)
37
+ end
38
+
39
+ sig { returns(Integer) }
40
+ def hash
41
+ end
42
+
43
+ # @api private
44
+ sig do
45
+ override
46
+ .params(
47
+ value: T.any(T::Array[T.anything], T.anything),
48
+ state: BrandDev::Internal::Type::Converter::CoerceState
49
+ )
50
+ .returns(T.any(T::Array[T.anything], T.anything))
51
+ end
52
+ def coerce(value, state:)
53
+ end
54
+
55
+ # @api private
56
+ sig do
57
+ override
58
+ .params(
59
+ value: T.any(T::Array[T.anything], T.anything),
60
+ state: BrandDev::Internal::Type::Converter::DumpState
61
+ )
62
+ .returns(T.any(T::Array[T.anything], T.anything))
63
+ end
64
+ def dump(value, state:)
65
+ end
66
+
67
+ # @api private
68
+ sig { returns(T.anything) }
69
+ def to_sorbet_type
70
+ end
71
+
72
+ # @api private
73
+ sig { returns(Elem) }
74
+ protected def item_type
75
+ end
76
+
77
+ # @api private
78
+ sig { returns(T::Boolean) }
79
+ protected def nilable?
80
+ end
81
+
82
+ # @api private
83
+ sig do
84
+ params(
85
+ type_info:
86
+ T.any(
87
+ BrandDev::Internal::AnyHash,
88
+ T.proc.returns(BrandDev::Internal::Type::Converter::Input),
89
+ BrandDev::Internal::Type::Converter::Input
90
+ ),
91
+ spec: BrandDev::Internal::AnyHash
92
+ ).void
93
+ end
94
+ def initialize(type_info, spec = {})
95
+ end
96
+
97
+ # @api private
98
+ sig { params(depth: Integer).returns(String) }
99
+ def inspect(depth: 0)
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end