terminal-shop 2.1.2 → 3.5.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 (534) hide show
  1. checksums.yaml +4 -4
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +674 -0
  4. data/README.md +88 -28
  5. data/SECURITY.md +27 -0
  6. data/lib/{terminal-shop → terminal_shop}/client.rb +19 -24
  7. data/lib/terminal_shop/errors.rb +192 -0
  8. data/lib/terminal_shop/file_part.rb +55 -0
  9. data/lib/terminal_shop/internal/transport/base_client.rb +486 -0
  10. data/lib/terminal_shop/internal/transport/pooled_net_requester.rb +193 -0
  11. data/lib/terminal_shop/internal/type/array_of.rb +154 -0
  12. data/lib/terminal_shop/internal/type/base_model.rb +443 -0
  13. data/lib/terminal_shop/internal/type/base_page.rb +55 -0
  14. data/lib/terminal_shop/internal/type/boolean.rb +64 -0
  15. data/lib/terminal_shop/internal/type/converter.rb +274 -0
  16. data/lib/terminal_shop/internal/type/enum.rb +133 -0
  17. data/lib/terminal_shop/internal/type/file_input.rb +96 -0
  18. data/lib/terminal_shop/internal/type/hash_of.rb +174 -0
  19. data/lib/terminal_shop/internal/type/request_parameters.rb +48 -0
  20. data/lib/terminal_shop/internal/type/union.rb +220 -0
  21. data/lib/terminal_shop/internal/type/unknown.rb +68 -0
  22. data/lib/terminal_shop/internal/util.rb +790 -0
  23. data/lib/terminal_shop/internal.rb +11 -0
  24. data/lib/terminal_shop/models/address.rb +93 -0
  25. data/lib/terminal_shop/models/address_create_params.rb +78 -0
  26. data/lib/terminal_shop/models/address_create_response.rb +17 -0
  27. data/lib/terminal_shop/models/address_delete_params.rb +14 -0
  28. data/lib/terminal_shop/models/address_delete_response.rb +16 -0
  29. data/lib/terminal_shop/models/address_get_params.rb +14 -0
  30. data/lib/{terminal-shop → terminal_shop}/models/address_get_response.rb +4 -7
  31. data/lib/terminal_shop/models/address_list_params.rb +14 -0
  32. data/lib/terminal_shop/models/address_list_response.rb +17 -0
  33. data/lib/{terminal-shop → terminal_shop}/models/app.rb +14 -12
  34. data/lib/terminal_shop/models/app_create_params.rb +26 -0
  35. data/lib/{terminal-shop → terminal_shop}/models/app_create_response.rb +10 -15
  36. data/lib/terminal_shop/models/app_delete_params.rb +14 -0
  37. data/lib/terminal_shop/models/app_delete_response.rb +16 -0
  38. data/lib/terminal_shop/models/app_get_params.rb +14 -0
  39. data/lib/{terminal-shop → terminal_shop}/models/app_get_response.rb +4 -7
  40. data/lib/terminal_shop/models/app_list_params.rb +14 -0
  41. data/lib/terminal_shop/models/app_list_response.rb +17 -0
  42. data/lib/terminal_shop/models/card.rb +75 -0
  43. data/lib/terminal_shop/models/card_collect_params.rb +14 -0
  44. data/lib/terminal_shop/models/card_collect_response.rb +36 -0
  45. data/lib/terminal_shop/models/card_create_params.rb +27 -0
  46. data/lib/terminal_shop/models/card_create_response.rb +17 -0
  47. data/lib/terminal_shop/models/card_delete_params.rb +14 -0
  48. data/lib/terminal_shop/models/card_delete_response.rb +16 -0
  49. data/lib/terminal_shop/models/card_get_params.rb +14 -0
  50. data/lib/{terminal-shop → terminal_shop}/models/card_get_response.rb +4 -7
  51. data/lib/terminal_shop/models/card_list_params.rb +14 -0
  52. data/lib/terminal_shop/models/card_list_response.rb +17 -0
  53. data/lib/terminal_shop/models/cart.rb +150 -0
  54. data/lib/terminal_shop/models/cart_clear_params.rb +14 -0
  55. data/lib/terminal_shop/models/cart_clear_response.rb +16 -0
  56. data/lib/terminal_shop/models/cart_convert_params.rb +14 -0
  57. data/lib/{terminal-shop → terminal_shop}/models/cart_convert_response.rb +4 -7
  58. data/lib/terminal_shop/models/cart_get_params.rb +14 -0
  59. data/lib/{terminal-shop → terminal_shop}/models/cart_get_response.rb +4 -7
  60. data/lib/terminal_shop/models/cart_set_address_params.rb +22 -0
  61. data/lib/terminal_shop/models/cart_set_address_response.rb +16 -0
  62. data/lib/terminal_shop/models/cart_set_card_params.rb +22 -0
  63. data/lib/terminal_shop/models/cart_set_card_response.rb +16 -0
  64. data/lib/terminal_shop/models/cart_set_item_params.rb +30 -0
  65. data/lib/{terminal-shop → terminal_shop}/models/cart_set_item_response.rb +4 -7
  66. data/lib/terminal_shop/models/email_create_params.rb +22 -0
  67. data/lib/terminal_shop/models/email_create_response.rb +16 -0
  68. data/lib/terminal_shop/models/order.rb +278 -0
  69. data/lib/terminal_shop/models/order_create_params.rb +38 -0
  70. data/lib/terminal_shop/models/order_create_response.rb +17 -0
  71. data/lib/terminal_shop/models/order_get_params.rb +14 -0
  72. data/lib/{terminal-shop → terminal_shop}/models/order_get_response.rb +4 -7
  73. data/lib/terminal_shop/models/order_list_params.rb +14 -0
  74. data/lib/terminal_shop/models/order_list_response.rb +17 -0
  75. data/lib/terminal_shop/models/product.rb +125 -0
  76. data/lib/terminal_shop/models/product_get_params.rb +14 -0
  77. data/lib/{terminal-shop → terminal_shop}/models/product_get_response.rb +4 -7
  78. data/lib/terminal_shop/models/product_list_params.rb +14 -0
  79. data/lib/terminal_shop/models/product_list_response.rb +17 -0
  80. data/lib/terminal_shop/models/product_variant.rb +84 -0
  81. data/lib/{terminal-shop → terminal_shop}/models/profile.rb +22 -22
  82. data/lib/terminal_shop/models/profile_me_params.rb +14 -0
  83. data/lib/{terminal-shop → terminal_shop}/models/profile_me_response.rb +4 -7
  84. data/lib/terminal_shop/models/profile_update_params.rb +26 -0
  85. data/lib/{terminal-shop → terminal_shop}/models/profile_update_response.rb +4 -7
  86. data/lib/{terminal-shop → terminal_shop}/models/region.rb +4 -6
  87. data/lib/terminal_shop/models/subscription.rb +125 -0
  88. data/lib/terminal_shop/models/subscription_create_params.rb +14 -0
  89. data/lib/terminal_shop/models/subscription_create_response.rb +16 -0
  90. data/lib/terminal_shop/models/subscription_delete_params.rb +14 -0
  91. data/lib/terminal_shop/models/subscription_delete_response.rb +16 -0
  92. data/lib/terminal_shop/models/subscription_get_params.rb +14 -0
  93. data/lib/{terminal-shop → terminal_shop}/models/subscription_get_response.rb +4 -7
  94. data/lib/terminal_shop/models/subscription_list_params.rb +14 -0
  95. data/lib/terminal_shop/models/subscription_list_response.rb +17 -0
  96. data/lib/terminal_shop/models/subscription_update_params.rb +76 -0
  97. data/lib/terminal_shop/models/subscription_update_response.rb +17 -0
  98. data/lib/terminal_shop/models/token.rb +38 -0
  99. data/lib/terminal_shop/models/token_create_params.rb +14 -0
  100. data/lib/terminal_shop/models/token_create_response.rb +41 -0
  101. data/lib/terminal_shop/models/token_delete_params.rb +14 -0
  102. data/lib/terminal_shop/models/token_delete_response.rb +16 -0
  103. data/lib/terminal_shop/models/token_get_params.rb +14 -0
  104. data/lib/terminal_shop/models/token_get_response.rb +22 -0
  105. data/lib/terminal_shop/models/token_list_params.rb +14 -0
  106. data/lib/terminal_shop/models/token_list_response.rb +17 -0
  107. data/lib/terminal_shop/models/view_init_params.rb +14 -0
  108. data/lib/terminal_shop/models/view_init_response.rb +97 -0
  109. data/lib/{terminal-shop → terminal_shop}/request_options.rb +14 -15
  110. data/lib/{terminal-shop → terminal_shop}/resources/address.rb +28 -18
  111. data/lib/{terminal-shop → terminal_shop}/resources/app.rb +22 -14
  112. data/lib/{terminal-shop → terminal_shop}/resources/card.rb +30 -15
  113. data/lib/{terminal-shop → terminal_shop}/resources/cart.rb +30 -16
  114. data/lib/{terminal-shop → terminal_shop}/resources/email.rb +7 -3
  115. data/lib/{terminal-shop → terminal_shop}/resources/order.rb +18 -10
  116. data/lib/{terminal-shop → terminal_shop}/resources/product.rb +11 -5
  117. data/lib/{terminal-shop → terminal_shop}/resources/profile.rb +12 -8
  118. data/lib/terminal_shop/resources/subscription.rb +141 -0
  119. data/lib/{terminal-shop → terminal_shop}/resources/token.rb +20 -10
  120. data/lib/{terminal-shop → terminal_shop}/resources/view.rb +7 -3
  121. data/lib/{terminal-shop → terminal_shop}/version.rb +1 -1
  122. data/lib/terminal_shop.rb +144 -0
  123. data/rbi/lib/{terminal-shop → terminal_shop}/client.rbi +18 -19
  124. data/rbi/lib/terminal_shop/errors.rbi +143 -0
  125. data/rbi/lib/terminal_shop/file_part.rbi +34 -0
  126. data/rbi/lib/terminal_shop/internal/transport/base_client.rbi +213 -0
  127. data/rbi/lib/terminal_shop/internal/transport/pooled_net_requester.rbi +60 -0
  128. data/rbi/lib/terminal_shop/internal/type/array_of.rbi +88 -0
  129. data/rbi/lib/terminal_shop/internal/type/base_model.rbi +220 -0
  130. data/rbi/lib/terminal_shop/internal/type/base_page.rbi +38 -0
  131. data/rbi/lib/terminal_shop/internal/type/boolean.rbi +48 -0
  132. data/rbi/lib/terminal_shop/internal/type/converter.rbi +120 -0
  133. data/rbi/lib/terminal_shop/internal/type/enum.rbi +66 -0
  134. data/rbi/lib/terminal_shop/internal/type/file_input.rbi +50 -0
  135. data/rbi/lib/terminal_shop/internal/type/hash_of.rbi +88 -0
  136. data/rbi/lib/terminal_shop/internal/type/request_parameters.rbi +21 -0
  137. data/rbi/lib/terminal_shop/internal/type/union.rbi +80 -0
  138. data/rbi/lib/terminal_shop/internal/type/unknown.rbi +40 -0
  139. data/rbi/lib/terminal_shop/internal/util.rbi +302 -0
  140. data/rbi/lib/terminal_shop/internal.rbi +11 -0
  141. data/rbi/lib/{terminal-shop → terminal_shop}/models/address.rbi +30 -6
  142. data/rbi/lib/{terminal-shop → terminal_shop}/models/address_create_params.rbi +14 -9
  143. data/rbi/lib/{terminal-shop → terminal_shop}/models/address_create_response.rbi +6 -6
  144. data/rbi/lib/terminal_shop/models/address_delete_params.rbi +19 -0
  145. data/rbi/lib/{terminal-shop → terminal_shop}/models/address_delete_response.rbi +3 -5
  146. data/rbi/lib/terminal_shop/models/address_get_params.rbi +19 -0
  147. data/rbi/lib/{terminal-shop → terminal_shop}/models/address_get_response.rbi +8 -8
  148. data/rbi/lib/terminal_shop/models/address_list_params.rbi +19 -0
  149. data/rbi/lib/{terminal-shop → terminal_shop}/models/address_list_response.rbi +7 -7
  150. data/rbi/lib/{terminal-shop → terminal_shop}/models/app.rbi +12 -6
  151. data/rbi/lib/{terminal-shop → terminal_shop}/models/app_create_params.rbi +6 -8
  152. data/rbi/lib/{terminal-shop → terminal_shop}/models/app_create_response.rbi +13 -13
  153. data/rbi/lib/terminal_shop/models/app_delete_params.rbi +19 -0
  154. data/rbi/lib/{terminal-shop → terminal_shop}/models/app_delete_response.rbi +3 -5
  155. data/rbi/lib/terminal_shop/models/app_get_params.rbi +19 -0
  156. data/rbi/lib/terminal_shop/models/app_get_response.rbi +25 -0
  157. data/rbi/lib/terminal_shop/models/app_list_params.rbi +19 -0
  158. data/rbi/lib/{terminal-shop → terminal_shop}/models/app_list_response.rbi +7 -7
  159. data/rbi/lib/{terminal-shop → terminal_shop}/models/card.rbi +32 -15
  160. data/rbi/lib/terminal_shop/models/card_collect_params.rbi +19 -0
  161. data/rbi/lib/{terminal-shop → terminal_shop}/models/card_collect_response.rbi +16 -15
  162. data/rbi/lib/terminal_shop/models/card_create_params.rbi +31 -0
  163. data/rbi/lib/{terminal-shop → terminal_shop}/models/card_create_response.rbi +6 -6
  164. data/rbi/lib/terminal_shop/models/card_delete_params.rbi +19 -0
  165. data/rbi/lib/{terminal-shop → terminal_shop}/models/card_delete_response.rbi +3 -5
  166. data/rbi/lib/terminal_shop/models/card_get_params.rbi +19 -0
  167. data/rbi/lib/terminal_shop/models/card_get_response.rbi +25 -0
  168. data/rbi/lib/terminal_shop/models/card_list_params.rbi +19 -0
  169. data/rbi/lib/{terminal-shop → terminal_shop}/models/card_list_response.rbi +7 -7
  170. data/rbi/lib/{terminal-shop → terminal_shop}/models/cart.rbi +51 -29
  171. data/rbi/lib/terminal_shop/models/cart_clear_params.rbi +19 -0
  172. data/rbi/lib/{terminal-shop → terminal_shop}/models/cart_clear_response.rbi +3 -5
  173. data/rbi/lib/terminal_shop/models/cart_convert_params.rbi +19 -0
  174. data/rbi/lib/terminal_shop/models/cart_convert_response.rbi +25 -0
  175. data/rbi/lib/terminal_shop/models/cart_get_params.rbi +19 -0
  176. data/rbi/lib/terminal_shop/models/cart_get_response.rbi +25 -0
  177. data/rbi/lib/{terminal-shop → terminal_shop}/models/cart_set_address_params.rbi +10 -9
  178. data/rbi/lib/{terminal-shop → terminal_shop}/models/cart_set_address_response.rbi +3 -5
  179. data/rbi/lib/terminal_shop/models/cart_set_card_params.rbi +29 -0
  180. data/rbi/lib/{terminal-shop → terminal_shop}/models/cart_set_card_response.rbi +3 -5
  181. data/rbi/lib/{terminal-shop → terminal_shop}/models/cart_set_item_params.rbi +12 -9
  182. data/rbi/lib/terminal_shop/models/cart_set_item_response.rbi +25 -0
  183. data/rbi/lib/terminal_shop/models/email_create_params.rbi +29 -0
  184. data/rbi/lib/{terminal-shop → terminal_shop}/models/email_create_response.rbi +3 -5
  185. data/rbi/lib/{terminal-shop → terminal_shop}/models/order.rbi +149 -36
  186. data/rbi/lib/{terminal-shop → terminal_shop}/models/order_create_params.rbi +14 -9
  187. data/rbi/lib/{terminal-shop → terminal_shop}/models/order_create_response.rbi +6 -6
  188. data/rbi/lib/terminal_shop/models/order_get_params.rbi +19 -0
  189. data/rbi/lib/terminal_shop/models/order_get_response.rbi +25 -0
  190. data/rbi/lib/terminal_shop/models/order_list_params.rbi +19 -0
  191. data/rbi/lib/{terminal-shop → terminal_shop}/models/order_list_response.rbi +7 -7
  192. data/rbi/lib/{terminal-shop → terminal_shop}/models/product.rbi +44 -24
  193. data/rbi/lib/terminal_shop/models/product_get_params.rbi +19 -0
  194. data/rbi/lib/{terminal-shop → terminal_shop}/models/product_get_response.rbi +8 -8
  195. data/rbi/lib/terminal_shop/models/product_list_params.rbi +19 -0
  196. data/rbi/lib/{terminal-shop → terminal_shop}/models/product_list_response.rbi +7 -7
  197. data/rbi/lib/terminal_shop/models/product_variant.rbi +109 -0
  198. data/rbi/lib/{terminal-shop → terminal_shop}/models/profile.rbi +22 -14
  199. data/rbi/lib/terminal_shop/models/profile_me_params.rbi +19 -0
  200. data/rbi/lib/{terminal-shop → terminal_shop}/models/profile_me_response.rbi +8 -8
  201. data/rbi/lib/{terminal-shop → terminal_shop}/models/profile_update_params.rbi +6 -8
  202. data/rbi/lib/{terminal-shop → terminal_shop}/models/profile_update_response.rbi +8 -8
  203. data/rbi/lib/{terminal-shop → terminal_shop}/models/region.rbi +4 -4
  204. data/rbi/lib/{terminal-shop → terminal_shop}/models/subscription.rbi +44 -21
  205. data/rbi/lib/{terminal-shop → terminal_shop}/models/subscription_create_params.rbi +5 -7
  206. data/rbi/lib/{terminal-shop → terminal_shop}/models/subscription_create_response.rbi +3 -5
  207. data/rbi/lib/terminal_shop/models/subscription_delete_params.rbi +19 -0
  208. data/rbi/lib/{terminal-shop → terminal_shop}/models/subscription_delete_response.rbi +3 -5
  209. data/rbi/lib/terminal_shop/models/subscription_get_params.rbi +19 -0
  210. data/rbi/lib/{terminal-shop → terminal_shop}/models/subscription_get_response.rbi +8 -8
  211. data/rbi/lib/terminal_shop/models/subscription_list_params.rbi +19 -0
  212. data/rbi/lib/{terminal-shop → terminal_shop}/models/subscription_list_response.rbi +7 -7
  213. data/rbi/lib/terminal_shop/models/subscription_update_params.rbi +125 -0
  214. data/rbi/lib/terminal_shop/models/subscription_update_response.rbi +25 -0
  215. data/rbi/lib/{terminal-shop → terminal_shop}/models/token.rbi +11 -7
  216. data/rbi/lib/terminal_shop/models/token_create_params.rbi +19 -0
  217. data/rbi/lib/{terminal-shop → terminal_shop}/models/token_create_response.rbi +15 -14
  218. data/rbi/lib/terminal_shop/models/token_delete_params.rbi +19 -0
  219. data/rbi/lib/{terminal-shop → terminal_shop}/models/token_delete_response.rbi +3 -5
  220. data/rbi/lib/terminal_shop/models/token_get_params.rbi +19 -0
  221. data/rbi/lib/terminal_shop/models/token_get_response.rbi +27 -0
  222. data/rbi/lib/terminal_shop/models/token_list_params.rbi +19 -0
  223. data/rbi/lib/{terminal-shop → terminal_shop}/models/token_list_response.rbi +7 -7
  224. data/rbi/lib/terminal_shop/models/view_init_params.rbi +19 -0
  225. data/rbi/lib/{terminal-shop → terminal_shop}/models/view_init_response.rbi +25 -25
  226. data/rbi/lib/{terminal-shop → terminal_shop}/request_options.rbi +11 -13
  227. data/rbi/lib/{terminal-shop → terminal_shop}/resources/address.rbi +17 -17
  228. data/rbi/lib/{terminal-shop → terminal_shop}/resources/app.rbi +17 -16
  229. data/rbi/lib/{terminal-shop → terminal_shop}/resources/card.rbi +28 -22
  230. data/rbi/lib/{terminal-shop → terminal_shop}/resources/cart.rbi +35 -23
  231. data/rbi/lib/{terminal-shop → terminal_shop}/resources/email.rbi +4 -6
  232. data/rbi/lib/{terminal-shop → terminal_shop}/resources/order.rbi +15 -13
  233. data/rbi/lib/{terminal-shop → terminal_shop}/resources/product.rbi +13 -9
  234. data/rbi/lib/{terminal-shop → terminal_shop}/resources/profile.rbi +13 -8
  235. data/rbi/lib/{terminal-shop → terminal_shop}/resources/subscription.rbi +49 -17
  236. data/rbi/lib/{terminal-shop → terminal_shop}/resources/token.rbi +24 -16
  237. data/rbi/lib/{terminal-shop → terminal_shop}/resources/view.rbi +12 -6
  238. data/rbi/lib/{terminal-shop → terminal_shop}/version.rbi +1 -1
  239. data/sig/{terminal-shop → terminal_shop}/client.rbs +3 -3
  240. data/sig/terminal_shop/errors.rbs +101 -0
  241. data/sig/terminal_shop/file_part.rbs +21 -0
  242. data/sig/terminal_shop/internal/transport/base_client.rbs +116 -0
  243. data/sig/terminal_shop/internal/transport/pooled_net_requester.rbs +41 -0
  244. data/sig/terminal_shop/internal/type/array_of.rbs +45 -0
  245. data/sig/terminal_shop/internal/type/base_model.rbs +96 -0
  246. data/sig/terminal_shop/internal/type/base_page.rbs +24 -0
  247. data/sig/terminal_shop/internal/type/boolean.rbs +23 -0
  248. data/sig/terminal_shop/internal/type/converter.rbs +54 -0
  249. data/sig/terminal_shop/internal/type/enum.rbs +29 -0
  250. data/sig/terminal_shop/internal/type/file_input.rbs +23 -0
  251. data/sig/terminal_shop/internal/type/hash_of.rbs +45 -0
  252. data/sig/terminal_shop/internal/type/request_parameters.rbs +15 -0
  253. data/sig/terminal_shop/internal/type/union.rbs +49 -0
  254. data/sig/terminal_shop/internal/type/unknown.rbs +23 -0
  255. data/sig/terminal_shop/internal/util.rbs +158 -0
  256. data/sig/terminal_shop/internal.rbs +5 -0
  257. data/sig/{terminal-shop → terminal_shop}/models/address.rbs +5 -1
  258. data/sig/{terminal-shop → terminal_shop}/models/address_create_params.rbs +4 -4
  259. data/sig/{terminal-shop → terminal_shop}/models/address_create_response.rbs +1 -1
  260. data/sig/terminal_shop/models/address_delete_params.rbs +15 -0
  261. data/sig/{terminal-shop → terminal_shop}/models/address_delete_response.rbs +1 -1
  262. data/sig/terminal_shop/models/address_get_params.rbs +15 -0
  263. data/sig/{terminal-shop → terminal_shop}/models/address_get_response.rbs +1 -1
  264. data/sig/terminal_shop/models/address_list_params.rbs +15 -0
  265. data/sig/{terminal-shop → terminal_shop}/models/address_list_response.rbs +1 -1
  266. data/sig/{terminal-shop → terminal_shop}/models/app.rbs +1 -1
  267. data/sig/{terminal-shop → terminal_shop}/models/app_create_params.rbs +5 -4
  268. data/sig/{terminal-shop → terminal_shop}/models/app_create_response.rbs +2 -2
  269. data/sig/terminal_shop/models/app_delete_params.rbs +15 -0
  270. data/sig/{terminal-shop → terminal_shop}/models/app_delete_response.rbs +1 -1
  271. data/sig/terminal_shop/models/app_get_params.rbs +15 -0
  272. data/sig/{terminal-shop → terminal_shop}/models/app_get_response.rbs +1 -1
  273. data/sig/terminal_shop/models/app_list_params.rbs +15 -0
  274. data/sig/{terminal-shop → terminal_shop}/models/app_list_response.rbs +1 -1
  275. data/sig/{terminal-shop → terminal_shop}/models/card.rbs +6 -2
  276. data/sig/terminal_shop/models/card_collect_params.rbs +15 -0
  277. data/sig/{terminal-shop → terminal_shop}/models/card_collect_response.rbs +2 -2
  278. data/sig/{terminal-shop → terminal_shop}/models/card_create_params.rbs +4 -4
  279. data/sig/{terminal-shop → terminal_shop}/models/card_create_response.rbs +1 -1
  280. data/sig/terminal_shop/models/card_delete_params.rbs +15 -0
  281. data/sig/{terminal-shop → terminal_shop}/models/card_delete_response.rbs +1 -1
  282. data/sig/terminal_shop/models/card_get_params.rbs +15 -0
  283. data/sig/{terminal-shop → terminal_shop}/models/card_get_response.rbs +1 -1
  284. data/sig/terminal_shop/models/card_list_params.rbs +15 -0
  285. data/sig/{terminal-shop → terminal_shop}/models/card_list_response.rbs +1 -1
  286. data/sig/{terminal-shop → terminal_shop}/models/cart.rbs +4 -4
  287. data/sig/terminal_shop/models/cart_clear_params.rbs +15 -0
  288. data/sig/{terminal-shop → terminal_shop}/models/cart_clear_response.rbs +1 -1
  289. data/sig/terminal_shop/models/cart_convert_params.rbs +15 -0
  290. data/sig/{terminal-shop → terminal_shop}/models/cart_convert_response.rbs +1 -1
  291. data/sig/terminal_shop/models/cart_get_params.rbs +15 -0
  292. data/sig/{terminal-shop → terminal_shop}/models/cart_get_response.rbs +1 -1
  293. data/sig/{terminal-shop → terminal_shop}/models/cart_set_address_params.rbs +4 -4
  294. data/sig/{terminal-shop → terminal_shop}/models/cart_set_address_response.rbs +1 -1
  295. data/sig/{terminal-shop → terminal_shop}/models/cart_set_card_params.rbs +4 -4
  296. data/sig/{terminal-shop → terminal_shop}/models/cart_set_card_response.rbs +1 -1
  297. data/sig/{terminal-shop → terminal_shop}/models/cart_set_item_params.rbs +4 -4
  298. data/sig/{terminal-shop → terminal_shop}/models/cart_set_item_response.rbs +1 -1
  299. data/sig/{terminal-shop → terminal_shop}/models/email_create_params.rbs +4 -4
  300. data/sig/{terminal-shop → terminal_shop}/models/email_create_response.rbs +1 -1
  301. data/sig/{terminal-shop → terminal_shop}/models/order.rbs +51 -6
  302. data/sig/{terminal-shop → terminal_shop}/models/order_create_params.rbs +4 -4
  303. data/sig/{terminal-shop → terminal_shop}/models/order_create_response.rbs +1 -1
  304. data/sig/terminal_shop/models/order_get_params.rbs +15 -0
  305. data/sig/{terminal-shop → terminal_shop}/models/order_get_response.rbs +1 -1
  306. data/sig/terminal_shop/models/order_list_params.rbs +15 -0
  307. data/sig/{terminal-shop → terminal_shop}/models/order_list_response.rbs +1 -1
  308. data/sig/{terminal-shop → terminal_shop}/models/product.rbs +9 -3
  309. data/sig/terminal_shop/models/product_get_params.rbs +15 -0
  310. data/sig/{terminal-shop → terminal_shop}/models/product_get_response.rbs +1 -1
  311. data/sig/terminal_shop/models/product_list_params.rbs +15 -0
  312. data/sig/{terminal-shop → terminal_shop}/models/product_list_response.rbs +1 -1
  313. data/sig/terminal_shop/models/product_variant.rbs +70 -0
  314. data/sig/{terminal-shop → terminal_shop}/models/profile.rbs +2 -2
  315. data/sig/terminal_shop/models/profile_me_params.rbs +15 -0
  316. data/sig/{terminal-shop → terminal_shop}/models/profile_me_response.rbs +1 -1
  317. data/sig/{terminal-shop → terminal_shop}/models/profile_update_params.rbs +5 -4
  318. data/sig/{terminal-shop → terminal_shop}/models/profile_update_response.rbs +1 -1
  319. data/sig/{terminal-shop → terminal_shop}/models/region.rbs +3 -2
  320. data/sig/{terminal-shop → terminal_shop}/models/subscription.rbs +12 -4
  321. data/sig/{terminal-shop → terminal_shop}/models/subscription_create_params.rbs +4 -3
  322. data/sig/{terminal-shop → terminal_shop}/models/subscription_create_response.rbs +1 -1
  323. data/sig/terminal_shop/models/subscription_delete_params.rbs +15 -0
  324. data/sig/{terminal-shop → terminal_shop}/models/subscription_delete_response.rbs +1 -1
  325. data/sig/terminal_shop/models/subscription_get_params.rbs +15 -0
  326. data/sig/{terminal-shop → terminal_shop}/models/subscription_get_response.rbs +1 -1
  327. data/sig/terminal_shop/models/subscription_list_params.rbs +15 -0
  328. data/sig/{terminal-shop → terminal_shop}/models/subscription_list_response.rbs +1 -1
  329. data/sig/terminal_shop/models/subscription_update_params.rbs +71 -0
  330. data/sig/terminal_shop/models/subscription_update_response.rbs +14 -0
  331. data/sig/{terminal-shop → terminal_shop}/models/token.rbs +1 -1
  332. data/sig/terminal_shop/models/token_create_params.rbs +15 -0
  333. data/sig/{terminal-shop → terminal_shop}/models/token_create_response.rbs +2 -2
  334. data/sig/terminal_shop/models/token_delete_params.rbs +15 -0
  335. data/sig/{terminal-shop → terminal_shop}/models/token_delete_response.rbs +1 -1
  336. data/sig/terminal_shop/models/token_get_params.rbs +15 -0
  337. data/sig/{terminal-shop → terminal_shop}/models/token_get_response.rbs +1 -1
  338. data/sig/terminal_shop/models/token_list_params.rbs +15 -0
  339. data/sig/{terminal-shop → terminal_shop}/models/token_list_response.rbs +1 -1
  340. data/sig/terminal_shop/models/view_init_params.rbs +15 -0
  341. data/sig/{terminal-shop → terminal_shop}/models/view_init_response.rbs +2 -2
  342. data/sig/{terminal-shop → terminal_shop}/request_options.rbs +1 -1
  343. data/sig/{terminal-shop → terminal_shop}/resources/subscription.rbs +10 -0
  344. data/sig/{terminal-shop → terminal_shop}/version.rbs +1 -1
  345. metadata +354 -339
  346. data/lib/terminal-shop/errors.rb +0 -183
  347. data/lib/terminal-shop/models/address.rb +0 -90
  348. data/lib/terminal-shop/models/address_create_params.rb +0 -86
  349. data/lib/terminal-shop/models/address_create_response.rb +0 -20
  350. data/lib/terminal-shop/models/address_delete_params.rb +0 -18
  351. data/lib/terminal-shop/models/address_delete_response.rb +0 -19
  352. data/lib/terminal-shop/models/address_get_params.rb +0 -18
  353. data/lib/terminal-shop/models/address_list_params.rb +0 -18
  354. data/lib/terminal-shop/models/address_list_response.rb +0 -20
  355. data/lib/terminal-shop/models/app_create_params.rb +0 -30
  356. data/lib/terminal-shop/models/app_delete_params.rb +0 -18
  357. data/lib/terminal-shop/models/app_delete_response.rb +0 -19
  358. data/lib/terminal-shop/models/app_get_params.rb +0 -18
  359. data/lib/terminal-shop/models/app_list_params.rb +0 -18
  360. data/lib/terminal-shop/models/app_list_response.rb +0 -20
  361. data/lib/terminal-shop/models/card.rb +0 -67
  362. data/lib/terminal-shop/models/card_collect_params.rb +0 -18
  363. data/lib/terminal-shop/models/card_collect_response.rb +0 -38
  364. data/lib/terminal-shop/models/card_create_params.rb +0 -26
  365. data/lib/terminal-shop/models/card_create_response.rb +0 -20
  366. data/lib/terminal-shop/models/card_delete_params.rb +0 -18
  367. data/lib/terminal-shop/models/card_delete_response.rb +0 -19
  368. data/lib/terminal-shop/models/card_get_params.rb +0 -18
  369. data/lib/terminal-shop/models/card_list_params.rb +0 -18
  370. data/lib/terminal-shop/models/card_list_response.rb +0 -20
  371. data/lib/terminal-shop/models/cart.rb +0 -178
  372. data/lib/terminal-shop/models/cart_clear_params.rb +0 -18
  373. data/lib/terminal-shop/models/cart_clear_response.rb +0 -19
  374. data/lib/terminal-shop/models/cart_convert_params.rb +0 -18
  375. data/lib/terminal-shop/models/cart_get_params.rb +0 -18
  376. data/lib/terminal-shop/models/cart_set_address_params.rb +0 -25
  377. data/lib/terminal-shop/models/cart_set_address_response.rb +0 -19
  378. data/lib/terminal-shop/models/cart_set_card_params.rb +0 -25
  379. data/lib/terminal-shop/models/cart_set_card_response.rb +0 -19
  380. data/lib/terminal-shop/models/cart_set_item_params.rb +0 -32
  381. data/lib/terminal-shop/models/email_create_params.rb +0 -25
  382. data/lib/terminal-shop/models/email_create_response.rb +0 -19
  383. data/lib/terminal-shop/models/order.rb +0 -257
  384. data/lib/terminal-shop/models/order_create_params.rb +0 -39
  385. data/lib/terminal-shop/models/order_create_response.rb +0 -20
  386. data/lib/terminal-shop/models/order_get_params.rb +0 -18
  387. data/lib/terminal-shop/models/order_list_params.rb +0 -18
  388. data/lib/terminal-shop/models/order_list_response.rb +0 -20
  389. data/lib/terminal-shop/models/product.rb +0 -150
  390. data/lib/terminal-shop/models/product_get_params.rb +0 -18
  391. data/lib/terminal-shop/models/product_list_params.rb +0 -18
  392. data/lib/terminal-shop/models/product_list_response.rb +0 -20
  393. data/lib/terminal-shop/models/product_variant.rb +0 -36
  394. data/lib/terminal-shop/models/profile_me_params.rb +0 -18
  395. data/lib/terminal-shop/models/profile_update_params.rb +0 -30
  396. data/lib/terminal-shop/models/subscription.rb +0 -119
  397. data/lib/terminal-shop/models/subscription_create_params.rb +0 -18
  398. data/lib/terminal-shop/models/subscription_create_response.rb +0 -19
  399. data/lib/terminal-shop/models/subscription_delete_params.rb +0 -18
  400. data/lib/terminal-shop/models/subscription_delete_response.rb +0 -19
  401. data/lib/terminal-shop/models/subscription_get_params.rb +0 -18
  402. data/lib/terminal-shop/models/subscription_list_params.rb +0 -18
  403. data/lib/terminal-shop/models/subscription_list_response.rb +0 -20
  404. data/lib/terminal-shop/models/token.rb +0 -37
  405. data/lib/terminal-shop/models/token_create_params.rb +0 -18
  406. data/lib/terminal-shop/models/token_create_response.rb +0 -42
  407. data/lib/terminal-shop/models/token_delete_params.rb +0 -18
  408. data/lib/terminal-shop/models/token_delete_response.rb +0 -19
  409. data/lib/terminal-shop/models/token_get_params.rb +0 -18
  410. data/lib/terminal-shop/models/token_get_response.rb +0 -21
  411. data/lib/terminal-shop/models/token_list_params.rb +0 -18
  412. data/lib/terminal-shop/models/token_list_response.rb +0 -20
  413. data/lib/terminal-shop/models/view_init_params.rb +0 -18
  414. data/lib/terminal-shop/models/view_init_response.rb +0 -93
  415. data/lib/terminal-shop/resources/subscription.rb +0 -96
  416. data/lib/terminal-shop/transport/base_client.rb +0 -459
  417. data/lib/terminal-shop/transport/pooled_net_requester.rb +0 -182
  418. data/lib/terminal-shop/type/array_of.rb +0 -112
  419. data/lib/terminal-shop/type/base_model.rb +0 -364
  420. data/lib/terminal-shop/type/base_page.rb +0 -61
  421. data/lib/terminal-shop/type/boolean_model.rb +0 -52
  422. data/lib/terminal-shop/type/converter.rb +0 -217
  423. data/lib/terminal-shop/type/enum.rb +0 -101
  424. data/lib/terminal-shop/type/hash_of.rb +0 -138
  425. data/lib/terminal-shop/type/request_parameters.rb +0 -38
  426. data/lib/terminal-shop/type/union.rb +0 -185
  427. data/lib/terminal-shop/type/unknown.rb +0 -56
  428. data/lib/terminal-shop/type.rb +0 -23
  429. data/lib/terminal-shop/util.rb +0 -726
  430. data/lib/terminal-shop.rb +0 -149
  431. data/rbi/lib/terminal-shop/errors.rbi +0 -144
  432. data/rbi/lib/terminal-shop/models/address_delete_params.rbi +0 -21
  433. data/rbi/lib/terminal-shop/models/address_get_params.rbi +0 -21
  434. data/rbi/lib/terminal-shop/models/address_list_params.rbi +0 -21
  435. data/rbi/lib/terminal-shop/models/app_delete_params.rbi +0 -21
  436. data/rbi/lib/terminal-shop/models/app_get_params.rbi +0 -21
  437. data/rbi/lib/terminal-shop/models/app_get_response.rbi +0 -22
  438. data/rbi/lib/terminal-shop/models/app_list_params.rbi +0 -21
  439. data/rbi/lib/terminal-shop/models/card_collect_params.rbi +0 -21
  440. data/rbi/lib/terminal-shop/models/card_create_params.rbi +0 -32
  441. data/rbi/lib/terminal-shop/models/card_delete_params.rbi +0 -21
  442. data/rbi/lib/terminal-shop/models/card_get_params.rbi +0 -21
  443. data/rbi/lib/terminal-shop/models/card_get_response.rbi +0 -22
  444. data/rbi/lib/terminal-shop/models/card_list_params.rbi +0 -21
  445. data/rbi/lib/terminal-shop/models/cart_clear_params.rbi +0 -21
  446. data/rbi/lib/terminal-shop/models/cart_convert_params.rbi +0 -21
  447. data/rbi/lib/terminal-shop/models/cart_convert_response.rbi +0 -22
  448. data/rbi/lib/terminal-shop/models/cart_get_params.rbi +0 -21
  449. data/rbi/lib/terminal-shop/models/cart_get_response.rbi +0 -22
  450. data/rbi/lib/terminal-shop/models/cart_set_card_params.rbi +0 -31
  451. data/rbi/lib/terminal-shop/models/cart_set_item_response.rbi +0 -22
  452. data/rbi/lib/terminal-shop/models/email_create_params.rbi +0 -31
  453. data/rbi/lib/terminal-shop/models/order_get_params.rbi +0 -21
  454. data/rbi/lib/terminal-shop/models/order_get_response.rbi +0 -22
  455. data/rbi/lib/terminal-shop/models/order_list_params.rbi +0 -21
  456. data/rbi/lib/terminal-shop/models/product_get_params.rbi +0 -21
  457. data/rbi/lib/terminal-shop/models/product_list_params.rbi +0 -21
  458. data/rbi/lib/terminal-shop/models/product_variant.rbi +0 -28
  459. data/rbi/lib/terminal-shop/models/profile_me_params.rbi +0 -21
  460. data/rbi/lib/terminal-shop/models/subscription_delete_params.rbi +0 -21
  461. data/rbi/lib/terminal-shop/models/subscription_get_params.rbi +0 -21
  462. data/rbi/lib/terminal-shop/models/subscription_list_params.rbi +0 -21
  463. data/rbi/lib/terminal-shop/models/token_create_params.rbi +0 -21
  464. data/rbi/lib/terminal-shop/models/token_delete_params.rbi +0 -21
  465. data/rbi/lib/terminal-shop/models/token_get_params.rbi +0 -21
  466. data/rbi/lib/terminal-shop/models/token_get_response.rbi +0 -23
  467. data/rbi/lib/terminal-shop/models/token_list_params.rbi +0 -21
  468. data/rbi/lib/terminal-shop/models/view_init_params.rbi +0 -21
  469. data/rbi/lib/terminal-shop/transport/base_client.rbi +0 -208
  470. data/rbi/lib/terminal-shop/transport/pooled_net_requester.rbi +0 -64
  471. data/rbi/lib/terminal-shop/type/array_of.rbi +0 -82
  472. data/rbi/lib/terminal-shop/type/base_model.rbi +0 -194
  473. data/rbi/lib/terminal-shop/type/base_page.rbi +0 -38
  474. data/rbi/lib/terminal-shop/type/boolean_model.rbi +0 -41
  475. data/rbi/lib/terminal-shop/type/converter.rbi +0 -101
  476. data/rbi/lib/terminal-shop/type/enum.rbi +0 -58
  477. data/rbi/lib/terminal-shop/type/hash_of.rbi +0 -85
  478. data/rbi/lib/terminal-shop/type/request_parameters.rbi +0 -20
  479. data/rbi/lib/terminal-shop/type/union.rbi +0 -68
  480. data/rbi/lib/terminal-shop/type/unknown.rbi +0 -37
  481. data/rbi/lib/terminal-shop/type.rbi +0 -23
  482. data/rbi/lib/terminal-shop/util.rbi +0 -281
  483. data/sig/terminal-shop/errors.rbs +0 -99
  484. data/sig/terminal-shop/models/address_delete_params.rbs +0 -14
  485. data/sig/terminal-shop/models/address_get_params.rbs +0 -14
  486. data/sig/terminal-shop/models/address_list_params.rbs +0 -14
  487. data/sig/terminal-shop/models/app_delete_params.rbs +0 -14
  488. data/sig/terminal-shop/models/app_get_params.rbs +0 -14
  489. data/sig/terminal-shop/models/app_list_params.rbs +0 -14
  490. data/sig/terminal-shop/models/card_collect_params.rbs +0 -14
  491. data/sig/terminal-shop/models/card_delete_params.rbs +0 -14
  492. data/sig/terminal-shop/models/card_get_params.rbs +0 -14
  493. data/sig/terminal-shop/models/card_list_params.rbs +0 -14
  494. data/sig/terminal-shop/models/cart_clear_params.rbs +0 -14
  495. data/sig/terminal-shop/models/cart_convert_params.rbs +0 -14
  496. data/sig/terminal-shop/models/cart_get_params.rbs +0 -14
  497. data/sig/terminal-shop/models/order_get_params.rbs +0 -14
  498. data/sig/terminal-shop/models/order_list_params.rbs +0 -14
  499. data/sig/terminal-shop/models/product_get_params.rbs +0 -14
  500. data/sig/terminal-shop/models/product_list_params.rbs +0 -14
  501. data/sig/terminal-shop/models/product_variant.rbs +0 -17
  502. data/sig/terminal-shop/models/profile_me_params.rbs +0 -14
  503. data/sig/terminal-shop/models/subscription_delete_params.rbs +0 -14
  504. data/sig/terminal-shop/models/subscription_get_params.rbs +0 -14
  505. data/sig/terminal-shop/models/subscription_list_params.rbs +0 -14
  506. data/sig/terminal-shop/models/token_create_params.rbs +0 -14
  507. data/sig/terminal-shop/models/token_delete_params.rbs +0 -14
  508. data/sig/terminal-shop/models/token_get_params.rbs +0 -14
  509. data/sig/terminal-shop/models/token_list_params.rbs +0 -14
  510. data/sig/terminal-shop/models/view_init_params.rbs +0 -14
  511. data/sig/terminal-shop/transport/base_client.rbs +0 -110
  512. data/sig/terminal-shop/transport/pooled_net_requester.rbs +0 -39
  513. data/sig/terminal-shop/type/array_of.rbs +0 -36
  514. data/sig/terminal-shop/type/base_model.rbs +0 -73
  515. data/sig/terminal-shop/type/base_page.rbs +0 -22
  516. data/sig/terminal-shop/type/boolean_model.rbs +0 -18
  517. data/sig/terminal-shop/type/converter.rbs +0 -42
  518. data/sig/terminal-shop/type/enum.rbs +0 -22
  519. data/sig/terminal-shop/type/hash_of.rbs +0 -36
  520. data/sig/terminal-shop/type/request_parameters.rbs +0 -13
  521. data/sig/terminal-shop/type/union.rbs +0 -40
  522. data/sig/terminal-shop/type/unknown.rbs +0 -18
  523. data/sig/terminal-shop/type.rbs +0 -22
  524. data/sig/terminal-shop/util.rbs +0 -136
  525. /data/sig/{terminal-shop → terminal_shop}/resources/address.rbs +0 -0
  526. /data/sig/{terminal-shop → terminal_shop}/resources/app.rbs +0 -0
  527. /data/sig/{terminal-shop → terminal_shop}/resources/card.rbs +0 -0
  528. /data/sig/{terminal-shop → terminal_shop}/resources/cart.rbs +0 -0
  529. /data/sig/{terminal-shop → terminal_shop}/resources/email.rbs +0 -0
  530. /data/sig/{terminal-shop → terminal_shop}/resources/order.rbs +0 -0
  531. /data/sig/{terminal-shop → terminal_shop}/resources/product.rbs +0 -0
  532. /data/sig/{terminal-shop → terminal_shop}/resources/profile.rbs +0 -0
  533. /data/sig/{terminal-shop → terminal_shop}/resources/token.rbs +0 -0
  534. /data/sig/{terminal-shop → terminal_shop}/resources/view.rbs +0 -0
