terminal-shop 3.6.1 → 3.7.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 (274) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +3 -3
  4. data/lib/terminal_shop/errors.rb +1 -1
  5. data/lib/terminal_shop/file_part.rb +2 -2
  6. data/lib/terminal_shop/internal/transport/base_client.rb +77 -5
  7. data/lib/terminal_shop/internal/transport/pooled_net_requester.rb +14 -0
  8. data/lib/terminal_shop/internal/type/array_of.rb +1 -1
  9. data/lib/terminal_shop/internal/type/base_model.rb +62 -30
  10. data/lib/terminal_shop/internal/type/converter.rb +18 -0
  11. data/lib/terminal_shop/internal/type/enum.rb +5 -4
  12. data/lib/terminal_shop/internal/type/hash_of.rb +1 -1
  13. data/lib/terminal_shop/internal/type/request_parameters.rb +4 -4
  14. data/lib/terminal_shop/internal/type/union.rb +1 -0
  15. data/lib/terminal_shop/internal/util.rb +57 -1
  16. data/lib/terminal_shop/internal.rb +6 -0
  17. data/lib/terminal_shop/models/address.rb +3 -3
  18. data/lib/terminal_shop/models/address_get_response.rb +3 -3
  19. data/lib/terminal_shop/models/address_list_response.rb +3 -3
  20. data/lib/terminal_shop/models/app.rb +3 -3
  21. data/lib/terminal_shop/models/app_get_response.rb +3 -3
  22. data/lib/terminal_shop/models/app_list_response.rb +3 -3
  23. data/lib/terminal_shop/models/card.rb +7 -7
  24. data/lib/terminal_shop/models/card_collect_response.rb +0 -1
  25. data/lib/terminal_shop/models/card_create_params.rb +0 -1
  26. data/lib/terminal_shop/models/card_get_response.rb +3 -3
  27. data/lib/terminal_shop/models/card_list_response.rb +3 -3
  28. data/lib/terminal_shop/models/cart.rb +13 -13
  29. data/lib/terminal_shop/models/cart_convert_response.rb +3 -3
  30. data/lib/terminal_shop/models/cart_get_response.rb +3 -3
  31. data/lib/terminal_shop/models/cart_set_item_response.rb +3 -3
  32. data/lib/terminal_shop/models/order.rb +24 -24
  33. data/lib/terminal_shop/models/order_get_response.rb +3 -3
  34. data/lib/terminal_shop/models/order_list_response.rb +3 -3
  35. data/lib/terminal_shop/models/product.rb +14 -14
  36. data/lib/terminal_shop/models/product_get_response.rb +3 -3
  37. data/lib/terminal_shop/models/product_list_response.rb +3 -3
  38. data/lib/terminal_shop/models/product_variant.rb +6 -6
  39. data/lib/terminal_shop/models/profile.rb +6 -6
  40. data/lib/terminal_shop/models/profile_me_response.rb +3 -3
  41. data/lib/terminal_shop/models/profile_update_response.rb +3 -3
  42. data/lib/terminal_shop/models/subscription.rb +18 -9
  43. data/lib/terminal_shop/models/subscription_get_response.rb +3 -3
  44. data/lib/terminal_shop/models/subscription_list_response.rb +3 -3
  45. data/lib/terminal_shop/models/subscription_update_params.rb +15 -6
  46. data/lib/terminal_shop/models/subscription_update_response.rb +3 -3
  47. data/lib/terminal_shop/models/token.rb +3 -3
  48. data/lib/terminal_shop/models/token_create_response.rb +0 -1
  49. data/lib/terminal_shop/models/token_get_response.rb +3 -4
  50. data/lib/terminal_shop/models/token_list_response.rb +3 -3
  51. data/lib/terminal_shop/models/view_init_response.rb +30 -31
  52. data/lib/terminal_shop/models.rb +27 -0
  53. data/lib/terminal_shop/request_options.rb +4 -0
  54. data/lib/terminal_shop/resources/address.rb +1 -1
  55. data/lib/terminal_shop/resources/app.rb +1 -1
  56. data/lib/terminal_shop/resources/card.rb +1 -2
  57. data/lib/terminal_shop/resources/cart.rb +3 -3
  58. data/lib/terminal_shop/resources/email.rb +1 -1
  59. data/lib/terminal_shop/resources/order.rb +1 -1
  60. data/lib/terminal_shop/resources/profile.rb +1 -1
  61. data/lib/terminal_shop/resources/subscription.rb +5 -5
  62. data/lib/terminal_shop/version.rb +1 -1
  63. data/lib/terminal_shop.rb +3 -0
  64. data/rbi/terminal_shop/client.rbi +9 -5
  65. data/rbi/terminal_shop/errors.rbi +35 -16
  66. data/rbi/terminal_shop/file_part.rbi +9 -6
  67. data/rbi/terminal_shop/internal/transport/base_client.rbi +165 -77
  68. data/rbi/terminal_shop/internal/transport/pooled_net_requester.rbi +29 -13
  69. data/rbi/terminal_shop/internal/type/array_of.rbi +34 -24
  70. data/rbi/terminal_shop/internal/type/base_model.rbi +155 -70
  71. data/rbi/terminal_shop/internal/type/base_page.rbi +13 -8
  72. data/rbi/terminal_shop/internal/type/boolean.rbi +16 -14
  73. data/rbi/terminal_shop/internal/type/converter.rbi +72 -28
  74. data/rbi/terminal_shop/internal/type/enum.rbi +24 -13
  75. data/rbi/terminal_shop/internal/type/file_input.rbi +8 -4
  76. data/rbi/terminal_shop/internal/type/hash_of.rbi +34 -24
  77. data/rbi/terminal_shop/internal/type/request_parameters.rbi +14 -4
  78. data/rbi/terminal_shop/internal/type/union.rbi +53 -22
  79. data/rbi/terminal_shop/internal/type/unknown.rbi +16 -6
  80. data/rbi/terminal_shop/internal/util.rbi +236 -91
  81. data/rbi/terminal_shop/internal.rbi +2 -0
  82. data/rbi/terminal_shop/models/address.rbi +25 -19
  83. data/rbi/terminal_shop/models/address_create_params.rbi +28 -19
  84. data/rbi/terminal_shop/models/address_create_response.rbi +14 -3
  85. data/rbi/terminal_shop/models/address_delete_params.rbi +18 -5
  86. data/rbi/terminal_shop/models/address_delete_response.rbi +13 -3
  87. data/rbi/terminal_shop/models/address_get_params.rbi +15 -5
  88. data/rbi/terminal_shop/models/address_get_response.rbi +17 -7
  89. data/rbi/terminal_shop/models/address_list_params.rbi +18 -5
  90. data/rbi/terminal_shop/models/address_list_response.rbi +18 -6
  91. data/rbi/terminal_shop/models/app.rbi +23 -4
  92. data/rbi/terminal_shop/models/app_create_params.rbi +18 -6
  93. data/rbi/terminal_shop/models/app_create_response.rbi +37 -9
  94. data/rbi/terminal_shop/models/app_delete_params.rbi +15 -5
  95. data/rbi/terminal_shop/models/app_delete_response.rbi +13 -3
  96. data/rbi/terminal_shop/models/app_get_params.rbi +15 -5
  97. data/rbi/terminal_shop/models/app_get_response.rbi +17 -7
  98. data/rbi/terminal_shop/models/app_list_params.rbi +15 -5
  99. data/rbi/terminal_shop/models/app_list_response.rbi +18 -6
  100. data/rbi/terminal_shop/models/card.rbi +37 -14
  101. data/rbi/terminal_shop/models/card_collect_params.rbi +18 -5
  102. data/rbi/terminal_shop/models/card_collect_response.rbi +40 -9
  103. data/rbi/terminal_shop/models/card_create_params.rbi +17 -6
  104. data/rbi/terminal_shop/models/card_create_response.rbi +14 -3
  105. data/rbi/terminal_shop/models/card_delete_params.rbi +15 -5
  106. data/rbi/terminal_shop/models/card_delete_response.rbi +13 -3
  107. data/rbi/terminal_shop/models/card_get_params.rbi +15 -5
  108. data/rbi/terminal_shop/models/card_get_response.rbi +17 -7
  109. data/rbi/terminal_shop/models/card_list_params.rbi +15 -5
  110. data/rbi/terminal_shop/models/card_list_response.rbi +18 -6
  111. data/rbi/terminal_shop/models/cart.rbi +93 -36
  112. data/rbi/terminal_shop/models/cart_clear_params.rbi +15 -5
  113. data/rbi/terminal_shop/models/cart_clear_response.rbi +13 -3
  114. data/rbi/terminal_shop/models/cart_convert_params.rbi +18 -5
  115. data/rbi/terminal_shop/models/cart_convert_response.rbi +17 -7
  116. data/rbi/terminal_shop/models/cart_get_params.rbi +15 -5
  117. data/rbi/terminal_shop/models/cart_get_response.rbi +17 -7
  118. data/rbi/terminal_shop/models/cart_set_address_params.rbi +20 -6
  119. data/rbi/terminal_shop/models/cart_set_address_response.rbi +13 -3
  120. data/rbi/terminal_shop/models/cart_set_card_params.rbi +20 -6
  121. data/rbi/terminal_shop/models/cart_set_card_response.rbi +13 -3
  122. data/rbi/terminal_shop/models/cart_set_item_params.rbi +22 -11
  123. data/rbi/terminal_shop/models/cart_set_item_response.rbi +17 -7
  124. data/rbi/terminal_shop/models/email_create_params.rbi +20 -6
  125. data/rbi/terminal_shop/models/email_create_response.rbi +13 -3
  126. data/rbi/terminal_shop/models/order.rbi +172 -87
  127. data/rbi/terminal_shop/models/order_create_params.rbi +23 -14
  128. data/rbi/terminal_shop/models/order_create_response.rbi +14 -3
  129. data/rbi/terminal_shop/models/order_get_params.rbi +15 -5
  130. data/rbi/terminal_shop/models/order_get_response.rbi +17 -7
  131. data/rbi/terminal_shop/models/order_list_params.rbi +15 -5
  132. data/rbi/terminal_shop/models/order_list_response.rbi +18 -6
  133. data/rbi/terminal_shop/models/product.rbi +78 -44
  134. data/rbi/terminal_shop/models/product_get_params.rbi +15 -5
  135. data/rbi/terminal_shop/models/product_get_response.rbi +17 -7
  136. data/rbi/terminal_shop/models/product_list_params.rbi +18 -5
  137. data/rbi/terminal_shop/models/product_list_response.rbi +18 -6
  138. data/rbi/terminal_shop/models/product_variant.rbi +46 -15
  139. data/rbi/terminal_shop/models/profile.rbi +39 -21
  140. data/rbi/terminal_shop/models/profile_me_params.rbi +15 -5
  141. data/rbi/terminal_shop/models/profile_me_response.rbi +17 -7
  142. data/rbi/terminal_shop/models/profile_update_params.rbi +23 -6
  143. data/rbi/terminal_shop/models/profile_update_response.rbi +17 -7
  144. data/rbi/terminal_shop/models/region.rbi +7 -6
  145. data/rbi/terminal_shop/models/subscription.rbi +82 -46
  146. data/rbi/terminal_shop/models/subscription_create_params.rbi +18 -5
  147. data/rbi/terminal_shop/models/subscription_create_response.rbi +13 -3
  148. data/rbi/terminal_shop/models/subscription_delete_params.rbi +18 -5
  149. data/rbi/terminal_shop/models/subscription_delete_response.rbi +13 -3
  150. data/rbi/terminal_shop/models/subscription_get_params.rbi +18 -5
  151. data/rbi/terminal_shop/models/subscription_get_response.rbi +19 -7
  152. data/rbi/terminal_shop/models/subscription_list_params.rbi +18 -5
  153. data/rbi/terminal_shop/models/subscription_list_response.rbi +20 -6
  154. data/rbi/terminal_shop/models/subscription_update_params.rbi +81 -42
  155. data/rbi/terminal_shop/models/subscription_update_response.rbi +19 -7
  156. data/rbi/terminal_shop/models/token.rbi +16 -4
  157. data/rbi/terminal_shop/models/token_create_params.rbi +18 -5
  158. data/rbi/terminal_shop/models/token_create_response.rbi +39 -9
  159. data/rbi/terminal_shop/models/token_delete_params.rbi +18 -5
  160. data/rbi/terminal_shop/models/token_delete_response.rbi +13 -3
  161. data/rbi/terminal_shop/models/token_get_params.rbi +15 -5
  162. data/rbi/terminal_shop/models/token_get_response.rbi +17 -7
  163. data/rbi/terminal_shop/models/token_list_params.rbi +15 -5
  164. data/rbi/terminal_shop/models/token_list_response.rbi +18 -6
  165. data/rbi/terminal_shop/models/view_init_params.rbi +15 -5
  166. data/rbi/terminal_shop/models/view_init_response.rbi +72 -47
  167. data/rbi/terminal_shop/request_options.rbi +18 -7
  168. data/rbi/terminal_shop/resources/address.rbi +28 -13
  169. data/rbi/terminal_shop/resources/app.rbi +30 -12
  170. data/rbi/terminal_shop/resources/card.rbi +37 -14
  171. data/rbi/terminal_shop/resources/cart.rbi +45 -16
  172. data/rbi/terminal_shop/resources/email.rbi +9 -4
  173. data/rbi/terminal_shop/resources/order.rbi +21 -10
  174. data/rbi/terminal_shop/resources/product.rbi +16 -6
  175. data/rbi/terminal_shop/resources/profile.rbi +16 -6
  176. data/rbi/terminal_shop/resources/subscription.rbi +43 -27
  177. data/rbi/terminal_shop/resources/token.rbi +30 -11
  178. data/rbi/terminal_shop/resources/view.rbi +9 -3
  179. data/sig/terminal_shop/internal/transport/base_client.rbs +16 -1
  180. data/sig/terminal_shop/internal/transport/pooled_net_requester.rbs +2 -0
  181. data/sig/terminal_shop/internal/type/base_model.rbs +11 -5
  182. data/sig/terminal_shop/internal/type/base_page.rbs +1 -1
  183. data/sig/terminal_shop/internal/type/converter.rbs +2 -0
  184. data/sig/terminal_shop/internal/type/enum.rbs +1 -0
  185. data/sig/terminal_shop/internal/type/request_parameters.rbs +5 -1
  186. data/sig/terminal_shop/internal/type/union.rbs +1 -0
  187. data/sig/terminal_shop/internal/util.rbs +13 -0
  188. data/sig/terminal_shop/internal.rbs +2 -0
  189. data/sig/terminal_shop/models/address.rbs +0 -2
  190. data/sig/terminal_shop/models/address_create_params.rbs +0 -2
  191. data/sig/terminal_shop/models/address_create_response.rbs +0 -2
  192. data/sig/terminal_shop/models/address_delete_params.rbs +0 -2
  193. data/sig/terminal_shop/models/address_delete_response.rbs +0 -2
  194. data/sig/terminal_shop/models/address_get_params.rbs +0 -2
  195. data/sig/terminal_shop/models/address_get_response.rbs +3 -5
  196. data/sig/terminal_shop/models/address_list_params.rbs +0 -2
  197. data/sig/terminal_shop/models/address_list_response.rbs +3 -6
  198. data/sig/terminal_shop/models/app.rbs +0 -2
  199. data/sig/terminal_shop/models/app_create_params.rbs +0 -2
  200. data/sig/terminal_shop/models/app_create_response.rbs +0 -4
  201. data/sig/terminal_shop/models/app_delete_params.rbs +0 -2
  202. data/sig/terminal_shop/models/app_delete_response.rbs +0 -2
  203. data/sig/terminal_shop/models/app_get_params.rbs +0 -2
  204. data/sig/terminal_shop/models/app_get_response.rbs +3 -5
  205. data/sig/terminal_shop/models/app_list_params.rbs +0 -2
  206. data/sig/terminal_shop/models/app_list_response.rbs +3 -5
  207. data/sig/terminal_shop/models/card.rbs +3 -7
  208. data/sig/terminal_shop/models/card_collect_params.rbs +0 -2
  209. data/sig/terminal_shop/models/card_collect_response.rbs +0 -4
  210. data/sig/terminal_shop/models/card_create_params.rbs +0 -2
  211. data/sig/terminal_shop/models/card_create_response.rbs +0 -2
  212. data/sig/terminal_shop/models/card_delete_params.rbs +0 -2
  213. data/sig/terminal_shop/models/card_delete_response.rbs +0 -2
  214. data/sig/terminal_shop/models/card_get_params.rbs +0 -2
  215. data/sig/terminal_shop/models/card_get_response.rbs +3 -5
  216. data/sig/terminal_shop/models/card_list_params.rbs +0 -2
  217. data/sig/terminal_shop/models/card_list_response.rbs +3 -5
  218. data/sig/terminal_shop/models/cart.rbs +11 -19
  219. data/sig/terminal_shop/models/cart_clear_params.rbs +0 -2
  220. data/sig/terminal_shop/models/cart_clear_response.rbs +0 -2
  221. data/sig/terminal_shop/models/cart_convert_params.rbs +0 -2
  222. data/sig/terminal_shop/models/cart_convert_response.rbs +3 -5
  223. data/sig/terminal_shop/models/cart_get_params.rbs +0 -2
  224. data/sig/terminal_shop/models/cart_get_response.rbs +3 -5
  225. data/sig/terminal_shop/models/cart_set_address_params.rbs +0 -2
  226. data/sig/terminal_shop/models/cart_set_address_response.rbs +0 -2
  227. data/sig/terminal_shop/models/cart_set_card_params.rbs +0 -2
  228. data/sig/terminal_shop/models/cart_set_card_response.rbs +0 -2
  229. data/sig/terminal_shop/models/cart_set_item_params.rbs +0 -2
  230. data/sig/terminal_shop/models/cart_set_item_response.rbs +3 -5
  231. data/sig/terminal_shop/models/email_create_params.rbs +0 -2
  232. data/sig/terminal_shop/models/email_create_response.rbs +0 -2
  233. data/sig/terminal_shop/models/order.rbs +18 -28
  234. data/sig/terminal_shop/models/order_create_params.rbs +0 -2
  235. data/sig/terminal_shop/models/order_create_response.rbs +0 -2
  236. data/sig/terminal_shop/models/order_get_params.rbs +0 -2
  237. data/sig/terminal_shop/models/order_get_response.rbs +3 -5
  238. data/sig/terminal_shop/models/order_list_params.rbs +0 -2
  239. data/sig/terminal_shop/models/order_list_response.rbs +3 -5
  240. data/sig/terminal_shop/models/product.rbs +14 -18
  241. data/sig/terminal_shop/models/product_get_params.rbs +0 -2
  242. data/sig/terminal_shop/models/product_get_response.rbs +3 -5
  243. data/sig/terminal_shop/models/product_list_params.rbs +0 -2
  244. data/sig/terminal_shop/models/product_list_response.rbs +3 -6
  245. data/sig/terminal_shop/models/product_variant.rbs +5 -9
  246. data/sig/terminal_shop/models/profile.rbs +3 -7
  247. data/sig/terminal_shop/models/profile_me_params.rbs +0 -2
  248. data/sig/terminal_shop/models/profile_me_response.rbs +3 -5
  249. data/sig/terminal_shop/models/profile_update_params.rbs +0 -2
  250. data/sig/terminal_shop/models/profile_update_response.rbs +3 -5
  251. data/sig/terminal_shop/models/subscription.rbs +8 -14
  252. data/sig/terminal_shop/models/subscription_create_params.rbs +0 -2
  253. data/sig/terminal_shop/models/subscription_create_response.rbs +0 -2
  254. data/sig/terminal_shop/models/subscription_delete_params.rbs +0 -2
  255. data/sig/terminal_shop/models/subscription_delete_response.rbs +0 -2
  256. data/sig/terminal_shop/models/subscription_get_params.rbs +0 -2
  257. data/sig/terminal_shop/models/subscription_get_response.rbs +3 -6
  258. data/sig/terminal_shop/models/subscription_list_params.rbs +0 -2
  259. data/sig/terminal_shop/models/subscription_list_response.rbs +3 -7
  260. data/sig/terminal_shop/models/subscription_update_params.rbs +3 -9
  261. data/sig/terminal_shop/models/subscription_update_response.rbs +3 -6
  262. data/sig/terminal_shop/models/token.rbs +0 -2
  263. data/sig/terminal_shop/models/token_create_params.rbs +0 -2
  264. data/sig/terminal_shop/models/token_create_response.rbs +0 -4
  265. data/sig/terminal_shop/models/token_delete_params.rbs +0 -2
  266. data/sig/terminal_shop/models/token_delete_response.rbs +0 -2
  267. data/sig/terminal_shop/models/token_get_params.rbs +0 -2
  268. data/sig/terminal_shop/models/token_get_response.rbs +3 -5
  269. data/sig/terminal_shop/models/token_list_params.rbs +0 -2
  270. data/sig/terminal_shop/models/token_list_response.rbs +3 -5
  271. data/sig/terminal_shop/models/view_init_params.rbs +0 -2
  272. data/sig/terminal_shop/models/view_init_response.rbs +27 -31
  273. data/sig/terminal_shop/request_options.rbs +1 -1
  274. metadata +2 -2
