terminal-shop 1.7.0 → 2.0.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 (235) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -1
  3. data/lib/terminal-shop/base_client.rb +47 -56
  4. data/lib/terminal-shop/base_model.rb +300 -352
  5. data/lib/terminal-shop/base_page.rb +30 -31
  6. data/lib/terminal-shop/client.rb +2 -3
  7. data/lib/terminal-shop/errors.rb +12 -17
  8. data/lib/terminal-shop/extern.rb +1 -4
  9. data/lib/terminal-shop/models/product.rb +7 -3
  10. data/lib/terminal-shop/models/region.rb +7 -3
  11. data/lib/terminal-shop/models/subscription.rb +7 -3
  12. data/lib/terminal-shop/pooled_net_requester.rb +30 -21
  13. data/lib/terminal-shop/request_options.rb +5 -12
  14. data/lib/terminal-shop/resources/address.rb +0 -5
  15. data/lib/terminal-shop/resources/app.rb +0 -5
  16. data/lib/terminal-shop/resources/card.rb +0 -6
  17. data/lib/terminal-shop/resources/cart.rb +0 -7
  18. data/lib/terminal-shop/resources/email.rb +0 -2
  19. data/lib/terminal-shop/resources/order.rb +0 -4
  20. data/lib/terminal-shop/resources/product.rb +0 -3
  21. data/lib/terminal-shop/resources/profile.rb +0 -3
  22. data/lib/terminal-shop/resources/subscription.rb +0 -5
  23. data/lib/terminal-shop/resources/token.rb +0 -5
  24. data/lib/terminal-shop/resources/view.rb +0 -2
  25. data/lib/terminal-shop/util.rb +59 -77
  26. data/lib/terminal-shop/version.rb +1 -1
  27. data/lib/terminal-shop.rb +16 -0
  28. data/manifest.yaml +1 -0
  29. data/rbi/lib/terminal-shop/base_client.rbi +63 -41
  30. data/rbi/lib/terminal-shop/base_model.rbi +278 -129
  31. data/rbi/lib/terminal-shop/base_page.rbi +1 -4
  32. data/rbi/lib/terminal-shop/client.rbi +29 -30
  33. data/rbi/lib/terminal-shop/errors.rbi +12 -14
  34. data/rbi/lib/terminal-shop/extern.rbi +1 -1
  35. data/rbi/lib/terminal-shop/models/address.rbi +25 -51
  36. data/rbi/lib/terminal-shop/models/address_create_params.rbi +23 -46
  37. data/rbi/lib/terminal-shop/models/address_create_response.rbi +2 -6
  38. data/rbi/lib/terminal-shop/models/address_delete_params.rbi +1 -1
  39. data/rbi/lib/terminal-shop/models/address_delete_response.rbi +1 -6
  40. data/rbi/lib/terminal-shop/models/address_get_params.rbi +1 -1
  41. data/rbi/lib/terminal-shop/models/address_get_response.rbi +8 -6
  42. data/rbi/lib/terminal-shop/models/address_list_params.rbi +1 -1
  43. data/rbi/lib/terminal-shop/models/address_list_response.rbi +5 -6
  44. data/rbi/lib/terminal-shop/models/app.rbi +9 -24
  45. data/rbi/lib/terminal-shop/models/app_create_params.rbi +3 -13
  46. data/rbi/lib/terminal-shop/models/app_create_response.rbi +10 -20
  47. data/rbi/lib/terminal-shop/models/app_delete_params.rbi +1 -1
  48. data/rbi/lib/terminal-shop/models/app_delete_response.rbi +1 -6
  49. data/rbi/lib/terminal-shop/models/app_get_params.rbi +1 -1
  50. data/rbi/lib/terminal-shop/models/app_get_response.rbi +5 -6
  51. data/rbi/lib/terminal-shop/models/app_list_params.rbi +1 -1
  52. data/rbi/lib/terminal-shop/models/app_list_response.rbi +5 -6
  53. data/rbi/lib/terminal-shop/models/card.rbi +22 -36
  54. data/rbi/lib/terminal-shop/models/card_collect_params.rbi +1 -1
  55. data/rbi/lib/terminal-shop/models/card_collect_response.rbi +11 -14
  56. data/rbi/lib/terminal-shop/models/card_create_params.rbi +4 -7
  57. data/rbi/lib/terminal-shop/models/card_create_response.rbi +2 -6
  58. data/rbi/lib/terminal-shop/models/card_delete_params.rbi +1 -1
  59. data/rbi/lib/terminal-shop/models/card_delete_response.rbi +1 -6
  60. data/rbi/lib/terminal-shop/models/card_get_params.rbi +1 -1
  61. data/rbi/lib/terminal-shop/models/card_get_response.rbi +5 -6
  62. data/rbi/lib/terminal-shop/models/card_list_params.rbi +1 -1
  63. data/rbi/lib/terminal-shop/models/card_list_response.rbi +5 -6
  64. data/rbi/lib/terminal-shop/models/cart.rbi +53 -88
  65. data/rbi/lib/terminal-shop/models/cart_clear_params.rbi +1 -1
  66. data/rbi/lib/terminal-shop/models/cart_clear_response.rbi +1 -6
  67. data/rbi/lib/terminal-shop/models/cart_convert_params.rbi +1 -1
  68. data/rbi/lib/terminal-shop/models/cart_convert_response.rbi +5 -6
  69. data/rbi/lib/terminal-shop/models/cart_get_params.rbi +1 -1
  70. data/rbi/lib/terminal-shop/models/cart_get_response.rbi +5 -6
  71. data/rbi/lib/terminal-shop/models/cart_set_address_params.rbi +3 -7
  72. data/rbi/lib/terminal-shop/models/cart_set_address_response.rbi +1 -6
  73. data/rbi/lib/terminal-shop/models/cart_set_card_params.rbi +3 -7
  74. data/rbi/lib/terminal-shop/models/cart_set_card_response.rbi +1 -6
  75. data/rbi/lib/terminal-shop/models/cart_set_item_params.rbi +5 -13
  76. data/rbi/lib/terminal-shop/models/cart_set_item_response.rbi +5 -6
  77. data/rbi/lib/terminal-shop/models/email_create_params.rbi +3 -7
  78. data/rbi/lib/terminal-shop/models/email_create_response.rbi +1 -6
  79. data/rbi/lib/terminal-shop/models/order.rbi +80 -139
  80. data/rbi/lib/terminal-shop/models/order_create_params.rbi +7 -19
  81. data/rbi/lib/terminal-shop/models/order_create_response.rbi +2 -6
  82. data/rbi/lib/terminal-shop/models/order_get_params.rbi +1 -1
  83. data/rbi/lib/terminal-shop/models/order_get_response.rbi +5 -6
  84. data/rbi/lib/terminal-shop/models/order_list_params.rbi +1 -1
  85. data/rbi/lib/terminal-shop/models/order_list_response.rbi +5 -6
  86. data/rbi/lib/terminal-shop/models/product.rbi +52 -80
  87. data/rbi/lib/terminal-shop/models/product_get_params.rbi +1 -1
  88. data/rbi/lib/terminal-shop/models/product_get_response.rbi +8 -6
  89. data/rbi/lib/terminal-shop/models/product_list_params.rbi +1 -1
  90. data/rbi/lib/terminal-shop/models/product_list_response.rbi +5 -6
  91. data/rbi/lib/terminal-shop/models/product_variant.rbi +7 -18
  92. data/rbi/lib/terminal-shop/models/profile.rbi +20 -36
  93. data/rbi/lib/terminal-shop/models/profile_me_params.rbi +1 -1
  94. data/rbi/lib/terminal-shop/models/profile_me_response.rbi +8 -6
  95. data/rbi/lib/terminal-shop/models/profile_update_params.rbi +3 -13
  96. data/rbi/lib/terminal-shop/models/profile_update_response.rbi +8 -6
  97. data/rbi/lib/terminal-shop/models/region.rbi +10 -8
  98. data/rbi/lib/terminal-shop/models/subscription.rbi +35 -75
  99. data/rbi/lib/terminal-shop/models/subscription_create_params.rbi +1 -1
  100. data/rbi/lib/terminal-shop/models/subscription_create_response.rbi +1 -6
  101. data/rbi/lib/terminal-shop/models/subscription_delete_params.rbi +1 -1
  102. data/rbi/lib/terminal-shop/models/subscription_delete_response.rbi +1 -6
  103. data/rbi/lib/terminal-shop/models/subscription_get_params.rbi +1 -1
  104. data/rbi/lib/terminal-shop/models/subscription_get_response.rbi +8 -6
  105. data/rbi/lib/terminal-shop/models/subscription_list_params.rbi +1 -1
  106. data/rbi/lib/terminal-shop/models/subscription_list_response.rbi +4 -8
  107. data/rbi/lib/terminal-shop/models/token.rbi +8 -18
  108. data/rbi/lib/terminal-shop/models/token_create_params.rbi +1 -1
  109. data/rbi/lib/terminal-shop/models/token_create_response.rbi +11 -20
  110. data/rbi/lib/terminal-shop/models/token_delete_params.rbi +1 -1
  111. data/rbi/lib/terminal-shop/models/token_delete_response.rbi +1 -6
  112. data/rbi/lib/terminal-shop/models/token_get_params.rbi +1 -1
  113. data/rbi/lib/terminal-shop/models/token_get_response.rbi +6 -6
  114. data/rbi/lib/terminal-shop/models/token_list_params.rbi +1 -1
  115. data/rbi/lib/terminal-shop/models/token_list_response.rbi +5 -6
  116. data/rbi/lib/terminal-shop/models/view_init_params.rbi +1 -1
  117. data/rbi/lib/terminal-shop/models/view_init_response.rbi +37 -81
  118. data/rbi/lib/terminal-shop/pooled_net_requester.rbi +24 -6
  119. data/rbi/lib/terminal-shop/request_options.rbi +32 -57
  120. data/rbi/lib/terminal-shop/resources/address.rbi +26 -6
  121. data/rbi/lib/terminal-shop/resources/app.rbi +18 -6
  122. data/rbi/lib/terminal-shop/resources/card.rbi +27 -8
  123. data/rbi/lib/terminal-shop/resources/cart.rbi +29 -9
  124. data/rbi/lib/terminal-shop/resources/email.rbi +7 -2
  125. data/rbi/lib/terminal-shop/resources/order.rbi +20 -5
  126. data/rbi/lib/terminal-shop/resources/product.rbi +9 -3
  127. data/rbi/lib/terminal-shop/resources/profile.rbi +4 -2
  128. data/rbi/lib/terminal-shop/resources/subscription.rbi +26 -6
  129. data/rbi/lib/terminal-shop/resources/token.rbi +18 -6
  130. data/rbi/lib/terminal-shop/resources/view.rbi +3 -1
  131. data/rbi/lib/terminal-shop/util.rbi +78 -20
  132. data/rbi/lib/terminal-shop/version.rbi +1 -1
  133. data/sig/terminal-shop/base_client.rbs +20 -15
  134. data/sig/terminal-shop/base_model.rbs +36 -18
  135. data/sig/terminal-shop/client.rbs +8 -8
  136. data/sig/terminal-shop/errors.rbs +21 -21
  137. data/sig/terminal-shop/models/address.rbs +11 -15
  138. data/sig/terminal-shop/models/address_create_params.rbs +11 -16
  139. data/sig/terminal-shop/models/address_create_response.rbs +1 -6
  140. data/sig/terminal-shop/models/address_delete_params.rbs +1 -6
  141. data/sig/terminal-shop/models/address_delete_response.rbs +1 -6
  142. data/sig/terminal-shop/models/address_get_params.rbs +1 -6
  143. data/sig/terminal-shop/models/address_get_response.rbs +1 -6
  144. data/sig/terminal-shop/models/address_list_params.rbs +1 -6
  145. data/sig/terminal-shop/models/address_list_response.rbs +1 -6
  146. data/sig/terminal-shop/models/app.rbs +6 -5
  147. data/sig/terminal-shop/models/app_create_params.rbs +5 -10
  148. data/sig/terminal-shop/models/app_create_response.rbs +4 -12
  149. data/sig/terminal-shop/models/app_delete_params.rbs +1 -6
  150. data/sig/terminal-shop/models/app_delete_response.rbs +1 -6
  151. data/sig/terminal-shop/models/app_get_params.rbs +1 -5
  152. data/sig/terminal-shop/models/app_get_response.rbs +1 -5
  153. data/sig/terminal-shop/models/app_list_params.rbs +1 -5
  154. data/sig/terminal-shop/models/app_list_response.rbs +1 -6
  155. data/sig/terminal-shop/models/card.rbs +7 -16
  156. data/sig/terminal-shop/models/card_collect_params.rbs +1 -6
  157. data/sig/terminal-shop/models/card_collect_response.rbs +4 -12
  158. data/sig/terminal-shop/models/card_create_params.rbs +4 -6
  159. data/sig/terminal-shop/models/card_create_response.rbs +1 -6
  160. data/sig/terminal-shop/models/card_delete_params.rbs +1 -6
  161. data/sig/terminal-shop/models/card_delete_response.rbs +1 -6
  162. data/sig/terminal-shop/models/card_get_params.rbs +1 -5
  163. data/sig/terminal-shop/models/card_get_response.rbs +1 -6
  164. data/sig/terminal-shop/models/card_list_params.rbs +1 -5
  165. data/sig/terminal-shop/models/card_list_response.rbs +1 -6
  166. data/sig/terminal-shop/models/cart.rbs +20 -34
  167. data/sig/terminal-shop/models/cart_clear_params.rbs +1 -6
  168. data/sig/terminal-shop/models/cart_clear_response.rbs +1 -6
  169. data/sig/terminal-shop/models/cart_convert_params.rbs +1 -6
  170. data/sig/terminal-shop/models/cart_convert_response.rbs +1 -6
  171. data/sig/terminal-shop/models/cart_get_params.rbs +1 -5
  172. data/sig/terminal-shop/models/cart_get_response.rbs +1 -6
  173. data/sig/terminal-shop/models/cart_set_address_params.rbs +4 -9
  174. data/sig/terminal-shop/models/cart_set_address_response.rbs +1 -6
  175. data/sig/terminal-shop/models/cart_set_card_params.rbs +4 -6
  176. data/sig/terminal-shop/models/cart_set_card_response.rbs +1 -6
  177. data/sig/terminal-shop/models/cart_set_item_params.rbs +5 -10
  178. data/sig/terminal-shop/models/cart_set_item_response.rbs +1 -6
  179. data/sig/terminal-shop/models/email_create_params.rbs +4 -6
  180. data/sig/terminal-shop/models/email_create_response.rbs +1 -6
  181. data/sig/terminal-shop/models/order.rbs +31 -50
  182. data/sig/terminal-shop/models/order_create_params.rbs +6 -11
  183. data/sig/terminal-shop/models/order_create_response.rbs +1 -6
  184. data/sig/terminal-shop/models/order_get_params.rbs +1 -5
  185. data/sig/terminal-shop/models/order_get_response.rbs +1 -6
  186. data/sig/terminal-shop/models/order_list_params.rbs +1 -6
  187. data/sig/terminal-shop/models/order_list_response.rbs +1 -6
  188. data/sig/terminal-shop/models/product.rbs +20 -27
  189. data/sig/terminal-shop/models/product_get_params.rbs +1 -6
  190. data/sig/terminal-shop/models/product_get_response.rbs +1 -6
  191. data/sig/terminal-shop/models/product_list_params.rbs +1 -6
  192. data/sig/terminal-shop/models/product_list_response.rbs +1 -6
  193. data/sig/terminal-shop/models/product_variant.rbs +1 -5
  194. data/sig/terminal-shop/models/profile.rbs +8 -17
  195. data/sig/terminal-shop/models/profile_me_params.rbs +1 -6
  196. data/sig/terminal-shop/models/profile_me_response.rbs +1 -6
  197. data/sig/terminal-shop/models/profile_update_params.rbs +5 -10
  198. data/sig/terminal-shop/models/profile_update_response.rbs +1 -6
  199. data/sig/terminal-shop/models/region.rbs +4 -2
  200. data/sig/terminal-shop/models/subscription.rbs +15 -27
  201. data/sig/terminal-shop/models/subscription_create_params.rbs +1 -6
  202. data/sig/terminal-shop/models/subscription_create_response.rbs +1 -6
  203. data/sig/terminal-shop/models/subscription_delete_params.rbs +1 -6
  204. data/sig/terminal-shop/models/subscription_delete_response.rbs +1 -6
  205. data/sig/terminal-shop/models/subscription_get_params.rbs +1 -6
  206. data/sig/terminal-shop/models/subscription_get_response.rbs +1 -6
  207. data/sig/terminal-shop/models/subscription_list_params.rbs +1 -6
  208. data/sig/terminal-shop/models/subscription_list_response.rbs +3 -6
  209. data/sig/terminal-shop/models/token.rbs +1 -5
  210. data/sig/terminal-shop/models/token_create_params.rbs +1 -6
  211. data/sig/terminal-shop/models/token_create_response.rbs +4 -12
  212. data/sig/terminal-shop/models/token_delete_params.rbs +1 -6
  213. data/sig/terminal-shop/models/token_delete_response.rbs +1 -6
  214. data/sig/terminal-shop/models/token_get_params.rbs +1 -5
  215. data/sig/terminal-shop/models/token_get_response.rbs +1 -6
  216. data/sig/terminal-shop/models/token_list_params.rbs +1 -6
  217. data/sig/terminal-shop/models/token_list_response.rbs +1 -6
  218. data/sig/terminal-shop/models/view_init_params.rbs +1 -5
  219. data/sig/terminal-shop/models/view_init_response.rbs +15 -23
  220. data/sig/terminal-shop/pooled_net_requester.rbs +10 -3
  221. data/sig/terminal-shop/request_options.rbs +2 -2
  222. data/sig/terminal-shop/resources/address.rbs +22 -41
  223. data/sig/terminal-shop/resources/app.rbs +16 -34
  224. data/sig/terminal-shop/resources/card.rbs +18 -40
  225. data/sig/terminal-shop/resources/cart.rbs +22 -47
  226. data/sig/terminal-shop/resources/email.rbs +4 -8
  227. data/sig/terminal-shop/resources/order.rbs +13 -26
  228. data/sig/terminal-shop/resources/product.rbs +7 -16
  229. data/sig/terminal-shop/resources/profile.rbs +8 -16
  230. data/sig/terminal-shop/resources/subscription.rbs +21 -43
  231. data/sig/terminal-shop/resources/token.rbs +14 -32
  232. data/sig/terminal-shop/resources/view.rbs +3 -7
  233. data/sig/terminal-shop/util.rbs +9 -9
  234. data/sig/terminal-shop/version.rbs +1 -1
  235. metadata +4 -4