@@ -1,182 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TerminalShop
4
- module Transport
5
- # @api private
6
- class PooledNetRequester
7
- # from the golang stdlib
8
- # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
9
- KEEP_ALIVE_TIMEOUT = 30
10
-
11
- class << self
12
- # @api private
13
- #
14
- # @param url [URI::Generic]
15
- #
16
- # @return [Net::HTTP]
17
- def connect(url)
18
- port =
19
- case [url.port, url.scheme]
20
- in [Integer, _]
21
- url.port
22
- in [nil, "http" | "ws"]
23
- Net::HTTP.http_default_port
24
- in [nil, "https" | "wss"]
25
- Net::HTTP.https_default_port
26
- end
27
-
28
- Net::HTTP.new(url.host, port).tap do
29
- _1.use_ssl = %w[https wss].include?(url.scheme)
30
- _1.max_retries = 0
31
- end
32
- end
33
-
34
- # @api private
35
- #
36
- # @param conn [Net::HTTP]
37
- # @param deadline [Float]
38
- def calibrate_socket_timeout(conn, deadline)
39
- timeout = deadline - TerminalShop::Util.monotonic_secs
40
- conn.open_timeout = conn.read_timeout = conn.write_timeout = conn.continue_timeout = timeout
41
- end
42
-
43
- # @api private
44
- #
45
- # @param request [Hash{Symbol=>Object}] .
46
- #
47
- # @option request [Symbol] :method
48
- #
49
- # @option request [URI::Generic] :url
50
- #
51
- # @option request [Hash{String=>String}] :headers
52
- #
53
- # @param blk [Proc]
54
- #
55
- # @yieldparam [String]
56
- # @return [Net::HTTPGenericRequest]
57
- def build_request(request, &blk)
58
- method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
59
- req = Net::HTTPGenericRequest.new(
60
- method.to_s.upcase,
61
- !body.nil?,
62
- method != :head,
63
- url.to_s
64
- )
65
-
66
- headers.each { req[_1] = _2 }
67
-
68
- case body
69
- in nil
70
- nil
71
- in String
72
- req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
73
- req.body_stream = TerminalShop::Util::ReadIOAdapter.new(body, &blk)
74
- in StringIO
75
- req["content-length"] ||= body.size.to_s unless req["transfer-encoding"]
76
- req.body_stream = TerminalShop::Util::ReadIOAdapter.new(body, &blk)
77
- in IO | Enumerator
78
- req["transfer-encoding"] ||= "chunked" unless req["content-length"]
79
- req.body_stream = TerminalShop::Util::ReadIOAdapter.new(body, &blk)
80
- end
81
-
82
- req
83
- end
84
- end
85
-
86
- # @api private
87
- #
88
- # @param url [URI::Generic]
89
- # @param deadline [Float]
90
- # @param blk [Proc]
91
- #
92
- # @raise [Timeout::Error]
93
- # @yieldparam [Net::HTTP]
94
- private def with_pool(url, deadline:, &blk)
95
- origin = TerminalShop::Util.uri_origin(url)
96
- timeout = deadline - TerminalShop::Util.monotonic_secs
97
- pool =
98
- @mutex.synchronize do
99
- @pools[origin] ||= ConnectionPool.new(size: @size) do
100
- self.class.connect(url)
101
- end
102
- end
103
-
104
- pool.with(timeout: timeout, &blk)
105
- end
106
-
107
- # @api private
108
- #
109
- # @param request [Hash{Symbol=>Object}] .
110
- #
111
- # @option request [Symbol] :method
112
- #
113
- # @option request [URI::Generic] :url
114
- #
115
- # @option request [Hash{String=>String}] :headers
116
- #
117
- # @option request [Object] :body
118
- #
119
- # @option request [Float] :deadline
120
- #
121
- # @return [Array(Integer, Net::HTTPResponse, Enumerable)]
122
- def execute(request)
123
- url, deadline = request.fetch_values(:url, :deadline)
124
-
125
- eof = false
126
- finished = false
127
- enum = Enumerator.new do |y|
128
- with_pool(url, deadline: deadline) do |conn|
129
- next if finished
130
-
131
- req = self.class.build_request(request) do
132
- self.class.calibrate_socket_timeout(conn, deadline)
133
- end
134
-
135
- self.class.calibrate_socket_timeout(conn, deadline)
136
- unless conn.started?
137
- conn.keep_alive_timeout = self.class::KEEP_ALIVE_TIMEOUT
138
- conn.start
139
- end
140
-
141
- self.class.calibrate_socket_timeout(conn, deadline)
142
- conn.request(req) do |rsp|
143
- y << [conn, req, rsp]
144
- break if finished
145
-
146
- rsp.read_body do |bytes|
147
- y << bytes
148
- break if finished
149
-
150
- self.class.calibrate_socket_timeout(conn, deadline)
151
- end
152
- eof = true
153
- end
154
- end
155
- rescue Timeout::Error
156
- raise TerminalShop::APITimeoutError
157
- end
158
-
159
- conn, _, response = enum.next
160
- body = TerminalShop::Util.fused_enum(enum, external: true) do
161
- finished = true
162
- tap do
163
- enum.next
164
- rescue StopIteration
165
- nil
166
- end
167
- conn.finish if !eof && conn&.started?
168
- end
169
- [Integer(response.code), response, (response.body = body)]
170
- end
171
-
172
- # @api private
173
- #
174
- # @param size [Integer]
175
- def initialize(size: Etc.nprocessors)
176
- @mutex = Mutex.new
177
- @size = size
178
- @pools = {}
179
- end
180
- end
181
- end
182
- end
@@ -1,112 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TerminalShop
4
- module Type
5
- # @api private
6
- #
7
- # @abstract
8
- #
9
- # Array of items of a given type.
10
- class ArrayOf
11
- include TerminalShop::Type::Converter
12
-
13
- # @param type_info [Hash{Symbol=>Object}, Proc, TerminalShop::Type::Converter, Class]
14
- #
15
- # @param spec [Hash{Symbol=>Object}] .
16
- #
17
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
18
- #
19
- # @option spec [Proc] :enum
20
- #
21
- # @option spec [Proc] :union
22
- #
23
- # @option spec [Boolean] :"nil?"
24
- def self.[](type_info, spec = {}) = new(type_info, spec)
25
-
26
- # @param other [Object]
27
- #
28
- # @return [Boolean]
29
- def ===(other) = other.is_a?(Array) && other.all?(item_type)
30
-
31
- # @param other [Object]
32
- #
33
- # @return [Boolean]
34
- def ==(other)
35
- other.is_a?(TerminalShop::ArrayOf) && other.nilable? == nilable? && other.item_type == item_type
36
- end
37
-
38
- # @api private
39
- #
40
- # @param value [Enumerable, Object]
41
- #
42
- # @param state [Hash{Symbol=>Object}] .
43
- #
44
- # @option state [Boolean, :strong] :strictness
45
- #
46
- # @option state [Hash{Symbol=>Object}] :exactness
47
- #
48
- # @option state [Integer] :branched
49
- #
50
- # @return [Array<Object>, Object]
51
- def coerce(value, state:)
52
- exactness = state.fetch(:exactness)
53
-
54
- unless value.is_a?(Array)
55
- exactness[:no] += 1
56
- return value
57
- end
58
-
59
- target = item_type
60
- exactness[:yes] += 1
61
- value
62
- .map do |item|
63
- case [nilable?, item]
64
- in [true, nil]
65
- exactness[:yes] += 1
66
- nil
67
- else
68
- TerminalShop::Type::Converter.coerce(target, item, state: state)
69
- end
70
- end
71
- end
72
-
73
- # @api private
74
- #
75
- # @param value [Enumerable, Object]
76
- #
77
- # @return [Array<Object>, Object]
78
- def dump(value)
79
- target = item_type
80
- value.is_a?(Array) ? value.map { TerminalShop::Type::Converter.dump(target, _1) } : super
81
- end
82
-
83
- # @api private
84
- #
85
- # @return [TerminalShop::Type::Converter, Class]
86
- protected def item_type = @item_type_fn.call
87
-
88
- # @api private
89
- #
90
- # @return [Boolean]
91
- protected def nilable? = @nilable
92
-
93
- # @api private
94
- #
95
- # @param type_info [Hash{Symbol=>Object}, Proc, TerminalShop::Type::Converter, Class]
96
- #
97
- # @param spec [Hash{Symbol=>Object}] .
98
- #
99
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
100
- #
101
- # @option spec [Proc] :enum
102
- #
103
- # @option spec [Proc] :union
104
- #
105
- # @option spec [Boolean] :"nil?"
106
- def initialize(type_info, spec = {})
107
- @item_type_fn = TerminalShop::Type::Converter.type_info(type_info || spec)
108
- @nilable = spec[:nil?]
109
- end
110
- end
111
- end
112
- end
@@ -1,364 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TerminalShop
4
- module Type
5
- # @abstract
6
- #
7
- # @example
8
- # # `product_api` is a `TerminalShop::Models::ProductAPI`
9
- # product_api => {
10
- # id: id,
11
- # description: description,
12
- # name: name
13
- # }
14
- class BaseModel
15
- extend TerminalShop::Type::Converter
16
-
17
- class << self
18
- # @api private
19
- #
20
- # Assumes superclass fields are totally defined before fields are accessed /
21
- # defined on subclasses.
22
- #
23
- # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
24
- def known_fields
25
- @known_fields ||= (self < TerminalShop::BaseModel ? superclass.known_fields.dup : {})
26
- end
27
-
28
- # @api private
29
- #
30
- # @return [Hash{Symbol=>Hash{Symbol=>Object}}]
31
- def fields
32
- known_fields.transform_values do |field|
33
- {**field.except(:type_fn), type: field.fetch(:type_fn).call}
34
- end
35
- end
36
-
37
- # @api private
38
- #
39
- # @param name_sym [Symbol]
40
- #
41
- # @param required [Boolean]
42
- #
43
- # @param type_info [Hash{Symbol=>Object}, Proc, TerminalShop::Type::Converter, Class]
44
- #
45
- # @param spec [Hash{Symbol=>Object}] .
46
- #
47
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
48
- #
49
- # @option spec [Proc] :enum
50
- #
51
- # @option spec [Proc] :union
52
- #
53
- # @option spec [Boolean] :"nil?"
54
- private def add_field(name_sym, required:, type_info:, spec:)
55
- type_fn, info =
56
- case type_info
57
- in Proc | TerminalShop::Type::Converter | Class
58
- [TerminalShop::Type::Converter.type_info({**spec, union: type_info}), spec]
59
- in Hash
60
- [TerminalShop::Type::Converter.type_info(type_info), type_info]
61
- end
62
-
63
- setter = "#{name_sym}="
64
- api_name = info.fetch(:api_name, name_sym)
65
- nilable = info[:nil?]
66
- const = if required && !nilable
67
- info.fetch(
68
- :const,
69
- TerminalShop::Util::OMIT
70
- )
71
- else
72
- TerminalShop::Util::OMIT
73
- end
74
-
75
- [name_sym, setter].each { undef_method(_1) } if known_fields.key?(name_sym)
76
-
77
- known_fields[name_sym] =
78
- {
79
- mode: @mode,
80
- api_name: api_name,
81
- required: required,
82
- nilable: nilable,
83
- const: const,
84
- type_fn: type_fn
85
- }
86
-
87
- define_method(setter) { @data.store(name_sym, _1) }
88
-
89
- define_method(name_sym) do
90
- target = type_fn.call
91
- value = @data.fetch(name_sym) { const == TerminalShop::Util::OMIT ? nil : const }
92
- state = {strictness: :strong, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0}
93
- if (nilable || !required) && value.nil?
94
- nil
95
- else
96
- TerminalShop::Type::Converter.coerce(
97
- target,
98
- value,
99
- state: state
100
- )
101
- end
102
- rescue StandardError
103
- cls = self.class.name.split("::").last
104
- # rubocop:disable Layout/LineLength
105
- message = "Failed to parse #{cls}.#{__method__} from #{value.class} to #{target.inspect}. To get the unparsed API response, use #{cls}[:#{__method__}]."
106
- # rubocop:enable Layout/LineLength
107
- raise TerminalShop::ConversionError.new(message)
108
- end
109
- end
110
-
111
- # @api private
112
- #
113
- # @param name_sym [Symbol]
114
- #
115
- # @param type_info [Hash{Symbol=>Object}, Proc, TerminalShop::Type::Converter, Class]
116
- #
117
- # @param spec [Hash{Symbol=>Object}] .
118
- #
119
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
120
- #
121
- # @option spec [Proc] :enum
122
- #
123
- # @option spec [Proc] :union
124
- #
125
- # @option spec [Boolean] :"nil?"
126
- def required(name_sym, type_info, spec = {})
127
- add_field(name_sym, required: true, type_info: type_info, spec: spec)
128
- end
129
-
130
- # @api private
131
- #
132
- # @param name_sym [Symbol]
133
- #
134
- # @param type_info [Hash{Symbol=>Object}, Proc, TerminalShop::Type::Converter, Class]
135
- #
136
- # @param spec [Hash{Symbol=>Object}] .
137
- #
138
- # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
139
- #
140
- # @option spec [Proc] :enum
141
- #
142
- # @option spec [Proc] :union
143
- #
144
- # @option spec [Boolean] :"nil?"
145
- def optional(name_sym, type_info, spec = {})
146
- add_field(name_sym, required: false, type_info: type_info, spec: spec)
147
- end
148
-
149
- # @api private
150
- #
151
- # `request_only` attributes not excluded from `.#coerce` when receiving responses
152
- # even if well behaved servers should not send them
153
- #
154
- # @param blk [Proc]
155
- private def request_only(&blk)
156
- @mode = :dump
157
- blk.call
158
- ensure
159
- @mode = nil
160
- end
161
-
162
- # @api private
163
- #
164
- # `response_only` attributes are omitted from `.#dump` when making requests
165
- #
166
- # @param blk [Proc]
167
- private def response_only(&blk)
168
- @mode = :coerce
169
- blk.call
170
- ensure
171
- @mode = nil
172
- end
173
-
174
- # @param other [Object]
175
- #
176
- # @return [Boolean]
177
- def ==(other) = other.is_a?(Class) && other <= TerminalShop::BaseModel && other.fields == fields
178
- end
179
-
180
- # @param other [Object]
181
- #
182
- # @return [Boolean]
183
- def ==(other) = self.class == other.class && @data == other.to_h
184
-
185
- class << self
186
- # @api private
187
- #
188
- # @param value [TerminalShop::BaseModel, Hash{Object=>Object}, Object]
189
- #
190
- # @param state [Hash{Symbol=>Object}] .
191
- #
192
- # @option state [Boolean, :strong] :strictness
193
- #
194
- # @option state [Hash{Symbol=>Object}] :exactness
195
- #
196
- # @option state [Integer] :branched
197
- #
198
- # @return [TerminalShop::BaseModel, Object]
199
- def coerce(value, state:)
200
- exactness = state.fetch(:exactness)
201
-
202
- if value.is_a?(self.class)
203
- exactness[:yes] += 1
204
- return value
205
- end
206
-
207
- unless (val = TerminalShop::Util.coerce_hash(value)).is_a?(Hash)
208
- exactness[:no] += 1
209
- return value
210
- end
211
- exactness[:yes] += 1
212
-
213
- keys = val.keys.to_set
214
- instance = new
215
- data = instance.to_h
216
-
217
- # rubocop:disable Metrics/BlockLength
218
- fields.each do |name, field|
219
- mode, required, target = field.fetch_values(:mode, :required, :type)
220
- api_name, nilable, const = field.fetch_values(:api_name, :nilable, :const)
221
-
222
- unless val.key?(api_name)
223
- if required && mode != :dump && const == TerminalShop::Util::OMIT
224
- exactness[nilable ? :maybe : :no] += 1
225
- else
226
- exactness[:yes] += 1
227
- end
228
- next
229
- end
230
-
231
- item = val.fetch(api_name)
232
- keys.delete(api_name)
233
-
234
- converted =
235
- if item.nil? && (nilable || !required)
236
- exactness[nilable ? :yes : :maybe] += 1
237
- nil
238
- else
239
- coerced = TerminalShop::Type::Converter.coerce(target, item, state: state)
240
- case target
241
- in TerminalShop::Type::Converter | Symbol
242
- coerced
243
- else
244
- item
245
- end
246
- end
247
- data.store(name, converted)
248
- end
249
- # rubocop:enable Metrics/BlockLength
250
-
251
- keys.each { data.store(_1, val.fetch(_1)) }
252
- instance
253
- end
254
-
255
- # @api private
256
- #
257
- # @param value [TerminalShop::BaseModel, Object]
258
- #
259
- # @return [Hash{Object=>Object}, Object]
260
- def dump(value)
261
- unless (coerced = TerminalShop::Util.coerce_hash(value)).is_a?(Hash)
262
- return super
263
- end
264
-
265
- acc = {}
266
-
267
- coerced.each do |key, val|
268
- name = key.is_a?(String) ? key.to_sym : key
269
- case (field = known_fields[name])
270
- in nil
271
- acc.store(name, super(val))
272
- else
273
- mode, api_name, type_fn = field.fetch_values(:mode, :api_name, :type_fn)
274
- case mode
275
- in :coerce
276
- next
277
- else
278
- target = type_fn.call
279
- acc.store(api_name, TerminalShop::Type::Converter.dump(target, val))
280
- end
281
- end
282
- end
283
-
284
- known_fields.each_value do |field|
285
- mode, api_name, const = field.fetch_values(:mode, :api_name, :const)
286
- next if mode == :coerce || acc.key?(api_name) || const == TerminalShop::Util::OMIT
287
- acc.store(api_name, const)
288
- end
289
-
290
- acc
291
- end
292
- end
293
-
294
- # Returns the raw value associated with the given key, if found. Otherwise, nil is
295
- # returned.
296
- #
297
- # It is valid to lookup keys that are not in the API spec, for example to access
298
- # undocumented features. This method does not parse response data into
299
- # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
300
- #
301
- # @param key [Symbol]
302
- #
303
- # @return [Object, nil]
304
- def [](key)
305
- unless key.instance_of?(Symbol)
306
- raise ArgumentError.new("Expected symbol key for lookup, got #{key.inspect}")
307
- end
308
-
309
- @data[key]
310
- end
311
-
312
- # Returns a Hash of the data underlying this object. O(1)
313
- #
314
- # Keys are Symbols and values are the raw values from the response. The return
315
- # value indicates which values were ever set on the object. i.e. there will be a
316
- # key in this hash if they ever were, even if the set value was nil.
317
- #
318
- # This method is not recursive. The returned value is shared by the object, so it
319
- # should not be mutated.
320
- #
321
- # @return [Hash{Symbol=>Object}]
322
- def to_h = @data
323
-
324
- alias_method :to_hash, :to_h
325
-
326
- # @param keys [Array<Symbol>, nil]
327
- #
328
- # @return [Hash{Symbol=>Object}]
329
- def deconstruct_keys(keys)
330
- (keys || self.class.known_fields.keys)
331
- .filter_map do |k|
332
- unless self.class.known_fields.key?(k)
333
- next
334
- end
335
-
336
- [k, public_send(k)]
337
- end
338
- .to_h
339
- end
340
-
341
- # Create a new instance of a model.
342
- #
343
- # @param data [Hash{Symbol=>Object}, TerminalShop::BaseModel]
344
- def initialize(data = {})
345
- case TerminalShop::Util.coerce_hash(data)
346
- in Hash => coerced
347
- @data = coerced
348
- else
349
- raise ArgumentError.new("Expected a #{Hash} or #{TerminalShop::BaseModel}, got #{data.inspect}")
350
- end
351
- end
352
-
353
- # @return [String]
354
- def inspect
355
- rows = self.class.known_fields.keys.map do
356
- "#{_1}=#{@data.key?(_1) ? public_send(_1) : ''}"
357
- rescue TerminalShop::ConversionError
358
- "#{_1}=#{@data.fetch(_1)}"
359
- end
360
- "#<#{self.class.name}:0x#{object_id.to_s(16)} #{rows.join(' ')}>"
361
- end
362
- end
363
- end
364
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TerminalShop
4
- module Type
5
- # @example
6
- # if page.has_next?
7
- # page = page.next_page
8
- # end
9
- #
10
- # @example
11
- # page.auto_paging_each do |product|
12
- # puts(product)
13
- # end
14
- #
15
- # @example
16
- # products =
17
- # page
18
- # .to_enum
19
- # .lazy
20
- # .select { _1.object_id.even? }
21
- # .map(&:itself)
22
- # .take(2)
23
- # .to_a
24
- #
25
- # products => Array
26
- module BasePage
27
- # rubocop:disable Lint/UnusedMethodArgument
28
-
29
- # @return [Boolean]
30
- def next_page? = (raise NotImplementedError)
31
-
32
- # @raise [TerminalShop::APIError]
33
- # @return [TerminalShop::Type::BasePage]
34
- def next_page = (raise NotImplementedError)
35
-
36
- # @param blk [Proc]
37
- #
38
- # @return [void]
39
- def auto_paging_each(&blk) = (raise NotImplementedError)
40
-
41
- # @return [Enumerable]
42
- def to_enum = super(:auto_paging_each)
43
-
44
- alias_method :enum_for, :to_enum
45
-
46
- # @api private
47
- #
48
- # @param client [TerminalShop::Transport::BaseClient]
49
- # @param req [Hash{Symbol=>Object}]
50
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
51
- # @param page_data [Object]
52
- def initialize(client:, req:, headers:, page_data:)
53
- @client = client
54
- @req = req
55
- super()
56
- end
57
-
58
- # rubocop:enable Lint/UnusedMethodArgument
59
- end
60
- end
61
- end