@@ -5,30 +5,55 @@ module TerminalShop
5
5
  module Type
6
6
  class BaseModel
7
7
  extend TerminalShop::Internal::Type::Converter
8
+ extend TerminalShop::Internal::Util::SorbetRuntimeSupport
8
9
 
9
10
  abstract!
10
11
 
11
- KnownFieldShape = T.type_alias do
12
- {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean}
13
- end
12
+ KnownField =
13
+ T.type_alias do
14
+ {
15
+ mode: T.nilable(Symbol),
16
+ required: T::Boolean,
17
+ nilable: T::Boolean
18
+ }
19
+ end
20
+
21
+ OrHash =
22
+ T.type_alias do
23
+ T.any(
24
+ TerminalShop::Internal::Type::BaseModel,
25
+ TerminalShop::Internal::AnyHash
26
+ )
27
+ end
14
28
 
15
29
  class << self
16
30
  # @api private
17
31
  #
18
32
  # Assumes superclass fields are totally defined before fields are accessed /
19
33
  # defined on subclasses.
34
+ sig { params(child: T.self_type).void }
35
+ def inherited(child)
36
+ end
37
+
38
+ # @api private
20
39
  sig do
21
40
  returns(
22
41
  T::Hash[
23
42
  Symbol,
24
43
  T.all(
25
- TerminalShop::Internal::Type::BaseModel::KnownFieldShape,
26
- {type_fn: T.proc.returns(TerminalShop::Internal::Type::Converter::Input)}
44
+ TerminalShop::Internal::Type::BaseModel::KnownField,
45
+ {
46
+ type_fn:
47
+ T.proc.returns(
48
+ TerminalShop::Internal::Type::Converter::Input
49
+ )
50
+ }
27
51
  )
28
52
  ]
29
53
  )
