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,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TerminalShop
4
+ module Type
5
+ # @api private
6
+ #
7
+ # @abstract
8
+ #
9
+ # When we don't know what to expect for the value.
10
+ class Unknown
11
+ extend TerminalShop::Type::Converter
12
+
13
+ # rubocop:disable Lint/UnusedMethodArgument
14
+
15
+ # @param other [Object]
16
+ #
17
+ # @return [Boolean]
18
+ def self.===(other) = true
19
+
20
+ # @param other [Object]
21
+ #
22
+ # @return [Boolean]
23
+ def self.==(other) = other.is_a?(Class) && other <= TerminalShop::Unknown
24
+
25
+ class << self
26
+ # @api private
27
+ #
28
+ # @param value [Object]
29
+ #
30
+ # @param state [Hash{Symbol=>Object}] .
31
+ #
32
+ # @option state [Boolean, :strong] :strictness
33
+ #
34
+ # @option state [Hash{Symbol=>Object}] :exactness
35
+ #
36
+ # @option state [Integer] :branched
37
+ #
38
+ # @return [Object]
39
+ def coerce(value, state:)
40
+ state.fetch(:exactness)[:yes] += 1
41
+ value
42
+ end
43
+
44
+ # @!parse
45
+ # # @api private
46
+ # #
47
+ # # @param value [Object]
48
+ # #
49
+ # # @return [Object]
50
+ # def dump(value) = super
51
+ end
52
+
53
+ # rubocop:enable Lint/UnusedMethodArgument
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
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
@@ -75,7 +75,7 @@ module TerminalShop
75
75
  def coerce_boolean(input)
76
76
  case input.is_a?(String) ? input.downcase : input
77
77
  in Numeric
78
- !input.zero?
78
+ input.nonzero?
79
79
  in "true"
80
80
  true
81
81
  in "false"
@@ -165,14 +165,12 @@ module TerminalShop
165
165
  private def deep_merge_lr(lhs, rhs, concat: false)
166
166
  case [lhs, rhs, concat]
167
167
  in [Hash, Hash, _]
168
- # rubocop:disable Style/YodaCondition
169
- rhs_cleaned = rhs.reject { |_, val| OMIT == val }
168
+ rhs_cleaned = rhs.reject { _2 == TerminalShop::Util::OMIT }
170
169
  lhs
171
- .reject { |key, _| OMIT == rhs[key] }
170
+ .reject { |key, _| rhs[key] == TerminalShop::Util::OMIT }
172
171
  .merge(rhs_cleaned) do |_, old_val, new_val|
173
172
  deep_merge_lr(old_val, new_val, concat: concat)
174
173
  end
175
- # rubocop:enable Style/YodaCondition
176
174
  in [Array, Array, true]
177
175
  lhs.concat(rhs)
178
176
  else
@@ -367,13 +365,14 @@ module TerminalShop
367
365
  # @return [Hash{String=>String}]
368
366
  def normalized_headers(*headers)
369
367
  {}.merge(*headers.compact).to_h do |key, val|
370
- case val
371
- in Array
372
- val.map { _1.to_s.strip }.join(", ")
373
- else
374
- val&.to_s&.strip
375
- end
376
- [key.downcase, val]
368
+ value =
369
+ case val
370
+ in Array
371
+ val.map { _1.to_s.strip }.join(", ")
372
+ else
373
+ val&.to_s&.strip
374
+ end
375
+ [key.downcase, value]
377
376
  end
378
377
  end
379
378
  end
@@ -428,6 +427,8 @@ module TerminalShop
428
427
  #
429
428
  # @param stream [String, IO, StringIO, Enumerable]
430
429
  # @param blk [Proc]
430
+ #
431
+ # @yieldparam [String]
431
432
  def initialize(stream, &blk)
432
433
  @stream = stream.is_a?(String) ? StringIO.new(stream) : stream
433
434
  @buf = String.new.b
@@ -438,6 +439,7 @@ module TerminalShop
438
439
  class << self
439
440
  # @param blk [Proc]
440
441
  #
442
+ # @yieldparam [Enumerator::Yielder]
441
443
  # @return [Enumerable]
442
444
  def string_io(&blk)
443
445
  Enumerator.new do |y|