@@ -1,64 +1,95 @@
1
1
  # typed: strong
2
2
 
3
3
  module TerminalShop
4
+ # @api private
4
5
  module Util
6
+ # Due to the current WIP status of Shapes support in Sorbet, types referencing
7
+ # this alias might be refined in the future.
8
+ AnyHash = T.type_alias { T::Hash[Symbol, T.anything] }
9
+
10
+ # @api private
5
11
  sig { returns(Float) }
6
12
  def self.monotonic_secs
7
13
  end
8
14
 
9
15
  class << self
16
+ # @api private
10
17
  sig { returns(String) }
11
18
  def arch
12
19
  end
13
20
 
21
+ # @api private
14
22
  sig { returns(String) }
15
23
  def os
16
24
  end
17
25
  end
18
26
 
19
27
  class << self
20
- sig { params(input: T.anything).returns(T.any(T::Boolean, T.anything)) }
28
+ # @api private
29
+ sig { params(input: T.anything).returns(T::Boolean) }
21
30
  def primitive?(input)
22
31
  end
23
32
 
33
+ # @api private
24
34
  sig { params(input: T.anything).returns(T.any(T::Boolean, T.anything)) }
25
35
  def coerce_boolean(input)
26
36
  end
27
37
 
38
+ # @api private
28
39
  sig { params(input: T.anything).returns(T.nilable(T::Boolean)) }