30
54
  end
31
- def known_fields; end
55
+ def known_fields
56
+ end
32
57
 
33
58
  # @api private
34
59
  sig do
@@ -36,107 +61,138 @@ module TerminalShop
36
61
  T::Hash[
37
62
  Symbol,
38
63
  T.all(
39
- TerminalShop::Internal::Type::BaseModel::KnownFieldShape,
40
- {type: TerminalShop::Internal::Type::Converter::Input}
64
+ TerminalShop::Internal::Type::BaseModel::KnownField,
65
+ { type: TerminalShop::Internal::Type::Converter::Input }
41
66
  )
42
67
  ]
43
68
  )
44
69
  end
45
- def fields; end
70
+ def fields
71
+ end
46
72
 
47
73
  # @api private
48
74
  sig do
49
75
  params(
50
76
  name_sym: Symbol,
51
77
  required: T::Boolean,
52
- type_info: T.any(
53
- {
54
- const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
55
- enum: T.nilable(T.proc.returns(TerminalShop::Internal::Type::Converter::Input)),
56
- union: T.nilable(T.proc.returns(TerminalShop::Internal::Type::Converter::Input)),
57
- api_name: Symbol,
58
- nil?: T::Boolean
59
- },
60
- T.proc.returns(TerminalShop::Internal::Type::Converter::Input),
61
- TerminalShop::Internal::Type::Converter::Input
62
- ),
78
+ type_info:
79
+ T.any(
80
+ {
81
+ const:
82
+ T.nilable(
83
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
84
+ ),
85
+ enum:
86
+ T.nilable(
87
+ T.proc.returns(
88
+ TerminalShop::Internal::Type::Converter::Input
89
+ )
90
+ ),
91
+ union:
92
+ T.nilable(
93
+ T.proc.returns(
94
+ TerminalShop::Internal::Type::Converter::Input
95
+ )
96
+ ),
97
+ api_name: Symbol,
98
+ nil?: T::Boolean
99
+ },
100
+ T.proc.returns(
101
+ TerminalShop::Internal::Type::Converter::Input
102
+ ),
103
+ TerminalShop::Internal::Type::Converter::Input
104
+ ),
63
105
  spec: TerminalShop::Internal::AnyHash
64
- )
65
- .void
106
+ ).void
107
+ end
108
+ private def add_field(name_sym, required:, type_info:, spec:)
66
109
  end
