shopify_api 1.0.4 → 12.3.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 (459) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/ISSUE_TEMPLATE.md +35 -0
  4. data/.github/dependabot.yml +20 -0
  5. data/.github/pull_request_template.md +20 -0
  6. data/.github/workflows/build.yml +42 -0
  7. data/.github/workflows/cla.yml +22 -0
  8. data/.github/workflows/close-waiting-for-response-issues.yml +20 -0
  9. data/.github/workflows/remove-labels-on-activity.yml +16 -0
  10. data/.github/workflows/stale.yml +32 -0
  11. data/.rubocop.yml +59 -0
  12. data/BREAKING_CHANGES_FOR_OLDER_VERSIONS.md +110 -0
  13. data/CHANGELOG.md +574 -0
  14. data/CONTRIBUTING.md +9 -0
  15. data/Gemfile +13 -0
  16. data/Gemfile.lock +159 -0
  17. data/LICENSE +2 -2
  18. data/README.md +138 -0
  19. data/RELEASING.md +19 -0
  20. data/Rakefile +16 -50
  21. data/SECURITY.md +59 -0
  22. data/bin/tapioca +29 -0
  23. data/dev.yml +32 -0
  24. data/docs/README.md +13 -0
  25. data/docs/getting_started.md +53 -0
  26. data/docs/issues.md +39 -0
  27. data/docs/usage/graphql.md +115 -0
  28. data/docs/usage/graphql_storefront.md +42 -0
  29. data/docs/usage/oauth.md +104 -0
  30. data/docs/usage/rest.md +137 -0
  31. data/docs/usage/session_storage.md +46 -0
  32. data/docs/usage/webhooks.md +98 -0
  33. data/lib/shopify_api/admin_versions.rb +19 -0
  34. data/lib/shopify_api/auth/associated_user.rb +36 -0
  35. data/lib/shopify_api/auth/auth_scopes.rb +75 -0
  36. data/lib/shopify_api/auth/file_session_storage.rb +72 -0
  37. data/lib/shopify_api/auth/jwt_payload.rb +83 -0
  38. data/lib/shopify_api/auth/oauth/auth_query.rb +47 -0
  39. data/lib/shopify_api/auth/oauth/session_cookie.rb +28 -0
  40. data/lib/shopify_api/auth/oauth.rb +135 -0
  41. data/lib/shopify_api/auth/session.rb +119 -0
  42. data/lib/shopify_api/auth/session_storage.rb +30 -0
  43. data/lib/shopify_api/auth.rb +26 -0
  44. data/lib/shopify_api/clients/graphql/admin.rb +15 -0
  45. data/lib/shopify_api/clients/graphql/client.rb +40 -0
  46. data/lib/shopify_api/clients/graphql/storefront.rb +35 -0
  47. data/lib/shopify_api/clients/http_client.rb +100 -0
  48. data/lib/shopify_api/clients/http_request.rb +35 -0
  49. data/lib/shopify_api/clients/http_response.rb +66 -0
  50. data/lib/shopify_api/clients/rest/admin.rb +118 -0
  51. data/lib/shopify_api/context.rb +196 -0
  52. data/lib/shopify_api/errors/context_not_setup_error.rb +9 -0
  53. data/lib/shopify_api/errors/cookie_not_found_error.rb +9 -0
  54. data/lib/shopify_api/errors/feature_deprecated_error.rb +9 -0
  55. data/lib/shopify_api/errors/http_response_error.rb +23 -0
  56. data/lib/shopify_api/errors/invalid_graphql_request_error.rb +9 -0
  57. data/lib/shopify_api/errors/invalid_http_request_error.rb +9 -0
  58. data/lib/shopify_api/errors/invalid_jwt_token_error.rb +9 -0
  59. data/lib/shopify_api/errors/invalid_oauth_error.rb +9 -0
  60. data/lib/shopify_api/errors/invalid_webhook_error.rb +9 -0
  61. data/lib/shopify_api/errors/invalid_webhook_registration_error.rb +9 -0
  62. data/lib/shopify_api/errors/log_level_not_found_error.rb +9 -0
  63. data/lib/shopify_api/errors/max_http_retries_exceeded_error.rb +9 -0
  64. data/lib/shopify_api/errors/missing_jwt_token_error.rb +9 -0
  65. data/lib/shopify_api/errors/missing_required_argument_error.rb +9 -0
  66. data/lib/shopify_api/errors/no_active_session_error.rb +9 -0
  67. data/lib/shopify_api/errors/no_session_cookie_error.rb +9 -0
  68. data/lib/shopify_api/errors/no_webhook_handler.rb +9 -0
  69. data/lib/shopify_api/errors/private_app_error.rb +9 -0
  70. data/lib/shopify_api/errors/request_access_token_error.rb +9 -0
  71. data/lib/shopify_api/errors/session_not_found_error.rb +9 -0
  72. data/lib/shopify_api/errors/session_storage_error.rb +9 -0
  73. data/lib/shopify_api/errors/unsupported_oauth_error.rb +9 -0
  74. data/lib/shopify_api/errors/unsupported_version_error.rb +9 -0
  75. data/lib/shopify_api/errors/webhook_registration_error.rb +9 -0
  76. data/lib/shopify_api/inflector.rb +17 -0
  77. data/lib/shopify_api/logger.rb +82 -0
  78. data/lib/shopify_api/rest/base.rb +387 -0
  79. data/lib/shopify_api/rest/base_errors.rb +32 -0
  80. data/lib/shopify_api/rest/resources/2022_01/abandoned_checkout.rb +190 -0
  81. data/lib/shopify_api/rest/resources/2022_01/access_scope.rb +58 -0
  82. data/lib/shopify_api/rest/resources/2022_01/android_pay_key.rb +77 -0
  83. data/lib/shopify_api/rest/resources/2022_01/apple_pay_certificate.rb +105 -0
  84. data/lib/shopify_api/rest/resources/2022_01/application_charge.rb +104 -0
  85. data/lib/shopify_api/rest/resources/2022_01/application_credit.rb +87 -0
  86. data/lib/shopify_api/rest/resources/2022_01/article.rb +265 -0
  87. data/lib/shopify_api/rest/resources/2022_01/asset.rb +118 -0
  88. data/lib/shopify_api/rest/resources/2022_01/assigned_fulfillment_order.rb +79 -0
  89. data/lib/shopify_api/rest/resources/2022_01/balance.rb +50 -0
  90. data/lib/shopify_api/rest/resources/2022_01/blog.rb +162 -0
  91. data/lib/shopify_api/rest/resources/2022_01/cancellation_request.rb +83 -0
  92. data/lib/shopify_api/rest/resources/2022_01/carrier_service.rb +116 -0
  93. data/lib/shopify_api/rest/resources/2022_01/checkout.rb +209 -0
  94. data/lib/shopify_api/rest/resources/2022_01/collect.rb +142 -0
  95. data/lib/shopify_api/rest/resources/2022_01/collection.rb +110 -0
  96. data/lib/shopify_api/rest/resources/2022_01/collection_listing.rb +155 -0
  97. data/lib/shopify_api/rest/resources/2022_01/comment.rb +283 -0
  98. data/lib/shopify_api/rest/resources/2022_01/country.rb +137 -0
  99. data/lib/shopify_api/rest/resources/2022_01/currency.rb +57 -0
  100. data/lib/shopify_api/rest/resources/2022_01/custom_collection.rb +187 -0
  101. data/lib/shopify_api/rest/resources/2022_01/customer.rb +318 -0
  102. data/lib/shopify_api/rest/resources/2022_01/customer_address.rb +201 -0
  103. data/lib/shopify_api/rest/resources/2022_01/customer_saved_search.rb +169 -0
  104. data/lib/shopify_api/rest/resources/2022_01/deprecated_api_call.rb +57 -0
  105. data/lib/shopify_api/rest/resources/2022_01/discount_code.rb +219 -0
  106. data/lib/shopify_api/rest/resources/2022_01/dispute.rb +111 -0
  107. data/lib/shopify_api/rest/resources/2022_01/draft_order.rb +275 -0
  108. data/lib/shopify_api/rest/resources/2022_01/event.rb +148 -0
  109. data/lib/shopify_api/rest/resources/2022_01/fulfillment.rb +268 -0
  110. data/lib/shopify_api/rest/resources/2022_01/fulfillment_event.rb +166 -0
  111. data/lib/shopify_api/rest/resources/2022_01/fulfillment_order.rb +281 -0
  112. data/lib/shopify_api/rest/resources/2022_01/fulfillment_request.rb +87 -0
  113. data/lib/shopify_api/rest/resources/2022_01/fulfillment_service.rb +130 -0
  114. data/lib/shopify_api/rest/resources/2022_01/gift_card.rb +215 -0
  115. data/lib/shopify_api/rest/resources/2022_01/gift_card_adjustment.rb +118 -0
  116. data/lib/shopify_api/rest/resources/2022_01/image.rb +157 -0
  117. data/lib/shopify_api/rest/resources/2022_01/inventory_item.rb +108 -0
  118. data/lib/shopify_api/rest/resources/2022_01/inventory_level.rb +179 -0
  119. data/lib/shopify_api/rest/resources/2022_01/location.rb +167 -0
  120. data/lib/shopify_api/rest/resources/2022_01/locations_for_move.rb +56 -0
  121. data/lib/shopify_api/rest/resources/2022_01/marketing_event.rb +209 -0
  122. data/lib/shopify_api/rest/resources/2022_01/metafield.rb +349 -0
  123. data/lib/shopify_api/rest/resources/2022_01/mobile_platform_application.rb +110 -0
  124. data/lib/shopify_api/rest/resources/2022_01/order.rb +473 -0
  125. data/lib/shopify_api/rest/resources/2022_01/order_risk.rb +135 -0
  126. data/lib/shopify_api/rest/resources/2022_01/page.rb +194 -0
  127. data/lib/shopify_api/rest/resources/2022_01/payment.rb +140 -0
  128. data/lib/shopify_api/rest/resources/2022_01/payment_gateway.rb +143 -0
  129. data/lib/shopify_api/rest/resources/2022_01/payment_transaction.rb +107 -0
  130. data/lib/shopify_api/rest/resources/2022_01/payout.rb +97 -0
  131. data/lib/shopify_api/rest/resources/2022_01/policy.rb +69 -0
  132. data/lib/shopify_api/rest/resources/2022_01/price_rule.rb +223 -0
  133. data/lib/shopify_api/rest/resources/2022_01/product.rb +223 -0
  134. data/lib/shopify_api/rest/resources/2022_01/product_listing.rb +196 -0
  135. data/lib/shopify_api/rest/resources/2022_01/product_resource_feedback.rb +88 -0
  136. data/lib/shopify_api/rest/resources/2022_01/province.rb +132 -0
  137. data/lib/shopify_api/rest/resources/2022_01/recurring_application_charge.rb +167 -0
  138. data/lib/shopify_api/rest/resources/2022_01/redirect.rb +139 -0
  139. data/lib/shopify_api/rest/resources/2022_01/refund.rb +151 -0
  140. data/lib/shopify_api/rest/resources/2022_01/report.rb +121 -0
  141. data/lib/shopify_api/rest/resources/2022_01/resource_feedback.rb +73 -0
  142. data/lib/shopify_api/rest/resources/2022_01/script_tag.rb +155 -0
  143. data/lib/shopify_api/rest/resources/2022_01/shipping_zone.rb +83 -0
  144. data/lib/shopify_api/rest/resources/2022_01/shop.rb +218 -0
  145. data/lib/shopify_api/rest/resources/2022_01/smart_collection.rb +216 -0
  146. data/lib/shopify_api/rest/resources/2022_01/storefront_access_token.rb +87 -0
  147. data/lib/shopify_api/rest/resources/2022_01/tender_transaction.rb +93 -0
  148. data/lib/shopify_api/rest/resources/2022_01/theme.rb +120 -0
  149. data/lib/shopify_api/rest/resources/2022_01/transaction.rb +181 -0
  150. data/lib/shopify_api/rest/resources/2022_01/usage_charge.rb +97 -0
  151. data/lib/shopify_api/rest/resources/2022_01/user.rb +138 -0
  152. data/lib/shopify_api/rest/resources/2022_01/variant.rb +212 -0
  153. data/lib/shopify_api/rest/resources/2022_01/webhook.rb +168 -0
  154. data/lib/shopify_api/rest/resources/2022_04/abandoned_checkout.rb +190 -0
  155. data/lib/shopify_api/rest/resources/2022_04/access_scope.rb +58 -0
  156. data/lib/shopify_api/rest/resources/2022_04/android_pay_key.rb +77 -0
  157. data/lib/shopify_api/rest/resources/2022_04/apple_pay_certificate.rb +105 -0
  158. data/lib/shopify_api/rest/resources/2022_04/application_charge.rb +104 -0
  159. data/lib/shopify_api/rest/resources/2022_04/application_credit.rb +87 -0
  160. data/lib/shopify_api/rest/resources/2022_04/article.rb +265 -0
  161. data/lib/shopify_api/rest/resources/2022_04/asset.rb +118 -0
  162. data/lib/shopify_api/rest/resources/2022_04/assigned_fulfillment_order.rb +79 -0
  163. data/lib/shopify_api/rest/resources/2022_04/balance.rb +50 -0
  164. data/lib/shopify_api/rest/resources/2022_04/blog.rb +162 -0
  165. data/lib/shopify_api/rest/resources/2022_04/cancellation_request.rb +83 -0
  166. data/lib/shopify_api/rest/resources/2022_04/carrier_service.rb +116 -0
  167. data/lib/shopify_api/rest/resources/2022_04/checkout.rb +209 -0
  168. data/lib/shopify_api/rest/resources/2022_04/collect.rb +142 -0
  169. data/lib/shopify_api/rest/resources/2022_04/collection.rb +110 -0
  170. data/lib/shopify_api/rest/resources/2022_04/collection_listing.rb +155 -0
  171. data/lib/shopify_api/rest/resources/2022_04/comment.rb +283 -0
  172. data/lib/shopify_api/rest/resources/2022_04/country.rb +137 -0
  173. data/lib/shopify_api/rest/resources/2022_04/currency.rb +57 -0
  174. data/lib/shopify_api/rest/resources/2022_04/custom_collection.rb +187 -0
  175. data/lib/shopify_api/rest/resources/2022_04/customer.rb +321 -0
  176. data/lib/shopify_api/rest/resources/2022_04/customer_address.rb +201 -0
  177. data/lib/shopify_api/rest/resources/2022_04/customer_saved_search.rb +169 -0
  178. data/lib/shopify_api/rest/resources/2022_04/deprecated_api_call.rb +57 -0
  179. data/lib/shopify_api/rest/resources/2022_04/discount_code.rb +219 -0
  180. data/lib/shopify_api/rest/resources/2022_04/dispute.rb +111 -0
  181. data/lib/shopify_api/rest/resources/2022_04/draft_order.rb +275 -0
  182. data/lib/shopify_api/rest/resources/2022_04/event.rb +148 -0
  183. data/lib/shopify_api/rest/resources/2022_04/fulfillment.rb +268 -0
  184. data/lib/shopify_api/rest/resources/2022_04/fulfillment_event.rb +166 -0
  185. data/lib/shopify_api/rest/resources/2022_04/fulfillment_order.rb +284 -0
  186. data/lib/shopify_api/rest/resources/2022_04/fulfillment_request.rb +87 -0
  187. data/lib/shopify_api/rest/resources/2022_04/fulfillment_service.rb +130 -0
  188. data/lib/shopify_api/rest/resources/2022_04/gift_card.rb +215 -0
  189. data/lib/shopify_api/rest/resources/2022_04/gift_card_adjustment.rb +118 -0
  190. data/lib/shopify_api/rest/resources/2022_04/image.rb +157 -0
  191. data/lib/shopify_api/rest/resources/2022_04/inventory_item.rb +108 -0
  192. data/lib/shopify_api/rest/resources/2022_04/inventory_level.rb +179 -0
  193. data/lib/shopify_api/rest/resources/2022_04/location.rb +167 -0
  194. data/lib/shopify_api/rest/resources/2022_04/locations_for_move.rb +56 -0
  195. data/lib/shopify_api/rest/resources/2022_04/marketing_event.rb +209 -0
  196. data/lib/shopify_api/rest/resources/2022_04/metafield.rb +342 -0
  197. data/lib/shopify_api/rest/resources/2022_04/mobile_platform_application.rb +110 -0
  198. data/lib/shopify_api/rest/resources/2022_04/order.rb +473 -0
  199. data/lib/shopify_api/rest/resources/2022_04/order_risk.rb +135 -0
  200. data/lib/shopify_api/rest/resources/2022_04/page.rb +194 -0
  201. data/lib/shopify_api/rest/resources/2022_04/payment.rb +140 -0
  202. data/lib/shopify_api/rest/resources/2022_04/payment_gateway.rb +143 -0
  203. data/lib/shopify_api/rest/resources/2022_04/payment_transaction.rb +107 -0
  204. data/lib/shopify_api/rest/resources/2022_04/payout.rb +97 -0
  205. data/lib/shopify_api/rest/resources/2022_04/policy.rb +69 -0
  206. data/lib/shopify_api/rest/resources/2022_04/price_rule.rb +223 -0
  207. data/lib/shopify_api/rest/resources/2022_04/product.rb +223 -0
  208. data/lib/shopify_api/rest/resources/2022_04/product_listing.rb +196 -0
  209. data/lib/shopify_api/rest/resources/2022_04/product_resource_feedback.rb +88 -0
  210. data/lib/shopify_api/rest/resources/2022_04/province.rb +132 -0
  211. data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +167 -0
  212. data/lib/shopify_api/rest/resources/2022_04/redirect.rb +139 -0
  213. data/lib/shopify_api/rest/resources/2022_04/refund.rb +151 -0
  214. data/lib/shopify_api/rest/resources/2022_04/report.rb +121 -0
  215. data/lib/shopify_api/rest/resources/2022_04/resource_feedback.rb +73 -0
  216. data/lib/shopify_api/rest/resources/2022_04/script_tag.rb +155 -0
  217. data/lib/shopify_api/rest/resources/2022_04/shipping_zone.rb +83 -0
  218. data/lib/shopify_api/rest/resources/2022_04/shop.rb +218 -0
  219. data/lib/shopify_api/rest/resources/2022_04/smart_collection.rb +216 -0
  220. data/lib/shopify_api/rest/resources/2022_04/storefront_access_token.rb +87 -0
  221. data/lib/shopify_api/rest/resources/2022_04/tender_transaction.rb +93 -0
  222. data/lib/shopify_api/rest/resources/2022_04/theme.rb +120 -0
  223. data/lib/shopify_api/rest/resources/2022_04/transaction.rb +181 -0
  224. data/lib/shopify_api/rest/resources/2022_04/usage_charge.rb +97 -0
  225. data/lib/shopify_api/rest/resources/2022_04/user.rb +138 -0
  226. data/lib/shopify_api/rest/resources/2022_04/variant.rb +212 -0
  227. data/lib/shopify_api/rest/resources/2022_04/webhook.rb +168 -0
  228. data/lib/shopify_api/rest/resources/2022_07/abandoned_checkout.rb +190 -0
  229. data/lib/shopify_api/rest/resources/2022_07/access_scope.rb +58 -0
  230. data/lib/shopify_api/rest/resources/2022_07/android_pay_key.rb +77 -0
  231. data/lib/shopify_api/rest/resources/2022_07/apple_pay_certificate.rb +105 -0
  232. data/lib/shopify_api/rest/resources/2022_07/application_charge.rb +104 -0
  233. data/lib/shopify_api/rest/resources/2022_07/application_credit.rb +87 -0
  234. data/lib/shopify_api/rest/resources/2022_07/article.rb +265 -0
  235. data/lib/shopify_api/rest/resources/2022_07/asset.rb +118 -0
  236. data/lib/shopify_api/rest/resources/2022_07/assigned_fulfillment_order.rb +79 -0
  237. data/lib/shopify_api/rest/resources/2022_07/balance.rb +50 -0
  238. data/lib/shopify_api/rest/resources/2022_07/blog.rb +162 -0
  239. data/lib/shopify_api/rest/resources/2022_07/cancellation_request.rb +83 -0
  240. data/lib/shopify_api/rest/resources/2022_07/carrier_service.rb +113 -0
  241. data/lib/shopify_api/rest/resources/2022_07/checkout.rb +209 -0
  242. data/lib/shopify_api/rest/resources/2022_07/collect.rb +142 -0
  243. data/lib/shopify_api/rest/resources/2022_07/collection.rb +110 -0
  244. data/lib/shopify_api/rest/resources/2022_07/collection_listing.rb +155 -0
  245. data/lib/shopify_api/rest/resources/2022_07/comment.rb +283 -0
  246. data/lib/shopify_api/rest/resources/2022_07/country.rb +137 -0
  247. data/lib/shopify_api/rest/resources/2022_07/currency.rb +57 -0
  248. data/lib/shopify_api/rest/resources/2022_07/custom_collection.rb +187 -0
  249. data/lib/shopify_api/rest/resources/2022_07/customer.rb +321 -0
  250. data/lib/shopify_api/rest/resources/2022_07/customer_address.rb +201 -0
  251. data/lib/shopify_api/rest/resources/2022_07/customer_saved_search.rb +169 -0
  252. data/lib/shopify_api/rest/resources/2022_07/deprecated_api_call.rb +57 -0
  253. data/lib/shopify_api/rest/resources/2022_07/discount_code.rb +219 -0
  254. data/lib/shopify_api/rest/resources/2022_07/dispute.rb +111 -0
  255. data/lib/shopify_api/rest/resources/2022_07/dispute_evidence.rb +117 -0
  256. data/lib/shopify_api/rest/resources/2022_07/dispute_file_upload.rb +81 -0
  257. data/lib/shopify_api/rest/resources/2022_07/draft_order.rb +275 -0
  258. data/lib/shopify_api/rest/resources/2022_07/event.rb +148 -0
  259. data/lib/shopify_api/rest/resources/2022_07/fulfillment.rb +221 -0
  260. data/lib/shopify_api/rest/resources/2022_07/fulfillment_event.rb +166 -0
  261. data/lib/shopify_api/rest/resources/2022_07/fulfillment_order.rb +310 -0
  262. data/lib/shopify_api/rest/resources/2022_07/fulfillment_request.rb +87 -0
  263. data/lib/shopify_api/rest/resources/2022_07/fulfillment_service.rb +130 -0
  264. data/lib/shopify_api/rest/resources/2022_07/gift_card.rb +215 -0
  265. data/lib/shopify_api/rest/resources/2022_07/gift_card_adjustment.rb +118 -0
  266. data/lib/shopify_api/rest/resources/2022_07/image.rb +157 -0
  267. data/lib/shopify_api/rest/resources/2022_07/inventory_item.rb +108 -0
  268. data/lib/shopify_api/rest/resources/2022_07/inventory_level.rb +179 -0
  269. data/lib/shopify_api/rest/resources/2022_07/location.rb +167 -0
  270. data/lib/shopify_api/rest/resources/2022_07/locations_for_move.rb +56 -0
  271. data/lib/shopify_api/rest/resources/2022_07/marketing_event.rb +209 -0
  272. data/lib/shopify_api/rest/resources/2022_07/metafield.rb +342 -0
  273. data/lib/shopify_api/rest/resources/2022_07/mobile_platform_application.rb +110 -0
  274. data/lib/shopify_api/rest/resources/2022_07/order.rb +473 -0
  275. data/lib/shopify_api/rest/resources/2022_07/order_risk.rb +135 -0
  276. data/lib/shopify_api/rest/resources/2022_07/page.rb +194 -0
  277. data/lib/shopify_api/rest/resources/2022_07/payment.rb +140 -0
  278. data/lib/shopify_api/rest/resources/2022_07/payment_gateway.rb +143 -0
  279. data/lib/shopify_api/rest/resources/2022_07/payment_transaction.rb +107 -0
  280. data/lib/shopify_api/rest/resources/2022_07/payout.rb +97 -0
  281. data/lib/shopify_api/rest/resources/2022_07/policy.rb +69 -0
  282. data/lib/shopify_api/rest/resources/2022_07/price_rule.rb +223 -0
  283. data/lib/shopify_api/rest/resources/2022_07/product.rb +223 -0
  284. data/lib/shopify_api/rest/resources/2022_07/product_listing.rb +196 -0
  285. data/lib/shopify_api/rest/resources/2022_07/product_resource_feedback.rb +88 -0
  286. data/lib/shopify_api/rest/resources/2022_07/province.rb +132 -0
  287. data/lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb +167 -0
  288. data/lib/shopify_api/rest/resources/2022_07/redirect.rb +139 -0
  289. data/lib/shopify_api/rest/resources/2022_07/refund.rb +151 -0
  290. data/lib/shopify_api/rest/resources/2022_07/report.rb +121 -0
  291. data/lib/shopify_api/rest/resources/2022_07/resource_feedback.rb +73 -0
  292. data/lib/shopify_api/rest/resources/2022_07/script_tag.rb +155 -0
  293. data/lib/shopify_api/rest/resources/2022_07/shipping_zone.rb +83 -0
  294. data/lib/shopify_api/rest/resources/2022_07/shop.rb +218 -0
  295. data/lib/shopify_api/rest/resources/2022_07/smart_collection.rb +216 -0
  296. data/lib/shopify_api/rest/resources/2022_07/storefront_access_token.rb +87 -0
  297. data/lib/shopify_api/rest/resources/2022_07/tender_transaction.rb +93 -0
  298. data/lib/shopify_api/rest/resources/2022_07/theme.rb +120 -0
  299. data/lib/shopify_api/rest/resources/2022_07/transaction.rb +181 -0
  300. data/lib/shopify_api/rest/resources/2022_07/usage_charge.rb +97 -0
  301. data/lib/shopify_api/rest/resources/2022_07/user.rb +138 -0
  302. data/lib/shopify_api/rest/resources/2022_07/variant.rb +212 -0
  303. data/lib/shopify_api/rest/resources/2022_07/webhook.rb +168 -0
  304. data/lib/shopify_api/rest/resources/2022_10/abandoned_checkout.rb +190 -0
  305. data/lib/shopify_api/rest/resources/2022_10/access_scope.rb +58 -0
  306. data/lib/shopify_api/rest/resources/2022_10/android_pay_key.rb +77 -0
  307. data/lib/shopify_api/rest/resources/2022_10/apple_pay_certificate.rb +105 -0
  308. data/lib/shopify_api/rest/resources/2022_10/application_charge.rb +104 -0
  309. data/lib/shopify_api/rest/resources/2022_10/application_credit.rb +87 -0
  310. data/lib/shopify_api/rest/resources/2022_10/article.rb +265 -0
  311. data/lib/shopify_api/rest/resources/2022_10/asset.rb +118 -0
  312. data/lib/shopify_api/rest/resources/2022_10/assigned_fulfillment_order.rb +79 -0
  313. data/lib/shopify_api/rest/resources/2022_10/balance.rb +50 -0
  314. data/lib/shopify_api/rest/resources/2022_10/blog.rb +162 -0
  315. data/lib/shopify_api/rest/resources/2022_10/cancellation_request.rb +83 -0
  316. data/lib/shopify_api/rest/resources/2022_10/carrier_service.rb +113 -0
  317. data/lib/shopify_api/rest/resources/2022_10/checkout.rb +209 -0
  318. data/lib/shopify_api/rest/resources/2022_10/collect.rb +142 -0
  319. data/lib/shopify_api/rest/resources/2022_10/collection.rb +110 -0
  320. data/lib/shopify_api/rest/resources/2022_10/collection_listing.rb +155 -0
  321. data/lib/shopify_api/rest/resources/2022_10/comment.rb +283 -0
  322. data/lib/shopify_api/rest/resources/2022_10/country.rb +137 -0
  323. data/lib/shopify_api/rest/resources/2022_10/currency.rb +57 -0
  324. data/lib/shopify_api/rest/resources/2022_10/custom_collection.rb +187 -0
  325. data/lib/shopify_api/rest/resources/2022_10/customer.rb +321 -0
  326. data/lib/shopify_api/rest/resources/2022_10/customer_address.rb +201 -0
  327. data/lib/shopify_api/rest/resources/2022_10/customer_saved_search.rb +169 -0
  328. data/lib/shopify_api/rest/resources/2022_10/deprecated_api_call.rb +57 -0
  329. data/lib/shopify_api/rest/resources/2022_10/discount_code.rb +219 -0
  330. data/lib/shopify_api/rest/resources/2022_10/dispute.rb +111 -0
  331. data/lib/shopify_api/rest/resources/2022_10/dispute_evidence.rb +117 -0
  332. data/lib/shopify_api/rest/resources/2022_10/dispute_file_upload.rb +81 -0
  333. data/lib/shopify_api/rest/resources/2022_10/draft_order.rb +275 -0
  334. data/lib/shopify_api/rest/resources/2022_10/event.rb +148 -0
  335. data/lib/shopify_api/rest/resources/2022_10/fulfillment.rb +221 -0
  336. data/lib/shopify_api/rest/resources/2022_10/fulfillment_event.rb +166 -0
  337. data/lib/shopify_api/rest/resources/2022_10/fulfillment_order.rb +310 -0
  338. data/lib/shopify_api/rest/resources/2022_10/fulfillment_request.rb +87 -0
  339. data/lib/shopify_api/rest/resources/2022_10/fulfillment_service.rb +130 -0
  340. data/lib/shopify_api/rest/resources/2022_10/gift_card.rb +215 -0
  341. data/lib/shopify_api/rest/resources/2022_10/gift_card_adjustment.rb +118 -0
  342. data/lib/shopify_api/rest/resources/2022_10/image.rb +157 -0
  343. data/lib/shopify_api/rest/resources/2022_10/inventory_item.rb +108 -0
  344. data/lib/shopify_api/rest/resources/2022_10/inventory_level.rb +179 -0
  345. data/lib/shopify_api/rest/resources/2022_10/location.rb +167 -0
  346. data/lib/shopify_api/rest/resources/2022_10/locations_for_move.rb +56 -0
  347. data/lib/shopify_api/rest/resources/2022_10/marketing_event.rb +209 -0
  348. data/lib/shopify_api/rest/resources/2022_10/metafield.rb +342 -0
  349. data/lib/shopify_api/rest/resources/2022_10/mobile_platform_application.rb +110 -0
  350. data/lib/shopify_api/rest/resources/2022_10/order.rb +476 -0
  351. data/lib/shopify_api/rest/resources/2022_10/order_risk.rb +135 -0
  352. data/lib/shopify_api/rest/resources/2022_10/page.rb +194 -0
  353. data/lib/shopify_api/rest/resources/2022_10/payment.rb +140 -0
  354. data/lib/shopify_api/rest/resources/2022_10/payment_gateway.rb +143 -0
  355. data/lib/shopify_api/rest/resources/2022_10/payment_transaction.rb +107 -0
  356. data/lib/shopify_api/rest/resources/2022_10/payout.rb +97 -0
  357. data/lib/shopify_api/rest/resources/2022_10/policy.rb +69 -0
  358. data/lib/shopify_api/rest/resources/2022_10/price_rule.rb +223 -0
  359. data/lib/shopify_api/rest/resources/2022_10/product.rb +223 -0
  360. data/lib/shopify_api/rest/resources/2022_10/product_listing.rb +196 -0
  361. data/lib/shopify_api/rest/resources/2022_10/product_resource_feedback.rb +88 -0
  362. data/lib/shopify_api/rest/resources/2022_10/province.rb +132 -0
  363. data/lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb +167 -0
  364. data/lib/shopify_api/rest/resources/2022_10/redirect.rb +139 -0
  365. data/lib/shopify_api/rest/resources/2022_10/refund.rb +151 -0
  366. data/lib/shopify_api/rest/resources/2022_10/report.rb +121 -0
  367. data/lib/shopify_api/rest/resources/2022_10/resource_feedback.rb +73 -0
  368. data/lib/shopify_api/rest/resources/2022_10/script_tag.rb +155 -0
  369. data/lib/shopify_api/rest/resources/2022_10/shipping_zone.rb +83 -0
  370. data/lib/shopify_api/rest/resources/2022_10/shop.rb +221 -0
  371. data/lib/shopify_api/rest/resources/2022_10/smart_collection.rb +216 -0
  372. data/lib/shopify_api/rest/resources/2022_10/storefront_access_token.rb +87 -0
  373. data/lib/shopify_api/rest/resources/2022_10/tender_transaction.rb +93 -0
  374. data/lib/shopify_api/rest/resources/2022_10/theme.rb +120 -0
  375. data/lib/shopify_api/rest/resources/2022_10/transaction.rb +181 -0
  376. data/lib/shopify_api/rest/resources/2022_10/usage_charge.rb +97 -0
  377. data/lib/shopify_api/rest/resources/2022_10/user.rb +138 -0
  378. data/lib/shopify_api/rest/resources/2022_10/variant.rb +212 -0
  379. data/lib/shopify_api/rest/resources/2022_10/webhook.rb +168 -0
  380. data/lib/shopify_api/utils/graphql_proxy.rb +52 -0
  381. data/lib/shopify_api/utils/hmac_validator.rb +44 -0
  382. data/lib/shopify_api/utils/http_utils.rb +17 -0
  383. data/lib/shopify_api/utils/session_utils.rb +152 -0
  384. data/lib/shopify_api/utils/verifiable_query.rb +18 -0
  385. data/lib/shopify_api/version.rb +6 -0
  386. data/lib/shopify_api/webhooks/handler.rb +15 -0
  387. data/lib/shopify_api/webhooks/register_result.rb +14 -0
  388. data/lib/shopify_api/webhooks/registration.rb +73 -0
  389. data/lib/shopify_api/webhooks/registrations/event_bridge.rb +61 -0
  390. data/lib/shopify_api/webhooks/registrations/http.rb +72 -0
  391. data/lib/shopify_api/webhooks/registrations/pub_sub.rb +65 -0
  392. data/lib/shopify_api/webhooks/registry.rb +215 -0
  393. data/lib/shopify_api/webhooks/request.rb +56 -0
  394. data/lib/shopify_api.rb +23 -472
  395. data/service.yml +1 -0
  396. data/shipit.rubygems.yml +1 -0
  397. data/shopify_api.gemspec +43 -102
  398. data/sorbet/config +3 -0
  399. data/sorbet/rbi/gems/activesupport@7.0.1.rbi +654 -0
  400. data/sorbet/rbi/gems/addressable@2.8.0.rbi +290 -0
  401. data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
  402. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  403. data/sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi +2401 -0
  404. data/sorbet/rbi/gems/crack@0.4.5.rbi +57 -0
  405. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +185 -0
  406. data/sorbet/rbi/gems/fakefs@1.4.1.rbi +571 -0
  407. data/sorbet/rbi/gems/hash_diff@1.0.0.rbi +47 -0
  408. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +82 -0
  409. data/sorbet/rbi/gems/httparty@0.20.0.rbi +573 -0
  410. data/sorbet/rbi/gems/i18n@1.8.11.rbi +25 -0
  411. data/sorbet/rbi/gems/jwt@2.3.0.rbi +437 -0
  412. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  413. data/sorbet/rbi/gems/mime-types-data@3.2022.0105.rbi +73 -0
  414. data/sorbet/rbi/gems/mime-types@3.4.1.rbi +295 -0
  415. data/sorbet/rbi/gems/minitest@5.15.0.rbi +541 -0
  416. data/sorbet/rbi/gems/mocha@1.13.0.rbi +986 -0
  417. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +36 -0
  418. data/sorbet/rbi/gems/oj@3.13.11.rbi +274 -0
  419. data/sorbet/rbi/gems/openssl@3.0.0.rbi +581 -0
  420. data/sorbet/rbi/gems/parallel@1.21.0.rbi +113 -0
  421. data/sorbet/rbi/gems/parser@3.1.0.0.rbi +1741 -0
  422. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  423. data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +145 -0
  424. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +157 -0
  425. data/sorbet/rbi/gems/rake@13.0.6.rbi +814 -0
  426. data/sorbet/rbi/gems/rbi@0.0.11.rbi +1646 -0
  427. data/sorbet/rbi/gems/regexp_parser@2.2.0.rbi +1130 -0
  428. data/sorbet/rbi/gems/rexml@3.2.5.rbi +709 -0
  429. data/sorbet/rbi/gems/rubocop-ast@1.15.1.rbi +1921 -0
  430. data/sorbet/rbi/gems/rubocop-shopify@2.4.0.rbi +8 -0
  431. data/sorbet/rbi/gems/rubocop-sorbet@0.6.5.rbi +295 -0
  432. data/sorbet/rbi/gems/rubocop@1.25.1.rbi +13507 -0
  433. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +405 -0
  434. data/sorbet/rbi/gems/securerandom@0.1.1.rbi +10 -0
  435. data/sorbet/rbi/gems/spoom@1.1.8.rbi +1252 -0
  436. data/sorbet/rbi/gems/tapioca@0.6.3.rbi +1238 -0
  437. data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
  438. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +858 -0
  439. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +26 -0
  440. data/sorbet/rbi/gems/unparser@0.6.3.rbi +1816 -0
  441. data/sorbet/rbi/gems/webmock@3.14.0.rbi +683 -0
  442. data/sorbet/rbi/gems/webrick@1.7.0.rbi +601 -0
  443. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +199 -0
  444. data/sorbet/rbi/gems/yard@0.9.27.rbi +4145 -0
  445. data/sorbet/rbi/gems/zeitwerk@2.5.4.rbi +200 -0
  446. data/sorbet/rbi/shims/fakefs.rbi +1 -0
  447. data/sorbet/rbi/shims/openssl.rb +3 -0
  448. data/sorbet/rbi/todo.rbi +8 -0
  449. data/sorbet/tapioca/config.yml +4 -0
  450. data/sorbet/tapioca/require.rb +20 -0
  451. metadata +736 -80
  452. data/.document +0 -5
  453. data/.gitignore +0 -5
  454. data/CHANGELOG +0 -5
  455. data/README.rdoc +0 -55
  456. data/VERSION +0 -1
  457. data/test/order_test.rb +0 -48
  458. data/test/shopify_api_test.rb +0 -21
  459. data/test/test_helper.rb +0 -28