29
40
  def coerce_boolean!(input)
30
41
  end
31
42
 
43
+ # @api private
32
44
  sig { params(input: T.anything).returns(T.any(Integer, T.anything)) }
33
45
  def coerce_integer(input)
34
46
  end
35
47
 
48
+ # @api private
36
49
  sig { params(input: T.anything).returns(T.any(Float, T.anything)) }
37
50
  def coerce_float(input)
38
51
  end
39
52
 
53
+ # @api private
40
54
  sig { params(input: T.anything).returns(T.any(T::Hash[T.anything, T.anything], T.anything)) }
41
55
  def coerce_hash(input)
42
56
  end
43
57
  end
44
58
 
59
+ # Use this to indicate that a value should be explicitly removed from a data
60
+ # structure when using `TerminalShop::Util.deep_merge`.
61
+ #
62
+ # e.g. merging `{a: 1}` and `{a: OMIT}` should produce `{}`, where merging
63
+ # `{a: 1}` and `{}` would produce `{a: 1}`.
45
64
  OMIT = T.let(T.anything, T.anything)
46
65
 
47
66
  class << self
67
+ # @api private
48
68
  sig { params(lhs: T.anything, rhs: T.anything, concat: T::Boolean).returns(T.anything) }
49
69
  private def deep_merge_lr(lhs, rhs, concat: false)