67
- private def add_field(name_sym, required:, type_info:, spec:); end
68
110
 
69
111
  # @api private
70
112
  sig do
71
113
  params(
72
114
  name_sym: Symbol,
73
- type_info: T.any(
74
- TerminalShop::Internal::AnyHash,
75
- T.proc.returns(TerminalShop::Internal::Type::Converter::Input),
76
- TerminalShop::Internal::Type::Converter::Input
77
- ),
115
+ type_info:
116
+ T.any(
117
+ TerminalShop::Internal::AnyHash,
118
+ T.proc.returns(
119
+ TerminalShop::Internal::Type::Converter::Input
120
+ ),
121
+ TerminalShop::Internal::Type::Converter::Input
122
+ ),
78
123
  spec: TerminalShop::Internal::AnyHash
79
- )
80
- .void
124
+ ).void
125
+ end
126
+ def required(name_sym, type_info, spec = {})
81
127
  end
82
- def required(name_sym, type_info, spec = {}); end
83
128
 
84
129
  # @api private
85
130
  sig do
86
131
  params(
87
132
  name_sym: Symbol,
88
- type_info: T.any(
89
- TerminalShop::Internal::AnyHash,
90
- T.proc.returns(TerminalShop::Internal::Type::Converter::Input),
91
- TerminalShop::Internal::Type::Converter::Input
92
- ),
133
+ type_info:
134
+ T.any(
135
+ TerminalShop::Internal::AnyHash,
136
+ T.proc.returns(
137
+ TerminalShop::Internal::Type::Converter::Input
138
+ ),
139
+ TerminalShop::Internal::Type::Converter::Input
140
+ ),
93
141
  spec: TerminalShop::Internal::AnyHash
94
- )
95
- .void
142
+ ).void
143
+ end
144
+ def optional(name_sym, type_info, spec = {})
96
145
  end