@@ -452,6 +454,8 @@ module TerminalShop
452
454
  end
453
455
 
454
456
  class << self
457
+ # rubocop:disable Naming/MethodParameterName
458
+
455
459
  # @api private
456
460
  #
457
461
  # @param y [Enumerator::Yielder]
@@ -490,6 +494,8 @@ module TerminalShop
490
494
  y << "\r\n"
491
495
  end
492
496
 
497
+ # rubocop:enable Naming/MethodParameterName
498
+
493
499
  # @api private
494
500
  #
495
501
  # @param body [Object]
@@ -628,6 +634,7 @@ module TerminalShop
628
634
  # @param enum [Enumerable, nil]
629
635
  # @param blk [Proc]
630
636
  #
637
+ # @yieldparam [Enumerator::Yielder]
631
638
  # @return [Enumerable]
632
639
  def chain_fused(enum, &blk)
633
640
  iter = Enumerator.new { blk.call(_1) }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TerminalShop
4
- VERSION = "1.8.0"
4
+ VERSION = "2.1.0"
5
5
  end
data/lib/terminal-shop.rb CHANGED
@@ -1,5 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # We already ship the preferred sorbet manifests in the package itself.
4
+ # `tapioca` currently does not offer us a way to opt out of unnecessary compilation.
5
+ if Object.const_defined?(:Tapioca) && caller.chain([$0]).chain(ARGV).grep(/tapioca/)
6
+ Warning.warn(
7
+ <<~WARN
8
+ \n
9
+ ⚠️ skipped loading of "terminal-shop" gem under `tapioca`.
10
+
11
+ This message is normal and expected if you are running a `tapioca` command, and does not impact `.rbi` generation.
12
+ \n
13
+ WARN
14
+ )
15
+ return
16
+ end
17
+
3
18
  # Standard libraries.
4
19
  require "cgi"
5
20
  require "date"
@@ -21,13 +36,21 @@ require "connection_pool"
21
36
  # Package files.
22
37
  require_relative "terminal-shop/version"
23
38
  require_relative "terminal-shop/util"
24
- require_relative "terminal-shop/extern"
25
- require_relative "terminal-shop/base_model"
26
- require_relative "terminal-shop/base_page"
39
+ require_relative "terminal-shop/type/converter"
40
+ require_relative "terminal-shop/type/unknown"
41
+ require_relative "terminal-shop/type/boolean_model"
42
+ require_relative "terminal-shop/type/enum"
43
+ require_relative "terminal-shop/type/union"
44
+ require_relative "terminal-shop/type/array_of"
45
+ require_relative "terminal-shop/type/hash_of"
46
+ require_relative "terminal-shop/type/base_model"
47
+ require_relative "terminal-shop/type/base_page"
48
+ require_relative "terminal-shop/type/request_parameters"
49
+ require_relative "terminal-shop/type"
27
50
  require_relative "terminal-shop/request_options"
28
51
  require_relative "terminal-shop/errors"
29
- require_relative "terminal-shop/base_client"
30
- require_relative "terminal-shop/pooled_net_requester"
52
+ require_relative "terminal-shop/transport/base_client"
53
+ require_relative "terminal-shop/transport/pooled_net_requester"
31
54
  require_relative "terminal-shop/client"
32
55
  require_relative "terminal-shop/models/subscription"
33
56
  require_relative "terminal-shop/models/address"
@@ -1,7 +1,7 @@
1
1
  # typed: strong
2
2
 
3
3
  module TerminalShop
4
- class Client < TerminalShop::BaseClient
4
+ class Client < TerminalShop::Transport::BaseClient
5
5
  DEFAULT_MAX_RETRIES = 2
6
6
 
7
7
  DEFAULT_TIMEOUT_IN_SECONDS = T.let(60.0, Float)
@@ -10,62 +10,50 @@ module TerminalShop
10
10
 
11
11
  DEFAULT_MAX_RETRY_DELAY = T.let(8.0, Float)
12
12
 
13
- ENVIRONMENTS = T.let(
14
- {production: "https://api.terminal.shop/", dev: "https://api.dev.terminal.shop/"},
15
- T::Hash[Symbol, String]
16
- )
13
+ ENVIRONMENTS =
14
+ T.let(
15
+ {production: "https://api.terminal.shop/", dev: "https://api.dev.terminal.shop/"},
16
+ T::Hash[Symbol, String]
17
+ )
17
18
 
