terminal-shop 1.8.0 → 2.1.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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -8
  3. data/lib/terminal-shop/client.rb +2 -1
  4. data/lib/terminal-shop/models/address_create_params.rb +1 -1
  5. data/lib/terminal-shop/models/address_delete_params.rb +1 -1
  6. data/lib/terminal-shop/models/address_get_params.rb +1 -1
  7. data/lib/terminal-shop/models/address_list_params.rb +1 -1
  8. data/lib/terminal-shop/models/app_create_params.rb +1 -1
  9. data/lib/terminal-shop/models/app_delete_params.rb +1 -1
  10. data/lib/terminal-shop/models/app_get_params.rb +1 -1
  11. data/lib/terminal-shop/models/app_list_params.rb +1 -1
  12. data/lib/terminal-shop/models/card_collect_params.rb +1 -1
  13. data/lib/terminal-shop/models/card_create_params.rb +1 -1
  14. data/lib/terminal-shop/models/card_delete_params.rb +1 -1
  15. data/lib/terminal-shop/models/card_get_params.rb +1 -1
  16. data/lib/terminal-shop/models/card_list_params.rb +1 -1
  17. data/lib/terminal-shop/models/cart_clear_params.rb +1 -1
  18. data/lib/terminal-shop/models/cart_convert_params.rb +1 -1
  19. data/lib/terminal-shop/models/cart_get_params.rb +1 -1
  20. data/lib/terminal-shop/models/cart_set_address_params.rb +1 -1
  21. data/lib/terminal-shop/models/cart_set_card_params.rb +1 -1
  22. data/lib/terminal-shop/models/cart_set_item_params.rb +1 -1
  23. data/lib/terminal-shop/models/email_create_params.rb +1 -1
  24. data/lib/terminal-shop/models/order_create_params.rb +1 -1
  25. data/lib/terminal-shop/models/order_get_params.rb +1 -1
  26. data/lib/terminal-shop/models/order_list_params.rb +1 -1
  27. data/lib/terminal-shop/models/product.rb +7 -3
  28. data/lib/terminal-shop/models/product_get_params.rb +1 -1
  29. data/lib/terminal-shop/models/product_list_params.rb +1 -1
  30. data/lib/terminal-shop/models/profile_me_params.rb +1 -1
  31. data/lib/terminal-shop/models/profile_update_params.rb +1 -1
  32. data/lib/terminal-shop/models/region.rb +7 -3
  33. data/lib/terminal-shop/models/subscription.rb +5 -7
  34. data/lib/terminal-shop/models/subscription_create_params.rb +1 -1
  35. data/lib/terminal-shop/models/subscription_delete_params.rb +1 -1
  36. data/lib/terminal-shop/models/subscription_get_params.rb +1 -1
  37. data/lib/terminal-shop/models/subscription_list_params.rb +1 -1
  38. data/lib/terminal-shop/models/token_create_params.rb +1 -1
  39. data/lib/terminal-shop/models/token_delete_params.rb +1 -1
  40. data/lib/terminal-shop/models/token_get_params.rb +1 -1
  41. data/lib/terminal-shop/models/token_list_params.rb +1 -1
  42. data/lib/terminal-shop/models/view_init_params.rb +1 -1
  43. data/lib/terminal-shop/request_options.rb +1 -34
  44. data/lib/terminal-shop/transport/base_client.rb +459 -0
  45. data/lib/terminal-shop/transport/pooled_net_requester.rb +182 -0
  46. data/lib/terminal-shop/type/array_of.rb +110 -0
  47. data/lib/terminal-shop/type/base_model.rb +362 -0
  48. data/lib/terminal-shop/type/base_page.rb +61 -0
  49. data/lib/terminal-shop/type/boolean_model.rb +52 -0
  50. data/lib/terminal-shop/type/converter.rb +217 -0
  51. data/lib/terminal-shop/type/enum.rb +101 -0
  52. data/lib/terminal-shop/type/hash_of.rb +136 -0
  53. data/lib/terminal-shop/type/request_parameters.rb +38 -0
  54. data/lib/terminal-shop/type/union.rb +183 -0
  55. data/lib/terminal-shop/type/unknown.rb +56 -0
  56. data/lib/terminal-shop/type.rb +23 -0
  57. data/lib/terminal-shop/util.rb +19 -12
  58. data/lib/terminal-shop/version.rb +1 -1
  59. data/lib/terminal-shop.rb +28 -5
  60. data/rbi/lib/terminal-shop/client.rbi +19 -31
  61. data/rbi/lib/terminal-shop/errors.rbi +7 -42
  62. data/rbi/lib/terminal-shop/models/address.rbi +15 -51
  63. data/rbi/lib/terminal-shop/models/address_create_params.rbi +27 -48
  64. data/rbi/lib/terminal-shop/models/address_create_response.rbi +1 -6
  65. data/rbi/lib/terminal-shop/models/address_delete_params.rbi +2 -2
  66. data/rbi/lib/terminal-shop/models/address_delete_response.rbi +1 -6
  67. data/rbi/lib/terminal-shop/models/address_get_params.rbi +2 -2
  68. data/rbi/lib/terminal-shop/models/address_get_response.rbi +7 -6
  69. data/rbi/lib/terminal-shop/models/address_list_params.rbi +2 -2
  70. data/rbi/lib/terminal-shop/models/address_list_response.rbi +4 -6
  71. data/rbi/lib/terminal-shop/models/app.rbi +4 -24
  72. data/rbi/lib/terminal-shop/models/app_create_params.rbi +4 -14
  73. data/rbi/lib/terminal-shop/models/app_create_response.rbi +8 -20
  74. data/rbi/lib/terminal-shop/models/app_delete_params.rbi +2 -2
  75. data/rbi/lib/terminal-shop/models/app_delete_response.rbi +1 -6
  76. data/rbi/lib/terminal-shop/models/app_get_params.rbi +2 -2
  77. data/rbi/lib/terminal-shop/models/app_get_response.rbi +4 -6
  78. data/rbi/lib/terminal-shop/models/app_list_params.rbi +2 -2
  79. data/rbi/lib/terminal-shop/models/app_list_response.rbi +4 -6
  80. data/rbi/lib/terminal-shop/models/card.rbi +14 -36
  81. data/rbi/lib/terminal-shop/models/card_collect_params.rbi +2 -2
  82. data/rbi/lib/terminal-shop/models/card_collect_response.rbi +7 -14
  83. data/rbi/lib/terminal-shop/models/card_create_params.rbi +3 -8
  84. data/rbi/lib/terminal-shop/models/card_create_response.rbi +1 -6
  85. data/rbi/lib/terminal-shop/models/card_delete_params.rbi +2 -2
  86. data/rbi/lib/terminal-shop/models/card_delete_response.rbi +1 -6
  87. data/rbi/lib/terminal-shop/models/card_get_params.rbi +2 -2
  88. data/rbi/lib/terminal-shop/models/card_get_response.rbi +4 -6
  89. data/rbi/lib/terminal-shop/models/card_list_params.rbi +2 -2
  90. data/rbi/lib/terminal-shop/models/card_list_response.rbi +4 -6
  91. data/rbi/lib/terminal-shop/models/cart.rbi +34 -88
  92. data/rbi/lib/terminal-shop/models/cart_clear_params.rbi +2 -2
  93. data/rbi/lib/terminal-shop/models/cart_clear_response.rbi +1 -6
  94. data/rbi/lib/terminal-shop/models/cart_convert_params.rbi +2 -2
  95. data/rbi/lib/terminal-shop/models/cart_convert_response.rbi +4 -6
  96. data/rbi/lib/terminal-shop/models/cart_get_params.rbi +2 -2
  97. data/rbi/lib/terminal-shop/models/cart_get_response.rbi +4 -6
  98. data/rbi/lib/terminal-shop/models/cart_set_address_params.rbi +3 -8
  99. data/rbi/lib/terminal-shop/models/cart_set_address_response.rbi +1 -6
  100. data/rbi/lib/terminal-shop/models/cart_set_card_params.rbi +3 -8
  101. data/rbi/lib/terminal-shop/models/cart_set_card_response.rbi +1 -6
  102. data/rbi/lib/terminal-shop/models/cart_set_item_params.rbi +4 -14
  103. data/rbi/lib/terminal-shop/models/cart_set_item_response.rbi +4 -6
  104. data/rbi/lib/terminal-shop/models/email_create_params.rbi +3 -8
  105. data/rbi/lib/terminal-shop/models/email_create_response.rbi +1 -6
  106. data/rbi/lib/terminal-shop/models/order.rbi +52 -139
  107. data/rbi/lib/terminal-shop/models/order_create_params.rbi +5 -20
  108. data/rbi/lib/terminal-shop/models/order_create_response.rbi +1 -6
  109. data/rbi/lib/terminal-shop/models/order_get_params.rbi +2 -2
  110. data/rbi/lib/terminal-shop/models/order_get_response.rbi +4 -6
  111. data/rbi/lib/terminal-shop/models/order_list_params.rbi +2 -2
  112. data/rbi/lib/terminal-shop/models/order_list_response.rbi +4 -6
  113. data/rbi/lib/terminal-shop/models/product.rbi +43 -77
  114. data/rbi/lib/terminal-shop/models/product_get_params.rbi +2 -2
  115. data/rbi/lib/terminal-shop/models/product_get_response.rbi +7 -6
  116. data/rbi/lib/terminal-shop/models/product_list_params.rbi +2 -2
  117. data/rbi/lib/terminal-shop/models/product_list_response.rbi +4 -6
  118. data/rbi/lib/terminal-shop/models/product_variant.rbi +3 -18
  119. data/rbi/lib/terminal-shop/models/profile.rbi +12 -36
  120. data/rbi/lib/terminal-shop/models/profile_me_params.rbi +2 -2
  121. data/rbi/lib/terminal-shop/models/profile_me_response.rbi +7 -6
  122. data/rbi/lib/terminal-shop/models/profile_update_params.rbi +4 -14
  123. data/rbi/lib/terminal-shop/models/profile_update_response.rbi +7 -6
  124. data/rbi/lib/terminal-shop/models/region.rbi +10 -5
  125. data/rbi/lib/terminal-shop/models/subscription.rbi +28 -75
  126. data/rbi/lib/terminal-shop/models/subscription_create_params.rbi +2 -2
  127. data/rbi/lib/terminal-shop/models/subscription_create_response.rbi +1 -6
  128. data/rbi/lib/terminal-shop/models/subscription_delete_params.rbi +2 -2
  129. data/rbi/lib/terminal-shop/models/subscription_delete_response.rbi +1 -6
  130. data/rbi/lib/terminal-shop/models/subscription_get_params.rbi +2 -2
  131. data/rbi/lib/terminal-shop/models/subscription_get_response.rbi +7 -6
  132. data/rbi/lib/terminal-shop/models/subscription_list_params.rbi +2 -2
  133. data/rbi/lib/terminal-shop/models/subscription_list_response.rbi +3 -8
  134. data/rbi/lib/terminal-shop/models/token.rbi +3 -18
  135. data/rbi/lib/terminal-shop/models/token_create_params.rbi +2 -2
  136. data/rbi/lib/terminal-shop/models/token_create_response.rbi +8 -20
  137. data/rbi/lib/terminal-shop/models/token_delete_params.rbi +2 -2
  138. data/rbi/lib/terminal-shop/models/token_delete_response.rbi +1 -6
  139. data/rbi/lib/terminal-shop/models/token_get_params.rbi +2 -2
  140. data/rbi/lib/terminal-shop/models/token_get_response.rbi +4 -6
  141. data/rbi/lib/terminal-shop/models/token_list_params.rbi +2 -2
  142. data/rbi/lib/terminal-shop/models/token_list_response.rbi +4 -6
  143. data/rbi/lib/terminal-shop/models/view_init_params.rbi +2 -2
  144. data/rbi/lib/terminal-shop/models/view_init_response.rbi +44 -82
  145. data/rbi/lib/terminal-shop/request_options.rbi +8 -67
  146. data/rbi/lib/terminal-shop/resources/address.rbi +4 -4
  147. data/rbi/lib/terminal-shop/resources/app.rbi +4 -4
  148. data/rbi/lib/terminal-shop/resources/card.rbi +5 -5
  149. data/rbi/lib/terminal-shop/resources/cart.rbi +6 -6
  150. data/rbi/lib/terminal-shop/resources/email.rbi +1 -1
  151. data/rbi/lib/terminal-shop/resources/order.rbi +3 -3
  152. data/rbi/lib/terminal-shop/resources/product.rbi +2 -2
  153. data/rbi/lib/terminal-shop/resources/profile.rbi +2 -2
  154. data/rbi/lib/terminal-shop/resources/subscription.rbi +5 -4
  155. data/rbi/lib/terminal-shop/resources/token.rbi +4 -4
  156. data/rbi/lib/terminal-shop/resources/view.rbi +1 -1
  157. data/rbi/lib/terminal-shop/transport/base_client.rbi +208 -0
  158. data/rbi/lib/terminal-shop/transport/pooled_net_requester.rbi +64 -0
  159. data/rbi/lib/terminal-shop/type/array_of.rbi +82 -0
  160. data/rbi/lib/terminal-shop/type/base_model.rbi +194 -0
  161. data/rbi/lib/terminal-shop/type/base_page.rbi +38 -0
  162. data/rbi/lib/terminal-shop/type/boolean_model.rbi +41 -0
  163. data/rbi/lib/terminal-shop/type/converter.rbi +101 -0
  164. data/rbi/lib/terminal-shop/type/enum.rbi +58 -0
  165. data/rbi/lib/terminal-shop/type/hash_of.rbi +85 -0
  166. data/rbi/lib/terminal-shop/type/request_parameters.rbi +20 -0
  167. data/rbi/lib/terminal-shop/type/union.rbi +68 -0
  168. data/rbi/lib/terminal-shop/type/unknown.rbi +37 -0
  169. data/rbi/lib/terminal-shop/type.rbi +23 -0
  170. data/rbi/lib/terminal-shop/util.rbi +24 -13
  171. data/rbi/lib/terminal-shop/version.rbi +1 -1
  172. data/sig/terminal-shop/client.rbs +9 -9
  173. data/sig/terminal-shop/errors.rbs +17 -17
  174. data/sig/terminal-shop/models/address.rbs +11 -15
  175. data/sig/terminal-shop/models/address_create_params.rbs +12 -17
  176. data/sig/terminal-shop/models/address_create_response.rbs +1 -6
  177. data/sig/terminal-shop/models/address_delete_params.rbs +2 -7
  178. data/sig/terminal-shop/models/address_delete_response.rbs +1 -6
  179. data/sig/terminal-shop/models/address_get_params.rbs +2 -7
  180. data/sig/terminal-shop/models/address_get_response.rbs +1 -6
  181. data/sig/terminal-shop/models/address_list_params.rbs +2 -7
  182. data/sig/terminal-shop/models/address_list_response.rbs +1 -6
  183. data/sig/terminal-shop/models/app.rbs +6 -5
  184. data/sig/terminal-shop/models/app_create_params.rbs +6 -11
  185. data/sig/terminal-shop/models/app_create_response.rbs +4 -12
  186. data/sig/terminal-shop/models/app_delete_params.rbs +2 -7
  187. data/sig/terminal-shop/models/app_delete_response.rbs +1 -6
  188. data/sig/terminal-shop/models/app_get_params.rbs +2 -6
  189. data/sig/terminal-shop/models/app_get_response.rbs +1 -5
  190. data/sig/terminal-shop/models/app_list_params.rbs +2 -6
  191. data/sig/terminal-shop/models/app_list_response.rbs +1 -6
  192. data/sig/terminal-shop/models/card.rbs +7 -16
  193. data/sig/terminal-shop/models/card_collect_params.rbs +2 -7
  194. data/sig/terminal-shop/models/card_collect_response.rbs +4 -12
  195. data/sig/terminal-shop/models/card_create_params.rbs +5 -7
  196. data/sig/terminal-shop/models/card_create_response.rbs +1 -6
  197. data/sig/terminal-shop/models/card_delete_params.rbs +2 -7
  198. data/sig/terminal-shop/models/card_delete_response.rbs +1 -6
  199. data/sig/terminal-shop/models/card_get_params.rbs +2 -6
  200. data/sig/terminal-shop/models/card_get_response.rbs +1 -6
  201. data/sig/terminal-shop/models/card_list_params.rbs +2 -6
  202. data/sig/terminal-shop/models/card_list_response.rbs +1 -6
  203. data/sig/terminal-shop/models/cart.rbs +20 -34
  204. data/sig/terminal-shop/models/cart_clear_params.rbs +2 -7
  205. data/sig/terminal-shop/models/cart_clear_response.rbs +1 -6
  206. data/sig/terminal-shop/models/cart_convert_params.rbs +2 -7
  207. data/sig/terminal-shop/models/cart_convert_response.rbs +1 -6
  208. data/sig/terminal-shop/models/cart_get_params.rbs +2 -6
  209. data/sig/terminal-shop/models/cart_get_response.rbs +1 -6
  210. data/sig/terminal-shop/models/cart_set_address_params.rbs +5 -10
  211. data/sig/terminal-shop/models/cart_set_address_response.rbs +1 -6
  212. data/sig/terminal-shop/models/cart_set_card_params.rbs +5 -7
  213. data/sig/terminal-shop/models/cart_set_card_response.rbs +1 -6
  214. data/sig/terminal-shop/models/cart_set_item_params.rbs +6 -11
  215. data/sig/terminal-shop/models/cart_set_item_response.rbs +1 -6
  216. data/sig/terminal-shop/models/email_create_params.rbs +5 -7
  217. data/sig/terminal-shop/models/email_create_response.rbs +1 -6
  218. data/sig/terminal-shop/models/order.rbs +31 -50
  219. data/sig/terminal-shop/models/order_create_params.rbs +7 -12
  220. data/sig/terminal-shop/models/order_create_response.rbs +1 -6
  221. data/sig/terminal-shop/models/order_get_params.rbs +2 -6
  222. data/sig/terminal-shop/models/order_get_response.rbs +1 -6
  223. data/sig/terminal-shop/models/order_list_params.rbs +2 -7
  224. data/sig/terminal-shop/models/order_list_response.rbs +1 -6
  225. data/sig/terminal-shop/models/product.rbs +20 -27
  226. data/sig/terminal-shop/models/product_get_params.rbs +2 -7
  227. data/sig/terminal-shop/models/product_get_response.rbs +1 -6
  228. data/sig/terminal-shop/models/product_list_params.rbs +2 -7
  229. data/sig/terminal-shop/models/product_list_response.rbs +1 -6
  230. data/sig/terminal-shop/models/product_variant.rbs +1 -5
  231. data/sig/terminal-shop/models/profile.rbs +8 -17
  232. data/sig/terminal-shop/models/profile_me_params.rbs +2 -7
  233. data/sig/terminal-shop/models/profile_me_response.rbs +1 -6
  234. data/sig/terminal-shop/models/profile_update_params.rbs +6 -11
  235. data/sig/terminal-shop/models/profile_update_response.rbs +1 -6
  236. data/sig/terminal-shop/models/region.rbs +4 -2
  237. data/sig/terminal-shop/models/subscription.rbs +15 -27
  238. data/sig/terminal-shop/models/subscription_create_params.rbs +2 -7
  239. data/sig/terminal-shop/models/subscription_create_response.rbs +1 -6
  240. data/sig/terminal-shop/models/subscription_delete_params.rbs +2 -7
  241. data/sig/terminal-shop/models/subscription_delete_response.rbs +1 -6
  242. data/sig/terminal-shop/models/subscription_get_params.rbs +2 -7
  243. data/sig/terminal-shop/models/subscription_get_response.rbs +1 -6
  244. data/sig/terminal-shop/models/subscription_list_params.rbs +2 -7
  245. data/sig/terminal-shop/models/subscription_list_response.rbs +3 -6
  246. data/sig/terminal-shop/models/token.rbs +1 -5
  247. data/sig/terminal-shop/models/token_create_params.rbs +2 -7
  248. data/sig/terminal-shop/models/token_create_response.rbs +4 -12
  249. data/sig/terminal-shop/models/token_delete_params.rbs +2 -7
  250. data/sig/terminal-shop/models/token_delete_response.rbs +1 -6
  251. data/sig/terminal-shop/models/token_get_params.rbs +2 -6
  252. data/sig/terminal-shop/models/token_get_response.rbs +1 -6
  253. data/sig/terminal-shop/models/token_list_params.rbs +2 -7
  254. data/sig/terminal-shop/models/token_list_response.rbs +1 -6
  255. data/sig/terminal-shop/models/view_init_params.rbs +2 -6
  256. data/sig/terminal-shop/models/view_init_response.rbs +15 -23
  257. data/sig/terminal-shop/request_options.rbs +2 -12
  258. data/sig/terminal-shop/resources/address.rbs +22 -41
  259. data/sig/terminal-shop/resources/app.rbs +16 -34
  260. data/sig/terminal-shop/resources/card.rbs +18 -40
  261. data/sig/terminal-shop/resources/cart.rbs +22 -47
  262. data/sig/terminal-shop/resources/email.rbs +4 -8
  263. data/sig/terminal-shop/resources/order.rbs +13 -26
  264. data/sig/terminal-shop/resources/product.rbs +7 -16
  265. data/sig/terminal-shop/resources/profile.rbs +8 -16
  266. data/sig/terminal-shop/resources/subscription.rbs +21 -43
  267. data/sig/terminal-shop/resources/token.rbs +14 -32
  268. data/sig/terminal-shop/resources/view.rbs +3 -7
  269. data/sig/terminal-shop/transport/base_client.rbs +110 -0
  270. data/sig/terminal-shop/transport/pooled_net_requester.rbs +39 -0
  271. data/sig/terminal-shop/type/array_of.rbs +36 -0
  272. data/sig/terminal-shop/type/base_model.rbs +73 -0
  273. data/sig/terminal-shop/type/base_page.rbs +22 -0
  274. data/sig/terminal-shop/type/boolean_model.rbs +18 -0
  275. data/sig/terminal-shop/type/converter.rbs +42 -0
  276. data/sig/terminal-shop/type/enum.rbs +22 -0
  277. data/sig/terminal-shop/type/hash_of.rbs +36 -0
  278. data/sig/terminal-shop/type/request_parameters.rbs +13 -0
  279. data/sig/terminal-shop/type/union.rbs +40 -0
  280. data/sig/terminal-shop/type/unknown.rbs +18 -0
  281. data/sig/terminal-shop/type.rbs +22 -0
  282. data/sig/terminal-shop/util.rbs +5 -5
  283. data/sig/terminal-shop/version.rbs +1 -1
  284. metadata +41 -17
  285. data/lib/terminal-shop/base_client.rb +0 -456
  286. data/lib/terminal-shop/base_model.rb +0 -1188
  287. data/lib/terminal-shop/base_page.rb +0 -60
  288. data/lib/terminal-shop/extern.rb +0 -7
  289. data/lib/terminal-shop/pooled_net_requester.rb +0 -169
  290. data/rbi/lib/terminal-shop/base_client.rbi +0 -198
  291. data/rbi/lib/terminal-shop/base_model.rbi +0 -622
  292. data/rbi/lib/terminal-shop/base_page.rbi +0 -38
  293. data/rbi/lib/terminal-shop/extern.rbi +0 -7
  294. data/rbi/lib/terminal-shop/pooled_net_requester.rbi +0 -48
  295. data/sig/terminal-shop/base_client.rbs +0 -108
  296. data/sig/terminal-shop/base_model.rbs +0 -246
  297. data/sig/terminal-shop/base_page.rbs +0 -20
  298. data/sig/terminal-shop/extern.rbs +0 -4
  299. data/sig/terminal-shop/pooled_net_requester.rbs +0 -35