97
- def optional(name_sym, type_info, spec = {}); end
98
146
 
99
147
  # @api private
100
148
  #
101
149
  # `request_only` attributes not excluded from `.#coerce` when receiving responses
102
150
  # even if well behaved servers should not send them
103
151
  sig { params(blk: T.proc.void).void }
104
- private def request_only(&blk); end
152
+ private def request_only(&blk)
153
+ end
105
154
 
106
155
  # @api private
107
156
  #
108
157
  # `response_only` attributes are omitted from `.#dump` when making requests
109
158
  sig { params(blk: T.proc.void).void }
110
- private def response_only(&blk); end
159
+ private def response_only(&blk)
160
+ end
111
161
 
112
162
  sig { params(other: T.anything).returns(T::Boolean) }
113
- def ==(other); end
163
+ def ==(other)
164
+ end
114
165
 
115
166
  sig { returns(Integer) }
116
- def hash; end
167
+ def hash
168
+ end
117
169
  end
118
170
 
119
171
  sig { params(other: T.anything).returns(T::Boolean) }
120
- def ==(other); end
172
+ def ==(other)
173
+ end
121
174
 
122
175
  sig { returns(Integer) }
123
- def hash; end
176
+ def hash
177
+ end
124
178
 
125
179
  class << self
126
180
  # @api private