18
19
  sig { returns(String) }
19
- def bearer_token
20
- end
20
+ attr_reader :bearer_token
21
21
 
22
22
  sig { returns(T.nilable(String)) }
23
- def app_id
24
- end
23
+ attr_reader :app_id
25
24
 
26
25
  sig { returns(TerminalShop::Resources::Product) }
27
- def product
28
- end
26
+ attr_reader :product
29
27
 
30
28
  sig { returns(TerminalShop::Resources::Profile) }
31
- def profile
32
- end
29
+ attr_reader :profile
33
30
 
34
31
  sig { returns(TerminalShop::Resources::Address) }
35
- def address
36
- end
32
+ attr_reader :address
37
33
 
38
34
  sig { returns(TerminalShop::Resources::Card) }
39
- def card
40
- end
35
+ attr_reader :card
41
36
 
42
37
  sig { returns(TerminalShop::Resources::Cart) }
43
- def cart
44
- end
38
+ attr_reader :cart
45
39
 
46
40
  sig { returns(TerminalShop::Resources::Order) }
47
- def order
48
- end
41
+ attr_reader :order
49
42
 
50
43
  sig { returns(TerminalShop::Resources::Subscription) }
51
- def subscription
52
- end
44
+ attr_reader :subscription
53
45
 
54
46
  sig { returns(TerminalShop::Resources::Token) }
55
- def token
56
- end
47
+ attr_reader :token
57
48
 
58
49
  sig { returns(TerminalShop::Resources::App) }
59
- def app
60
- end
50
+ attr_reader :app
61
51
 
62
52
  sig { returns(TerminalShop::Resources::Email) }
63
- def email
64
- end
53
+ attr_reader :email
65
54
 
66
55
  sig { returns(TerminalShop::Resources::View) }
67
- def view
68
- end
56
+ attr_reader :view
69
57
 
70
58
  # @api private
71
59
  sig { override.returns(T::Hash[String, String]) }
@@ -3,12 +3,7 @@
3
3
  module TerminalShop
4
4
  class Error < StandardError
5
5
  sig { returns(T.nilable(StandardError)) }
6
- def cause
7
- end
8
-
9
- sig { params(_: T.nilable(StandardError)).returns(T.nilable(StandardError)) }
10
- def cause=(_)
11
- end
6
+ attr_accessor :cause
12
7
  end
13
8
 
14
9
  class ConversionError < TerminalShop::Error
@@ -16,28 +11,13 @@ module TerminalShop
16
11
 
17
12
  class APIError < TerminalShop::Error
18
13
  sig { returns(URI::Generic) }
19
- def url
20
- end
21
-
22
- sig { params(_: URI::Generic).returns(URI::Generic) }
23
- def url=(_)
24
- end
14
+ attr_accessor :url
25
15
 
26
16
  sig { returns(T.nilable(Integer)) }
27
- def status
28
- end
29
-
30
- sig { params(_: T.nilable(Integer)).returns(T.nilable(Integer)) }
31
- def status=(_)
32
- end
17
+ attr_accessor :status
33
18
 
34
19
  sig { returns(T.nilable(T.anything)) }
35
- def body
36
- end
37
-
38
- sig { params(_: T.nilable(T.anything)).returns(T.nilable(T.anything)) }
39
- def body=(_)
40
- end
20
+ attr_accessor :body
41
21
 
42
22
  # @api private
43
23
  sig do
@@ -57,20 +37,10 @@ module TerminalShop
57
37
 
58
38
  class APIConnectionError < TerminalShop::APIError
59
39
  sig { void }
60
- def status
61
- end
62
-
63
- sig { params(_: NilClass).void }
64
- def status=(_)
65
- end
40
+ attr_accessor :status
66
41
 
67
42
  sig { void }
68
- def body
69
- end
70
-
71
- sig { params(_: NilClass).void }
72
- def body=(_)
73
- end
43
+ attr_accessor :body
74
44
 
75
45
  # @api private
76
46
  sig do
@@ -122,12 +92,7 @@ module TerminalShop
122
92
  end