50
70
  end
51
71
 
72
+ # @api private
73
+ #
74
+ # Recursively merge one hash with another. If the values at a given key are not
75
+ # both hashes, just take the new value.
52
76
  sig do
53
77
  params(values: T::Array[T.anything], sentinel: T.nilable(T.anything), concat: T::Boolean)
54
78
  .returns(T.anything)
55
79
  end
56
- def deep_merge(*values, sentinel: nil, concat: false)
80
+ def deep_merge(
81
+ *values,
82
+ # the value to return if no values are provided.
83
+ sentinel: nil,
84
+ # whether to merge sequences by concatenation.
85
+ concat: false
86
+ )
57
87
  end
58
88
 
89
+ # @api private
59
90
  sig do
60
91
  params(
61
- data: T.any(T::Hash[Symbol, T.anything], T::Array[T.anything], T.anything),
92
+ data: T.any(TerminalShop::Util::AnyHash, T::Array[T.anything], T.anything),
62
93
  pick: T.nilable(T.any(Symbol, Integer, T::Array[T.any(Symbol, Integer)])),
63
94
  sentinel: T.nilable(T.anything),
64
95
  blk: T.nilable(T.proc.returns(T.anything))
@@ -70,20 +101,24 @@ module TerminalShop
70
101
  end
71
102
 
72
103
  class << self
104
+ # @api private
73
105
  sig { params(uri: URI::Generic).returns(String) }
74
106
  def uri_origin(uri)
75
107
  end
76
108
 
109
+ # @api private
77
110
  sig { params(path: T.any(String, T::Array[String])).returns(String) }
78
111
  def interpolate_path(path)
79
112
  end
80
113
  end
81
114
 
82
115
  class << self
116
+ # @api private
83
117
  sig { params(query: T.nilable(String)).returns(T::Hash[String, T::Array[String]]) }
84
118
  def decode_query(query)
85
119
  end
86
120
 
121
+ # @api private
87
122
  sig do
88
123
  params(query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]))