127
181
  sig do
128
182
  override
129
183
  .params(
130
- value: T.any(
131
- TerminalShop::Internal::Type::BaseModel,
132
- T::Hash[T.anything, T.anything],
133
- T.anything
134
- ),
184
+ value:
185
+ T.any(
186
+ TerminalShop::Internal::Type::BaseModel,
187
+ T::Hash[T.anything, T.anything],
188
+ T.anything
189
+ ),
135
190
  state: TerminalShop::Internal::Type::Converter::CoerceState
136
191
  )
137
192
  .returns(T.any(T.attached_class, T.anything))
138
193
  end
139
- def coerce(value, state:); end
194
+ def coerce(value, state:)
195
+ end
140
196
 
141
197
  # @api private
142
198
  sig do
@@ -147,7 +203,20 @@ module TerminalShop
147
203
  )
148
204
  .returns(T.any(T::Hash[T.anything, T.anything], T.anything))
149
205
  end
150
- def dump(value, state:); end
206
+ def dump(value, state:)
207
+ end
208
+ end
209
+
210
+ class << self
211
+ # @api private
212
+ sig do
213
+ params(
214
+ model: TerminalShop::Internal::Type::BaseModel,
215
+ convert: T::Boolean
216
+ ).returns(TerminalShop::Internal::AnyHash)
217
+ end
218
+ def recursively_to_h(model, convert:)
219
+ end
151
220
  end
152
221
 
153
222
  # Returns the raw value associated with the given key, if found. Otherwise, nil is
@@ -157,7 +226,8 @@ module TerminalShop
157
226
  # undocumented features. This method does not parse response data into
158
227
  # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
159
228
  sig { params(key: Symbol).returns(T.nilable(T.anything)) }
160
- def [](key); end
229
+ def [](key)
230
+ end
161
231
 
162
232
  # Returns a Hash of the data underlying this object. O(1)
163
233
  #
@@ -168,7 +238,8 @@ module TerminalShop
168
238
  # This method is not recursive. The returned value is shared by the object, so it
169
239
  # should not be mutated.
170
240
  sig { overridable.returns(TerminalShop::Internal::AnyHash) }
171
- def to_h; end
241
+ def to_h
242
+ end
172
243
 
173
244
  # Returns a Hash of the data underlying this object. O(1)
174
245
  #
@@ -179,41 +250,55 @@ module TerminalShop
179
250
  # This method is not recursive. The returned value is shared by the object, so it
180
251
  # should not be mutated.
181
252
  sig { overridable.returns(TerminalShop::Internal::AnyHash) }
182
- def to_hash; end
253
+ def to_hash
254
+ end
183
255
 
184
- sig { params(keys: T.nilable(T::Array[Symbol])).returns(TerminalShop::Internal::AnyHash) }
185
- def deconstruct_keys(keys); end
256
+ # In addition to the behaviour of `#to_h`, this method will recursively call
257
+ # `#to_h` on nested models.
258
+ sig { overridable.returns(TerminalShop::Internal::AnyHash) }
259
+ def deep_to_h
260
+ end
186
261
 
187
- class << self
188
- # @api private
189
- sig do
190
- params(model: TerminalShop::Internal::Type::BaseModel).returns(TerminalShop::Internal::AnyHash)
191
- end
192
- def walk(model); end
262
+ sig do
263
+ params(keys: T.nilable(T::Array[Symbol])).returns(
264
+ TerminalShop::Internal::AnyHash
265
+ )
266
+ end
267
+ def deconstruct_keys(keys)
193
268
  end
194
269
 
195
270
  sig { params(a: T.anything).returns(String) }
196
- def to_json(*a); end
271
+ def to_json(*a)
272
+ end
197
273
 
198
274
  sig { params(a: T.anything).returns(String) }
199
- def to_yaml(*a); end
275
+ def to_yaml(*a)
276
+ end
200
277
 
201
278
  # Create a new instance of a model.
202
- sig { params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(T.attached_class) }
203
- def self.new(data = {}); end
279
+ sig do
280
+ params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(
281
+ T.attached_class
282
+ )
283
+ end
284
+ def self.new(data = {})
285
+ end
204
286
 
205
287
  class << self