123
93
 
124
94
  sig { returns(Integer) }
125
- def status
126
- end
127
-
128
- sig { params(_: Integer).returns(Integer) }
129
- def status=(_)
130
- end
95
+ attr_accessor :status
131
96
 
132
97
  # @api private
133
98
  sig do
@@ -5,84 +5,48 @@ module TerminalShop
5
5
  class AddressAPI < TerminalShop::BaseModel
6
6
  # Unique object identifier. The format and length of IDs may change over time.
7
7
  sig { returns(String) }
8
- def id
9
- end
10
-
11
- sig { params(_: String).returns(String) }
12
- def id=(_)
13
- end
8
+ attr_accessor :id
14
9
 
15
10
  # City of the address.
16
11
  sig { returns(String) }
17
- def city
18
- end
19
-
20
- sig { params(_: String).returns(String) }
21
- def city=(_)
22
- end
12
+ attr_accessor :city
23
13
 
24
14
  # ISO 3166-1 alpha-2 country code of the address.
25
15
  sig { returns(String) }
26
- def country
27
- end
28
-
29
- sig { params(_: String).returns(String) }
30
- def country=(_)
31
- end
16
+ attr_accessor :country
32
17
 
33
18
  # The recipient's name.
34
19
  sig { returns(String) }
35
- def name
36
- end
37
-
38
- sig { params(_: String).returns(String) }
39
- def name=(_)
40
- end
20
+ attr_accessor :name
41
21
 
42
22
  # Street of the address.
43
23
  sig { returns(String) }
44
- def street1
45
- end
46
-
47
- sig { params(_: String).returns(String) }
48
- def street1=(_)
49
- end
24
+ attr_accessor :street1
50
25
 
51
26
  # Zip code of the address.
52
27
  sig { returns(String) }
53
- def zip
54
- end
55
-
56
- sig { params(_: String).returns(String) }
57
- def zip=(_)
58
- end
28
+ attr_accessor :zip
59
29
 
60
30
  # Phone number of the recipient.
61
31
  sig { returns(T.nilable(String)) }
62
- def phone
63
- end
32
+ attr_reader :phone
64
33
 
65
- sig { params(_: String).returns(String) }
66
- def phone=(_)
67
- end
34
+ sig { params(phone: String).void }
35
+ attr_writer :phone
68
36
 
69
37
  # Province or state of the address.
70
38
  sig { returns(T.nilable(String)) }
71
- def province
72
- end
39
+ attr_reader :province
73
40
 
74
- sig { params(_: String).returns(String) }
75
- def province=(_)
76
- end
41
+ sig { params(province: String).void }
42
+ attr_writer :province
77
43
 
78
44
  # Apartment, suite, etc. of the address.
79
45
  sig { returns(T.nilable(String)) }
80
- def street2
81
- end
46
+ attr_reader :street2
82
47
 
83
- sig { params(_: String).returns(String) }
84
- def street2=(_)
85
- end
48
+ sig { params(street2: String).void }
49
+ attr_writer :street2
86
50
 
87
51
  # Physical address associated with a Terminal shop user.
88
52
  sig do
@@ -3,80 +3,49 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class AddressCreateParams < TerminalShop::BaseModel
6
- extend TerminalShop::RequestParameters::Converter
6
+ extend TerminalShop::Type::RequestParameters::Converter
7
7
  include TerminalShop::RequestParameters
8
8
 
9
9
  # City of the address.
10
10
  sig { returns(String) }
11
- def city
12
- end
13
-
14
- sig { params(_: String).returns(String) }
15
- def city=(_)
16
- end
11
+ attr_accessor :city
17
12
 
18
13
  # ISO 3166-1 alpha-2 country code of the address.
19
14
  sig { returns(String) }
20
- def country
21
- end
22
-
23
- sig { params(_: String).returns(String) }
24
- def country=(_)
25
- end
15
+ attr_accessor :country
26
16
 
27
17
  # The recipient's name.
28
18
  sig { returns(String) }
29
- def name
30
- end
31
-
32
- sig { params(_: String).returns(String) }
33
- def name=(_)
34
- end
19
+ attr_accessor :name
35
20
 
36
21
  # Street of the address.
