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,726 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TerminalShop
4
- # rubocop:disable Metrics/ModuleLength
5
-
6
- # @api private
7
- module Util
8
- # @api private
9
- #
10
- # @return [Float]
11
- def self.monotonic_secs = Process.clock_gettime(Process::CLOCK_MONOTONIC)
12
-
13
- class << self
14
- # @api private
15
- #
16
- # @return [String]
17
- def arch
18
- case (arch = RbConfig::CONFIG["arch"])&.downcase
19
- in nil
20
- "unknown"
21
- in /aarch64|arm64/
22
- "arm64"
23
- in /x86_64/
24
- "x64"
25
- in /arm/
26
- "arm"
27
- else
28
- "other:#{arch}"
29
- end
30
- end
31
-
32
- # @api private
33
- #
34
- # @return [String]
35
- def os
36
- case (host = RbConfig::CONFIG["host_os"])&.downcase
37
- in nil
38
- "Unknown"
39
- in /linux/
40
- "Linux"
41
- in /darwin/
42
- "MacOS"
43
- in /freebsd/
44
- "FreeBSD"
45
- in /openbsd/
46
- "OpenBSD"
47
- in /mswin|mingw|cygwin|ucrt/
48
- "Windows"
49
- else
50
- "Other:#{host}"
51
- end
52
- end
53
- end
54
-
55
- class << self
56
- # @api private
57
- #
58
- # @param input [Object]
59
- #
60
- # @return [Boolean]
61
- def primitive?(input)
62
- case input
63
- in true | false | Integer | Float | Symbol | String
64
- true
65
- else
66
- false
67
- end
68
- end
69
-
70
- # @api private
71
- #
72
- # @param input [Object]
73
- #
74
- # @return [Boolean, Object]
75
- def coerce_boolean(input)
76
- case input.is_a?(String) ? input.downcase : input
77
- in Numeric
78
- input.nonzero?
79
- in "true"
80
- true
81
- in "false"
82
- false
83
- else
84
- input
85
- end
86
- end
87
-
88
- # @api private
89
- #
90
- # @param input [Object]
91
- #
92
- # @raise [ArgumentError]
93
- # @return [Boolean, nil]
94
- def coerce_boolean!(input)
95
- case coerce_boolean(input)
96
- in true | false | nil => coerced
97
- coerced
98
- else
99
- raise ArgumentError.new("Unable to coerce #{input.inspect} into boolean value")
100
- end
101
- end
102
-
103
- # @api private
104
- #
105
- # @param input [Object]
106
- #
107
- # @return [Integer, Object]
108
- def coerce_integer(input)
109
- case input
110
- in true
111
- 1
112
- in false
113
- 0
114
- else
115
- Integer(input, exception: false) || input
116
- end
117
- end
118
-
119
- # @api private
120
- #
121
- # @param input [Object]
122
- #
123
- # @return [Float, Object]
124
- def coerce_float(input)
125
- case input
126
- in true
127
- 1.0
128
- in false
129
- 0.0
130
- else
131
- Float(input, exception: false) || input
132
- end
133
- end
134
-
135
- # @api private
136
- #
137
- # @param input [Object]
138
- #
139
- # @return [Hash{Object=>Object}, Object]
140
- def coerce_hash(input)
141
- case input
142
- in NilClass | Array | Set | Enumerator
143
- input
144
- else
145
- input.respond_to?(:to_h) ? input.to_h : input
146
- end
147
- end
148
- end
149
-
150
- # Use this to indicate that a value should be explicitly removed from a data
151
- # structure when using `TerminalShop::Util.deep_merge`.
152
- #
153
- # e.g. merging `{a: 1}` and `{a: OMIT}` should produce `{}`, where merging
154
- # `{a: 1}` and `{}` would produce `{a: 1}`.
155
- OMIT = Object.new.freeze
156
-
157
- class << self
158
- # @api private
159
- #
160
- # @param lhs [Object]
161
- # @param rhs [Object]
162
- # @param concat [Boolean]
163
- #
164
- # @return [Object]
165
- private def deep_merge_lr(lhs, rhs, concat: false)
166
- case [lhs, rhs, concat]
167
- in [Hash, Hash, _]
168
- rhs_cleaned = rhs.reject { _2 == TerminalShop::Util::OMIT }
169
- lhs
170
- .reject { |key, _| rhs[key] == TerminalShop::Util::OMIT }
171
- .merge(rhs_cleaned) do |_, old_val, new_val|
172
- deep_merge_lr(old_val, new_val, concat: concat)
173
- end
174
- in [Array, Array, true]
175
- lhs.concat(rhs)
176
- else
177
- rhs
178
- end
179
- end
180
-
181
- # @api private
182
- #
183
- # Recursively merge one hash with another. If the values at a given key are not
184
- # both hashes, just take the new value.
185
- #
186
- # @param values [Array<Object>]
187
- #
188
- # @param sentinel [Object, nil] the value to return if no values are provided.
189
- #
190
- # @param concat [Boolean] whether to merge sequences by concatenation.
191
- #
192
- # @return [Object]
193
- def deep_merge(*values, sentinel: nil, concat: false)
194
- case values
195
- in [value, *values]
196
- values.reduce(value) do |acc, val|
197
- deep_merge_lr(acc, val, concat: concat)
198
- end
199
- else
200
- sentinel
201
- end
202
- end
203
-
204
- # @api private
205
- #
206
- # @param data [Hash{Symbol=>Object}, Array<Object>, Object]
207
- # @param pick [Symbol, Integer, Array<Symbol, Integer>, nil]
208
- # @param sentinel [Object, nil]
209
- # @param blk [Proc, nil]
210
- #
211
- # @return [Object, nil]
212
- def dig(data, pick, sentinel = nil, &blk)
213
- case [data, pick, blk]
214
- in [_, nil, nil]
215
- data
216
- in [Hash, Symbol, _] | [Array, Integer, _]
217
- blk.nil? ? data.fetch(pick, sentinel) : data.fetch(pick, &blk)
218
- in [Hash | Array, Array, _]
219
- pick.reduce(data) do |acc, key|
220
- case acc
221
- in Hash if acc.key?(key)
222
- acc.fetch(key)
223
- in Array if key.is_a?(Integer) && key < acc.length
224
- acc[key]
225
- else
226
- return blk.nil? ? sentinel : blk.call
227
- end
228
- end
229
- in _
230
- blk.nil? ? sentinel : blk.call
231
- end
232
- end
233
- end
234
-
235
- class << self
236
- # @api private
237
- #
238
- # @param uri [URI::Generic]
239
- #
240
- # @return [String]
241
- def uri_origin(uri)
242
- "#{uri.scheme}://#{uri.host}#{uri.port == uri.default_port ? '' : ":#{uri.port}"}"
243
- end
244
-
245
- # @api private
246
- #
247
- # @param path [String, Array<String>]
248
- #
249
- # @return [String]
250
- def interpolate_path(path)
251
- case path
252
- in String
253
- path
254
- in []
255
- ""
256
- in [String => p, *interpolations]
257
- encoded = interpolations.map { ERB::Util.url_encode(_1) }
258
- format(p, *encoded)
259
- end
260
- end
261
- end
262
-
263
- class << self
264
- # @api private
265
- #
266
- # @param query [String, nil]
267
- #
268
- # @return [Hash{String=>Array<String>}]
269
- def decode_query(query)
270
- CGI.parse(query.to_s)
271
- end
272
-
273
- # @api private
274
- #
275
- # @param query [Hash{String=>Array<String>, String, nil}, nil]
276
- #
277
- # @return [String, nil]
278
- def encode_query(query)
279
- query.to_h.empty? ? nil : URI.encode_www_form(query)
280
- end
281
- end
282
-
283
- class << self
284
- # @api private
285
- #
286
- # @param url [URI::Generic, String]
287
- #
288
- # @return [Hash{Symbol=>String, Integer, nil}]
289
- def parse_uri(url)
290
- parsed = URI::Generic.component.zip(URI.split(url)).to_h
291
- {**parsed, query: decode_query(parsed.fetch(:query))}
292
- end
293
-
294
- # @api private
295
- #
296
- # @param parsed [Hash{Symbol=>String, Integer, nil}] .
297
- #
298
- # @option parsed [String, nil] :scheme
299
- #
300
- # @option parsed [String, nil] :host
301
- #
302
- # @option parsed [Integer, nil] :port
303
- #
304
- # @option parsed [String, nil] :path
305
- #
306
- # @option parsed [Hash{String=>Array<String>}] :query
307
- #
308
- # @return [URI::Generic]
309
- def unparse_uri(parsed)
310
- URI::Generic.build(**parsed, query: encode_query(parsed.fetch(:query)))
311
- end
312
-
313
- # @api private
314
- #
315
- # @param lhs [Hash{Symbol=>String, Integer, nil}] .
316
- #
317
- # @option lhs [String, nil] :scheme
318
- #
319
- # @option lhs [String, nil] :host
320
- #
321
- # @option lhs [Integer, nil] :port
322
- #
323
- # @option lhs [String, nil] :path
324
- #
325
- # @option lhs [Hash{String=>Array<String>}] :query
326
- #
327
- # @param rhs [Hash{Symbol=>String, Integer, nil}] .
328
- #
329
- # @option rhs [String, nil] :scheme
330
- #
331
- # @option rhs [String, nil] :host
332
- #
333
- # @option rhs [Integer, nil] :port
334
- #
335
- # @option rhs [String, nil] :path
336
- #
337
- # @option rhs [Hash{String=>Array<String>}] :query
338
- #
339
- # @return [URI::Generic]
340
- def join_parsed_uri(lhs, rhs)
341
- base_path, base_query = lhs.fetch_values(:path, :query)
342
- slashed = base_path.end_with?("/") ? base_path : "#{base_path}/"
343
-
344
- parsed_path, parsed_query = parse_uri(rhs.fetch(:path)).fetch_values(:path, :query)
345
- override = URI::Generic.build(**rhs.slice(:scheme, :host, :port), path: parsed_path)
346
-
347
- joined = URI.join(URI::Generic.build(lhs.except(:path, :query)), slashed, override)
348
- query = deep_merge(
349
- joined.path == base_path ? base_query : {},
350
- parsed_query,
351
- rhs[:query].to_h,
352
- concat: true
353
- )
354
-
355
- joined.query = encode_query(query)
356
- joined
357
- end
358
- end
359
-
360
- class << self
361
- # @api private
362
- #
363
- # @param headers [Hash{String=>String, Integer, Array<String, Integer, nil>, nil}]
364
- #
365
- # @return [Hash{String=>String}]
366
- def normalized_headers(*headers)
367
- {}.merge(*headers.compact).to_h do |key, 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]
376
- end
377
- end
378
- end
379
-
380
- # @api private
381
- #
382
- # An adapter that satisfies the IO interface required by `::IO.copy_stream`
383
- class ReadIOAdapter
384
- # @api private
385
- #
386
- # @param max_len [Integer, nil]
387
- #
388
- # @return [String]
389
- private def read_enum(max_len)
390
- case max_len
391
- in nil
392
- @stream.to_a.join
393
- in Integer
394
- @buf << @stream.next while @buf.length < max_len
395
- @buf.slice!(..max_len)
396
- end
397
- rescue StopIteration
398
- @stream = nil
399
- @buf.slice!(0..)
400
- end
401
-
402
- # @api private
403
- #
404
- # @param max_len [Integer, nil]
405
- # @param out_string [String, nil]
406
- #
407
- # @return [String, nil]
408
- def read(max_len = nil, out_string = nil)
409
- case @stream
410
- in nil
411
- nil
412
- in IO | StringIO
413
- @stream.read(max_len, out_string)
414
- in Enumerator
415
- read = read_enum(max_len)
416
- case out_string
417
- in String
418
- out_string.replace(read)
419
- in nil
420
- read
421
- end
422
- end
423
- .tap(&@blk)
424
- end
425
-
426
- # @api private
427
- #
428
- # @param stream [String, IO, StringIO, Enumerable]
429
- # @param blk [Proc]
430
- #
431
- # @yieldparam [String]
432
- def initialize(stream, &blk)
433
- @stream = stream.is_a?(String) ? StringIO.new(stream) : stream
434
- @buf = String.new.b
435
- @blk = blk
436
- end
437
- end
438
-
439
- class << self
440
- # @param blk [Proc]
441
- #
442
- # @yieldparam [Enumerator::Yielder]
443
- # @return [Enumerable]
444
- def string_io(&blk)
445
- Enumerator.new do |y|
446
- y.define_singleton_method(:write) do
447
- self << _1.clone
448
- _1.bytesize
449
- end
450
-
451
- blk.call(y)
452
- end
453
- end
454
- end
455
-
456
- class << self
457
- # rubocop:disable Naming/MethodParameterName
458
-
459
- # @api private
460
- #
461
- # @param y [Enumerator::Yielder]
462
- # @param boundary [String]
463
- # @param key [Symbol, String]
464
- # @param val [Object]
465
- private def encode_multipart_formdata(y, boundary:, key:, val:)
466
- y << "--#{boundary}\r\n"
467
- y << "Content-Disposition: form-data"
468
- unless key.nil?
469
- name = ERB::Util.url_encode(key.to_s)
470
- y << "; name=\"#{name}\""
471
- end
472
- if val.is_a?(IO)
473
- filename = ERB::Util.url_encode(File.basename(val.to_path))
474
- y << "; filename=\"#{filename}\""
475
- end
476
- y << "\r\n"
477
- case val
478
- in IO
479
- y << "Content-Type: application/octet-stream\r\n\r\n"
480
- IO.copy_stream(val, y)
481
- in StringIO
482
- y << "Content-Type: application/octet-stream\r\n\r\n"
483
- y << val.string
484
- in String
485
- y << "Content-Type: application/octet-stream\r\n\r\n"
486
- y << val.to_s
487
- in true | false | Integer | Float | Symbol
488
- y << "Content-Type: text/plain\r\n\r\n"
489
- y << val.to_s
490
- else
491
- y << "Content-Type: application/json\r\n\r\n"
492
- y << JSON.fast_generate(val)
493
- end
494
- y << "\r\n"
495
- end
496
-
497
- # rubocop:enable Naming/MethodParameterName
498
-
499
- # @api private
500
- #
501
- # @param body [Object]
502
- #
503
- # @return [Array(String, Enumerable)]
504
- private def encode_multipart_streaming(body)
505
- boundary = SecureRandom.urlsafe_base64(60)
506
-
507
- strio = string_io do |y|
508
- case body
509
- in Hash
510
- body.each do |key, val|
511
- case val
512
- in Array if val.all? { primitive?(_1) }
513
- val.each do |v|
514
- encode_multipart_formdata(y, boundary: boundary, key: key, val: v)
515
- end
516
- else
517
- encode_multipart_formdata(y, boundary: boundary, key: key, val: val)
518
- end
519
- end
520
- else
521
- encode_multipart_formdata(y, boundary: boundary, key: nil, val: body)
522
- end
523
- y << "--#{boundary}--\r\n"
524
- end
525
-
526
- [boundary, strio]
527
- end
528
-
529
- # @api private
530
- #
531
- # @param headers [Hash{String=>String}]
532
- # @param body [Object]
533
- #
534
- # @return [Object]
535
- def encode_content(headers, body)
536
- content_type = headers["content-type"]
537
- case [content_type, body]
538
- in [%r{^application/(?:vnd\.api\+)?json}, Hash | Array]
539
- [headers, JSON.fast_generate(body)]
540
- in [%r{^application/(?:x-)?jsonl}, Enumerable]
541
- [headers, body.lazy.map { JSON.fast_generate(_1) }]
542
- in [%r{^multipart/form-data}, Hash | IO | StringIO]
543
- boundary, strio = encode_multipart_streaming(body)
544
- headers = {**headers, "content-type" => "#{content_type}; boundary=#{boundary}"}
545
- [headers, strio]
546
- in [_, StringIO]
547
- [headers, body.string]
548
- else
549
- [headers, body]
550
- end
551
- end
552
-
553
- # @api private
554
- #
555
- # @param headers [Hash{String=>String}, Net::HTTPHeader]
556
- # @param stream [Enumerable]
557
- # @param suppress_error [Boolean]
558
- #
559
- # @raise [JSON::ParserError]
560
- # @return [Object]
561
- def decode_content(headers, stream:, suppress_error: false)
562
- case headers["content-type"]
563
- in %r{^application/(?:vnd\.api\+)?json}
564
- json = stream.to_a.join
565
- begin
566
- JSON.parse(json, symbolize_names: true)
567
- rescue JSON::ParserError => e
568
- raise e unless suppress_error
569
- json
570
- end
571
- in %r{^application/(?:x-)?jsonl}
572
- lines = decode_lines(stream)
573
- chain_fused(lines) do |y|
574
- lines.each { y << JSON.parse(_1, symbolize_names: true) }
575
- end
576
- in %r{^text/event-stream}
577
- lines = decode_lines(stream)
578
- decode_sse(lines)
579
- in %r{^text/}
580
- stream.to_a.join
581
- else
582
- # TODO: parsing other response types
583
- StringIO.new(stream.to_a.join)
584
- end
585
- end
586
- end
587
-
588
- class << self
589
- # @api private
590
- #
591
- # https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
592
- #
593
- # @param enum [Enumerable]
594
- # @param external [Boolean]
595
- # @param close [Proc]
596
- #
597
- # @return [Enumerable]
598
- def fused_enum(enum, external: false, &close)
599
- fused = false
600
- iter = Enumerator.new do |y|
601
- next if fused
602
-
603
- fused = true
604
- if external
605
- loop { y << enum.next }
606
- else
607
- enum.each(&y)
608
- end
609
- ensure
610
- close&.call
611
- close = nil
612
- end
613
-
614
- iter.define_singleton_method(:rewind) do
615
- fused = true
616
- self
617
- end
618
- iter
619
- end
620
-
621
- # @api private
622
- #
623
- # @param enum [Enumerable, nil]
624
- def close_fused!(enum)
625
- return unless enum.is_a?(Enumerator)
626
-
627
- # rubocop:disable Lint/UnreachableLoop
628
- enum.rewind.each { break }
629
- # rubocop:enable Lint/UnreachableLoop
630
- end
631
-
632
- # @api private
633
- #
634
- # @param enum [Enumerable, nil]
635
- # @param blk [Proc]
636
- #
637
- # @yieldparam [Enumerator::Yielder]
638
- # @return [Enumerable]
639
- def chain_fused(enum, &blk)
640
- iter = Enumerator.new { blk.call(_1) }
641
- fused_enum(iter) { close_fused!(enum) }
642
- end
643
- end
644
-
645
- class << self
646
- # @api private
647
- #
648
- # @param enum [Enumerable]
649
- #
650
- # @return [Enumerable]
651
- def decode_lines(enum)
652
- re = /(\r\n|\r|\n)/
653
- buffer = String.new.b
654
- cr_seen = nil
655
-
656
- chain_fused(enum) do |y|
657
- enum.each do |row|
658
- offset = buffer.bytesize
659
- buffer << row
660
- while (match = re.match(buffer, cr_seen&.to_i || offset))
661
- case [match.captures.first, cr_seen]
662
- in ["\r", nil]
663
- cr_seen = match.end(1)
664
- next
665
- in ["\r" | "\r\n", Integer]
666
- y << buffer.slice!(..(cr_seen.pred))
667
- else
668
- y << buffer.slice!(..(match.end(1).pred))
669
- end
670
- offset = 0
671
- cr_seen = nil
672
- end
673
- end
674
-
675
- y << buffer.slice!(..(cr_seen.pred)) unless cr_seen.nil?
676
- y << buffer unless buffer.empty?
677
- end
678
- end
679
-
680
- # @api private
681
- #
682
- # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
683
- #
684
- # @param lines [Enumerable]
685
- #
686
- # @return [Hash{Symbol=>Object}]
687
- def decode_sse(lines)
688
- # rubocop:disable Metrics/BlockLength
689
- chain_fused(lines) do |y|
690
- blank = {event: nil, data: nil, id: nil, retry: nil}
691
- current = {}
692
-
693
- lines.each do |line|
694
- case line.sub(/\R$/, "")
695
- in ""
696
- next if current.empty?
697
- y << {**blank, **current}
698
- current = {}
699
- in /^:/
700
- next
701
- in /^([^:]+):\s?(.*)$/
702
- field, value = Regexp.last_match.captures
703
- case field
704
- in "event"
705
- current.merge!(event: value)
706
- in "data"
707
- (current[:data] ||= String.new.b) << (value << "\n")
708
- in "id" unless value.include?("\0")
709
- current.merge!(id: value)
710
- in "retry" if /^\d+$/ =~ value
711
- current.merge!(retry: Integer(value))
712
- else
713
- end
714
- else
715
- end
716
- end
717
- # rubocop:enable Metrics/BlockLength
718
-
719
- y << {**blank, **current} unless current.empty?
720
- end
721
- end
722
- end
723
- end
724
-
725
- # rubocop:enable Metrics/ModuleLength
726
- end