206
288
  # @api private
207
289
  sig { params(depth: Integer).returns(String) }
208
- def inspect(depth: 0); end
290
+ def inspect(depth: 0)
291
+ end
209
292
  end
210
293
 
211
294
  sig { returns(String) }
212
- def to_s; end
295
+ def to_s
296
+ end
213
297
 
214
298
  # @api private
215
299
  sig { returns(String) }
216
- def inspect; end
300
+ def inspect
301
+ end
217
302
  end
218
303
  end
219
304
  end
@@ -10,28 +10,33 @@ module TerminalShop
10
10
  Elem = type_member(:out)
11
11
 
12
12
  sig { overridable.returns(T::Boolean) }
13
- def next_page?; end
13
+ def next_page?
14
+ end
14
15
 
15
16
  sig { overridable.returns(T.self_type) }
16
- def next_page; end
17
+ def next_page
18
+ end
17
19
 
18
20
  sig { overridable.params(blk: T.proc.params(arg0: Elem).void).void }
19
- def auto_paging_each(&blk); end
21
+ def auto_paging_each(&blk)
22
+ end
20
23
 
21
24
  sig { returns(T::Enumerable[Elem]) }
22
- def to_enum; end
25
+ def to_enum
26
+ end
23
27
 
24
28
  # @api private
25
29
  sig do
26
30
  params(
27
31
  client: TerminalShop::Internal::Transport::BaseClient,
28
- req: TerminalShop::Internal::Transport::BaseClient::RequestComponentsShape,
32
+ req:
33
+ TerminalShop::Internal::Transport::BaseClient::RequestComponents,
29
34
  headers: T.any(T::Hash[String, String], Net::HTTPHeader),
30
35
  page_data: T.anything
31
- )
32
- .void
36
+ ).void
37
+ end
38
+ def initialize(client:, req:, headers:, page_data:)
33
39
  end
34
- def initialize(client:, req:, headers:, page_data:); end
35
40
  end
36
41
  end
37
42
  end
@@ -12,35 +12,37 @@ module TerminalShop
12
12
  abstract!
13
13
 
14
14
  sig { params(other: T.anything).returns(T::Boolean) }
15
- def self.===(other); end
15
+ def self.===(other)
16
+ end
16
17
 
17
18
  sig { params(other: T.anything).returns(T::Boolean) }
18
- def self.==(other); end
19
+ def self.==(other)
20
+ end
19
21
 
20
22
  class << self
21
23
  # @api private
22
24
  sig do
23
25
  override
24
- .params(value: T.any(
25
- T::Boolean,
26
- T.anything
27
- ),
28
- state: TerminalShop::Internal::Type::Converter::CoerceState)
26
+ .params(
27
+ value: T.any(T::Boolean, T.anything),
28
+ state: TerminalShop::Internal::Type::Converter::CoerceState
29
+ )
29
30
  .returns(T.any(T::Boolean, T.anything))
30
31
  end
31
- def coerce(value, state:); end
32
+ def coerce(value, state:)
33
+ end
32
34
 
33
35
  # @api private
34
36
  sig do
35
37
  override
36
- .params(value: T.any(
37
- T::Boolean,
38
- T.anything
39
- ),
40
- state: TerminalShop::Internal::Type::Converter::DumpState)
38
+ .params(
39
+ value: T.any(T::Boolean, T.anything),
40
+ state: TerminalShop::Internal::Type::Converter::DumpState
41
+ )
41
42
  .returns(T.any(T::Boolean, T.anything))
42
43
  end
43
- def dump(value, state:); end
44
+ def dump(value, state:)
45
+ end
44
46
  end
45
47
  end
46
48
  end
@@ -5,56 +5,90 @@ module TerminalShop
5
5
  module Type
6
6
  # @api private
7
7
  module Converter
8
- Input = T.type_alias { T.any(TerminalShop::Internal::Type::Converter, T::Class[T.anything]) }
8
+ extend TerminalShop::Internal::Util::SorbetRuntimeSupport
9
+
10
+ Input =
11
+ T.type_alias do
12
+ T.any(TerminalShop::Internal::Type::Converter, T::Class[T.anything])
13
+ end
9
14
 
10
15
  CoerceState =
11
16
  T.type_alias do
12
17
  {
13
18
  strictness: T.any(T::Boolean, Symbol),
14
- exactness: {yes: Integer, no: Integer, maybe: Integer},
19
+ exactness: {
20
+ yes: Integer,
21
+ no: Integer,
22
+ maybe: Integer
23
+ },
15
24
  branched: Integer
16
25
  }
17
26
  end
18
27
 
19
- DumpState = T.type_alias { {can_retry: T::Boolean} }
28
+ DumpState = T.type_alias { { can_retry: T::Boolean } }
20
29
 
21
30
  # @api private
22
31
  sig do
23
32
  overridable
24
- .params(value: T.anything, state: TerminalShop::Internal::Type::Converter::CoerceState)
33
+ .params(
34
+ value: T.anything,
35
+ state: TerminalShop::Internal::Type::Converter::CoerceState
36
+ )
25
37
  .returns(T.anything)
26
38
  end
27
- def coerce(value, state:); end
39
+ def coerce(value, state:)
40
+ end
28
41
 
29
42
  # @api private
30
43
  sig do
31
44
  overridable
32
- .params(value: T.anything, state: TerminalShop::Internal::Type::Converter::DumpState)
45
+ .params(
46
+ value: T.anything,
47
+ state: TerminalShop::Internal::Type::Converter::DumpState
48
+ )
33
49
  .returns(T.anything)
