prelude-sdk 0.1.0.pre.alpha.2

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 (125) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +352 -0
  4. data/README.md +217 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/prelude_sdk/client.rb +87 -0
  7. data/lib/prelude_sdk/errors.rb +214 -0
  8. data/lib/prelude_sdk/file_part.rb +55 -0
  9. data/lib/prelude_sdk/internal/transport/base_client.rb +555 -0
  10. data/lib/prelude_sdk/internal/transport/pooled_net_requester.rb +209 -0
  11. data/lib/prelude_sdk/internal/type/array_of.rb +167 -0
  12. data/lib/prelude_sdk/internal/type/base_model.rb +536 -0
  13. data/lib/prelude_sdk/internal/type/base_page.rb +55 -0
  14. data/lib/prelude_sdk/internal/type/boolean.rb +77 -0
  15. data/lib/prelude_sdk/internal/type/converter.rb +300 -0
  16. data/lib/prelude_sdk/internal/type/enum.rb +131 -0
  17. data/lib/prelude_sdk/internal/type/file_input.rb +108 -0
  18. data/lib/prelude_sdk/internal/type/hash_of.rb +187 -0
  19. data/lib/prelude_sdk/internal/type/request_parameters.rb +42 -0
  20. data/lib/prelude_sdk/internal/type/union.rb +235 -0
  21. data/lib/prelude_sdk/internal/type/unknown.rb +81 -0
  22. data/lib/prelude_sdk/internal/util.rb +914 -0
  23. data/lib/prelude_sdk/internal.rb +20 -0
  24. data/lib/prelude_sdk/models/lookup_lookup_params.rb +37 -0
  25. data/lib/prelude_sdk/models/lookup_lookup_response.rb +236 -0
  26. data/lib/prelude_sdk/models/transactional_send_params.rb +84 -0
  27. data/lib/prelude_sdk/models/transactional_send_response.rb +81 -0
  28. data/lib/prelude_sdk/models/verification_check_params.rb +69 -0
  29. data/lib/prelude_sdk/models/verification_check_response.rb +67 -0
  30. data/lib/prelude_sdk/models/verification_create_params.rb +388 -0
  31. data/lib/prelude_sdk/models/verification_create_response.rb +148 -0
  32. data/lib/prelude_sdk/models/watch_predict_params.rb +191 -0
  33. data/lib/prelude_sdk/models/watch_predict_response.rb +50 -0
  34. data/lib/prelude_sdk/models/watch_send_events_params.rb +100 -0
  35. data/lib/prelude_sdk/models/watch_send_events_response.rb +41 -0
  36. data/lib/prelude_sdk/models/watch_send_feedbacks_params.rb +229 -0
  37. data/lib/prelude_sdk/models/watch_send_feedbacks_response.rb +41 -0
  38. data/lib/prelude_sdk/models.rb +55 -0
  39. data/lib/prelude_sdk/request_options.rb +77 -0
  40. data/lib/prelude_sdk/resources/lookup.rb +42 -0
  41. data/lib/prelude_sdk/resources/transactional.rb +53 -0
  42. data/lib/prelude_sdk/resources/verification.rb +76 -0
  43. data/lib/prelude_sdk/resources/watch.rb +91 -0
  44. data/lib/prelude_sdk/version.rb +5 -0
  45. data/lib/prelude_sdk.rb +71 -0
  46. data/manifest.yaml +15 -0
  47. data/rbi/prelude_sdk/client.rbi +59 -0
  48. data/rbi/prelude_sdk/errors.rbi +178 -0
  49. data/rbi/prelude_sdk/file_part.rbi +37 -0
  50. data/rbi/prelude_sdk/internal/transport/base_client.rbi +296 -0
  51. data/rbi/prelude_sdk/internal/transport/pooled_net_requester.rbi +80 -0
  52. data/rbi/prelude_sdk/internal/type/array_of.rbi +104 -0
  53. data/rbi/prelude_sdk/internal/type/base_model.rbi +304 -0
  54. data/rbi/prelude_sdk/internal/type/base_page.rbi +42 -0
  55. data/rbi/prelude_sdk/internal/type/boolean.rbi +58 -0
  56. data/rbi/prelude_sdk/internal/type/converter.rbi +162 -0
  57. data/rbi/prelude_sdk/internal/type/enum.rbi +82 -0
  58. data/rbi/prelude_sdk/internal/type/file_input.rbi +59 -0
  59. data/rbi/prelude_sdk/internal/type/hash_of.rbi +104 -0
  60. data/rbi/prelude_sdk/internal/type/request_parameters.rbi +29 -0
  61. data/rbi/prelude_sdk/internal/type/union.rbi +121 -0
  62. data/rbi/prelude_sdk/internal/type/unknown.rbi +58 -0
  63. data/rbi/prelude_sdk/internal/util.rbi +487 -0
  64. data/rbi/prelude_sdk/internal.rbi +18 -0
  65. data/rbi/prelude_sdk/models/lookup_lookup_params.rbi +78 -0
  66. data/rbi/prelude_sdk/models/lookup_lookup_response.rbi +520 -0
  67. data/rbi/prelude_sdk/models/transactional_send_params.rbi +126 -0
  68. data/rbi/prelude_sdk/models/transactional_send_response.rbi +113 -0
  69. data/rbi/prelude_sdk/models/verification_check_params.rbi +140 -0
  70. data/rbi/prelude_sdk/models/verification_check_response.rbi +149 -0
  71. data/rbi/prelude_sdk/models/verification_create_params.rbi +805 -0
  72. data/rbi/prelude_sdk/models/verification_create_response.rbi +336 -0
  73. data/rbi/prelude_sdk/models/watch_predict_params.rbi +382 -0
  74. data/rbi/prelude_sdk/models/watch_predict_response.rbi +96 -0
  75. data/rbi/prelude_sdk/models/watch_send_events_params.rbi +245 -0
  76. data/rbi/prelude_sdk/models/watch_send_events_response.rbi +82 -0
  77. data/rbi/prelude_sdk/models/watch_send_feedbacks_params.rbi +500 -0
  78. data/rbi/prelude_sdk/models/watch_send_feedbacks_response.rbi +86 -0
  79. data/rbi/prelude_sdk/models.rbi +17 -0
  80. data/rbi/prelude_sdk/request_options.rbi +59 -0
  81. data/rbi/prelude_sdk/resources/lookup.rbi +33 -0
  82. data/rbi/prelude_sdk/resources/transactional.rbi +50 -0
  83. data/rbi/prelude_sdk/resources/verification.rbi +61 -0
  84. data/rbi/prelude_sdk/resources/watch.rbi +67 -0
  85. data/rbi/prelude_sdk/version.rbi +5 -0
  86. data/sig/prelude_sdk/client.rbs +32 -0
  87. data/sig/prelude_sdk/errors.rbs +110 -0
  88. data/sig/prelude_sdk/file_part.rbs +21 -0
  89. data/sig/prelude_sdk/internal/transport/base_client.rbs +131 -0
  90. data/sig/prelude_sdk/internal/transport/pooled_net_requester.rbs +45 -0
  91. data/sig/prelude_sdk/internal/type/array_of.rbs +48 -0
  92. data/sig/prelude_sdk/internal/type/base_model.rbs +102 -0
  93. data/sig/prelude_sdk/internal/type/base_page.rbs +24 -0
  94. data/sig/prelude_sdk/internal/type/boolean.rbs +26 -0
  95. data/sig/prelude_sdk/internal/type/converter.rbs +62 -0
  96. data/sig/prelude_sdk/internal/type/enum.rbs +32 -0
  97. data/sig/prelude_sdk/internal/type/file_input.rbs +25 -0
  98. data/sig/prelude_sdk/internal/type/hash_of.rbs +48 -0
  99. data/sig/prelude_sdk/internal/type/request_parameters.rbs +19 -0
  100. data/sig/prelude_sdk/internal/type/union.rbs +52 -0
  101. data/sig/prelude_sdk/internal/type/unknown.rbs +26 -0
  102. data/sig/prelude_sdk/internal/util.rbs +185 -0
  103. data/sig/prelude_sdk/internal.rbs +9 -0
  104. data/sig/prelude_sdk/models/lookup_lookup_params.rbs +38 -0
  105. data/sig/prelude_sdk/models/lookup_lookup_response.rbs +179 -0
  106. data/sig/prelude_sdk/models/transactional_send_params.rbs +73 -0
  107. data/sig/prelude_sdk/models/transactional_send_response.rbs +66 -0
  108. data/sig/prelude_sdk/models/verification_check_params.rbs +61 -0
  109. data/sig/prelude_sdk/models/verification_check_response.rbs +67 -0
  110. data/sig/prelude_sdk/models/verification_create_params.rbs +345 -0
  111. data/sig/prelude_sdk/models/verification_create_response.rbs +136 -0
  112. data/sig/prelude_sdk/models/watch_predict_params.rbs +180 -0
  113. data/sig/prelude_sdk/models/watch_predict_response.rbs +41 -0
  114. data/sig/prelude_sdk/models/watch_send_events_params.rbs +98 -0
  115. data/sig/prelude_sdk/models/watch_send_events_response.rbs +35 -0
  116. data/sig/prelude_sdk/models/watch_send_feedbacks_params.rbs +211 -0
  117. data/sig/prelude_sdk/models/watch_send_feedbacks_response.rbs +35 -0
  118. data/sig/prelude_sdk/models.rbs +15 -0
  119. data/sig/prelude_sdk/request_options.rbs +36 -0
  120. data/sig/prelude_sdk/resources/lookup.rbs +13 -0
  121. data/sig/prelude_sdk/resources/transactional.rbs +19 -0
  122. data/sig/prelude_sdk/resources/verification.rbs +22 -0
  123. data/sig/prelude_sdk/resources/watch.rbs +25 -0
  124. data/sig/prelude_sdk/version.rbs +3 -0
  125. metadata +182 -0
