terminal-shop 0.1.0.pre.alpha.5

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 (276) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +127 -0
  3. data/lib/terminal-shop/base_client.rb +452 -0
  4. data/lib/terminal-shop/base_model.rb +1189 -0
  5. data/lib/terminal-shop/base_page.rb +44 -0
  6. data/lib/terminal-shop/client.rb +135 -0
  7. data/lib/terminal-shop/errors.rb +187 -0
  8. data/lib/terminal-shop/extern.rb +10 -0
  9. data/lib/terminal-shop/models/address.rb +101 -0
  10. data/lib/terminal-shop/models/address_create_params.rb +86 -0
  11. data/lib/terminal-shop/models/address_create_response.rb +26 -0
  12. data/lib/terminal-shop/models/address_delete_params.rb +18 -0
  13. data/lib/terminal-shop/models/address_delete_response.rb +25 -0
  14. data/lib/terminal-shop/models/address_list_params.rb +18 -0
  15. data/lib/terminal-shop/models/address_list_response.rb +26 -0
  16. data/lib/terminal-shop/models/app.rb +44 -0
  17. data/lib/terminal-shop/models/app_create_params.rb +18 -0
  18. data/lib/terminal-shop/models/app_create_response.rb +54 -0
  19. data/lib/terminal-shop/models/app_delete_params.rb +18 -0
  20. data/lib/terminal-shop/models/app_delete_response.rb +25 -0
  21. data/lib/terminal-shop/models/app_get_params.rb +18 -0
  22. data/lib/terminal-shop/models/app_get_response.rb +26 -0
  23. data/lib/terminal-shop/models/app_list_params.rb +18 -0
  24. data/lib/terminal-shop/models/app_list_response.rb +26 -0
  25. data/lib/terminal-shop/models/card.rb +83 -0
  26. data/lib/terminal-shop/models/card_collect_params.rb +18 -0
  27. data/lib/terminal-shop/models/card_collect_response.rb +50 -0
  28. data/lib/terminal-shop/models/card_create_params.rb +26 -0
  29. data/lib/terminal-shop/models/card_create_response.rb +26 -0
  30. data/lib/terminal-shop/models/card_delete_params.rb +18 -0
  31. data/lib/terminal-shop/models/card_delete_response.rb +25 -0
  32. data/lib/terminal-shop/models/card_list_params.rb +18 -0
  33. data/lib/terminal-shop/models/card_list_response.rb +26 -0
  34. data/lib/terminal-shop/models/cart.rb +200 -0
  35. data/lib/terminal-shop/models/cart_convert_params.rb +18 -0
  36. data/lib/terminal-shop/models/cart_convert_response.rb +26 -0
  37. data/lib/terminal-shop/models/cart_get_params.rb +18 -0
  38. data/lib/terminal-shop/models/cart_get_response.rb +26 -0
  39. data/lib/terminal-shop/models/cart_set_address_params.rb +25 -0
  40. data/lib/terminal-shop/models/cart_set_address_response.rb +25 -0
  41. data/lib/terminal-shop/models/cart_set_card_params.rb +25 -0
  42. data/lib/terminal-shop/models/cart_set_card_response.rb +25 -0
  43. data/lib/terminal-shop/models/cart_set_item_params.rb +32 -0
  44. data/lib/terminal-shop/models/cart_set_item_response.rb +26 -0
  45. data/lib/terminal-shop/models/email_create_params.rb +25 -0
  46. data/lib/terminal-shop/models/email_create_response.rb +25 -0
  47. data/lib/terminal-shop/models/order.rb +303 -0
  48. data/lib/terminal-shop/models/order_get_params.rb +18 -0
  49. data/lib/terminal-shop/models/order_get_response.rb +26 -0
  50. data/lib/terminal-shop/models/order_list_params.rb +18 -0
  51. data/lib/terminal-shop/models/order_list_response.rb +26 -0
  52. data/lib/terminal-shop/models/product.rb +141 -0
  53. data/lib/terminal-shop/models/product_list_params.rb +18 -0
  54. data/lib/terminal-shop/models/product_list_response.rb +26 -0
  55. data/lib/terminal-shop/models/product_variant.rb +44 -0
  56. data/lib/terminal-shop/models/profile.rb +83 -0
  57. data/lib/terminal-shop/models/profile_me_params.rb +18 -0
  58. data/lib/terminal-shop/models/profile_me_response.rb +26 -0
  59. data/lib/terminal-shop/models/profile_update_params.rb +32 -0
  60. data/lib/terminal-shop/models/profile_update_response.rb +26 -0
  61. data/lib/terminal-shop/models/subscription.rb +113 -0
  62. data/lib/terminal-shop/models/subscription_create_params.rb +18 -0
  63. data/lib/terminal-shop/models/subscription_create_response.rb +25 -0
  64. data/lib/terminal-shop/models/subscription_delete_params.rb +18 -0
  65. data/lib/terminal-shop/models/subscription_delete_response.rb +25 -0
  66. data/lib/terminal-shop/models/subscription_list_params.rb +18 -0
  67. data/lib/terminal-shop/models/subscription_list_response.rb +26 -0
  68. data/lib/terminal-shop/models/token.rb +68 -0
  69. data/lib/terminal-shop/models/token_create_params.rb +18 -0
  70. data/lib/terminal-shop/models/token_create_response.rb +55 -0
  71. data/lib/terminal-shop/models/token_delete_params.rb +18 -0
  72. data/lib/terminal-shop/models/token_delete_response.rb +25 -0
  73. data/lib/terminal-shop/models/token_get_params.rb +18 -0
  74. data/lib/terminal-shop/models/token_get_response.rb +27 -0
  75. data/lib/terminal-shop/models/token_list_params.rb +18 -0
  76. data/lib/terminal-shop/models/token_list_response.rb +26 -0
  77. data/lib/terminal-shop/models/view_init_params.rb +18 -0
  78. data/lib/terminal-shop/models/view_init_response.rb +103 -0
  79. data/lib/terminal-shop/pooled_net_requester.rb +94 -0
  80. data/lib/terminal-shop/request_options.rb +115 -0
  81. data/lib/terminal-shop/resources/address.rb +84 -0
  82. data/lib/terminal-shop/resources/app.rb +93 -0
  83. data/lib/terminal-shop/resources/card.rb +89 -0
  84. data/lib/terminal-shop/resources/cart.rb +112 -0
  85. data/lib/terminal-shop/resources/email.rb +34 -0
  86. data/lib/terminal-shop/resources/order.rb +49 -0
  87. data/lib/terminal-shop/resources/product.rb +30 -0
  88. data/lib/terminal-shop/resources/profile.rb +53 -0
  89. data/lib/terminal-shop/resources/subscription.rb +82 -0
  90. data/lib/terminal-shop/resources/token.rb +85 -0
  91. data/lib/terminal-shop/resources/view.rb +31 -0
  92. data/lib/terminal-shop/util.rb +460 -0
  93. data/lib/terminal-shop/version.rb +5 -0
  94. data/lib/terminal-shop.rb +110 -0
  95. data/manifest.yaml +12 -0
  96. data/rbi/lib/terminal-shop/base_client.rbi +145 -0
  97. data/rbi/lib/terminal-shop/base_model.rbi +514 -0
  98. data/rbi/lib/terminal-shop/base_page.rbi +38 -0
  99. data/rbi/lib/terminal-shop/client.rbi +80 -0
  100. data/rbi/lib/terminal-shop/errors.rbi +133 -0
  101. data/rbi/lib/terminal-shop/extern.rbi +7 -0
  102. data/rbi/lib/terminal-shop/models/address.rbi +77 -0
  103. data/rbi/lib/terminal-shop/models/address_create_params.rbi +87 -0
  104. data/rbi/lib/terminal-shop/models/address_create_response.rbi +18 -0
  105. data/rbi/lib/terminal-shop/models/address_delete_params.rbi +18 -0
  106. data/rbi/lib/terminal-shop/models/address_delete_response.rbi +18 -0
  107. data/rbi/lib/terminal-shop/models/address_list_params.rbi +18 -0
  108. data/rbi/lib/terminal-shop/models/address_list_response.rbi +18 -0
  109. data/rbi/lib/terminal-shop/models/app.rbi +24 -0
  110. data/rbi/lib/terminal-shop/models/app_create_params.rbi +18 -0
  111. data/rbi/lib/terminal-shop/models/app_create_response.rbi +34 -0
  112. data/rbi/lib/terminal-shop/models/app_delete_params.rbi +18 -0
  113. data/rbi/lib/terminal-shop/models/app_delete_response.rbi +18 -0
  114. data/rbi/lib/terminal-shop/models/app_get_params.rbi +18 -0
  115. data/rbi/lib/terminal-shop/models/app_get_response.rbi +18 -0
  116. data/rbi/lib/terminal-shop/models/app_list_params.rbi +18 -0
  117. data/rbi/lib/terminal-shop/models/app_list_response.rbi +18 -0
  118. data/rbi/lib/terminal-shop/models/card.rbi +59 -0
  119. data/rbi/lib/terminal-shop/models/card_collect_params.rbi +18 -0
  120. data/rbi/lib/terminal-shop/models/card_collect_response.rbi +31 -0
  121. data/rbi/lib/terminal-shop/models/card_create_params.rbi +26 -0
  122. data/rbi/lib/terminal-shop/models/card_create_response.rbi +18 -0
  123. data/rbi/lib/terminal-shop/models/card_delete_params.rbi +18 -0
  124. data/rbi/lib/terminal-shop/models/card_delete_response.rbi +18 -0
  125. data/rbi/lib/terminal-shop/models/card_list_params.rbi +18 -0
  126. data/rbi/lib/terminal-shop/models/card_list_response.rbi +18 -0
  127. data/rbi/lib/terminal-shop/models/cart.rbi +127 -0
  128. data/rbi/lib/terminal-shop/models/cart_convert_params.rbi +18 -0
  129. data/rbi/lib/terminal-shop/models/cart_convert_response.rbi +18 -0
  130. data/rbi/lib/terminal-shop/models/cart_get_params.rbi +18 -0
  131. data/rbi/lib/terminal-shop/models/cart_get_response.rbi +18 -0
  132. data/rbi/lib/terminal-shop/models/cart_set_address_params.rbi +26 -0
  133. data/rbi/lib/terminal-shop/models/cart_set_address_response.rbi +18 -0
  134. data/rbi/lib/terminal-shop/models/cart_set_card_params.rbi +26 -0
  135. data/rbi/lib/terminal-shop/models/cart_set_card_response.rbi +18 -0
  136. data/rbi/lib/terminal-shop/models/cart_set_item_params.rbi +38 -0
  137. data/rbi/lib/terminal-shop/models/cart_set_item_response.rbi +18 -0
  138. data/rbi/lib/terminal-shop/models/email_create_params.rbi +26 -0
  139. data/rbi/lib/terminal-shop/models/email_create_response.rbi +18 -0
  140. data/rbi/lib/terminal-shop/models/order.rbi +216 -0
  141. data/rbi/lib/terminal-shop/models/order_get_params.rbi +18 -0
  142. data/rbi/lib/terminal-shop/models/order_get_response.rbi +18 -0
  143. data/rbi/lib/terminal-shop/models/order_list_params.rbi +18 -0
  144. data/rbi/lib/terminal-shop/models/order_list_response.rbi +18 -0
  145. data/rbi/lib/terminal-shop/models/product.rbi +94 -0
  146. data/rbi/lib/terminal-shop/models/product_list_params.rbi +18 -0
  147. data/rbi/lib/terminal-shop/models/product_list_response.rbi +18 -0
  148. data/rbi/lib/terminal-shop/models/product_variant.rbi +24 -0
  149. data/rbi/lib/terminal-shop/models/profile.rbi +61 -0
  150. data/rbi/lib/terminal-shop/models/profile_me_params.rbi +18 -0
  151. data/rbi/lib/terminal-shop/models/profile_me_response.rbi +18 -0
  152. data/rbi/lib/terminal-shop/models/profile_update_params.rbi +38 -0
  153. data/rbi/lib/terminal-shop/models/profile_update_response.rbi +18 -0
  154. data/rbi/lib/terminal-shop/models/subscription.rbi +75 -0
  155. data/rbi/lib/terminal-shop/models/subscription_create_params.rbi +18 -0
  156. data/rbi/lib/terminal-shop/models/subscription_create_response.rbi +18 -0
  157. data/rbi/lib/terminal-shop/models/subscription_delete_params.rbi +18 -0
  158. data/rbi/lib/terminal-shop/models/subscription_delete_response.rbi +18 -0
  159. data/rbi/lib/terminal-shop/models/subscription_list_params.rbi +18 -0
  160. data/rbi/lib/terminal-shop/models/subscription_list_response.rbi +18 -0
  161. data/rbi/lib/terminal-shop/models/token.rbi +37 -0
  162. data/rbi/lib/terminal-shop/models/token_create_params.rbi +18 -0
  163. data/rbi/lib/terminal-shop/models/token_create_response.rbi +34 -0
  164. data/rbi/lib/terminal-shop/models/token_delete_params.rbi +18 -0
  165. data/rbi/lib/terminal-shop/models/token_delete_response.rbi +18 -0
  166. data/rbi/lib/terminal-shop/models/token_get_params.rbi +18 -0
  167. data/rbi/lib/terminal-shop/models/token_get_response.rbi +18 -0
  168. data/rbi/lib/terminal-shop/models/token_list_params.rbi +18 -0
  169. data/rbi/lib/terminal-shop/models/token_list_response.rbi +18 -0
  170. data/rbi/lib/terminal-shop/models/view_init_params.rbi +18 -0
  171. data/rbi/lib/terminal-shop/models/view_init_response.rbi +91 -0
  172. data/rbi/lib/terminal-shop/request_options.rbi +40 -0
  173. data/rbi/lib/terminal-shop/resources/address.rbi +60 -0
  174. data/rbi/lib/terminal-shop/resources/app.rbi +54 -0
  175. data/rbi/lib/terminal-shop/resources/card.rbi +57 -0
  176. data/rbi/lib/terminal-shop/resources/cart.rbi +67 -0
  177. data/rbi/lib/terminal-shop/resources/email.rbi +20 -0
  178. data/rbi/lib/terminal-shop/resources/order.rbi +34 -0
  179. data/rbi/lib/terminal-shop/resources/product.rbi +25 -0
  180. data/rbi/lib/terminal-shop/resources/profile.rbi +35 -0
  181. data/rbi/lib/terminal-shop/resources/subscription.rbi +58 -0
  182. data/rbi/lib/terminal-shop/resources/token.rbi +57 -0
  183. data/rbi/lib/terminal-shop/resources/view.rbi +25 -0
  184. data/rbi/lib/terminal-shop/util.rbi +128 -0
  185. data/rbi/lib/terminal-shop/version.rbi +5 -0
  186. data/sig/terminal-shop/base_client.rbs +100 -0
  187. data/sig/terminal-shop/base_model.rbs +246 -0
  188. data/sig/terminal-shop/base_page.rbs +20 -0
  189. data/sig/terminal-shop/client.rbs +52 -0
  190. data/sig/terminal-shop/errors.rbs +98 -0
  191. data/sig/terminal-shop/extern.rbs +4 -0
  192. data/sig/terminal-shop/models/address.rbs +60 -0
  193. data/sig/terminal-shop/models/address_create_params.rbs +62 -0
  194. data/sig/terminal-shop/models/address_create_response.rbs +18 -0
  195. data/sig/terminal-shop/models/address_delete_params.rbs +19 -0
  196. data/sig/terminal-shop/models/address_delete_response.rbs +18 -0
  197. data/sig/terminal-shop/models/address_list_params.rbs +19 -0
  198. data/sig/terminal-shop/models/address_list_response.rbs +19 -0
  199. data/sig/terminal-shop/models/app.rbs +21 -0
  200. data/sig/terminal-shop/models/app_create_params.rbs +19 -0
  201. data/sig/terminal-shop/models/app_create_response.rbs +36 -0
  202. data/sig/terminal-shop/models/app_delete_params.rbs +19 -0
  203. data/sig/terminal-shop/models/app_delete_response.rbs +18 -0
  204. data/sig/terminal-shop/models/app_get_params.rbs +18 -0
  205. data/sig/terminal-shop/models/app_get_response.rbs +17 -0
  206. data/sig/terminal-shop/models/app_list_params.rbs +18 -0
  207. data/sig/terminal-shop/models/app_list_response.rbs +18 -0
  208. data/sig/terminal-shop/models/card.rbs +51 -0
  209. data/sig/terminal-shop/models/card_collect_params.rbs +19 -0
  210. data/sig/terminal-shop/models/card_collect_response.rbs +34 -0
  211. data/sig/terminal-shop/models/card_create_params.rbs +22 -0
  212. data/sig/terminal-shop/models/card_create_response.rbs +18 -0
  213. data/sig/terminal-shop/models/card_delete_params.rbs +19 -0
  214. data/sig/terminal-shop/models/card_delete_response.rbs +18 -0
  215. data/sig/terminal-shop/models/card_list_params.rbs +18 -0
  216. data/sig/terminal-shop/models/card_list_response.rbs +18 -0
  217. data/sig/terminal-shop/models/cart.rbs +119 -0
  218. data/sig/terminal-shop/models/cart_convert_params.rbs +19 -0
  219. data/sig/terminal-shop/models/cart_convert_response.rbs +18 -0
  220. data/sig/terminal-shop/models/cart_get_params.rbs +18 -0
  221. data/sig/terminal-shop/models/cart_get_response.rbs +18 -0
  222. data/sig/terminal-shop/models/cart_set_address_params.rbs +25 -0
  223. data/sig/terminal-shop/models/cart_set_address_response.rbs +18 -0
  224. data/sig/terminal-shop/models/cart_set_card_params.rbs +22 -0
  225. data/sig/terminal-shop/models/cart_set_card_response.rbs +18 -0
  226. data/sig/terminal-shop/models/cart_set_item_params.rbs +29 -0
  227. data/sig/terminal-shop/models/cart_set_item_response.rbs +18 -0
  228. data/sig/terminal-shop/models/email_create_params.rbs +22 -0
  229. data/sig/terminal-shop/models/email_create_response.rbs +18 -0
  230. data/sig/terminal-shop/models/order.rbs +179 -0
  231. data/sig/terminal-shop/models/order_get_params.rbs +18 -0
  232. data/sig/terminal-shop/models/order_get_response.rbs +18 -0
  233. data/sig/terminal-shop/models/order_list_params.rbs +19 -0
  234. data/sig/terminal-shop/models/order_list_response.rbs +18 -0
  235. data/sig/terminal-shop/models/product.rbs +76 -0
  236. data/sig/terminal-shop/models/product_list_params.rbs +19 -0
  237. data/sig/terminal-shop/models/product_list_response.rbs +19 -0
  238. data/sig/terminal-shop/models/product_variant.rbs +21 -0
  239. data/sig/terminal-shop/models/profile.rbs +53 -0
  240. data/sig/terminal-shop/models/profile_me_params.rbs +19 -0
  241. data/sig/terminal-shop/models/profile_me_response.rbs +18 -0
  242. data/sig/terminal-shop/models/profile_update_params.rbs +28 -0
  243. data/sig/terminal-shop/models/profile_update_response.rbs +18 -0
  244. data/sig/terminal-shop/models/subscription.rbs +60 -0
  245. data/sig/terminal-shop/models/subscription_create_params.rbs +19 -0
  246. data/sig/terminal-shop/models/subscription_create_response.rbs +18 -0
  247. data/sig/terminal-shop/models/subscription_delete_params.rbs +19 -0
  248. data/sig/terminal-shop/models/subscription_delete_response.rbs +18 -0
  249. data/sig/terminal-shop/models/subscription_list_params.rbs +19 -0
  250. data/sig/terminal-shop/models/subscription_list_response.rbs +19 -0
  251. data/sig/terminal-shop/models/token.rbs +40 -0
  252. data/sig/terminal-shop/models/token_create_params.rbs +19 -0
  253. data/sig/terminal-shop/models/token_create_response.rbs +36 -0
  254. data/sig/terminal-shop/models/token_delete_params.rbs +19 -0
  255. data/sig/terminal-shop/models/token_delete_response.rbs +18 -0
  256. data/sig/terminal-shop/models/token_get_params.rbs +18 -0
  257. data/sig/terminal-shop/models/token_get_response.rbs +18 -0
  258. data/sig/terminal-shop/models/token_list_params.rbs +19 -0
  259. data/sig/terminal-shop/models/token_list_response.rbs +18 -0
  260. data/sig/terminal-shop/models/view_init_params.rbs +18 -0
  261. data/sig/terminal-shop/models/view_init_response.rbs +71 -0
  262. data/sig/terminal-shop/request_options.rbs +42 -0
  263. data/sig/terminal-shop/resources/address.rbs +41 -0
  264. data/sig/terminal-shop/resources/app.rbs +46 -0
  265. data/sig/terminal-shop/resources/card.rbs +42 -0
  266. data/sig/terminal-shop/resources/cart.rbs +51 -0
  267. data/sig/terminal-shop/resources/email.rbs +16 -0
  268. data/sig/terminal-shop/resources/order.rbs +25 -0
  269. data/sig/terminal-shop/resources/product.rbs +15 -0
  270. data/sig/terminal-shop/resources/profile.rbs +25 -0
  271. data/sig/terminal-shop/resources/subscription.rbs +43 -0
  272. data/sig/terminal-shop/resources/token.rbs +43 -0
  273. data/sig/terminal-shop/resources/view.rbs +15 -0
  274. data/sig/terminal-shop/util.rbs +85 -0
  275. data/sig/terminal-shop/version.rbs +3 -0
  276. metadata +333 -0
