terminal-shop 3.8.9 → 3.8.10
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 +15 -0
- data/README.md +1 -1
- data/lib/terminal_shop/internal/transport/base_client.rb +1 -4
- data/lib/terminal_shop/internal/transport/pooled_net_requester.rb +1 -9
- data/lib/terminal_shop/internal/type/array_of.rb +1 -0
- data/lib/terminal_shop/internal/type/base_model.rb +4 -9
- data/lib/terminal_shop/internal/type/converter.rb +27 -0
- data/lib/terminal_shop/internal/type/hash_of.rb +1 -0
- data/lib/terminal_shop/internal/type/union.rb +9 -7
- data/lib/terminal_shop/internal/util.rb +1 -1
- data/lib/terminal_shop/version.rb +1 -1
- data/rbi/terminal_shop/errors.rbi +2 -2
- data/rbi/terminal_shop/internal/type/converter.rbi +58 -0
- data/rbi/terminal_shop/internal/type/union.rbi +9 -2
- data/sig/terminal_shop/internal/type/converter.rbs +17 -0
- data/sig/terminal_shop/internal/type/union.rbs +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 735ea5c13eb9d20e691914ed8abc5c3d621d01c931f378aa683800ab7d24e688
|
4
|
+
data.tar.gz: 2b1d08ff276e9ff2ff6e2ae1038d32421bf29ec0151706edfa11a67f745b6cc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3418f0d40cb1cbc90a4a69642e913c5207059c596cc7b1ff9682ec048f375af51d727079c888558c3ddaaada8d90471f94bd4d19bf2285f729a51d0d2e3309fb
|
7
|
+
data.tar.gz: cf043f4d72df8b85f7c1ae530afbb80cf7f9bad4fa3612044fe9e90e7ab74bb3f4fb7a3fabcd314d4be20574c6e81dc02503ea1cabd3aa52f9043b952fd633f2
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.8.10 (2025-08-20)
|
4
|
+
|
5
|
+
Full Changelog: [v3.8.9...v3.8.10](https://github.com/terminaldotshop/terminal-sdk-ruby/compare/v3.8.9...v3.8.10)
|
6
|
+
|
7
|
+
### Bug Fixes
|
8
|
+
|
9
|
+
* bump sorbet version and fix new type errors from the breaking change ([b8a165c](https://github.com/terminaldotshop/terminal-sdk-ruby/commit/b8a165c99dda340d95ee12680ad4a662dae84adb))
|
10
|
+
|
11
|
+
|
12
|
+
### Chores
|
13
|
+
|
14
|
+
* collect metadata from type DSL ([48d6bd6](https://github.com/terminaldotshop/terminal-sdk-ruby/commit/48d6bd6aef75e097d4fac1e87680a56194a46849))
|
15
|
+
* **internal:** update comment in script ([29e8d0e](https://github.com/terminaldotshop/terminal-sdk-ruby/commit/29e8d0ee82f862af88091ce124082f798a73d52f))
|
16
|
+
* update @stainless-api/prism-cli to v5.15.0 ([c859658](https://github.com/terminaldotshop/terminal-sdk-ruby/commit/c85965842c1dd5e37ed2f37010a8dfa096f12147))
|
17
|
+
|
3
18
|
## 3.8.9 (2025-08-05)
|
4
19
|
|
5
20
|
Full Changelog: [v3.8.8...v3.8.9](https://github.com/terminaldotshop/terminal-sdk-ruby/compare/v3.8.8...v3.8.9)
|
data/README.md
CHANGED
@@ -367,10 +367,7 @@ module TerminalShop
|
|
367
367
|
# @return [Array(Integer, Net::HTTPResponse, Enumerable<String>)]
|
368
368
|
def send_request(request, redirect_count:, retry_count:, send_retry_header:)
|
369
369
|
url, headers, max_retries, timeout = request.fetch_values(:url, :headers, :max_retries, :timeout)
|
370
|
-
input = {
|
371
|
-
**request.except(:timeout),
|
372
|
-
deadline: TerminalShop::Internal::Util.monotonic_secs + timeout
|
373
|
-
}
|
370
|
+
input = {**request.except(:timeout), deadline: TerminalShop::Internal::Util.monotonic_secs + timeout}
|
374
371
|
|
375
372
|
if send_retry_header
|
376
373
|
headers["x-stainless-retry-count"] = retry_count.to_s
|
@@ -193,15 +193,7 @@ module TerminalShop
|
|
193
193
|
end
|
194
194
|
|
195
195
|
define_sorbet_constant!(:Request) do
|
196
|
-
T.type_alias
|
197
|
-
{
|
198
|
-
method: Symbol,
|
199
|
-
url: URI::Generic,
|
200
|
-
headers: T::Hash[String, String],
|
201
|
-
body: T.anything,
|
202
|
-
deadline: Float
|
203
|
-
}
|
204
|
-
end
|
196
|
+
T.type_alias { {method: Symbol, url: URI::Generic, headers: T::Hash[String, String], body: T.anything, deadline: Float} }
|
205
197
|
end
|
206
198
|
end
|
207
199
|
end
|
@@ -148,6 +148,7 @@ module TerminalShop
|
|
148
148
|
# @option spec [Boolean] :"nil?"
|
149
149
|
def initialize(type_info, spec = {})
|
150
150
|
@item_type_fn = TerminalShop::Internal::Type::Converter.type_info(type_info || spec)
|
151
|
+
@meta = TerminalShop::Internal::Type::Converter.meta_info(type_info, spec)
|
151
152
|
@nilable = spec.fetch(:nil?, false)
|
152
153
|
end
|
153
154
|
|
@@ -52,6 +52,7 @@ module TerminalShop
|
|
52
52
|
#
|
53
53
|
# @option spec [Boolean] :"nil?"
|
54
54
|
private def add_field(name_sym, required:, type_info:, spec:)
|
55
|
+
meta = TerminalShop::Internal::Type::Converter.meta_info(type_info, spec)
|
55
56
|
type_fn, info =
|
56
57
|
case type_info
|
57
58
|
in Proc | TerminalShop::Internal::Type::Converter | Class
|
@@ -63,14 +64,7 @@ module TerminalShop
|
|
63
64
|
setter = :"#{name_sym}="
|
64
65
|
api_name = info.fetch(:api_name, name_sym)
|
65
66
|
nilable = info.fetch(:nil?, false)
|
66
|
-
const =
|
67
|
-
info.fetch(
|
68
|
-
:const,
|
69
|
-
TerminalShop::Internal::OMIT
|
70
|
-
)
|
71
|
-
else
|
72
|
-
TerminalShop::Internal::OMIT
|
73
|
-
end
|
67
|
+
const = required && !nilable ? info.fetch(:const, TerminalShop::Internal::OMIT) : TerminalShop::Internal::OMIT
|
74
68
|
|
75
69
|
[name_sym, setter].each { undef_method(_1) } if known_fields.key?(name_sym)
|
76
70
|
|
@@ -81,7 +75,8 @@ module TerminalShop
|
|
81
75
|
required: required,
|
82
76
|
nilable: nilable,
|
83
77
|
const: const,
|
84
|
-
type_fn: type_fn
|
78
|
+
type_fn: type_fn,
|
79
|
+
meta: meta
|
85
80
|
}
|
86
81
|
|
87
82
|
define_method(setter) do |value|
|
@@ -98,6 +98,33 @@ module TerminalShop
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
+
# @api private
|
102
|
+
#
|
103
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, TerminalShop::Internal::Type::Converter, Class] .
|
104
|
+
#
|
105
|
+
# @option type_info [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
106
|
+
#
|
107
|
+
# @option type_info [Proc] :enum
|
108
|
+
#
|
109
|
+
# @option type_info [Proc] :union
|
110
|
+
#
|
111
|
+
# @option type_info [Boolean] :"nil?"
|
112
|
+
#
|
113
|
+
# @param spec [Hash{Symbol=>Object}, Proc, TerminalShop::Internal::Type::Converter, Class] .
|
114
|
+
#
|
115
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
116
|
+
#
|
117
|
+
# @option spec [Proc] :enum
|
118
|
+
#
|
119
|
+
# @option spec [Proc] :union
|
120
|
+
#
|
121
|
+
# @option spec [Boolean] :"nil?"
|
122
|
+
#
|
123
|
+
# @return [Hash{Symbol=>Object}]
|
124
|
+
def meta_info(type_info, spec)
|
125
|
+
[spec, type_info].grep(Hash).first.to_h.except(:const, :enum, :union, :nil?)
|
126
|
+
end
|
127
|
+
|
101
128
|
# @api private
|
102
129
|
#
|
103
130
|
# @param translate_names [Boolean]
|
@@ -168,6 +168,7 @@ module TerminalShop
|
|
168
168
|
# @option spec [Boolean] :"nil?"
|
169
169
|
def initialize(type_info, spec = {})
|
170
170
|
@item_type_fn = TerminalShop::Internal::Type::Converter.type_info(type_info || spec)
|
171
|
+
@meta = TerminalShop::Internal::Type::Converter.meta_info(type_info, spec)
|
171
172
|
@nilable = spec.fetch(:nil?, false)
|
172
173
|
end
|
173
174
|
|
@@ -12,20 +12,20 @@ module TerminalShop
|
|
12
12
|
#
|
13
13
|
# All of the specified variant info for this union.
|
14
14
|
#
|
15
|
-
# @return [Array<Array(Symbol, Proc)>]
|
15
|
+
# @return [Array<Array(Symbol, Proc, Hash{Symbol=>Object})>]
|
16
16
|
private def known_variants = (@known_variants ||= [])
|
17
17
|
|
18
18
|
# @api private
|
19
19
|
#
|
20
|
-
# @return [Array<Array(Symbol, Object)>]
|
20
|
+
# @return [Array<Array(Symbol, Object, Hash{Symbol=>Object})>]
|
21
21
|
protected def derefed_variants
|
22
|
-
known_variants.map { |key, variant_fn| [key, variant_fn.call] }
|
22
|
+
known_variants.map { |key, variant_fn, meta| [key, variant_fn.call, meta] }
|
23
23
|
end
|
24
24
|
|
25
25
|
# All of the specified variants for this union.
|
26
26
|
#
|
27
27
|
# @return [Array<Object>]
|
28
|
-
def variants = derefed_variants.map
|
28
|
+
def variants = derefed_variants.map { _2 }
|
29
29
|
|
30
30
|
# @api private
|
31
31
|
#
|
@@ -51,12 +51,13 @@ module TerminalShop
|
|
51
51
|
#
|
52
52
|
# @option spec [Boolean] :"nil?"
|
53
53
|
private def variant(key, spec = nil)
|
54
|
+
meta = TerminalShop::Internal::Type::Converter.meta_info(nil, spec)
|
54
55
|
variant_info =
|
55
56
|
case key
|
56
57
|
in Symbol
|
57
|
-
[key, TerminalShop::Internal::Type::Converter.type_info(spec)]
|
58
|
+
[key, TerminalShop::Internal::Type::Converter.type_info(spec), meta]
|
58
59
|
in Proc | TerminalShop::Internal::Type::Converter | Class | Hash
|
59
|
-
[nil, TerminalShop::Internal::Type::Converter.type_info(key)]
|
60
|
+
[nil, TerminalShop::Internal::Type::Converter.type_info(key), meta]
|
60
61
|
end
|
61
62
|
|
62
63
|
known_variants << variant_info
|
@@ -79,7 +80,8 @@ module TerminalShop
|
|
79
80
|
return nil if key == TerminalShop::Internal::OMIT
|
80
81
|
|
81
82
|
key = key.to_sym if key.is_a?(String)
|
82
|
-
known_variants.find { |k,| k == key }
|
83
|
+
_, found = known_variants.find { |k,| k == key }
|
84
|
+
found&.call
|
83
85
|
else
|
84
86
|
nil
|
85
87
|
end
|
@@ -244,7 +244,7 @@ module TerminalShop
|
|
244
244
|
#
|
245
245
|
# @return [String]
|
246
246
|
def uri_origin(uri)
|
247
|
-
"#{uri.scheme}://#{uri.host}#{uri.port
|
247
|
+
"#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}"
|
248
248
|
end
|
249
249
|
|
250
250
|
# @api private
|
@@ -59,10 +59,10 @@ module TerminalShop
|
|
59
59
|
end
|
60
60
|
|
61
61
|
class APIConnectionError < TerminalShop::Errors::APIError
|
62
|
-
sig {
|
62
|
+
sig { returns(NilClass) }
|
63
63
|
attr_accessor :status
|
64
64
|
|
65
|
-
sig {
|
65
|
+
sig { returns(NilClass) }
|
66
66
|
attr_accessor :body
|
67
67
|
|
68
68
|
# @api private
|
@@ -92,6 +92,64 @@ module TerminalShop
|
|
92
92
|
def self.type_info(spec)
|
93
93
|
end
|
94
94
|
|
95
|
+
# @api private
|
96
|
+
sig do
|
97
|
+
params(
|
98
|
+
type_info:
|
99
|
+
T.any(
|
100
|
+
{
|
101
|
+
const:
|
102
|
+
T.nilable(
|
103
|
+
T.any(NilClass, T::Boolean, Integer, Float, Symbol)
|
104
|
+
),
|
105
|
+
enum:
|
106
|
+
T.nilable(
|
107
|
+
T.proc.returns(
|
108
|
+
TerminalShop::Internal::Type::Converter::Input
|
109
|
+
)
|
110
|
+
),
|
111
|
+
union:
|
112
|
+
T.nilable(
|
113
|
+
T.proc.returns(
|
114
|
+
TerminalShop::Internal::Type::Converter::Input
|
115
|
+
)
|
116
|
+
)
|
117
|
+
},
|
118
|
+
T.proc.returns(
|
119
|
+
TerminalShop::Internal::Type::Converter::Input
|
120
|
+
),
|
121
|
+
TerminalShop::Internal::Type::Converter::Input
|
122
|
+
),
|
123
|
+
spec:
|
124
|
+
T.any(
|
125
|
+
{
|
126
|
+
const:
|
127
|
+
T.nilable(
|
128
|
+
T.any(NilClass, T::Boolean, Integer, Float, Symbol)
|
129
|
+
),
|
130
|
+
enum:
|
131
|
+
T.nilable(
|
132
|
+
T.proc.returns(
|
133
|
+
TerminalShop::Internal::Type::Converter::Input
|
134
|
+
)
|
135
|
+
),
|
136
|
+
union:
|
137
|
+
T.nilable(
|
138
|
+
T.proc.returns(
|
139
|
+
TerminalShop::Internal::Type::Converter::Input
|
140
|
+
)
|
141
|
+
)
|
142
|
+
},
|
143
|
+
T.proc.returns(
|
144
|
+
TerminalShop::Internal::Type::Converter::Input
|
145
|
+
),
|
146
|
+
TerminalShop::Internal::Type::Converter::Input
|
147
|
+
)
|
148
|
+
).returns(TerminalShop::Internal::AnyHash)
|
149
|
+
end
|
150
|
+
def self.meta_info(type_info, spec)
|
151
|
+
end
|
152
|
+
|
95
153
|
# @api private
|
96
154
|
sig do
|
97
155
|
params(translate_names: T::Boolean).returns(
|
@@ -16,7 +16,8 @@ module TerminalShop
|
|
16
16
|
T::Array[
|
17
17
|
[
|
18
18
|
T.nilable(Symbol),
|
19
|
-
T.proc.returns(TerminalShop::Internal::Type::Converter::Input)
|
19
|
+
T.proc.returns(TerminalShop::Internal::Type::Converter::Input),
|
20
|
+
TerminalShop::Internal::AnyHash
|
20
21
|
]
|
21
22
|
]
|
22
23
|
)
|
@@ -25,7 +26,13 @@ module TerminalShop
|
|
25
26
|
end
|
26
27
|
|
27
28
|
# @api private
|
28
|
-
sig
|
29
|
+
sig do
|
30
|
+
returns(
|
31
|
+
T::Array[
|
32
|
+
[T.nilable(Symbol), T.anything, TerminalShop::Internal::AnyHash]
|
33
|
+
]
|
34
|
+
)
|
35
|
+
end
|
29
36
|
protected def derefed_variants
|
30
37
|
end
|
31
38
|
|
@@ -39,6 +39,23 @@ module TerminalShop
|
|
39
39
|
| TerminalShop::Internal::Type::Converter::input spec
|
40
40
|
) -> (^-> top)
|
41
41
|
|
42
|
+
def self.meta_info: (
|
43
|
+
{
|
44
|
+
const: (nil | bool | Integer | Float | Symbol)?,
|
45
|
+
enum: ^-> TerminalShop::Internal::Type::Converter::input?,
|
46
|
+
union: ^-> TerminalShop::Internal::Type::Converter::input?
|
47
|
+
}
|
48
|
+
| ^-> TerminalShop::Internal::Type::Converter::input
|
49
|
+
| TerminalShop::Internal::Type::Converter::input type_info,
|
50
|
+
{
|
51
|
+
const: (nil | bool | Integer | Float | Symbol)?,
|
52
|
+
enum: ^-> TerminalShop::Internal::Type::Converter::input?,
|
53
|
+
union: ^-> TerminalShop::Internal::Type::Converter::input?
|
54
|
+
}
|
55
|
+
| ^-> TerminalShop::Internal::Type::Converter::input
|
56
|
+
| TerminalShop::Internal::Type::Converter::input spec
|
57
|
+
) -> ::Hash[Symbol, top]
|
58
|
+
|
42
59
|
def self.new_coerce_state: (
|
43
60
|
?translate_names: bool
|
44
61
|
) -> TerminalShop::Internal::Type::Converter::coerce_state
|
@@ -5,9 +5,9 @@ module TerminalShop
|
|
5
5
|
include TerminalShop::Internal::Type::Converter
|
6
6
|
include TerminalShop::Internal::Util::SorbetRuntimeSupport
|
7
7
|
|
8
|
-
private def self.known_variants: -> ::Array[[Symbol?, (^-> TerminalShop::Internal::Type::Converter::input)]]
|
8
|
+
private def self.known_variants: -> ::Array[[Symbol?, (^-> TerminalShop::Internal::Type::Converter::input), ::Hash[Symbol, top]]]
|
9
9
|
|
10
|
-
def self.derefed_variants: -> ::Array[[Symbol?, top]]
|
10
|
+
def self.derefed_variants: -> ::Array[[Symbol?, top, ::Hash[Symbol, top]]]
|
11
11
|
|
12
12
|
def self.variants: -> ::Array[top]
|
13
13
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal-shop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.8.
|
4
|
+
version: 3.8.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Terminal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-08-
|
11
|
+
date: 2025-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: connection_pool
|