34
50
  end
35
- def dump(value, state:); end
51
+ def dump(value, state:)
52
+ end
36
53
 
37
54
  # @api private
38
55
  sig { params(depth: Integer).returns(String) }
39
- def inspect(depth: 0); end
56
+ def inspect(depth: 0)
57
+ end
40
58
 
41
59
  class << self
42
60
  # @api private
43
61
  sig do
44
62
  params(
45
- spec: T.any(
46
- {
47
- const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
48
- enum: T.nilable(T.proc.returns(TerminalShop::Internal::Type::Converter::Input)),
49
- union: T.nilable(T.proc.returns(TerminalShop::Internal::Type::Converter::Input))
50
- },
51
- T.proc.returns(TerminalShop::Internal::Type::Converter::Input),
52
- TerminalShop::Internal::Type::Converter::Input
53
- )
54
- )
55
- .returns(T.proc.returns(T.anything))
63
+ spec:
64
+ T.any(
65
+ {
66
+ const:
67
+ T.nilable(
68
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
69
+ ),
70
+ enum:
71
+ T.nilable(
72
+ T.proc.returns(
73
+ TerminalShop::Internal::Type::Converter::Input
74
+ )
75
+ ),
76
+ union:
77
+ T.nilable(
78
+ T.proc.returns(
79
+ TerminalShop::Internal::Type::Converter::Input
80
+ )
81
+ )
82
+ },
83
+ T.proc.returns(
84
+ TerminalShop::Internal::Type::Converter::Input
85
+ ),
86
+ TerminalShop::Internal::Type::Converter::Input
87
+ )
88
+ ).returns(T.proc.returns(T.anything))
89
+ end
90
+ def self.type_info(spec)
56
91
  end
57
- def self.type_info(spec); end
58
92
 
59
93
  # @api private
60
94
  #
@@ -72,8 +106,7 @@ module TerminalShop
72
106
  target: TerminalShop::Internal::Type::Converter::Input,
73
107
  value: T.anything,
74
108
  state: TerminalShop::Internal::Type::Converter::CoerceState
75
- )
76
- .returns(T.anything)
109
+ ).returns(T.anything)
77
110
  end
78
111
  def self.coerce(
79
112
  target,
@@ -97,22 +130,33 @@ module TerminalShop
97
130
  # - `no`: the value cannot be converted to the target type.
98
131
  #
99
132
  # See implementation below for more details.
100
- state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0}
101
- ); end
133
+ state: {
134
+ strictness: true,
135
+ exactness: {
136
+ yes: 0,
137
+ no: 0,
138
+ maybe: 0
139
+ },
140
+ branched: 0
141
+ }
142
+ )
143
+ end
144
+
102
145
  # @api private
103
146
  sig do
104
147
  params(
105
148
  target: TerminalShop::Internal::Type::Converter::Input,
106
149
  value: T.anything,
107
150
  state: TerminalShop::Internal::Type::Converter::DumpState
108
- )
109
- .returns(T.anything)
151
+ ).returns(T.anything)
152
+ end
153
+ def self.dump(target, value, state: { can_retry: true })
110
154
  end
111
- def self.dump(target, value, state: {can_retry: true}); end
112
155
 
113
156
  # @api private
114
157
  sig { params(target: T.anything, depth: Integer).returns(String) }
115
- def self.inspect(target, depth:); end
158
+ def self.inspect(target, depth:)
159
+ end
116
160
  end
117
161
  end
118
162
  end
@@ -17,19 +17,28 @@ module TerminalShop
17
17
  # values safely.
18
18
  module Enum
19
19
  include TerminalShop::Internal::Type::Converter
20
+ include TerminalShop::Internal::Util::SorbetRuntimeSupport
20
21
 
21
22
  # All of the valid Symbol values for this enum.
22
- sig { overridable.returns(T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]) }
23
- def values; end
23
+ sig do
24
+ overridable.returns(
25
+ T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]
26
+ )
27
+ end
28
+ def values
29
+ end
24
30
 
25
31
  sig { params(other: T.anything).returns(T::Boolean) }
26
- def ===(other); end
32
+ def ===(other)
33
+ end
27
34
 
28
35
  sig { params(other: T.anything).returns(T::Boolean) }
29
- def ==(other); end
36
+ def ==(other)
37
+ end
30
38
 
31
39
  sig { returns(Integer) }
32
- def hash; end
40
+ def hash
41
+ end
33
42
 
34
43
  # @api private
35
44
  #
@@ -43,23 +52,25 @@ module TerminalShop
43
52
  )
44
53
  .returns(T.any(Symbol, T.anything))
45
54
  end
46
- def coerce(value, state:); end
55
+ def coerce(value, state:)
56
+ end
47
57
 
48
58
  # @api private
49
59
  sig do
50
60
  override
51
- .params(value: T.any(
52
- Symbol,
53
- T.anything
54
- ),
55
- state: TerminalShop::Internal::Type::Converter::DumpState)
61
+ .params(
62
+ value: T.any(Symbol, T.anything),
63
+ state: TerminalShop::Internal::Type::Converter::DumpState
64
+ )
56
65
  .returns(T.any(Symbol, T.anything))
57
66
  end
58
- def dump(value, state:); end
67
+ def dump(value, state:)
68
+ end
59
69
 
60
70
  # @api private
61
71
  sig { params(depth: Integer).returns(String) }
62
- def inspect(depth: 0); end
72
+ def inspect(depth: 0)
73
+ end
63
74
  end
64
75
  end
65
76
  end