@@ -0,0 +1,145 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ class BaseClient
5
+ abstract!
6
+
7
+ RequestShape = T.type_alias do
8
+ {
9
+ method: Symbol,
10
+ path: T.any(String, T::Array[String]),
11
+ query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]),
12
+ headers: T.nilable(T::Hash[String, T.nilable(String)]),
13
+ body: T.nilable(T.anything),
14
+ unwrap: T.nilable(Symbol),
15
+ page: T.nilable(T::Class[TerminalShop::BaseModel]),
16
+ model: T.nilable(TerminalShop::Converter::Input),
17
+ options: T.nilable(T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything]))
18
+ }
19
+ end
20
+
21
+ NormalizedRequestShape = T.type_alias do
22
+ {
23
+ method: Symbol,
24
+ url: URI::Generic,
25
+ headers: T::Hash[String, String],
26
+ body: T.anything,
27
+ max_retries: Integer,
28
+ timeout: Float
29
+ }
30
+ end
31
+
32
+ MAX_REDIRECTS = 20
33
+
34
+ sig { params(req: TerminalShop::BaseClient::RequestShape).void }
35
+ def self.validate!(req)
36
+ end
37
+
38
+ # @private
39
+ #
40
+ sig { returns(T.anything) }
41
+ attr_accessor :requester
42
+
43
+ sig do
44
+ params(
45
+ base_url: String,
46
+ timeout: Float,
47
+ max_retries: Integer,
48
+ initial_retry_delay: Float,
49
+ max_retry_delay: Float,
50
+ headers: T::Hash[String, T.nilable(String)],
51
+ idempotency_header: T.nilable(String)
52
+ ).void
53
+ end
54
+ def initialize(
55
+ base_url:,
56
+ timeout: 0.0,
57
+ max_retries: 0,
58
+ initial_retry_delay: 0.0,
59
+ max_retry_delay: 0.0,
60
+ headers: {},
61
+ idempotency_header: nil
62
+ )
63
+ end
64
+
65
+ sig { overridable.returns(T::Hash[String, String]) }
66
+ private def auth_headers
67
+ end
68
+
69
+ sig { returns(String) }
70
+ private def generate_idempotency_key
71
+ end
72
+
73
+ sig do
74
+ params(
75
+ req: TerminalShop::BaseClient::RequestShape,
76
+ opts: T::Hash[Symbol, T.anything]
77
+ ).returns(TerminalShop::BaseClient::NormalizedRequestShape)
78
+ end
79
+ private def build_request(req, opts)
80
+ end
81
+
82
+ sig { params(status: Integer, headers: T::Hash[String, String]).returns(T::Boolean) }
83
+ private def should_retry?(status, headers:)
84
+ end
85
+
86
+ sig { params(headers: T::Hash[String, String], retry_count: Integer).returns(Float) }
87
+ private def retry_delay(headers, retry_count:)
88
+ end
89
+
90
+ sig do
91
+ params(
92
+ request: TerminalShop::BaseClient::NormalizedRequestShape,
93
+ status: Integer,
94
+ location_header: String
95
+ ).returns(TerminalShop::BaseClient::NormalizedRequestShape)
96
+ end
97
+ private def follow_redirect(request, status:, location_header:)
98
+ end
99
+
100
+ sig do
101
+ params(
102
+ request: TerminalShop::BaseClient::NormalizedRequestShape,
103
+ redirect_count: Integer,
104
+ retry_count: Integer,
105
+ send_retry_header: T::Boolean
106
+ ).returns(Net::HTTPResponse)
107
+ end
108
+ private def send_request(request, redirect_count:, retry_count:, send_retry_header:)
109
+ end
110
+
111
+ sig { params(req: TerminalShop::BaseClient::RequestShape, response: NilClass).returns(T.anything) }
112
+ private def parse_response(req, response)
113
+ end
114
+
115
+ sig do
116
+ params(
117
+ method: Symbol,
118
+ path: T.any(String, T::Array[String]),
119
+ query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]),
120
+ headers: T.nilable(T::Hash[String, T.nilable(String)]),
121
+ body: T.nilable(T.anything),
122
+ unwrap: T.nilable(Symbol),
123
+ page: T.nilable(T::Class[TerminalShop::BaseModel]),
124
+ model: T.nilable(TerminalShop::Converter::Input),
125
+ options: T.nilable(T.any(TerminalShop::RequestOptions, T::Hash[Symbol, T.anything]))
126
+ ).returns(T.anything)
127
+ end
128
+ def request(
129
+ method,
130
+ path,
131
+ query: {},
132
+ headers: {},
133
+ body: nil,
134
+ unwrap: nil,
135
+ page: nil,
136
+ model: TerminalShop::Unknown,
137
+ options: {}
138
+ )
139
+ end
140
+
141
+ sig { returns(String) }
142
+ def inspect
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,514 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module Converter
5
+ abstract!
6
+
7
+ Input = T.type_alias { T.any(TerminalShop::Converter, T::Class[T.anything]) }
8
+
9
+ sig { overridable.params(value: T.anything).returns(T.anything) }
10
+ def coerce(value)
11
+ end
12
+
13
+ sig { overridable.params(value: T.anything).returns(T.anything) }
14
+ def dump(value)
15
+ end
16
+
17
+ sig do
18
+ overridable.params(value: T.anything).returns(
19
+ T.any(
20
+ [T::Boolean, T.anything, NilClass],
21
+ [T::Boolean, T::Boolean, Integer]
22
+ )
23
+ )
24
+ end
25
+ def try_strict_coerce(value)
26
+ end
27
+
28
+ sig do
29
+ params(
30
+ spec: T.any(
31
+ {
32
+ const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
33
+ enum: T.nilable(T.proc.returns(TerminalShop::Converter::Input)),
34
+ union: T.nilable(T.proc.returns(TerminalShop::Converter::Input))
35
+ },
36
+ T.proc.returns(TerminalShop::Converter::Input),
37
+ TerminalShop::Converter::Input
38
+ )
39
+ ).returns(T.proc.returns(T.anything).void)
40
+ end
41
+ def self.type_info(spec)
42
+ end
43
+
44
+ sig { params(target: TerminalShop::Converter::Input, value: T.anything).returns(T.anything) }
45
+ def self.coerce(target, value)
46
+ end
47
+
48
+ sig { params(target: TerminalShop::Converter::Input, value: T.anything).returns(T.anything) }
49
+ def self.dump(target, value)
50
+ end
51
+
52
+ sig { params(target: TerminalShop::Converter::Input, value: T.anything).returns(T.anything) }
53
+ def self.try_strict_coerce(target, value)
54
+ end
55
+ end
56
+
57
+ class Unknown
58
+ abstract!
59
+
60
+ extend TerminalShop::Converter
61
+
62
+ sig { params(other: T.anything).returns(T::Boolean) }
63
+ def self.===(other)
64
+ end
65
+
66
+ sig { params(other: T.anything).returns(T::Boolean) }
67
+ def self.==(other)
68
+ end
69
+
70
+ sig { override.params(value: T.anything).returns(T.anything) }
71
+ def self.coerce(value)
72
+ end
73
+
74
+ sig { override.params(value: T.anything).returns(T.anything) }
75
+ def self.dump(value)
76
+ end
77
+
78
+ sig do
79
+ override.params(value: T.anything).returns(
80
+ T.any(
81
+ [T::Boolean, T.anything, NilClass],
82
+ [T::Boolean, T::Boolean, Integer]
83
+ )
84
+ )
85
+ end
86
+ def self.try_strict_coerce(value)
87
+ end
88
+ end
89
+
90
+ class BooleanModel
91
+ abstract!
92
+
93
+ extend TerminalShop::Converter
94
+
95
+ sig { params(other: T.anything).returns(T::Boolean) }
96
+ def self.===(other)
97
+ end
98
+
99
+ sig { params(other: T.anything).returns(T::Boolean) }
100
+ def self.==(other)
101
+ end
102
+
103
+ sig { override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything)) }
104
+ def self.coerce(value)
105
+ end
106
+
107
+ sig { override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything)) }
108
+ def self.dump(value)
109
+ end
110
+
111
+ sig do
112
+ override.params(value: T.anything).returns(
113
+ T.any(
114
+ [T::Boolean, T.anything, NilClass],
115
+ [T::Boolean, T::Boolean, Integer]
116
+ )
117
+ )
118
+ end
119
+ def self.try_strict_coerce(value)
120
+ end
121
+ end
122
+
123
+ class Enum
124
+ abstract!
125
+
126
+ extend TerminalShop::Converter
127
+
128
+ sig { overridable.returns(T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]) }
129
+ def self.values
130
+ end
131
+
132
+ sig { void }
133
+ private_class_method def self.finalize!
134
+ end
135
+
136
+ sig { params(other: T.anything).returns(T::Boolean) }
137
+ def self.===(other)
138
+ end
139
+
140
+ sig { params(other: T.anything).returns(T::Boolean) }
141
+ def self.==(other)
142
+ end
143
+
144
+ sig { override.params(value: T.any(String, Symbol, T.anything)).returns(T.any(Symbol, T.anything)) }
145
+ def self.coerce(value)
146
+ end
147
+
148
+ sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) }
149
+ def self.dump(value)
150
+ end
151
+
152
+ sig do
153
+ override.params(value: T.anything).returns(
154
+ T.any(
155
+ [T::Boolean, T.anything, NilClass],
156
+ [T::Boolean, T::Boolean, Integer]
157
+ )
158
+ )
159
+ end
160
+ def self.try_strict_coerce(value)
161
+ end
162
+ end
163
+
164
+ class Union
165
+ abstract!
166
+
167
+ extend TerminalShop::Extern
168
+ extend TerminalShop::Converter
169
+
170
+ sig { returns(T::Array[[T.nilable(Symbol), Proc]]) }
171
+ private_class_method def self.known_variants
172
+ end
173
+
174
+ sig { overridable.returns(T::Array[[T.nilable(Symbol), T.anything]]) }
175
+ private_class_method def self.variants
176
+ end
177
+
178
+ sig { params(property: Symbol).void }
179
+ private_class_method def self.discriminator(property)
180
+ end
181
+
182
+ sig do
183
+ params(
184
+ key: T.any(
185
+ Symbol,
186
+ T::Hash[Symbol, T.anything],
187
+ T.proc.returns(TerminalShop::Converter::Input),
188
+ TerminalShop::Converter::Input
189
+ ),
190
+ spec: T.any(
191
+ T::Hash[Symbol, T.anything],
192
+ T.proc.returns(TerminalShop::Converter::Input),
193
+ TerminalShop::Converter::Input
194
+ )
195
+ ).void
196
+ end
197
+ private_class_method def self.variant(key, spec = nil)
198
+ end
199
+
200
+ sig { params(value: T.anything).returns(T.nilable(TerminalShop::Converter::Input)) }
201
+ private_class_method def self.resolve_variant(value)
202
+ end
203
+
204
+ sig { params(other: T.anything).returns(T::Boolean) }
205
+ def self.===(other)
206
+ end
207
+
208
+ sig { params(other: T.anything).returns(T::Boolean) }
209
+ def self.==(other)
210
+ end
211
+
212
+ sig { override.params(value: T.anything).returns(T.anything) }
213
+ def self.coerce(value)
214
+ end
215
+
216
+ sig { override.params(value: T.anything).returns(T.anything) }
217
+ def self.dump(value)
218
+ end
219
+
220
+ sig do
221
+ override.params(value: T.anything).returns(
222
+ T.any(
223
+ [T::Boolean, T.anything, NilClass],
224
+ [T::Boolean, T::Boolean, Integer]
225
+ )
226
+ )
227
+ end
228
+ def self.try_strict_coerce(value)
229
+ end
230
+ end
231
+
232
+ class ArrayOf
233
+ abstract!
234
+
235
+ include TerminalShop::Converter
236
+
237
+ sig { params(other: T.anything).returns(T::Boolean) }
238
+ def ===(other)
239
+ end
240
+
241
+ sig { params(other: T.anything).returns(T::Boolean) }
242
+ def ==(other)
243
+ end
244
+
245
+ sig do
246
+ override.params(
247
+ value: T.any(
248
+ T::Enumerable[T.anything],
249
+ T.anything
250
+ )
251
+ ).returns(T.any(T::Array[T.anything], T.anything))
252
+ end
253
+ def coerce(value)
254
+ end
255
+
256
+ sig do
257
+ override.params(
258
+ value: T.any(
259
+ T::Enumerable[T.anything],
260
+ T.anything
261
+ )
262
+ ).returns(T.any(T::Array[T.anything], T.anything))
263
+ end
264
+ def dump(value)
265
+ end
266
+
267
+ sig do
268
+ override.params(value: T.anything).returns(
269
+ T.any(
270
+ [T::Boolean, T.anything, NilClass],
271
+ [T::Boolean, T::Boolean, Integer]
272
+ )
273
+ )
274
+ end
275
+ def try_strict_coerce(value)
276
+ end
277
+
278
+ sig { returns(TerminalShop::Converter::Input) }
279
+ protected def item_type
280
+ end
281
+
282
+ sig do
283
+ params(
284
+ type_info: T.any(
285
+ T::Hash[Symbol, T.anything],
286
+ T.proc.returns(TerminalShop::Converter::Input),
287
+ TerminalShop::Converter::Input
288
+ ),
289
+ spec: T::Hash[Symbol, T.anything]
290
+ ).void
291
+ end
292
+ def initialize(type_info, spec = {})
293
+ end
294
+ end
295
+
296
+ class HashOf
297
+ abstract!
298
+
299
+ include TerminalShop::Converter
300
+
301
+ sig { params(other: T.anything).returns(T::Boolean) }
302
+ def ===(other)
303
+ end
304
+
305
+ sig { params(other: T.anything).returns(T::Boolean) }
306
+ def ==(other)
307
+ end
308
+
309
+ sig do
310
+ override.params(
311
+ value: T.any(
312
+ T::Hash[T.anything, T.anything],
313
+ T.anything
314
+ )
315
+ ).returns(T.any(T::Hash[Symbol, T.anything], T.anything))
316
+ end
317
+ def coerce(value)
318
+ end
319
+
320
+ sig do
321
+ override.params(
322
+ value: T.any(
323
+ T::Hash[T.anything, T.anything],
324
+ T.anything
325
+ )
326
+ ).returns(T.any(T::Hash[Symbol, T.anything], T.anything))
327
+ end
328
+ def dump(value)
329
+ end
330
+
331
+ sig do
332
+ override.params(value: T.anything).returns(
333
+ T.any(
334
+ [T::Boolean, T.anything, NilClass],
335
+ [T::Boolean, T::Boolean, Integer]
336
+ )
337
+ )
338
+ end
339
+ def try_strict_coerce(value)
340
+ end
341
+
342
+ sig { returns(TerminalShop::Converter::Input) }
343
+ protected def item_type
344
+ end
345
+
346
+ sig do
347
+ params(
348
+ type_info: T.any(
349
+ T::Hash[Symbol, T.anything],
350
+ T.proc.returns(TerminalShop::Converter::Input),
351
+ TerminalShop::Converter::Input
352
+ ),
353
+ spec: T::Hash[Symbol, T.anything]
354
+ ).void
355
+ end
356
+ def initialize(type_info, spec = {})
357
+ end
358
+ end
359
+
360
+ class BaseModel
361
+ abstract!
362
+
363
+ extend TerminalShop::Extern
364
+ extend TerminalShop::Converter
365
+
366
+ KnownFieldShape = T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean} }
367
+
368
+ sig do
369
+ returns(
370
+ T::Hash[Symbol,
371
+ T.all(
372
+ TerminalShop::BaseModel::KnownFieldShape,
373
+ {type_fn: T.proc.returns(TerminalShop::Converter::Input)}
374
+ )]
375
+ )
376
+ end
377
+ def self.known_fields
378
+ end
379
+
380
+ sig do
381
+ returns(
382
+ T::Hash[Symbol,
383
+ T.all(TerminalShop::BaseModel::KnownFieldShape, {type: TerminalShop::Converter::Input})]
384
+ )
385
+ end
386
+ def self.fields
387
+ end
388
+
389
+ sig { returns(T::Hash[Symbol, T.proc.returns(T::Class[T.anything])]) }
390
+ def self.defaults
391
+ end
392
+
393
+ sig do
394
+ params(
395
+ name_sym: Symbol,
396
+ required: T::Boolean,
397
+ type_info: T.any(
398
+ {
399
+ const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)),
400
+ enum: T.nilable(T.proc.returns(TerminalShop::Converter::Input)),
401
+ union: T.nilable(T.proc.returns(TerminalShop::Converter::Input)),
402
+ api_name: Symbol,
403
+ nil?: T::Boolean
404
+ },
405
+ T.proc.returns(TerminalShop::Converter::Input),
406
+ TerminalShop::Converter::Input
407
+ ),
408
+ spec: T::Hash[Symbol, T.anything]
409
+ ).void
410
+ end
411
+ private_class_method def self.add_field(name_sym, required:, type_info:, spec:)
412
+ end
413
+
414
+ sig do
415
+ params(
416
+ name_sym: Symbol,
417
+ type_info: T.any(
418
+ T::Hash[Symbol, T.anything],
419
+ T.proc.returns(TerminalShop::Converter::Input),
420
+ TerminalShop::Converter::Input
421
+ ),
422
+ spec: T::Hash[Symbol, T.anything]
423
+ ).void
424
+ end
425
+ def self.required(name_sym, type_info, spec = {})
426
+ end
427
+
428
+ sig do
429
+ params(
430
+ name_sym: Symbol,
431
+ type_info: T.any(
432
+ T::Hash[Symbol, T.anything],
433
+ T.proc.returns(TerminalShop::Converter::Input),
434
+ TerminalShop::Converter::Input
435
+ ),
436
+ spec: T::Hash[Symbol, T.anything]
437
+ ).void
438
+ end
439
+ def self.optional(name_sym, type_info, spec = {})
440
+ end
441
+
442
+ sig { params(blk: T.proc.void).void }
443
+ private_class_method def self.request_only(&blk)
444
+ end
445
+
446
+ sig { params(blk: T.proc.void).void }
447
+ private_class_method def self.response_only(&blk)
448
+ end
449
+
450
+ sig { params(other: T.anything).returns(T::Boolean) }
451
+ def ==(other)
452
+ end
453
+
454
+ sig do
455
+ override.params(
456
+ value: T.any(
457
+ TerminalShop::BaseModel,
458
+ T::Hash[T.anything, T.anything],
459
+ T.anything
460
+ )
461
+ ).returns(T.any(T.attached_class, T.anything))
462
+ end
463
+ def self.coerce(value)
464
+ end
465
+
466
+ sig do
467
+ override.params(
468
+ value: T.any(
469
+ T.attached_class,
470
+ T.anything
471
+ )
472
+ ).returns(T.any(T::Hash[T.anything, T.anything], T.anything))
473
+ end
474
+ def self.dump(value)
475
+ end
476
+
477
+ sig do
478
+ override.params(value: T.anything).returns(
479
+ T.any(
480
+ [T::Boolean, T.anything, NilClass],
481
+ [T::Boolean, T::Boolean, Integer]
482
+ )
483
+ )
484
+ end
485
+ def self.try_strict_coerce(value)
486
+ end
487
+
488
+ sig { params(key: Symbol).returns(T.nilable(T.anything)) }
489
+ def [](key)
490
+ end
491
+
492
+ sig { overridable.returns(T::Hash[Symbol, T.anything]) }
493
+ def to_h
494
+ end
495
+
496
+ alias_method :to_hash, :to_h
497
+
498
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.anything]) }
499
+ def deconstruct_keys(keys)
500
+ end
501
+
502
+ sig { params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).void }
503
+ def initialize(data = {})
504
+ end
505
+
506
+ sig { returns(String) }
507
+ def to_s
508
+ end
509
+
510
+ sig { returns(String) }
511
+ def inspect
512
+ end
513
+ end
514
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module TerminalShop
4
+ module BasePage
5
+ abstract!
6
+
7
+ Elem = type_member(:out)
8
+
9
+ sig { overridable.returns(T::Boolean) }
10
+ def next_page?
11
+ end
12
+
13
+ sig { overridable.returns(T.self_type) }
14
+ def next_page
15
+ end
16
+
17
+ sig { overridable.params(blk: T.proc.params(arg0: Elem).void).void }
18
+ def auto_paging_each(&blk)
19
+ end
20
+
21
+ sig { returns(T::Enumerable[Elem]) }
22
+ def to_enum
23
+ end
24
+
25
+ alias_method :enum_for, :to_enum
26
+
27
+ sig do
28
+ params(
29
+ client: TerminalShop::BaseClient,
30
+ req: TerminalShop::BaseClient::RequestShape,
31
+ headers: T::Hash[String, String],
32
+ unwrapped: T.anything
33
+ ).void
34
+ end
35
+ def initialize(client:, req:, headers:, unwrapped:)
36
+ end
37
+ end
38
+ end