37
22
  sig { returns(String) }
38
- def street1
39
- end
40
-
41
- sig { params(_: String).returns(String) }
42
- def street1=(_)
43
- end
23
+ attr_accessor :street1
44
24
 
45
25
  # Zip code of the address.
46
26
  sig { returns(String) }
47
- def zip
48
- end
49
-
50
- sig { params(_: String).returns(String) }
51
- def zip=(_)
52
- end
27
+ attr_accessor :zip
53
28
 
54
29
  # Phone number of the recipient.
55
30
  sig { returns(T.nilable(String)) }
56
- def phone
57
- end
31
+ attr_reader :phone
58
32
 
59
- sig { params(_: String).returns(String) }
60
- def phone=(_)
61
- end
33
+ sig { params(phone: String).void }
34
+ attr_writer :phone
62
35
 
63
36
  # Province or state of the address.
64
37
  sig { returns(T.nilable(String)) }
65
- def province
66
- end
38
+ attr_reader :province
67
39
 
68
- sig { params(_: String).returns(String) }
69
- def province=(_)
70
- end
40
+ sig { params(province: String).void }
41
+ attr_writer :province
71
42
 
72
43
  # Apartment, suite, etc. of the address.
73
44
  sig { returns(T.nilable(String)) }
74
- def street2
75
- end
45
+ attr_reader :street2
76
46
 
77
- sig { params(_: String).returns(String) }
78
- def street2=(_)
79
- end
47
+ sig { params(street2: String).void }
48
+ attr_writer :street2
80
49
 
81
50
  sig do
82
51
  params(
@@ -88,11 +57,21 @@ module TerminalShop
88
57
  phone: String,
89
58
  province: String,
90
59
  street2: String,
91
- request_options: T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything])
60
+ request_options: T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash)
92
61
  )
93
62
  .returns(T.attached_class)
94
63
  end
95
- def self.new(city:, country:, name:, street1:, zip:, phone: nil, province: nil, street2: nil, request_options: {})
64
+ def self.new(
65
+ city:,
66
+ country:,
67
+ name:,
68
+ street1:,
69
+ zip:,
70
+ phone: nil,
71
+ province: nil,
72
+ street2: nil,
73
+ request_options: {}
74
+ )
96
75
  end
97
76
 
98
77
  sig do
@@ -5,12 +5,7 @@ module TerminalShop
5
5
  class AddressCreateResponse < TerminalShop::BaseModel
6
6
  # Shipping address ID.
7
7
  sig { returns(String) }
8
- def data
9
- end
10
-
11
- sig { params(_: String).returns(String) }
12
- def data=(_)
13
- end
8
+ attr_accessor :data
14
9
 
15
10
  sig { params(data: String).returns(T.attached_class) }
16
11
  def self.new(data:)
@@ -3,11 +3,11 @@
3
3
  module TerminalShop
4
4
  module Models
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
9
  sig do
10
- params(request_options: T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything]))
10
+ params(request_options: T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash))
11
11
  .returns(T.attached_class)
12
12
  end
13
13
  def self.new(request_options: {})
@@ -4,12 +4,7 @@ module TerminalShop
4
4
  module Models
5
5
  class AddressDeleteResponse < TerminalShop::BaseModel
6
6
  sig { returns(Symbol) }
7
- def data
8
- end
9
-
10
- sig { params(_: Symbol).returns(Symbol) }
11
- def data=(_)
12
- end
7
+ attr_accessor :data
13
8
 
14
9
  sig { params(data: Symbol).returns(T.attached_class) }
15
10
  def self.new(data: :ok)
@@ -3,11 +3,11 @@
3
3
  module TerminalShop
4
4
  module Models
5
5
  class AddressGetParams < TerminalShop::BaseModel
6
- extend TerminalShop::RequestParameters::Converter
6
+ extend TerminalShop::Type::RequestParameters::Converter
7
7
  include TerminalShop::RequestParameters
8
8
 
9
9
  sig do
10
- params(request_options: T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything]))
10
+ params(request_options: T.any(TerminalShop::RequestOptions, TerminalShop::Util::AnyHash))
11
11
  .returns(T.attached_class)
12
12
  end
13
13
  def self.new(request_options: {})