@@ -0,0 +1,178 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Errors
5
+ class Error < StandardError
6
+ sig { returns(T.nilable(StandardError)) }
7
+ attr_accessor :cause
8
+ end
9
+
10
+ class ConversionError < PreludeSDK::Errors::Error
11
+ sig { returns(T.nilable(StandardError)) }
12
+ def cause
13
+ end
14
+
15
+ # @api private
16
+ sig do
17
+ params(
18
+ on: T::Class[StandardError],
19
+ method: Symbol,
20
+ target: T.anything,
21
+ value: T.anything,
22
+ cause: T.nilable(StandardError)
23
+ ).returns(T.attached_class)
24
+ end
25
+ def self.new(on:, method:, target:, value:, cause: nil)
26
+ end
27
+ end
28
+
29
+ class APIError < PreludeSDK::Errors::Error
30
+ sig { returns(URI::Generic) }
31
+ attr_accessor :url
32
+
33
+ sig { returns(T.nilable(Integer)) }
34
+ attr_accessor :status
35
+
36
+ sig { returns(T.nilable(T.anything)) }
37
+ attr_accessor :body
38
+
39
+ # @api private
40
+ sig do
41
+ params(
42
+ url: URI::Generic,
43
+ status: T.nilable(Integer),
44
+ body: T.nilable(Object),
45
+ request: NilClass,
46
+ response: NilClass,
47
+ message: T.nilable(String)
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ url:,
52
+ status: nil,
53
+ body: nil,
54
+ request: nil,
55
+ response: nil,
56
+ message: nil
57
+ )
58
+ end
59
+ end
60
+
61
+ class APIConnectionError < PreludeSDK::Errors::APIError
62
+ sig { void }
63
+ attr_accessor :status
64
+
65
+ sig { void }
66
+ attr_accessor :body
67
+
68
+ # @api private
69
+ sig do
70
+ params(
71
+ url: URI::Generic,
72
+ status: NilClass,
73
+ body: NilClass,
74
+ request: NilClass,
75
+ response: NilClass,
76
+ message: T.nilable(String)
77
+ ).returns(T.attached_class)
78
+ end
79
+ def self.new(
80
+ url:,
81
+ status: nil,
82
+ body: nil,
83
+ request: nil,
84
+ response: nil,
85
+ message: "Connection error."
86
+ )
87
+ end
88
+ end
89
+
90
+ class APITimeoutError < PreludeSDK::Errors::APIConnectionError
91
+ # @api private
92
+ sig do
93
+ params(
94
+ url: URI::Generic,
95
+ status: NilClass,
96
+ body: NilClass,
97
+ request: NilClass,
98
+ response: NilClass,
99
+ message: T.nilable(String)
100
+ ).returns(T.attached_class)
101
+ end
102
+ def self.new(
103
+ url:,
104
+ status: nil,
105
+ body: nil,
106
+ request: nil,
107
+ response: nil,
108
+ message: "Request timed out."
109
+ )
110
+ end
111
+ end
112
+
113
+ class APIStatusError < PreludeSDK::Errors::APIError
114
+ # @api private
115
+ sig do
116
+ params(
117
+ url: URI::Generic,
118
+ status: Integer,
119
+ body: T.nilable(Object),
120
+ request: NilClass,
121
+ response: NilClass,
122
+ message: T.nilable(String)
123
+ ).returns(T.attached_class)
124
+ end
125
+ def self.for(url:, status:, body:, request:, response:, message: nil)
126
+ end
127
+
128
+ sig { returns(Integer) }
129
+ attr_accessor :status
130
+
131
+ # @api private
132
+ sig do
133
+ params(
134
+ url: URI::Generic,
135
+ status: Integer,
136
+ body: T.nilable(Object),
137
+ request: NilClass,
138
+ response: NilClass,
139
+ message: T.nilable(String)
140
+ ).returns(T.attached_class)
141
+ end
142
+ def self.new(url:, status:, body:, request:, response:, message: nil)
143
+ end
144
+ end
145
+
146
+ class BadRequestError < PreludeSDK::Errors::APIStatusError
147
+ HTTP_STATUS = 400
148
+ end
149
+
150
+ class AuthenticationError < PreludeSDK::Errors::APIStatusError
151
+ HTTP_STATUS = 401
152
+ end
153
+
154
+ class PermissionDeniedError < PreludeSDK::Errors::APIStatusError
155
+ HTTP_STATUS = 403
156
+ end
157
+
158
+ class NotFoundError < PreludeSDK::Errors::APIStatusError
159
+ HTTP_STATUS = 404
160
+ end
161
+
162
+ class ConflictError < PreludeSDK::Errors::APIStatusError
163
+ HTTP_STATUS = 409
164
+ end
165
+
166
+ class UnprocessableEntityError < PreludeSDK::Errors::APIStatusError
167
+ HTTP_STATUS = 422
168
+ end
169
+
170
+ class RateLimitError < PreludeSDK::Errors::APIStatusError
171
+ HTTP_STATUS = 429
172
+ end
173
+
174
+ class InternalServerError < PreludeSDK::Errors::APIStatusError
175
+ HTTP_STATUS = T.let((500..), T::Range[Integer])
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ class FilePart
5
+ sig { returns(T.any(Pathname, StringIO, IO, String)) }
6
+ attr_reader :content
7
+
8
+ sig { returns(T.nilable(String)) }
9
+ attr_reader :content_type
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :filename
13
+
14
+ # @api private
15
+ sig { returns(String) }
16
+ private def read
17
+ end
18
+
19
+ sig { params(a: T.anything).returns(String) }
20
+ def to_json(*a)
21
+ end
22
+
23
+ sig { params(a: T.anything).returns(String) }
24
+ def to_yaml(*a)
25
+ end
26
+
27
+ sig do
28
+ params(
29
+ content: T.any(Pathname, StringIO, IO, String),
30
+ filename: T.nilable(String),
31
+ content_type: T.nilable(String)
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(content, filename: nil, content_type: nil)
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,296 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Internal
5
+ module Transport
6
+ # @api private
7
+ class BaseClient
8
+ extend PreludeSDK::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
+ PreludeSDK::Internal::Type::BasePage[
48
+ PreludeSDK::Internal::Type::BaseModel
49
+ ]
50
+ ]
51
+ ),
52
+ stream: T.nilable(T::Class[T.anything]),
53
+ model: T.nilable(PreludeSDK::Internal::Type::Converter::Input),
54
+ options: T.nilable(PreludeSDK::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:
80
+ PreludeSDK::Internal::Transport::BaseClient::RequestComponents
81
+ ).void
82
+ end
83
+ def validate!(req)
84
+ end
85
+
86
+ # @api private
87
+ sig do
88
+ params(
89
+ status: Integer,
90
+ headers: T.any(T::Hash[String, String], Net::HTTPHeader)
91
+ ).returns(T::Boolean)
92
+ end
93
+ def should_retry?(status, headers:)
94
+ end
95
+
96
+ # @api private
97
+ sig do
98
+ params(
99
+ request:
100
+ PreludeSDK::Internal::Transport::BaseClient::RequestInput,
101
+ status: Integer,
102
+ response_headers: T.any(T::Hash[String, String], Net::HTTPHeader)
103
+ ).returns(PreludeSDK::Internal::Transport::BaseClient::RequestInput)
104
+ end
105
+ def follow_redirect(request, status:, response_headers:)
106
+ end
107
+
108
+ # @api private
109
+ sig do
110
+ params(
111
+ status: T.any(Integer, PreludeSDK::Errors::APIConnectionError),
112
+ stream: T.nilable(T::Enumerable[String])
113
+ ).void
114
+ end
115
+ def reap_connection!(status, stream:)
116
+ end
117
+ end
118
+
119
+ sig { returns(URI::Generic) }
120
+ attr_reader :base_url
121
+
122
+ sig { returns(Float) }
123
+ attr_reader :timeout
124
+
125
+ sig { returns(Integer) }
126
+ attr_reader :max_retries
127
+
128
+ sig { returns(Float) }
129
+ attr_reader :initial_retry_delay
130
+
131
+ sig { returns(Float) }
132
+ attr_reader :max_retry_delay
133
+
134
+ sig { returns(T::Hash[String, String]) }
135
+ attr_reader :headers
136
+
137
+ sig { returns(T.nilable(String)) }
138
+ attr_reader :idempotency_header
139
+
140
+ # @api private
141
+ sig { returns(PreludeSDK::Internal::Transport::PooledNetRequester) }
142
+ attr_reader :requester
143
+
144
+ # @api private
145
+ sig do
146
+ params(
147
+ base_url: String,
148
+ timeout: Float,
149
+ max_retries: Integer,
150
+ initial_retry_delay: Float,
151
+ max_retry_delay: Float,
152
+ headers:
153
+ T::Hash[
154
+ String,
155
+ T.nilable(
156
+ T.any(
157
+ String,
158
+ Integer,
159
+ T::Array[T.nilable(T.any(String, Integer))]
160
+ )
161
+ )
162
+ ],
163
+ idempotency_header: T.nilable(String)
164
+ ).returns(T.attached_class)
165
+ end
166
+ def self.new(
167
+ base_url:,
168
+ timeout: 0.0,
169
+ max_retries: 0,
170
+ initial_retry_delay: 0.0,
171
+ max_retry_delay: 0.0,
172
+ headers: {},
173
+ idempotency_header: nil
174
+ )
175
+ end
176
+
177
+ # @api private
178
+ sig { overridable.returns(T::Hash[String, String]) }
179
+ private def auth_headers
180
+ end
181
+
182
+ # @api private
183
+ sig { returns(String) }
184
+ private def generate_idempotency_key
185
+ end
186
+
187
+ # @api private
188
+ sig do
189
+ overridable
190
+ .params(
191
+ req:
192
+ PreludeSDK::Internal::Transport::BaseClient::RequestComponents,
193
+ opts: PreludeSDK::Internal::AnyHash
194
+ )
195
+ .returns(PreludeSDK::Internal::Transport::BaseClient::RequestInput)
196
+ end
197
+ private def build_request(req, opts)
198
+ end
199
+
200
+ # @api private
201
+ sig do
202
+ params(
203
+ headers: T::Hash[String, String],
204
+ retry_count: Integer
205
+ ).returns(Float)
206
+ end
207
+ private def retry_delay(headers, retry_count:)
208
+ end
209
+
210
+ # @api private
211
+ sig do
212
+ params(
213
+ request: PreludeSDK::Internal::Transport::BaseClient::RequestInput,
214
+ redirect_count: Integer,
215
+ retry_count: Integer,
216
+ send_retry_header: T::Boolean
217
+ ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
218
+ end
219
+ private def send_request(
220
+ request,
221
+ redirect_count:,
222
+ retry_count:,
223
+ send_retry_header:
224
+ )
225
+ end
226
+
227
+ # Execute the request specified by `req`. This is the method that all resource
228
+ # methods call into.
229
+ #
230
+ # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: PreludeSDK::Internal::Type::Unknown, options: {})
231
+ sig do
232
+ params(
233
+ method: Symbol,
234
+ path: T.any(String, T::Array[String]),
235
+ query:
236
+ T.nilable(
237
+ T::Hash[String, T.nilable(T.any(T::Array[String], String))]
238
+ ),
239
+ headers:
240
+ T.nilable(
241
+ T::Hash[
242
+ String,
243
+ T.nilable(
244
+ T.any(
245
+ String,
246
+ Integer,
247
+ T::Array[T.nilable(T.any(String, Integer))]
248
+ )
249
+ )
250
+ ]
251
+ ),
252
+ body: T.nilable(T.anything),
253
+ unwrap:
254
+ T.nilable(
255
+ T.any(
256
+ Symbol,
257
+ Integer,
258
+ T::Array[T.any(Symbol, Integer)],
259
+ T.proc.params(arg0: T.anything).returns(T.anything)
260
+ )
261
+ ),
262
+ page:
263
+ T.nilable(
264
+ T::Class[
265
+ PreludeSDK::Internal::Type::BasePage[
266
+ PreludeSDK::Internal::Type::BaseModel
267
+ ]
268
+ ]
269
+ ),
270
+ stream: T.nilable(T::Class[T.anything]),
271
+ model: T.nilable(PreludeSDK::Internal::Type::Converter::Input),
272
+ options: T.nilable(PreludeSDK::RequestOptions::OrHash)
273
+ ).returns(T.anything)
274
+ end
275
+ def request(
276
+ method,
277
+ path,
278
+ query: {},
279
+ headers: {},
280
+ body: nil,
281
+ unwrap: nil,
282
+ page: nil,
283
+ stream: nil,
284
+ model: PreludeSDK::Internal::Type::Unknown,
285
+ options: {}
286
+ )
287
+ end
288
+
289
+ # @api private
290
+ sig { returns(String) }
291
+ def inspect
292
+ end
293
+ end
294
+ end
295
+ end
296
+ end
@@ -0,0 +1,80 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Internal
5
+ module Transport
6
+ # @api private
7
+ class PooledNetRequester
8
+ extend PreludeSDK::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
+ PreludeSDK::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:
65
+ PreludeSDK::Internal::Transport::PooledNetRequester::Request
66
+ ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
67
+ end
68
+ def execute(request)
69
+ end
70
+
71
+ # @api private
72
+ sig { params(size: Integer).returns(T.attached_class) }
73
+ def self.new(
74
+ size: PreludeSDK::Internal::Transport::PooledNetRequester::DEFAULT_MAX_CONNECTIONS
75
+ )
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,104 @@
1
+ # typed: strong
2
+
3
+ module PreludeSDK
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # Array of items of a given type.
9
+ class ArrayOf
10
+ include PreludeSDK::Internal::Type::Converter
11
+ include PreludeSDK::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
+ PreludeSDK::Internal::AnyHash,
22
+ T.proc.returns(PreludeSDK::Internal::Type::Converter::Input),
23
+ PreludeSDK::Internal::Type::Converter::Input
24
+ ),
25
+ spec: PreludeSDK::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: PreludeSDK::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: PreludeSDK::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
+ PreludeSDK::Internal::AnyHash,
88
+ T.proc.returns(PreludeSDK::Internal::Type::Converter::Input),
89
+ PreludeSDK::Internal::Type::Converter::Input
90
+ ),
91
+ spec: PreludeSDK::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