89
124
  .returns(T.nilable(String))
@@ -92,25 +127,29 @@ module TerminalShop
92
127
  end
93
128
  end
94
129
 
95
- ParsedUriShape = T.type_alias do
96
- {
97
- scheme: T.nilable(String),
98
- host: T.nilable(String),
99
- port: T.nilable(Integer),
100
- path: T.nilable(String),
101
- query: T::Hash[String, T::Array[String]]
102
- }
103
- end
130
+ ParsedUriShape =
131
+ T.type_alias do
132
+ {
133
+ scheme: T.nilable(String),
134
+ host: T.nilable(String),
135
+ port: T.nilable(Integer),
136
+ path: T.nilable(String),
137
+ query: T::Hash[String, T::Array[String]]
138
+ }
139
+ end
104
140
 
105
141
  class << self
142
+ # @api private
106
143
  sig { params(url: T.any(URI::Generic, String)).returns(TerminalShop::Util::ParsedUriShape) }
107
144
  def parse_uri(url)
108
145
  end
109
146
 
147
+ # @api private
110
148
  sig { params(parsed: TerminalShop::Util::ParsedUriShape).returns(URI::Generic) }
111
149
  def unparse_uri(parsed)
112
150
  end
113
151
 
152
+ # @api private
114
153
  sig do
115
154
  params(lhs: TerminalShop::Util::ParsedUriShape, rhs: TerminalShop::Util::ParsedUriShape)
116
155
  .returns(URI::Generic)
@@ -120,6 +159,7 @@ module TerminalShop
120
159
  end
121
160
 
122
161
  class << self
162
+ # @api private
123
163
  sig do