@@ -0,0 +1,101 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module Type
5
+ # @api private
6
+ module Converter
7
+ Input = T.type_alias { T.any(TerminalShop::Type::Converter, T::Class[T.anything]) }
8
+
9
+ State =
10
+ T.type_alias do
11
+ {
12
+ strictness: T.any(T::Boolean, Symbol),
13
+ exactness: {yes: Integer, no: Integer, maybe: Integer},
14
+ branched: Integer
15
+ }
16
+ end
17
+
18
+ # @api private
19
+ sig do
20
+ overridable.params(value: T.anything, state: TerminalShop::Type::Converter::State).returns(T.anything)
21
+ end
22
+ def coerce(value, state:)
23
+ end
24
+
25
+ # @api private
26
+ sig { overridable.params(value: T.anything).returns(T.anything) }
27
+ def dump(value)
28
+ end
29
+
30
+ class << self
31
+ # @api private
32
+ sig do
33
+ params(
34
+ spec: T.any(
35
+ {
36
+ const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
37
+ enum: T.nilable(T.proc.returns(TerminalShop::Type::Converter::Input)),
38
+ union: T.nilable(T.proc.returns(TerminalShop::Type::Converter::Input))
39
+ },
40
+ T.proc.returns(TerminalShop::Type::Converter::Input),
41
+ TerminalShop::Type::Converter::Input
42
+ )
43
+ )
44
+ .returns(T.proc.returns(T.anything))
45
+ end
46
+ def self.type_info(spec)
47
+ end
48
+
49
+ # @api private
50
+ #
51
+ # Based on `target`, transform `value` into `target`, to the extent possible:
52
+ #
53
+ # 1. if the given `value` conforms to `target` already, return the given `value`
54
+ # 2. if it's possible and safe to convert the given `value` to `target`, then the
55
+ # converted value
56
+ # 3. otherwise, the given `value` unaltered
57
+ #
58
+ # The coercion process is subject to improvement between minor release versions.
59
+ # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
60
+ sig do
61
+ params(
62
+ target: TerminalShop::Type::Converter::Input,
63
+ value: T.anything,
64
+ state: TerminalShop::Type::Converter::State
65
+ )
66
+ .returns(T.anything)
67
+ end
68
+ def self.coerce(
69
+ target,
70
+ value,
71
+ # The `strictness` is one of `true`, `false`, or `:strong`. This informs the
72
+ # coercion strategy when we have to decide between multiple possible conversion
73
+ # targets:
74
+ #
75
+ # - `true`: the conversion must be exact, with minimum coercion.
76
+ # - `false`: the conversion can be approximate, with some coercion.
77
+ # - `:strong`: the conversion must be exact, with no coercion, and raise an error
78
+ # if not possible.
79
+ #
80
+ # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
81
+ # any given conversion attempt, the exactness will be updated based on how closely
82
+ # the value recursively matches the target type:
83
+ #
84
+ # - `yes`: the value can be converted to the target type with minimum coercion.
85
+ # - `maybe`: the value can be converted to the target type with some reasonable
86
+ # coercion.
87
+ # - `no`: the value cannot be converted to the target type.
88
+ #
89
+ # See implementation below for more details.
90
+ state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0}
91
+ )
92
+ end
93
+
94
+ # @api private
95
+ sig { params(target: TerminalShop::Type::Converter::Input, value: T.anything).returns(T.anything) }
96
+ def self.dump(target, value)
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,58 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module Type
5
+ # @api private
6
+ #
7
+ # A value from among a specified list of options. OpenAPI enum values map to Ruby
8
+ # values in the SDK as follows:
9
+ #
10
+ # 1. boolean => true | false
11
+ # 2. integer => Integer
12
+ # 3. float => Float
13
+ # 4. string => Symbol
14
+ #
15
+ # We can therefore convert string values to Symbols, but can't convert other
16
+ # values safely.
17
+ module Enum
18
+ include TerminalShop::Type::Converter
19
+
20
+ # All of the valid Symbol values for this enum.
21
+ sig { overridable.returns(T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]) }
22
+ def values
23
+ end
24
+
25
+ # @api private
26
+ #
27
+ # Guard against thread safety issues by instantiating `@values`.
28
+ sig { void }
29
+ private def finalize!
30
+ end
31
+
32
+ sig { params(other: T.anything).returns(T::Boolean) }
33
+ def ===(other)
34
+ end
35
+
36
+ sig { params(other: T.anything).returns(T::Boolean) }
37
+ def ==(other)
38
+ end
39
+
40
+ # @api private
41
+ #
42
+ # Unlike with primitives, `Enum` additionally validates that the value is a member
43
+ # of the enum.
44
+ sig do
45
+ override
46
+ .params(value: T.any(String, Symbol, T.anything), state: TerminalShop::Type::Converter::State)
47
+ .returns(T.any(Symbol, T.anything))
48
+ end
49
+ def coerce(value, state:)
50
+ end
51
+
52
+ # @api private
53
+ sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) }
54
+ def dump(value)
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,85 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module Type
5
+ # @api private
6
+ #
7
+ # Hash of items of a given type.
8
+ class HashOf
9
+ include TerminalShop::Type::Converter
10
+
11
+ abstract!
12
+ final!
13
+
14
+ Elem = type_member(:out)
15
+
16
+ sig(:final) do
17
+ params(
18
+ type_info: T.any(
19
+ TerminalShop::Util::AnyHash,
20
+ T.proc.returns(TerminalShop::Type::Converter::Input),
21
+ TerminalShop::Type::Converter::Input
22
+ ),
23
+ spec: TerminalShop::Util::AnyHash
24
+ )
25
+ .returns(T.attached_class)
26
+ end
27
+ def self.[](type_info, spec = {})
28
+ end
29
+
30
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
31
+ def ===(other)
32
+ end
33
+
34
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
35
+ def ==(other)
36
+ end
37
+
38
+ # @api private
39
+ sig(:final) do
40
+ override
41
+ .params(
42
+ value: T.any(T::Hash[T.anything, T.anything], T.anything),
43
+ state: TerminalShop::Type::Converter::State
44
+ )
45
+ .returns(T.any(TerminalShop::Util::AnyHash, T.anything))
46
+ end
47
+ def coerce(value, state:)
48
+ end
49
+
50
+ # @api private
51
+ sig(:final) do
52
+ override
53
+ .params(value: T.any(T::Hash[T.anything, T.anything], T.anything))
54
+ .returns(T.any(TerminalShop::Util::AnyHash, T.anything))
55
+ end
56
+ def dump(value)
57
+ end
58
+
59
+ # @api private
60
+ sig(:final) { returns(Elem) }
61
+ protected def item_type
62
+ end
63
+
64
+ # @api private
65
+ sig(:final) { returns(T::Boolean) }
66
+ protected def nilable?
67
+ end
68
+
69
+ # @api private
70
+ sig(:final) do
71
+ params(
72
+ type_info: T.any(
73
+ TerminalShop::Util::AnyHash,
74
+ T.proc.returns(TerminalShop::Type::Converter::Input),
75
+ TerminalShop::Type::Converter::Input
76
+ ),
77
+ spec: TerminalShop::Util::AnyHash
78
+ )
79
+ .void
80
+ end
81
+ def initialize(type_info, spec = {})
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,20 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module Type
5
+ # @api private
6
+ module RequestParameters
7
+ # Options to specify HTTP behaviour for this request.
8
+ sig { returns(T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash)) }
9
+ attr_accessor :request_options
10
+
11
+ # @api private
12
+ module Converter
13
+ # @api private
14
+ sig { params(params: T.anything).returns([T.anything, TerminalShop::Util::AnyHash]) }
15
+ def dump_request(params)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module Type
5
+ # @api private
6
+ module Union
7
+ include TerminalShop::Type::Converter
8
+
9
+ # @api private
10
+ #
11
+ # All of the specified variant info for this union.
12
+ sig { returns(T::Array[[T.nilable(Symbol), T.proc.returns(TerminalShop::Type::Converter::Input)]]) }
13
+ private def known_variants
14
+ end
15
+
16
+ # @api private
17
+ sig { returns(T::Array[[T.nilable(Symbol), T.anything]]) }
18
+ protected def derefed_variants
19
+ end
20
+
21
+ # All of the specified variants for this union.
22
+ sig { overridable.returns(T::Array[T.anything]) }
23
+ def variants
24
+ end
25
+
26
+ # @api private
27
+ sig { params(property: Symbol).void }
28
+ private def discriminator(property)
29
+ end
30
+
31
+ # @api private
32
+ sig do
33
+ params(
34
+ key: T.any(Symbol, TerminalShop::Util::AnyHash, T.proc.returns(T.anything), T.anything),
35
+ spec: T.any(TerminalShop::Util::AnyHash, T.proc.returns(T.anything), T.anything)
36
+ )
37
+ .void
38
+ end
39
+ private def variant(key, spec = nil)
40
+ end
41
+
42
+ # @api private
43
+ sig { params(value: T.anything).returns(T.nilable(T.anything)) }
44
+ private def resolve_variant(value)
45
+ end
46
+
47
+ sig { params(other: T.anything).returns(T::Boolean) }
48
+ def ===(other)
49
+ end
50
+
51
+ sig { params(other: T.anything).returns(T::Boolean) }
52
+ def ==(other)
53
+ end
54
+
55
+ # @api private
56
+ sig do
57
+ override.params(value: T.anything, state: TerminalShop::Type::Converter::State).returns(T.anything)
58
+ end
59
+ def coerce(value, state:)
60
+ end
61
+
62
+ # @api private
63
+ sig { override.params(value: T.anything).returns(T.anything) }
64
+ def dump(value)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module Type
5
+ # @api private
6
+ #
7
+ # When we don't know what to expect for the value.
8
+ class Unknown
9
+ extend TerminalShop::Type::Converter
10
+
11
+ abstract!
12
+ final!
13
+
14
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
15
+ def self.===(other)
16
+ end
17
+
18
+ sig(:final) { params(other: T.anything).returns(T::Boolean) }
19
+ def self.==(other)
20
+ end
21
+
22
+ class << self
23
+ # @api private
24
+ sig(:final) do
25
+ override.params(value: T.anything, state: TerminalShop::Type::Converter::State).returns(T.anything)
26
+ end
27
+ def coerce(value, state:)
28
+ end
29
+
30
+ # @api private
31
+ sig(:final) { override.params(value: T.anything).returns(T.anything) }
32
+ def dump(value)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ Unknown = TerminalShop::Type::Unknown
5
+
6
+ BooleanModel = TerminalShop::Type::BooleanModel
7
+
8
+ Enum = TerminalShop::Type::Enum
9
+
10
+ Union = TerminalShop::Type::Union
11
+
12
+ ArrayOf = TerminalShop::Type::ArrayOf
13
+
14
+ HashOf = TerminalShop::Type::HashOf
15
+
16
+ BaseModel = TerminalShop::Type::BaseModel
17
+
18
+ RequestParameters = TerminalShop::Type::RequestParameters
19
+
20
+ # This module contains various type declarations.
21
+ module Type
22
+ end
23
+ end
@@ -3,6 +3,10 @@
3
3
  module TerminalShop