@@ -0,0 +1,36 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `multi_xml` gem.
5
+ # Please instead update this file by running `bin/tapioca gem multi_xml`.
6
+
7
+ module MultiXml
8
+ class << self
9
+ def default_parser; end
10
+ def parse(xml, options = T.unsafe(nil)); end
11
+ def parser; end
12
+ def parser=(new_parser); end
13
+
14
+ private
15
+
16
+ def parse_binary(binary, entity); end
17
+ def parse_file(file, entity); end
18
+ def symbolize_keys(params); end
19
+ def typecast_xml_value(value, disallowed_types = T.unsafe(nil)); end
20
+ def undasherize_keys(params); end
21
+ end
22
+ end
23
+
24
+ MultiXml::CONTENT_ROOT = T.let(T.unsafe(nil), String)
25
+ MultiXml::DEFAULT_OPTIONS = T.let(T.unsafe(nil), Hash)
26
+ MultiXml::DISALLOWED_XML_TYPES = T.let(T.unsafe(nil), Array)
27
+
28
+ class MultiXml::DisallowedTypeError < ::StandardError
29
+ def initialize(type); end
30
+ end
31
+
32
+ class MultiXml::NoParserError < ::StandardError; end
33
+ MultiXml::PARSING = T.let(T.unsafe(nil), Hash)
34
+ class MultiXml::ParseError < ::StandardError; end
35
+ MultiXml::REQUIREMENT_MAP = T.let(T.unsafe(nil), Array)
36
+ MultiXml::TYPE_NAMES = T.let(T.unsafe(nil), Hash)
@@ -0,0 +1,274 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `oj` gem.
5
+ # Please instead update this file by running `bin/tapioca gem oj`.
6
+
7
+ JSON::Parser = JSON::Ext::Parser
8
+ JSON::State = JSON::Ext::Generator::State
9
+
10
+ module Oj
11
+ private
12
+
13
+ def add_to_json(*_arg0); end
14
+ def compat_load(*_arg0); end
15
+ def default_options; end
16
+ def default_options=(_arg0); end
17
+ def dump(*_arg0); end
18
+ def fast_generate(*_arg0); end
19
+ def generate(*_arg0); end
20
+ def load(*_arg0); end
21
+ def load_file(*_arg0); end
22
+ def mimic_JSON(*_arg0); end
23
+ def object_load(*_arg0); end
24
+ def optimize_rails; end
25
+ def register_odd(*_arg0); end
26
+ def register_odd_raw(*_arg0); end
27
+ def remove_to_json(*_arg0); end
28
+ def safe_load(_arg0); end
29
+ def saj_parse(*_arg0); end
30
+ def sc_parse(*_arg0); end
31
+ def strict_load(*_arg0); end
32
+ def to_file(*_arg0); end
33
+ def to_json(*_arg0); end
34
+ def to_stream(*_arg0); end
35
+ def wab_load(*_arg0); end
36
+
37
+ class << self
38
+ def add_to_json(*_arg0); end
39
+ def compat_load(*_arg0); end
40
+ def default_options; end
41
+ def default_options=(_arg0); end
42
+ def dump(*_arg0); end
43
+ def fast_generate(*_arg0); end
44
+ def generate(*_arg0); end
45
+ def load(*_arg0); end
46
+ def load_file(*_arg0); end
47
+ def mimic_JSON(*_arg0); end
48
+ def mimic_loaded(mimic_paths = T.unsafe(nil)); end
49
+ def object_load(*_arg0); end
50
+ def optimize_rails; end
51
+ def register_odd(*_arg0); end
52
+ def register_odd_raw(*_arg0); end
53
+ def remove_to_json(*_arg0); end
54
+ def safe_load(_arg0); end
55
+ def saj_parse(*_arg0); end
56
+ def sc_parse(*_arg0); end
57
+ def strict_load(*_arg0); end
58
+ def to_file(*_arg0); end
59
+ def to_json(*_arg0); end
60
+ def to_stream(*_arg0); end
61
+ def wab_load(*_arg0); end
62
+ end
63
+ end
64
+
65
+ class Oj::Bag
66
+ def initialize(args = T.unsafe(nil)); end
67
+
68
+ def ==(other); end
69
+ def eql?(other); end
70
+ def method_missing(m, *args, &block); end
71
+ def respond_to?(m); end
72
+
73
+ class << self
74
+ def define_class(classname); end
75
+ end
76
+ end
77
+
78
+ class Oj::CStack; end
79
+ Oj::CUSTOM_MIMIC_JSON_OPTIONS = T.let(T.unsafe(nil), Hash)
80
+ class Oj::Cache; end
81
+ class Oj::DepthError < ::Oj::Error; end
82
+
83
+ class Oj::Doc
84
+ def clone; end
85
+ def close; end
86
+ def dump(*_arg0); end
87
+ def dup; end
88
+ def each_child(*_arg0); end
89
+ def each_leaf(*_arg0); end
90
+ def each_value(*_arg0); end
91
+ def exists?(_arg0); end
92
+ def fetch(*_arg0); end
93
+ def home; end
94
+ def local_key; end
95
+ def move(_arg0); end
96
+ def path; end
97
+ def size; end
98
+ def type(*_arg0); end
99
+ def where; end
100
+ def where?; end
101
+
102
+ class << self
103
+ def open(_arg0); end
104
+ def open_file(_arg0); end
105
+ def parse(_arg0); end
106
+ end
107
+ end
108
+
109
+ class Oj::EasyHash < ::Hash
110
+ def initialize; end
111
+
112
+ def [](key); end
113
+ def method_missing(m, *args, &block); end
114
+ def respond_to?(m, include_all = T.unsafe(nil)); end
115
+ end
116
+
117
+ class Oj::Error < ::StandardError; end
118
+ class Oj::LoadError < ::Oj::Error; end
119
+
120
+ class Oj::MimicDumpOption < ::Hash
121
+ def initialize; end
122
+
123
+ def []=(key, value); end
124
+ end
125
+
126
+ class Oj::MimicError < ::Oj::Error; end
127
+ class Oj::ParseError < ::Oj::Error; end
128
+
129
+ class Oj::Parser
130
+ def file(_arg0); end
131
+ def just_one; end
132
+ def just_one=(_arg0); end
133
+ def load(_arg0); end
134
+ def method_missing(*_arg0); end
135
+ def parse(_arg0); end
136
+
137
+ private
138
+
139
+ def new(*_arg0); end
140
+ def saj; end
141
+ def usual; end
142
+ def validate; end
143
+
144
+ class << self
145
+ def new(*_arg0); end
146
+ def saj; end
147
+ def usual; end
148
+ def validate; end
149
+ end
150
+ end
151
+
152
+ module Oj::Rails
153
+ private
154
+
155
+ def deoptimize(*_arg0); end
156
+ def encode(*_arg0); end
157
+ def mimic_JSON; end
158
+ def optimize(*_arg0); end
159
+ def optimized?(_arg0); end
160
+ def set_decoder; end
161
+ def set_encoder; end
162
+
163
+ class << self
164
+ def deoptimize(*_arg0); end
165
+ def encode(*_arg0); end
166
+ def mimic_JSON; end
167
+ def optimize(*_arg0); end
168
+ def optimized?(_arg0); end
169
+ def set_decoder; end
170
+ def set_encoder; end
171
+ end
172
+ end
173
+
174
+ class Oj::Rails::Encoder
175
+ def deoptimize(*_arg0); end
176
+ def encode(_arg0); end
177
+ def optimize(*_arg0); end
178
+ def optimized?(_arg0); end
179
+
180
+ private
181
+
182
+ def new(*_arg0); end
183
+
184
+ class << self
185
+ def new(*_arg0); end
186
+ end
187
+ end
188
+
189
+ class Oj::Saj
190
+ def initialize; end
191
+
192
+ private
193
+
194
+ def add_value(value, key); end
195
+ def array_end(key); end
196
+ def array_start(key); end
197
+ def error(message, line, column); end
198
+ def hash_end(key); end
199
+ def hash_start(key); end
200
+ end
201
+
202
+ class Oj::ScHandler
203
+ def initialize; end
204
+
205
+ private
206
+
207
+ def add_value(value); end
208
+ def array_append(a, value); end
209
+ def array_end; end
210
+ def array_start; end
211
+ def hash_end; end
212
+ def hash_key(key); end
213
+ def hash_set(h, key, value); end
214
+ def hash_start; end
215
+ end
216
+
217
+ class Oj::StreamWriter
218
+ def flush; end
219
+ def pop; end
220
+ def pop_all; end
221
+ def push_array(*_arg0); end
222
+ def push_json(*_arg0); end
223
+ def push_key(_arg0); end
224
+ def push_object(*_arg0); end
225
+ def push_value(*_arg0); end
226
+
227
+ private
228
+
229
+ def new(*_arg0); end
230
+
231
+ class << self
232
+ def new(*_arg0); end
233
+ end
234
+ end
235
+
236
+ class Oj::StringWriter
237
+ def as_json; end
238
+ def pop; end
239
+ def pop_all; end
240
+ def push_array(*_arg0); end
241
+ def push_json(*_arg0); end
242
+ def push_key(_arg0); end
243
+ def push_object(*_arg0); end
244
+ def push_value(*_arg0); end
245
+ def raw_json; end
246
+ def reset; end
247
+ def to_s; end
248
+
249
+ private
250
+
251
+ def new(*_arg0); end
252
+
253
+ class << self
254
+ def new(*_arg0); end
255
+ end
256
+ end
257
+
258
+ Oj::VERSION = T.let(T.unsafe(nil), String)
259
+
260
+ class String
261
+ include ::Comparable
262
+ include ::JSON::Ext::Generator::GeneratorMethods::String
263
+ extend ::JSON::Ext::Generator::GeneratorMethods::String::Extend
264
+
265
+ def to_json_raw(*_arg0); end
266
+ def to_json_raw_object; end
267
+
268
+ class << self
269
+ def json_create(obj); end
270
+ end
271
+ end
272
+
273
+ String::BLANK_RE = T.let(T.unsafe(nil), Regexp)
274
+ String::ENCODED_BLANKS = T.let(T.unsafe(nil), Concurrent::Map)