124
164
  params(
125
165
  headers: T::Hash[String,
@@ -131,15 +171,21 @@ module TerminalShop
131
171
  end
132
172
  end
133
173
 
174
+ # @api private
175
+ #
176
+ # An adapter that satisfies the IO interface required by `::IO.copy_stream`
134
177
  class ReadIOAdapter
178
+ # @api private
135
179
  sig { params(max_len: T.nilable(Integer)).returns(String) }
136
180
  private def read_enum(max_len)
137
181
  end
138
182
 
183
+ # @api private
139
184
  sig { params(max_len: T.nilable(Integer), out_string: T.nilable(String)).returns(T.nilable(String)) }
140
185
  def read(max_len = nil, out_string = nil)
141
186
  end
142
187
 
188
+ # @api private
143
189
  sig do
144
190
  params(
145
191
  stream: T.any(String, IO, StringIO, T::Enumerable[String]),
@@ -158,20 +204,24 @@ module TerminalShop
158
204
  end
159
205
 
160
206
  class << self
207
+ # @api private
161
208
  sig do
162
209
  params(y: Enumerator::Yielder, boundary: String, key: T.any(Symbol, String), val: T.anything).void
163
210
  end
164
211
  private def encode_multipart_formdata(y, boundary:, key:, val:)
165
212
  end
166
213
 
214
+ # @api private
167
215
  sig { params(body: T.anything).returns([String, T::Enumerable[String]]) }
168
216
  private def encode_multipart_streaming(body)
169
217
  end
170
218
 
219
+ # @api private
171
220
  sig { params(headers: T::Hash[String, String], body: T.anything).returns(T.anything) }
172
221
  def encode_content(headers, body)
173
222
  end
174
223
 
224
+ # @api private
175
225
  sig do
176
226
  params(
177
227
  headers: T.any(T::Hash[String, String], Net::HTTPHeader),
@@ -185,6 +235,9 @@ module TerminalShop
185
235
  end
186
236
 
187
237
  class << self
238
+ # @api private
239
+ #
240
+ # https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
188
241
  sig do
189
242
  params(enum: T::Enumerable[T.anything], external: T::Boolean, close: T.proc.void)
190
243
  .returns(T::Enumerable[T.anything])
@@ -192,30 +245,35 @@ module TerminalShop
192
245
  def fused_enum(enum, external: false, &close)
193
246
  end
194
247
 
248
+ # @api private
195
249
  sig { params(enum: T.nilable(T::Enumerable[T.anything])).void }
196
250
  def close_fused!(enum)
197
251
  end
198
252
 
253
+ # @api private
199
254
  sig do
200
- params(
201
- enum: T.nilable(T::Enumerable[T.anything]),
202
- blk: T.proc.params(arg0: Enumerator::Yielder).void
203
- ).void
255
+ params(enum: T.nilable(T::Enumerable[T.anything]), blk: T.proc.params(arg0: Enumerator::Yielder).void)
256
+ .returns(T::Enumerable[T.anything])
204
257
  end
205
258
  def chain_fused(enum, &blk)
206
259
  end
207
260
  end
208
261
 
209
- SSEMessage = T.type_alias do
210
- {event: T.nilable(String), data: T.nilable(String), id: T.nilable(String), retry: T.nilable(Integer)}
211
- end
262
+ ServerSentEvent =
263
+ T.type_alias do
264
+ {event: T.nilable(String), data: T.nilable(String), id: T.nilable(String), retry: T.nilable(Integer)}
265
+ end
212
266
 
213
267
  class << self
268
+ # @api private
214
269
  sig { params(enum: T::Enumerable[String]).returns(T::Enumerable[String]) }
215
270
  def decode_lines(enum)
216
271
  end
217
272
 
218
- sig { params(lines: T::Enumerable[String]).returns(TerminalShop::Util::SSEMessage) }
273
+ # @api private
274
+ #
275
+ # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
276
+ sig { params(lines: T::Enumerable[String]).returns(TerminalShop::Util::ServerSentEvent) }
219
277
  def decode_sse(lines)
220
278
  end
221
279
  end
@@ -1,5 +1,5 @@
1
1
  # typed: strong
2
2
 
3
3
  module TerminalShop
4
- VERSION = "1.7.0"
4
+ VERSION = "2.0.0"
5
5
  end
@@ -45,19 +45,24 @@ module TerminalShop
45
45
  response_headers: ::Hash[String, String]
46
46
  ) -> TerminalShop::BaseClient::request_input
47
47
 
48
- # @private
48
+ def self.reap_connection!: (
49
+ Integer | TerminalShop::APIConnectionError status,
50
+ stream: Enumerable[String]?
51
+ ) -> void
52
+
53
+ # @api private
49
54
  attr_accessor requester: top
50
55
 
51
56
  def initialize: (
52
57
  base_url: String,
53
- timeout: Float,
54
- max_retries: Integer,
55
- initial_retry_delay: Float,
56
- max_retry_delay: Float,
57
- headers: ::Hash[String, (String
58
+ ?timeout: Float,
59
+ ?max_retries: Integer,
60
+ ?initial_retry_delay: Float,
61
+ ?max_retry_delay: Float,
62
+ ?headers: ::Hash[String, (String
58
63
  | Integer
59
64
  | ::Array[(String | Integer)?])?],
60
- idempotency_header: String?
65
+ ?idempotency_header: String?
61
66
  ) -> void
62
67
 
63
68
  private def auth_headers: -> ::Hash[String, String]
@@ -85,16 +90,16 @@ module TerminalShop
85
90
  (
86
91
  Symbol method,
87
92
  String | ::Array[String] path,
88
- query: ::Hash[String, (::Array[String] | String)?]?,
89
- headers: ::Hash[String, (String
93
+ ?query: ::Hash[String, (::Array[String] | String)?]?,
94
+ ?headers: ::Hash[String, (String
90
95
  | Integer
91
96
  | ::Array[(String | Integer)?])?]?,
92
- body: top?,
93
- unwrap: Symbol?,
94
- page: Class?,
95
- stream: Class?,
96
- model: TerminalShop::Converter::input?,
97
- options: TerminalShop::request_opts?
97
+ ?body: top?,
98
+ ?unwrap: Symbol?,
99
+ ?page: Class?,
100
+ ?stream: Class?,
101
+ ?model: TerminalShop::Converter::input?,
102
+ ?options: TerminalShop::request_opts?
98
103
  ) -> top
99
104
  | (TerminalShop::BaseClient::request_components req) -> top
100
105
 
@@ -62,32 +62,34 @@ module TerminalShop
62
62
  ) -> ([true, top, nil] | [false, bool, Integer])
63
63
  end
64
64
 
65
- class Enum
66
- extend TerminalShop::Converter
65
+ module Enum
66
+ include TerminalShop::Converter
67
67
 
68
68
  def self.values: -> ::Array[(nil | bool | Integer | Float | Symbol)]
69
69
 
70
70
  private def self.finalize!: -> void
71
71
 
72
- def self.===: (top other) -> bool
72
+ def ===: (top other) -> bool
73
73
 
74
- def self.==: (top other) -> bool
74
+ def ==: (top other) -> bool
75
75
 
76
- def self.coerce: (String | Symbol | top value) -> (Symbol | top)
76
+ def coerce: (String | Symbol | top value) -> (Symbol | top)
77
77
 
78
- def self.dump: (Symbol | top value) -> (Symbol | top)
78
+ def dump: (Symbol | top value) -> (Symbol | top)
79
79
 
80
- def self.try_strict_coerce: (
80
+ def try_strict_coerce: (
81
81
  top value
82
82
  ) -> ([true, top, nil] | [false, bool, Integer])
83
83
  end
84
84
 
85
- class Union
86
- extend TerminalShop::Converter
85
+ module Union
86
+ include TerminalShop::Converter
87
87
 
88
- private def self.known_variants: -> ::Array[[Symbol?, Proc]]
88
+ private def self.known_variants: -> ::Array[[Symbol?, (^-> TerminalShop::Converter::input)]]
89
89
 
90
- def self.variants: -> ::Array[[Symbol?, top]]
90
+ def self.derefed_variants: -> ::Array[[Symbol?, top]]
91
+
92
+ def self.variants: -> ::Array[top]
91
93
 
92
94
  private def self.discriminator: (Symbol property) -> void
93
95
 
@@ -105,15 +107,15 @@ module TerminalShop
105
107
  top value
106
108
  ) -> TerminalShop::Converter::input?
107
109
 
108
- def self.===: (top other) -> bool
110
+ def ===: (top other) -> bool
109
111
 
110
- def self.==: (top other) -> bool
112
+ def ==: (top other) -> bool
111
113
 
112
- def self.coerce: (top value) -> top
114
+ def coerce: (top value) -> top
113
115
 
114
- def self.dump: (top value) -> top
116
+ def dump: (top value) -> top
115
117
 
116
- def self.try_strict_coerce: (
118
+ def try_strict_coerce: (
117
119
  top value
118
120
  ) -> ([true, top, nil] | [false, bool, Integer])
119
121
  end
@@ -121,6 +123,13 @@ module TerminalShop
121
123
  class ArrayOf
122
124
  include TerminalShop::Converter
123
125
 
126
+ def self.[]: (
127
+ ::Hash[Symbol, top]
128
+ | ^-> TerminalShop::Converter::input
129
+ | TerminalShop::Converter::input type_info,
130
+ ?::Hash[Symbol, top] spec
131
+ ) -> instance
132
+
124
133
  def ===: (top other) -> bool
125
134
 
126
135
  def ==: (top other) -> bool
@@ -133,7 +142,7 @@ module TerminalShop
133
142
  top value
134
143
  ) -> ([true, top, nil] | [false, bool, Integer])
135
144
 
136
- def item_type: -> TerminalShop::Converter::input
145
+ def item_type: -> top
137
146
 
138
147
  def initialize: (
139
148
  ::Hash[Symbol, top]
@@ -146,6 +155,13 @@ module TerminalShop
146
155
  class HashOf
147
156
  include TerminalShop::Converter
148
157
 
158
+ def self.[]: (
159
+ ::Hash[Symbol, top]
160
+ | ^-> TerminalShop::Converter::input
161
+ | TerminalShop::Converter::input type_info,
162
+ ?::Hash[Symbol, top] spec
163
+ ) -> instance
164
+
149
165
  def ===: (top other) -> bool
150
166
 
151
167
  def ==: (top other) -> bool
@@ -158,7 +174,7 @@ module TerminalShop
158
174
  top value
159
175
  ) -> ([true, top, nil] | [false, bool, Integer])
160
176
 
161
- def item_type: -> TerminalShop::Converter::input
177
+ def item_type: -> top
162
178
 
163
179
  def initialize: (
164
180
  ::Hash[Symbol, top]
@@ -176,6 +192,8 @@ module TerminalShop
176
192
  def self.known_fields: -> ::Hash[Symbol, (TerminalShop::BaseModel::known_field
177
193
  & { type_fn: (^-> TerminalShop::Converter::input) })]
178
194
 
195
+ def self.reverse_map: -> ::Hash[Symbol, Symbol]
196
+
179
197
  def self.fields: -> ::Hash[Symbol, (TerminalShop::BaseModel::known_field
180
198
  & { type: TerminalShop::Converter::input })]
181
199
 
@@ -42,14 +42,14 @@ module TerminalShop
42
42
  private def auth_headers: -> ::Hash[String, String]
43
43
 
44
44
  def initialize: (
45
- environment: :production | :dev | nil,
46
- base_url: String?,
47
- bearer_token: String?,
48
- app_id: String?,
49
- max_retries: Integer,
50
- timeout: Float,
51
- initial_retry_delay: Float,
52
- max_retry_delay: Float
45
+ ?environment: :production | :dev | nil,
46
+ ?base_url: String?,
47
+ ?bearer_token: String?,
48
+ ?app_id: String?,
49
+ ?max_retries: Integer,
50
+ ?timeout: Float,
51
+ ?initial_retry_delay: Float,
52
+ ?max_retry_delay: Float
53
53
  ) -> void
54
54
  end
55
55
  end
@@ -1,47 +1,47 @@
1
1
  module TerminalShop
2
2
  class Error < StandardError
3
- attr_reader cause: StandardError?
3
+ attr_accessor cause: StandardError?
4
4
  end
5
5
 
6
6
  class ConversionError < TerminalShop::Error
7
7
  end
8
8
 
9
9
  class APIError < TerminalShop::Error
10
- attr_reader url: URI::Generic
10
+ attr_accessor url: URI::Generic
11
11
 
12
- attr_reader status: Integer?
12
+ attr_accessor status: Integer?
13
13
 
14
- attr_reader body: top?
14
+ attr_accessor body: top?
15
15
 
16
16
  def initialize: (
17
17
  url: URI::Generic,
18
- status: Integer?,
19
- body: Object?,
20
- request: nil,
21
- response: nil,
22
- message: String?
18
+ ?status: Integer?,
19
+ ?body: Object?,
20
+ ?request: nil,
21
+ ?response: nil,
22
+ ?message: String?
23
23
  ) -> void
24
24
  end
25
25
 
26
26
  class APIConnectionError < TerminalShop::APIError
27
27
  def initialize: (
28
28
  url: URI::Generic,
29
- status: nil,
30
- body: nil,
31
- request: nil,
32
- response: nil,
33
- message: String?
29
+ ?status: nil,
30
+ ?body: nil,
31
+ ?request: nil,
32
+ ?response: nil,
33
+ ?message: String?
34
34
  ) -> void
35
35
  end
36
36
 
37
37
  class APITimeoutError < TerminalShop::APIConnectionError
38
38
  def initialize: (
39
39
  url: URI::Generic,
40
- status: nil,
41
- body: nil,
42
- request: nil,
43
- response: nil,
44
- message: String?
40
+ ?status: nil,
41
+ ?body: nil,
42
+ ?request: nil,
43
+ ?response: nil,
44
+ ?message: String?
45
45
  ) -> void
46
46
  end
47
47
 
@@ -52,7 +52,7 @@ module TerminalShop
52
52
  body: Object?,
53
53
  request: nil,
54
54
  response: nil,
55
- message: String?
55
+ ?message: String?
56
56
  ) -> instance
57
57
 
58
58
  def initialize: (
@@ -61,7 +61,7 @@ module TerminalShop
61
61
  body: Object?,
62
62
  request: nil,
63
63
  response: nil,
64
- message: String?
64
+ ?message: String?
65
65
  ) -> void
66
66
  end
67
67
 
@@ -38,21 +38,17 @@ module TerminalShop
38
38
 
39
39
  def street2=: (String) -> String
40
40
 
41
- def initialize:
42
- (
43
- id: String,
44
- city: String,
45
- country: String,
46
- name: String,
47
- street1: String,
48
- zip: String,
49
- phone: String,
50
- province: String,
51
- street2: String
52
- ) -> void
53
- | (
54
- ?TerminalShop::Models::address_api | TerminalShop::BaseModel data
55
- ) -> void
41
+ def initialize: (
42
+ id: String,
43
+ city: String,
44
+ country: String,
45
+ name: String,
46
+ street1: String,
47
+ zip: String,
48
+ ?phone: String,
49
+ ?province: String,
50
+ ?street2: String
51
+ ) -> void
56
52
 
57
53
  def to_hash: -> TerminalShop::Models::address_api
58
54
  end
@@ -39,22 +39,17 @@ module TerminalShop
39
39
 
40
40
  def street2=: (String) -> String
41
41
 
42
- def initialize:
43
- (
44
- city: String,
45
- country: String,
46
- name: String,
47
- street1: String,
48
- zip: String,
49
- phone: String,
50
- province: String,
51
- street2: String,
52
- request_options: TerminalShop::request_opts
53
- ) -> void
54
- | (
55
- ?TerminalShop::Models::address_create_params
56
- | TerminalShop::BaseModel data
57
- ) -> void
42
+ def initialize: (
43
+ city: String,
44
+ country: String,
45
+ name: String,
46
+ street1: String,
47
+ zip: String,
48
+ ?phone: String,
49
+ ?province: String,
50
+ ?street2: String,
51
+ ?request_options: TerminalShop::request_opts
52
+ ) -> void
58
53
 
59
54
  def to_hash: -> TerminalShop::Models::address_create_params
60
55
  end
@@ -5,12 +5,7 @@ module TerminalShop
5
5
  class AddressCreateResponse < TerminalShop::BaseModel
6
6
  attr_accessor data: String
7
7
 
8
- def initialize:
9
- (data: String) -> void
10
- | (
11
- ?TerminalShop::Models::address_create_response
12
- | TerminalShop::BaseModel data
13
- ) -> void
8
+ def initialize: (data: String) -> void
14
9
 
15
10
  def to_hash: -> TerminalShop::Models::address_create_response
16
11
  end
@@ -6,12 +6,7 @@ module TerminalShop
6
6
  extend TerminalShop::RequestParameters::Converter
7
7
  include TerminalShop::RequestParameters
8
8
 
9
- def initialize:
10
- (request_options: TerminalShop::request_opts) -> void
11
- | (
12
- ?TerminalShop::Models::address_delete_params
13
- | TerminalShop::BaseModel data
14
- ) -> void
9
+ def initialize: (?request_options: TerminalShop::request_opts) -> void
15
10
 
16
11
  def to_hash: -> TerminalShop::Models::address_delete_params
17
12
  end
@@ -5,12 +5,7 @@ module TerminalShop
5
5
  class AddressDeleteResponse < TerminalShop::BaseModel
6
6
  attr_accessor data: :ok
7
7
 
8
- def initialize:
9
- (data: :ok) -> void
10
- | (
11
- ?TerminalShop::Models::address_delete_response
12
- | TerminalShop::BaseModel data
13
- ) -> void
8
+ def initialize: (?data: :ok) -> void
14
9
 
15
10
  def to_hash: -> TerminalShop::Models::address_delete_response
16
11
  end
@@ -6,12 +6,7 @@ module TerminalShop
6
6
  extend TerminalShop::RequestParameters::Converter
7
7
  include TerminalShop::RequestParameters
8
8
 
9
- def initialize:
10
- (request_options: TerminalShop::request_opts) -> void
11
- | (
12
- ?TerminalShop::Models::address_get_params
13
- | TerminalShop::BaseModel data
14
- ) -> void
9
+ def initialize: (?request_options: TerminalShop::request_opts) -> void
15
10
 
16
11
  def to_hash: -> TerminalShop::Models::address_get_params
17
12
  end