4
4
  # @api private
5
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
+
6
10
  # @api private
7
11
  sig { returns(Float) }
8
12
  def self.monotonic_secs
@@ -52,6 +56,11 @@ module TerminalShop
52
56
  end
53
57
  end
54
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}`.
55
64
  OMIT = T.let(T.anything, T.anything)
56
65
 
57
66
  class << self
@@ -80,7 +89,7 @@ module TerminalShop
80
89
  # @api private
81
90
  sig do
82
91
  params(
83
- 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),
84
93
  pick: T.nilable(T.any(Symbol, Integer, T::Array[T.any(Symbol, Integer)])),
85
94
  sentinel: T.nilable(T.anything),
86
95
  blk: T.nilable(T.proc.returns(T.anything))
@@ -118,15 +127,16 @@ module TerminalShop
118
127
  end
119
128
  end
120
129
 
121
- ParsedUriShape = T.type_alias do
122
- {
123
- scheme: T.nilable(String),
124
- host: T.nilable(String),
125
- port: T.nilable(Integer),
126
- path: T.nilable(String),
127
- query: T::Hash[String, T::Array[String]]
128
- }
129
- 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
130
140
 
131
141
  class << self
132
142
  # @api private
@@ -249,9 +259,10 @@ module TerminalShop
249
259
  end
250
260
  end
251
261
 
252
- ServerSentEvent = T.type_alias do
253
- {event: T.nilable(String), data: T.nilable(String), id: T.nilable(String), retry: T.nilable(Integer)}
254
- 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
255
266
 
256
267
  class << self
257
268
  # @api private
@@ -1,5 +1,5 @@
1
1
  # typed: strong
2
2
 
3
3
  module TerminalShop
4
- VERSION = "1.8.0"
4
+ VERSION = "2.1.0"
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module TerminalShop
2
- class Client < TerminalShop::BaseClient
2
+ class Client < TerminalShop::Transport::BaseClient
3
3
  DEFAULT_MAX_RETRIES: 2
4
4
 
5
5
  DEFAULT_TIMEOUT_IN_SECONDS: Float
@@ -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
@@ -15,33 +15,33 @@ module TerminalShop
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
@@ -14,7 +14,7 @@ module TerminalShop
14
14
  & TerminalShop::request_parameters
15
15
 
16
16
  class AddressCreateParams < TerminalShop::BaseModel
17
- extend TerminalShop::RequestParameters::Converter
17
+ extend TerminalShop::Type::RequestParameters::Converter
18
18
  include TerminalShop::RequestParameters
19
19
 
20
20
  attr_accessor city: String
@@ -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
@@ -3,15 +3,10 @@ module TerminalShop
3
3
  type address_delete_params = { } & TerminalShop::request_parameters
4
4
 
5
5
  class AddressDeleteParams < TerminalShop::BaseModel
6
- extend TerminalShop::RequestParameters::Converter
6
+ extend TerminalShop::Type::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