vrpayment-ruby-sdk 5.0.1

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 (1114) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +8 -0
  3. data/Gemfile.lock +55 -0
  4. data/LICENSE +201 -0
  5. data/README.md +176 -0
  6. data/Rakefile +14 -0
  7. data/lib/vrpayment-ruby-sdk/api/account_service_api.rb +398 -0
  8. data/lib/vrpayment-ruby-sdk/api/application_user_service_api.rb +398 -0
  9. data/lib/vrpayment-ruby-sdk/api/bank_account_service_api.rb +228 -0
  10. data/lib/vrpayment-ruby-sdk/api/bank_transaction_service_api.rb +228 -0
  11. data/lib/vrpayment-ruby-sdk/api/card_processing_service_api.rb +182 -0
  12. data/lib/vrpayment-ruby-sdk/api/charge_attempt_service_api.rb +228 -0
  13. data/lib/vrpayment-ruby-sdk/api/charge_bank_transaction_service_api.rb +228 -0
  14. data/lib/vrpayment-ruby-sdk/api/charge_flow_level_payment_link_service_api.rb +228 -0
  15. data/lib/vrpayment-ruby-sdk/api/charge_flow_level_service_api.rb +296 -0
  16. data/lib/vrpayment-ruby-sdk/api/charge_flow_service_api.rb +509 -0
  17. data/lib/vrpayment-ruby-sdk/api/condition_type_service_api.rb +149 -0
  18. data/lib/vrpayment-ruby-sdk/api/country_service_api.rb +86 -0
  19. data/lib/vrpayment-ruby-sdk/api/country_state_service_api.rb +149 -0
  20. data/lib/vrpayment-ruby-sdk/api/currency_bank_account_service_api.rb +228 -0
  21. data/lib/vrpayment-ruby-sdk/api/currency_service_api.rb +86 -0
  22. data/lib/vrpayment-ruby-sdk/api/customer_address_service_api.rb +495 -0
  23. data/lib/vrpayment-ruby-sdk/api/customer_comment_service_api.rb +562 -0
  24. data/lib/vrpayment-ruby-sdk/api/customer_service_api.rb +428 -0
  25. data/lib/vrpayment-ruby-sdk/api/delivery_indication_service_api.rb +362 -0
  26. data/lib/vrpayment-ruby-sdk/api/document_template_service_api.rb +228 -0
  27. data/lib/vrpayment-ruby-sdk/api/document_template_type_service_api.rb +149 -0
  28. data/lib/vrpayment-ruby-sdk/api/dunning_case_level_service_api.rb +228 -0
  29. data/lib/vrpayment-ruby-sdk/api/dunning_case_service_api.rb +366 -0
  30. data/lib/vrpayment-ruby-sdk/api/dunning_flow_level_service_api.rb +228 -0
  31. data/lib/vrpayment-ruby-sdk/api/dunning_flow_service_api.rb +228 -0
  32. data/lib/vrpayment-ruby-sdk/api/external_transfer_bank_transaction_service_api.rb +228 -0
  33. data/lib/vrpayment-ruby-sdk/api/human_user_service_api.rb +460 -0
  34. data/lib/vrpayment-ruby-sdk/api/internal_transfer_bank_transaction_service_api.rb +228 -0
  35. data/lib/vrpayment-ruby-sdk/api/invoice_reconciliation_record_invoice_link_service_api.rb +376 -0
  36. data/lib/vrpayment-ruby-sdk/api/invoice_reconciliation_record_service_api.rb +429 -0
  37. data/lib/vrpayment-ruby-sdk/api/invoice_reimbursement_service_api.rb +373 -0
  38. data/lib/vrpayment-ruby-sdk/api/label_description_group_service_api.rb +149 -0
  39. data/lib/vrpayment-ruby-sdk/api/label_description_service_api.rb +149 -0
  40. data/lib/vrpayment-ruby-sdk/api/language_service_api.rb +86 -0
  41. data/lib/vrpayment-ruby-sdk/api/legal_organization_form_service_api.rb +212 -0
  42. data/lib/vrpayment-ruby-sdk/api/manual_task_service_api.rb +228 -0
  43. data/lib/vrpayment-ruby-sdk/api/mertic_usage_service_api.rb +101 -0
  44. data/lib/vrpayment-ruby-sdk/api/payment_connector_configuration_service_api.rb +228 -0
  45. data/lib/vrpayment-ruby-sdk/api/payment_connector_service_api.rb +149 -0
  46. data/lib/vrpayment-ruby-sdk/api/payment_link_service_api.rb +428 -0
  47. data/lib/vrpayment-ruby-sdk/api/payment_method_brand_service_api.rb +149 -0
  48. data/lib/vrpayment-ruby-sdk/api/payment_method_configuration_service_api.rb +228 -0
  49. data/lib/vrpayment-ruby-sdk/api/payment_method_service_api.rb +149 -0
  50. data/lib/vrpayment-ruby-sdk/api/payment_processor_configuration_service_api.rb +228 -0
  51. data/lib/vrpayment-ruby-sdk/api/payment_processor_service_api.rb +149 -0
  52. data/lib/vrpayment-ruby-sdk/api/payment_terminal_service_api.rb +503 -0
  53. data/lib/vrpayment-ruby-sdk/api/payment_terminal_till_service_api.rb +180 -0
  54. data/lib/vrpayment-ruby-sdk/api/payment_terminal_transaction_summary_service_api.rb +295 -0
  55. data/lib/vrpayment-ruby-sdk/api/payment_web_app_service_api.rb +632 -0
  56. data/lib/vrpayment-ruby-sdk/api/permission_service_api.rb +149 -0
  57. data/lib/vrpayment-ruby-sdk/api/refund_bank_transaction_service_api.rb +228 -0
  58. data/lib/vrpayment-ruby-sdk/api/refund_comment_service_api.rb +498 -0
  59. data/lib/vrpayment-ruby-sdk/api/refund_recovery_bank_transaction_service_api.rb +228 -0
  60. data/lib/vrpayment-ruby-sdk/api/refund_service_api.rb +572 -0
  61. data/lib/vrpayment-ruby-sdk/api/space_service_api.rb +398 -0
  62. data/lib/vrpayment-ruby-sdk/api/static_value_service_api.rb +149 -0
  63. data/lib/vrpayment-ruby-sdk/api/subscriber_service_api.rb +428 -0
  64. data/lib/vrpayment-ruby-sdk/api/subscription_affiliate_service_api.rb +428 -0
  65. data/lib/vrpayment-ruby-sdk/api/subscription_charge_service_api.rb +363 -0
  66. data/lib/vrpayment-ruby-sdk/api/subscription_ledger_entry_service_api.rb +295 -0
  67. data/lib/vrpayment-ruby-sdk/api/subscription_metric_service_api.rb +428 -0
  68. data/lib/vrpayment-ruby-sdk/api/subscription_metric_usage_service_api.rb +295 -0
  69. data/lib/vrpayment-ruby-sdk/api/subscription_period_bill_service_api.rb +228 -0
  70. data/lib/vrpayment-ruby-sdk/api/subscription_product_component_group_service_api.rb +428 -0
  71. data/lib/vrpayment-ruby-sdk/api/subscription_product_component_service_api.rb +428 -0
  72. data/lib/vrpayment-ruby-sdk/api/subscription_product_fee_tier_service_api.rb +428 -0
  73. data/lib/vrpayment-ruby-sdk/api/subscription_product_metered_fee_service_api.rb +428 -0
  74. data/lib/vrpayment-ruby-sdk/api/subscription_product_period_fee_service_api.rb +428 -0
  75. data/lib/vrpayment-ruby-sdk/api/subscription_product_retirement_service_api.rb +295 -0
  76. data/lib/vrpayment-ruby-sdk/api/subscription_product_service_api.rb +362 -0
  77. data/lib/vrpayment-ruby-sdk/api/subscription_product_setup_fee_service_api.rb +428 -0
  78. data/lib/vrpayment-ruby-sdk/api/subscription_product_version_retirement_service_api.rb +295 -0
  79. data/lib/vrpayment-ruby-sdk/api/subscription_product_version_service_api.rb +430 -0
  80. data/lib/vrpayment-ruby-sdk/api/subscription_service_api.rb +793 -0
  81. data/lib/vrpayment-ruby-sdk/api/subscription_suspension_service_api.rb +363 -0
  82. data/lib/vrpayment-ruby-sdk/api/subscription_version_service_api.rb +228 -0
  83. data/lib/vrpayment-ruby-sdk/api/token_service_api.rb +768 -0
  84. data/lib/vrpayment-ruby-sdk/api/token_version_service_api.rb +296 -0
  85. data/lib/vrpayment-ruby-sdk/api/transaction_comment_service_api.rb +498 -0
  86. data/lib/vrpayment-ruby-sdk/api/transaction_completion_service_api.rb +498 -0
  87. data/lib/vrpayment-ruby-sdk/api/transaction_iframe_service_api.rb +96 -0
  88. data/lib/vrpayment-ruby-sdk/api/transaction_invoice_comment_service_api.rb +498 -0
  89. data/lib/vrpayment-ruby-sdk/api/transaction_invoice_service_api.rb +645 -0
  90. data/lib/vrpayment-ruby-sdk/api/transaction_lightbox_service_api.rb +96 -0
  91. data/lib/vrpayment-ruby-sdk/api/transaction_line_item_version_service_api.rb +295 -0
  92. data/lib/vrpayment-ruby-sdk/api/transaction_mobile_sdk_service_api.rb +91 -0
  93. data/lib/vrpayment-ruby-sdk/api/transaction_payment_page_service_api.rb +96 -0
  94. data/lib/vrpayment-ruby-sdk/api/transaction_service_api.rb +1238 -0
  95. data/lib/vrpayment-ruby-sdk/api/transaction_terminal_service_api.rb +171 -0
  96. data/lib/vrpayment-ruby-sdk/api/transaction_void_service_api.rb +364 -0
  97. data/lib/vrpayment-ruby-sdk/api/user_account_role_service_api.rb +234 -0
  98. data/lib/vrpayment-ruby-sdk/api/user_space_role_service_api.rb +231 -0
  99. data/lib/vrpayment-ruby-sdk/api/web_app_service_api.rb +215 -0
  100. data/lib/vrpayment-ruby-sdk/api/webhook_encryption_service_api.rb +117 -0
  101. data/lib/vrpayment-ruby-sdk/api/webhook_listener_service_api.rb +428 -0
  102. data/lib/vrpayment-ruby-sdk/api/webhook_url_service_api.rb +428 -0
  103. data/lib/vrpayment-ruby-sdk/api_client.rb +423 -0
  104. data/lib/vrpayment-ruby-sdk/api_error.rb +43 -0
  105. data/lib/vrpayment-ruby-sdk/configuration.rb +143 -0
  106. data/lib/vrpayment-ruby-sdk/encryption_util.rb +40 -0
  107. data/lib/vrpayment-ruby-sdk/models/abstract_account_update.rb +234 -0
  108. data/lib/vrpayment-ruby-sdk/models/abstract_application_user_update.rb +225 -0
  109. data/lib/vrpayment-ruby-sdk/models/abstract_customer_active.rb +312 -0
  110. data/lib/vrpayment-ruby-sdk/models/abstract_customer_address_active.rb +200 -0
  111. data/lib/vrpayment-ruby-sdk/models/abstract_customer_comment_active.rb +205 -0
  112. data/lib/vrpayment-ruby-sdk/models/abstract_human_user_update.rb +320 -0
  113. data/lib/vrpayment-ruby-sdk/models/abstract_payment_link_update.rb +309 -0
  114. data/lib/vrpayment-ruby-sdk/models/abstract_refund_comment_active.rb +205 -0
  115. data/lib/vrpayment-ruby-sdk/models/abstract_space_update.rb +286 -0
  116. data/lib/vrpayment-ruby-sdk/models/abstract_subscriber_update.rb +321 -0
  117. data/lib/vrpayment-ruby-sdk/models/abstract_subscription_affiliate_update.rb +246 -0
  118. data/lib/vrpayment-ruby-sdk/models/abstract_subscription_metric_update.rb +204 -0
  119. data/lib/vrpayment-ruby-sdk/models/abstract_subscription_product_active.rb +257 -0
  120. data/lib/vrpayment-ruby-sdk/models/abstract_token_update.rb +270 -0
  121. data/lib/vrpayment-ruby-sdk/models/abstract_transaction_comment_active.rb +205 -0
  122. data/lib/vrpayment-ruby-sdk/models/abstract_transaction_invoice_comment_active.rb +205 -0
  123. data/lib/vrpayment-ruby-sdk/models/abstract_transaction_pending.rb +486 -0
  124. data/lib/vrpayment-ruby-sdk/models/abstract_webhook_listener_update.rb +237 -0
  125. data/lib/vrpayment-ruby-sdk/models/abstract_webhook_url_update.rb +249 -0
  126. data/lib/vrpayment-ruby-sdk/models/account.rb +375 -0
  127. data/lib/vrpayment-ruby-sdk/models/account_create.rb +260 -0
  128. data/lib/vrpayment-ruby-sdk/models/account_state.rb +39 -0
  129. data/lib/vrpayment-ruby-sdk/models/account_type.rb +36 -0
  130. data/lib/vrpayment-ruby-sdk/models/account_update.rb +265 -0
  131. data/lib/vrpayment-ruby-sdk/models/address.rb +606 -0
  132. data/lib/vrpayment-ruby-sdk/models/address_create.rb +606 -0
  133. data/lib/vrpayment-ruby-sdk/models/application_user.rb +286 -0
  134. data/lib/vrpayment-ruby-sdk/models/application_user_create.rb +241 -0
  135. data/lib/vrpayment-ruby-sdk/models/application_user_create_with_mac_key.rb +296 -0
  136. data/lib/vrpayment-ruby-sdk/models/application_user_update.rb +256 -0
  137. data/lib/vrpayment-ruby-sdk/models/authenticated_card_data.rb +231 -0
  138. data/lib/vrpayment-ruby-sdk/models/authenticated_card_data_create.rb +368 -0
  139. data/lib/vrpayment-ruby-sdk/models/bank_account.rb +291 -0
  140. data/lib/vrpayment-ruby-sdk/models/bank_account_environment.rb +35 -0
  141. data/lib/vrpayment-ruby-sdk/models/bank_account_state.rb +37 -0
  142. data/lib/vrpayment-ruby-sdk/models/bank_account_type.rb +227 -0
  143. data/lib/vrpayment-ruby-sdk/models/bank_transaction.rb +397 -0
  144. data/lib/vrpayment-ruby-sdk/models/bank_transaction_flow_direction.rb +35 -0
  145. data/lib/vrpayment-ruby-sdk/models/bank_transaction_source.rb +215 -0
  146. data/lib/vrpayment-ruby-sdk/models/bank_transaction_state.rb +35 -0
  147. data/lib/vrpayment-ruby-sdk/models/bank_transaction_type.rb +215 -0
  148. data/lib/vrpayment-ruby-sdk/models/billing_cycle_model.rb +251 -0
  149. data/lib/vrpayment-ruby-sdk/models/billing_cycle_type.rb +37 -0
  150. data/lib/vrpayment-ruby-sdk/models/billing_day_customization.rb +35 -0
  151. data/lib/vrpayment-ruby-sdk/models/card_authentication_response.rb +38 -0
  152. data/lib/vrpayment-ruby-sdk/models/card_authentication_version.rb +35 -0
  153. data/lib/vrpayment-ruby-sdk/models/card_cryptogram.rb +201 -0
  154. data/lib/vrpayment-ruby-sdk/models/card_cryptogram_create.rb +206 -0
  155. data/lib/vrpayment-ruby-sdk/models/cardholder_authentication.rb +231 -0
  156. data/lib/vrpayment-ruby-sdk/models/cardholder_authentication_create.rb +241 -0
  157. data/lib/vrpayment-ruby-sdk/models/charge.rb +321 -0
  158. data/lib/vrpayment-ruby-sdk/models/charge_attempt.rb +488 -0
  159. data/lib/vrpayment-ruby-sdk/models/charge_attempt_environment.rb +35 -0
  160. data/lib/vrpayment-ruby-sdk/models/charge_attempt_state.rb +36 -0
  161. data/lib/vrpayment-ruby-sdk/models/charge_bank_transaction.rb +291 -0
  162. data/lib/vrpayment-ruby-sdk/models/charge_flow.rb +263 -0
  163. data/lib/vrpayment-ruby-sdk/models/charge_flow_level.rb +311 -0
  164. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_configuration.rb +296 -0
  165. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_configuration_type.rb +227 -0
  166. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_payment_link.rb +221 -0
  167. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_state.rb +36 -0
  168. data/lib/vrpayment-ruby-sdk/models/charge_state.rb +36 -0
  169. data/lib/vrpayment-ruby-sdk/models/charge_type.rb +37 -0
  170. data/lib/vrpayment-ruby-sdk/models/client_error.rb +231 -0
  171. data/lib/vrpayment-ruby-sdk/models/client_error_type.rb +36 -0
  172. data/lib/vrpayment-ruby-sdk/models/completion_line_item.rb +226 -0
  173. data/lib/vrpayment-ruby-sdk/models/completion_line_item_create.rb +245 -0
  174. data/lib/vrpayment-ruby-sdk/models/condition.rb +266 -0
  175. data/lib/vrpayment-ruby-sdk/models/condition_type.rb +215 -0
  176. data/lib/vrpayment-ruby-sdk/models/connector_invocation.rb +261 -0
  177. data/lib/vrpayment-ruby-sdk/models/connector_invocation_stage.rb +37 -0
  178. data/lib/vrpayment-ruby-sdk/models/creation_entity_state.rb +38 -0
  179. data/lib/vrpayment-ruby-sdk/models/criteria_operator.rb +45 -0
  180. data/lib/vrpayment-ruby-sdk/models/currency_bank_account.rb +241 -0
  181. data/lib/vrpayment-ruby-sdk/models/customer.rb +353 -0
  182. data/lib/vrpayment-ruby-sdk/models/customer_active.rb +343 -0
  183. data/lib/vrpayment-ruby-sdk/models/customer_address.rb +261 -0
  184. data/lib/vrpayment-ruby-sdk/models/customer_address_active.rb +231 -0
  185. data/lib/vrpayment-ruby-sdk/models/customer_address_create.rb +216 -0
  186. data/lib/vrpayment-ruby-sdk/models/customer_address_type.rb +36 -0
  187. data/lib/vrpayment-ruby-sdk/models/customer_comment.rb +296 -0
  188. data/lib/vrpayment-ruby-sdk/models/customer_comment_active.rb +236 -0
  189. data/lib/vrpayment-ruby-sdk/models/customer_comment_create.rb +221 -0
  190. data/lib/vrpayment-ruby-sdk/models/customer_create.rb +313 -0
  191. data/lib/vrpayment-ruby-sdk/models/customer_postal_address.rb +606 -0
  192. data/lib/vrpayment-ruby-sdk/models/customer_postal_address_create.rb +606 -0
  193. data/lib/vrpayment-ruby-sdk/models/customers_presence.rb +36 -0
  194. data/lib/vrpayment-ruby-sdk/models/data_collection_type.rb +35 -0
  195. data/lib/vrpayment-ruby-sdk/models/delivery_indication.rb +321 -0
  196. data/lib/vrpayment-ruby-sdk/models/delivery_indication_decision_reason.rb +215 -0
  197. data/lib/vrpayment-ruby-sdk/models/delivery_indication_state.rb +37 -0
  198. data/lib/vrpayment-ruby-sdk/models/displayable_day_of_week.rb +40 -0
  199. data/lib/vrpayment-ruby-sdk/models/displayable_month.rb +45 -0
  200. data/lib/vrpayment-ruby-sdk/models/document_template.rb +306 -0
  201. data/lib/vrpayment-ruby-sdk/models/document_template_type.rb +235 -0
  202. data/lib/vrpayment-ruby-sdk/models/document_template_type_group.rb +203 -0
  203. data/lib/vrpayment-ruby-sdk/models/dunning_case.rb +311 -0
  204. data/lib/vrpayment-ruby-sdk/models/dunning_case_level.rb +351 -0
  205. data/lib/vrpayment-ruby-sdk/models/dunning_case_level_state.rb +38 -0
  206. data/lib/vrpayment-ruby-sdk/models/dunning_case_state.rb +39 -0
  207. data/lib/vrpayment-ruby-sdk/models/dunning_condition.rb +266 -0
  208. data/lib/vrpayment-ruby-sdk/models/dunning_condition_type.rb +215 -0
  209. data/lib/vrpayment-ruby-sdk/models/dunning_flow.rb +273 -0
  210. data/lib/vrpayment-ruby-sdk/models/dunning_flow_level.rb +330 -0
  211. data/lib/vrpayment-ruby-sdk/models/dunning_flow_level_processor.rb +225 -0
  212. data/lib/vrpayment-ruby-sdk/models/dunning_flow_type.rb +225 -0
  213. data/lib/vrpayment-ruby-sdk/models/entity_export_request.rb +208 -0
  214. data/lib/vrpayment-ruby-sdk/models/entity_query.rb +233 -0
  215. data/lib/vrpayment-ruby-sdk/models/entity_query_filter.rb +238 -0
  216. data/lib/vrpayment-ruby-sdk/models/entity_query_filter_type.rb +36 -0
  217. data/lib/vrpayment-ruby-sdk/models/entity_query_order_by.rb +211 -0
  218. data/lib/vrpayment-ruby-sdk/models/entity_query_order_by_type.rb +35 -0
  219. data/lib/vrpayment-ruby-sdk/models/environment.rb +35 -0
  220. data/lib/vrpayment-ruby-sdk/models/external_transfer_bank_transaction.rb +251 -0
  221. data/lib/vrpayment-ruby-sdk/models/failure_category.rb +38 -0
  222. data/lib/vrpayment-ruby-sdk/models/failure_reason.rb +225 -0
  223. data/lib/vrpayment-ruby-sdk/models/feature.rb +277 -0
  224. data/lib/vrpayment-ruby-sdk/models/feature_category.rb +225 -0
  225. data/lib/vrpayment-ruby-sdk/models/gender.rb +35 -0
  226. data/lib/vrpayment-ruby-sdk/models/human_user.rb +361 -0
  227. data/lib/vrpayment-ruby-sdk/models/human_user_create.rb +331 -0
  228. data/lib/vrpayment-ruby-sdk/models/human_user_update.rb +351 -0
  229. data/lib/vrpayment-ruby-sdk/models/internal_transfer_bank_transaction.rb +231 -0
  230. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record.rb +571 -0
  231. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_invoice_link.rb +241 -0
  232. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_rejection_status.rb +36 -0
  233. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_state.rb +38 -0
  234. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_type.rb +215 -0
  235. data/lib/vrpayment-ruby-sdk/models/invoice_reimbursement.rb +401 -0
  236. data/lib/vrpayment-ruby-sdk/models/invoice_reimbursement_state.rb +38 -0
  237. data/lib/vrpayment-ruby-sdk/models/invoice_reimbursement_with_refund_reference.rb +411 -0
  238. data/lib/vrpayment-ruby-sdk/models/label.rb +211 -0
  239. data/lib/vrpayment-ruby-sdk/models/label_descriptor.rb +267 -0
  240. data/lib/vrpayment-ruby-sdk/models/label_descriptor_category.rb +35 -0
  241. data/lib/vrpayment-ruby-sdk/models/label_descriptor_group.rb +225 -0
  242. data/lib/vrpayment-ruby-sdk/models/label_descriptor_type.rb +215 -0
  243. data/lib/vrpayment-ruby-sdk/models/legal_organization_form.rb +235 -0
  244. data/lib/vrpayment-ruby-sdk/models/line_item.rb +449 -0
  245. data/lib/vrpayment-ruby-sdk/models/line_item_attribute.rb +231 -0
  246. data/lib/vrpayment-ruby-sdk/models/line_item_attribute_create.rb +249 -0
  247. data/lib/vrpayment-ruby-sdk/models/line_item_create.rb +372 -0
  248. data/lib/vrpayment-ruby-sdk/models/line_item_reduction.rb +226 -0
  249. data/lib/vrpayment-ruby-sdk/models/line_item_reduction_create.rb +245 -0
  250. data/lib/vrpayment-ruby-sdk/models/line_item_type.rb +38 -0
  251. data/lib/vrpayment-ruby-sdk/models/localized_string.rb +201 -0
  252. data/lib/vrpayment-ruby-sdk/models/manual_task.rb +273 -0
  253. data/lib/vrpayment-ruby-sdk/models/manual_task_action.rb +223 -0
  254. data/lib/vrpayment-ruby-sdk/models/manual_task_action_style.rb +36 -0
  255. data/lib/vrpayment-ruby-sdk/models/manual_task_state.rb +36 -0
  256. data/lib/vrpayment-ruby-sdk/models/manual_task_type.rb +227 -0
  257. data/lib/vrpayment-ruby-sdk/models/metric_usage.rb +225 -0
  258. data/lib/vrpayment-ruby-sdk/models/one_click_payment_mode.rb +36 -0
  259. data/lib/vrpayment-ruby-sdk/models/pan_type.rb +40 -0
  260. data/lib/vrpayment-ruby-sdk/models/payment_adjustment.rb +241 -0
  261. data/lib/vrpayment-ruby-sdk/models/payment_adjustment_type.rb +215 -0
  262. data/lib/vrpayment-ruby-sdk/models/payment_app_charge_attempt_target_state.rb +35 -0
  263. data/lib/vrpayment-ruby-sdk/models/payment_app_charge_attempt_update_request.rb +261 -0
  264. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_configuration.rb +231 -0
  265. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_configuration_create.rb +231 -0
  266. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_target_state.rb +35 -0
  267. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_update_request.rb +236 -0
  268. data/lib/vrpayment-ruby-sdk/models/payment_app_connector.rb +351 -0
  269. data/lib/vrpayment-ruby-sdk/models/payment_app_connector_creation_request.rb +366 -0
  270. data/lib/vrpayment-ruby-sdk/models/payment_app_connector_state.rb +35 -0
  271. data/lib/vrpayment-ruby-sdk/models/payment_app_processor.rb +386 -0
  272. data/lib/vrpayment-ruby-sdk/models/payment_app_processor_creation_request.rb +317 -0
  273. data/lib/vrpayment-ruby-sdk/models/payment_app_processor_state.rb +35 -0
  274. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_configuration.rb +211 -0
  275. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_configuration_create.rb +211 -0
  276. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_target_state.rb +35 -0
  277. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_update_request.rb +236 -0
  278. data/lib/vrpayment-ruby-sdk/models/payment_app_void_target_state.rb +35 -0
  279. data/lib/vrpayment-ruby-sdk/models/payment_app_void_update_request.rb +236 -0
  280. data/lib/vrpayment-ruby-sdk/models/payment_connector.rb +323 -0
  281. data/lib/vrpayment-ruby-sdk/models/payment_connector_configuration.rb +352 -0
  282. data/lib/vrpayment-ruby-sdk/models/payment_connector_feature.rb +201 -0
  283. data/lib/vrpayment-ruby-sdk/models/payment_contract.rb +341 -0
  284. data/lib/vrpayment-ruby-sdk/models/payment_contract_state.rb +38 -0
  285. data/lib/vrpayment-ruby-sdk/models/payment_contract_type.rb +215 -0
  286. data/lib/vrpayment-ruby-sdk/models/payment_information_hash.rb +211 -0
  287. data/lib/vrpayment-ruby-sdk/models/payment_information_hash_type.rb +203 -0
  288. data/lib/vrpayment-ruby-sdk/models/payment_initiation_advice_file.rb +281 -0
  289. data/lib/vrpayment-ruby-sdk/models/payment_initiation_advice_file_state.rb +40 -0
  290. data/lib/vrpayment-ruby-sdk/models/payment_link.rb +390 -0
  291. data/lib/vrpayment-ruby-sdk/models/payment_link_active.rb +350 -0
  292. data/lib/vrpayment-ruby-sdk/models/payment_link_address_handling_mode.rb +36 -0
  293. data/lib/vrpayment-ruby-sdk/models/payment_link_create.rb +350 -0
  294. data/lib/vrpayment-ruby-sdk/models/payment_link_protection_mode.rb +35 -0
  295. data/lib/vrpayment-ruby-sdk/models/payment_link_update.rb +340 -0
  296. data/lib/vrpayment-ruby-sdk/models/payment_method.rb +261 -0
  297. data/lib/vrpayment-ruby-sdk/models/payment_method_brand.rb +245 -0
  298. data/lib/vrpayment-ruby-sdk/models/payment_method_configuration.rb +374 -0
  299. data/lib/vrpayment-ruby-sdk/models/payment_primary_risk_taker.rb +36 -0
  300. data/lib/vrpayment-ruby-sdk/models/payment_processor.rb +261 -0
  301. data/lib/vrpayment-ruby-sdk/models/payment_processor_configuration.rb +286 -0
  302. data/lib/vrpayment-ruby-sdk/models/payment_terminal.rb +336 -0
  303. data/lib/vrpayment-ruby-sdk/models/payment_terminal_address.rb +396 -0
  304. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration.rb +266 -0
  305. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration_state.rb +37 -0
  306. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration_version.rb +323 -0
  307. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration_version_state.rb +38 -0
  308. data/lib/vrpayment-ruby-sdk/models/payment_terminal_dcc_transaction_sum.rb +261 -0
  309. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location.rb +266 -0
  310. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location_state.rb +37 -0
  311. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location_version.rb +291 -0
  312. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location_version_state.rb +38 -0
  313. data/lib/vrpayment-ruby-sdk/models/payment_terminal_receipt_type.rb +215 -0
  314. data/lib/vrpayment-ruby-sdk/models/payment_terminal_state.rb +39 -0
  315. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_sum.rb +291 -0
  316. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_summary.rb +307 -0
  317. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_summary_fetch_request.rb +221 -0
  318. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_summary_reference.rb +221 -0
  319. data/lib/vrpayment-ruby-sdk/models/payment_terminal_type.rb +215 -0
  320. data/lib/vrpayment-ruby-sdk/models/permission.rb +299 -0
  321. data/lib/vrpayment-ruby-sdk/models/persistable_currency_amount.rb +201 -0
  322. data/lib/vrpayment-ruby-sdk/models/persistable_currency_amount_update.rb +201 -0
  323. data/lib/vrpayment-ruby-sdk/models/product_fee_type.rb +36 -0
  324. data/lib/vrpayment-ruby-sdk/models/product_metered_fee.rb +275 -0
  325. data/lib/vrpayment-ruby-sdk/models/product_metered_fee_update.rb +265 -0
  326. data/lib/vrpayment-ruby-sdk/models/product_metered_tier_fee.rb +233 -0
  327. data/lib/vrpayment-ruby-sdk/models/product_metered_tier_fee_update.rb +243 -0
  328. data/lib/vrpayment-ruby-sdk/models/product_metered_tier_pricing.rb +35 -0
  329. data/lib/vrpayment-ruby-sdk/models/product_period_fee.rb +289 -0
  330. data/lib/vrpayment-ruby-sdk/models/product_period_fee_update.rb +279 -0
  331. data/lib/vrpayment-ruby-sdk/models/product_setup_fee.rb +291 -0
  332. data/lib/vrpayment-ruby-sdk/models/product_setup_fee_update.rb +281 -0
  333. data/lib/vrpayment-ruby-sdk/models/recurring_indicator.rb +37 -0
  334. data/lib/vrpayment-ruby-sdk/models/refund.rb +567 -0
  335. data/lib/vrpayment-ruby-sdk/models/refund_bank_transaction.rb +281 -0
  336. data/lib/vrpayment-ruby-sdk/models/refund_comment.rb +296 -0
  337. data/lib/vrpayment-ruby-sdk/models/refund_comment_active.rb +236 -0
  338. data/lib/vrpayment-ruby-sdk/models/refund_comment_create.rb +221 -0
  339. data/lib/vrpayment-ruby-sdk/models/refund_create.rb +306 -0
  340. data/lib/vrpayment-ruby-sdk/models/refund_recovery_bank_transaction.rb +293 -0
  341. data/lib/vrpayment-ruby-sdk/models/refund_state.rb +39 -0
  342. data/lib/vrpayment-ruby-sdk/models/refund_type.rb +37 -0
  343. data/lib/vrpayment-ruby-sdk/models/rendered_document.rb +235 -0
  344. data/lib/vrpayment-ruby-sdk/models/rendered_terminal_receipt.rb +235 -0
  345. data/lib/vrpayment-ruby-sdk/models/rendered_terminal_transaction_summary.rb +215 -0
  346. data/lib/vrpayment-ruby-sdk/models/resource_path.rb +275 -0
  347. data/lib/vrpayment-ruby-sdk/models/resource_state.rb +36 -0
  348. data/lib/vrpayment-ruby-sdk/models/rest_address_format.rb +227 -0
  349. data/lib/vrpayment-ruby-sdk/models/rest_address_format_field.rb +43 -0
  350. data/lib/vrpayment-ruby-sdk/models/rest_country.rb +243 -0
  351. data/lib/vrpayment-ruby-sdk/models/rest_country_state.rb +221 -0
  352. data/lib/vrpayment-ruby-sdk/models/rest_currency.rb +221 -0
  353. data/lib/vrpayment-ruby-sdk/models/rest_language.rb +251 -0
  354. data/lib/vrpayment-ruby-sdk/models/role.rb +265 -0
  355. data/lib/vrpayment-ruby-sdk/models/role_state.rb +37 -0
  356. data/lib/vrpayment-ruby-sdk/models/sales_channel.rb +225 -0
  357. data/lib/vrpayment-ruby-sdk/models/scope.rb +350 -0
  358. data/lib/vrpayment-ruby-sdk/models/server_error.rb +211 -0
  359. data/lib/vrpayment-ruby-sdk/models/space.rb +407 -0
  360. data/lib/vrpayment-ruby-sdk/models/space_address.rb +466 -0
  361. data/lib/vrpayment-ruby-sdk/models/space_address_create.rb +466 -0
  362. data/lib/vrpayment-ruby-sdk/models/space_create.rb +312 -0
  363. data/lib/vrpayment-ruby-sdk/models/space_update.rb +317 -0
  364. data/lib/vrpayment-ruby-sdk/models/space_view.rb +275 -0
  365. data/lib/vrpayment-ruby-sdk/models/static_value.rb +227 -0
  366. data/lib/vrpayment-ruby-sdk/models/subscriber.rb +382 -0
  367. data/lib/vrpayment-ruby-sdk/models/subscriber_active.rb +362 -0
  368. data/lib/vrpayment-ruby-sdk/models/subscriber_create.rb +347 -0
  369. data/lib/vrpayment-ruby-sdk/models/subscriber_update.rb +352 -0
  370. data/lib/vrpayment-ruby-sdk/models/subscription.rb +411 -0
  371. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate.rb +331 -0
  372. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_create.rb +305 -0
  373. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_deleted.rb +331 -0
  374. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_deleting.rb +331 -0
  375. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_inactive.rb +277 -0
  376. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_update.rb +277 -0
  377. data/lib/vrpayment-ruby-sdk/models/subscription_change_request.rb +260 -0
  378. data/lib/vrpayment-ruby-sdk/models/subscription_charge.rb +456 -0
  379. data/lib/vrpayment-ruby-sdk/models/subscription_charge_create.rb +329 -0
  380. data/lib/vrpayment-ruby-sdk/models/subscription_charge_processing_type.rb +35 -0
  381. data/lib/vrpayment-ruby-sdk/models/subscription_charge_state.rb +38 -0
  382. data/lib/vrpayment-ruby-sdk/models/subscription_charge_type.rb +35 -0
  383. data/lib/vrpayment-ruby-sdk/models/subscription_component_configuration.rb +231 -0
  384. data/lib/vrpayment-ruby-sdk/models/subscription_component_reference_configuration.rb +201 -0
  385. data/lib/vrpayment-ruby-sdk/models/subscription_create_request.rb +250 -0
  386. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry.rb +442 -0
  387. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry_create.rb +316 -0
  388. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry_state.rb +36 -0
  389. data/lib/vrpayment-ruby-sdk/models/subscription_metric.rb +265 -0
  390. data/lib/vrpayment-ruby-sdk/models/subscription_metric_active.rb +235 -0
  391. data/lib/vrpayment-ruby-sdk/models/subscription_metric_create.rb +225 -0
  392. data/lib/vrpayment-ruby-sdk/models/subscription_metric_type.rb +225 -0
  393. data/lib/vrpayment-ruby-sdk/models/subscription_metric_update.rb +235 -0
  394. data/lib/vrpayment-ruby-sdk/models/subscription_metric_usage_report.rb +306 -0
  395. data/lib/vrpayment-ruby-sdk/models/subscription_metric_usage_report_create.rb +266 -0
  396. data/lib/vrpayment-ruby-sdk/models/subscription_pending.rb +301 -0
  397. data/lib/vrpayment-ruby-sdk/models/subscription_period_bill.rb +291 -0
  398. data/lib/vrpayment-ruby-sdk/models/subscription_period_bill_state.rb +35 -0
  399. data/lib/vrpayment-ruby-sdk/models/subscription_product.rb +333 -0
  400. data/lib/vrpayment-ruby-sdk/models/subscription_product_active.rb +288 -0
  401. data/lib/vrpayment-ruby-sdk/models/subscription_product_component.rb +325 -0
  402. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_group.rb +253 -0
  403. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_group_update.rb +253 -0
  404. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_reference.rb +281 -0
  405. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_reference_state.rb +37 -0
  406. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_update.rb +325 -0
  407. data/lib/vrpayment-ruby-sdk/models/subscription_product_create.rb +292 -0
  408. data/lib/vrpayment-ruby-sdk/models/subscription_product_retirement.rb +251 -0
  409. data/lib/vrpayment-ruby-sdk/models/subscription_product_retirement_create.rb +216 -0
  410. data/lib/vrpayment-ruby-sdk/models/subscription_product_state.rb +38 -0
  411. data/lib/vrpayment-ruby-sdk/models/subscription_product_version.rb +420 -0
  412. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_pending.rb +315 -0
  413. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_retirement.rb +251 -0
  414. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_retirement_create.rb +216 -0
  415. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_state.rb +38 -0
  416. data/lib/vrpayment-ruby-sdk/models/subscription_state.rb +41 -0
  417. data/lib/vrpayment-ruby-sdk/models/subscription_suspension.rb +336 -0
  418. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_action.rb +35 -0
  419. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_create.rb +251 -0
  420. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_reason.rb +36 -0
  421. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_running.rb +336 -0
  422. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_state.rb +35 -0
  423. data/lib/vrpayment-ruby-sdk/models/subscription_update.rb +256 -0
  424. data/lib/vrpayment-ruby-sdk/models/subscription_update_request.rb +206 -0
  425. data/lib/vrpayment-ruby-sdk/models/subscription_version.rb +373 -0
  426. data/lib/vrpayment-ruby-sdk/models/subscription_version_state.rb +39 -0
  427. data/lib/vrpayment-ruby-sdk/models/tax.rb +225 -0
  428. data/lib/vrpayment-ruby-sdk/models/tax_calculation.rb +35 -0
  429. data/lib/vrpayment-ruby-sdk/models/tax_class.rb +256 -0
  430. data/lib/vrpayment-ruby-sdk/models/tax_create.rb +239 -0
  431. data/lib/vrpayment-ruby-sdk/models/tenant_database.rb +226 -0
  432. data/lib/vrpayment-ruby-sdk/models/terminal_receipt_fetch_request.rb +221 -0
  433. data/lib/vrpayment-ruby-sdk/models/terminal_receipt_format.rb +35 -0
  434. data/lib/vrpayment-ruby-sdk/models/token.rb +341 -0
  435. data/lib/vrpayment-ruby-sdk/models/token_create.rb +296 -0
  436. data/lib/vrpayment-ruby-sdk/models/token_update.rb +301 -0
  437. data/lib/vrpayment-ruby-sdk/models/token_version.rb +445 -0
  438. data/lib/vrpayment-ruby-sdk/models/token_version_state.rb +36 -0
  439. data/lib/vrpayment-ruby-sdk/models/token_version_type.rb +225 -0
  440. data/lib/vrpayment-ruby-sdk/models/tokenization_mode.rb +37 -0
  441. data/lib/vrpayment-ruby-sdk/models/tokenized_card_data.rb +221 -0
  442. data/lib/vrpayment-ruby-sdk/models/tokenized_card_data_create.rb +358 -0
  443. data/lib/vrpayment-ruby-sdk/models/transaction.rb +1021 -0
  444. data/lib/vrpayment-ruby-sdk/models/transaction_comment.rb +296 -0
  445. data/lib/vrpayment-ruby-sdk/models/transaction_comment_active.rb +236 -0
  446. data/lib/vrpayment-ruby-sdk/models/transaction_comment_create.rb +221 -0
  447. data/lib/vrpayment-ruby-sdk/models/transaction_completion.rb +553 -0
  448. data/lib/vrpayment-ruby-sdk/models/transaction_completion_behavior.rb +36 -0
  449. data/lib/vrpayment-ruby-sdk/models/transaction_completion_mode.rb +36 -0
  450. data/lib/vrpayment-ruby-sdk/models/transaction_completion_request.rb +316 -0
  451. data/lib/vrpayment-ruby-sdk/models/transaction_completion_state.rb +38 -0
  452. data/lib/vrpayment-ruby-sdk/models/transaction_create.rb +596 -0
  453. data/lib/vrpayment-ruby-sdk/models/transaction_environment_selection_strategy.rb +36 -0
  454. data/lib/vrpayment-ruby-sdk/models/transaction_group.rb +276 -0
  455. data/lib/vrpayment-ruby-sdk/models/transaction_group_state.rb +36 -0
  456. data/lib/vrpayment-ruby-sdk/models/transaction_invoice.rb +452 -0
  457. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_comment.rb +296 -0
  458. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_comment_active.rb +236 -0
  459. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_comment_create.rb +221 -0
  460. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_replacement.rb +296 -0
  461. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_state.rb +40 -0
  462. data/lib/vrpayment-ruby-sdk/models/transaction_line_item_version.rb +405 -0
  463. data/lib/vrpayment-ruby-sdk/models/transaction_line_item_version_create.rb +228 -0
  464. data/lib/vrpayment-ruby-sdk/models/transaction_line_item_version_state.rb +38 -0
  465. data/lib/vrpayment-ruby-sdk/models/transaction_pending.rb +517 -0
  466. data/lib/vrpayment-ruby-sdk/models/transaction_state.rb +43 -0
  467. data/lib/vrpayment-ruby-sdk/models/transaction_user_interface_type.rb +38 -0
  468. data/lib/vrpayment-ruby-sdk/models/transaction_void.rb +373 -0
  469. data/lib/vrpayment-ruby-sdk/models/transaction_void_mode.rb +35 -0
  470. data/lib/vrpayment-ruby-sdk/models/transaction_void_state.rb +37 -0
  471. data/lib/vrpayment-ruby-sdk/models/two_factor_authentication_type.rb +235 -0
  472. data/lib/vrpayment-ruby-sdk/models/user.rb +241 -0
  473. data/lib/vrpayment-ruby-sdk/models/user_account_role.rb +241 -0
  474. data/lib/vrpayment-ruby-sdk/models/user_space_role.rb +231 -0
  475. data/lib/vrpayment-ruby-sdk/models/user_type.rb +38 -0
  476. data/lib/vrpayment-ruby-sdk/models/wallet_type.rb +215 -0
  477. data/lib/vrpayment-ruby-sdk/models/web_app_confirmation_request.rb +206 -0
  478. data/lib/vrpayment-ruby-sdk/models/web_app_confirmation_response.rb +231 -0
  479. data/lib/vrpayment-ruby-sdk/models/webhook_encryption_public_key.rb +201 -0
  480. data/lib/vrpayment-ruby-sdk/models/webhook_identity.rb +256 -0
  481. data/lib/vrpayment-ruby-sdk/models/webhook_listener.rb +318 -0
  482. data/lib/vrpayment-ruby-sdk/models/webhook_listener_create.rb +278 -0
  483. data/lib/vrpayment-ruby-sdk/models/webhook_listener_entity.rb +213 -0
  484. data/lib/vrpayment-ruby-sdk/models/webhook_listener_update.rb +268 -0
  485. data/lib/vrpayment-ruby-sdk/models/webhook_url.rb +300 -0
  486. data/lib/vrpayment-ruby-sdk/models/webhook_url_create.rb +250 -0
  487. data/lib/vrpayment-ruby-sdk/models/webhook_url_update.rb +280 -0
  488. data/lib/vrpayment-ruby-sdk/version.rb +20 -0
  489. data/lib/vrpayment-ruby-sdk.rb +522 -0
  490. data/test/constants.rb +82 -0
  491. data/test/encryption_util_test.rb +86 -0
  492. data/test/refund_service_test.rb +133 -0
  493. data/test/transaction_completion_service_test.rb +104 -0
  494. data/test/transaction_iframe_service_test.rb +25 -0
  495. data/test/transaction_lightbox_service_test.rb +25 -0
  496. data/test/transaction_payment_page_service_test.rb +25 -0
  497. data/test/transaction_service_test.rb +230 -0
  498. data/vendor/bundle/ruby/3.3.0/bin/rake +29 -0
  499. data/vendor/bundle/ruby/3.3.0/cache/addressable-2.8.7.gem +0 -0
  500. data/vendor/bundle/ruby/3.3.0/cache/ethon-0.16.0.gem +0 -0
  501. data/vendor/bundle/ruby/3.3.0/cache/ffi-1.17.2-x86_64-linux-gnu.gem +0 -0
  502. data/vendor/bundle/ruby/3.3.0/cache/json-2.13.0.gem +0 -0
  503. data/vendor/bundle/ruby/3.3.0/cache/power_assert-2.0.5.gem +0 -0
  504. data/vendor/bundle/ruby/3.3.0/cache/public_suffix-6.0.2.gem +0 -0
  505. data/vendor/bundle/ruby/3.3.0/cache/rake-13.0.6.gem +0 -0
  506. data/vendor/bundle/ruby/3.3.0/cache/test-unit-3.3.9.gem +0 -0
  507. data/vendor/bundle/ruby/3.3.0/cache/typhoeus-1.4.1.gem +0 -0
  508. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/gem.build_complete +0 -0
  509. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/gem_make.out +25 -0
  510. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/json/ext/generator.so +0 -0
  511. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/json/ext/parser.so +0 -0
  512. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/mkmf.log +164 -0
  513. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
  514. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/Gemfile +31 -0
  515. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
  516. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/README.md +121 -0
  517. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/Rakefile +37 -0
  518. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
  519. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/data/unicode.data +0 -0
  520. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/idna/native.rb +66 -0
  521. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/idna/pure.rb +505 -0
  522. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/idna.rb +26 -0
  523. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/template.rb +1029 -0
  524. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/uri.rb +2602 -0
  525. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/version.rb +31 -0
  526. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable.rb +4 -0
  527. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/idna_spec.rb +302 -0
  528. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/net_http_compat_spec.rb +29 -0
  529. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/security_spec.rb +58 -0
  530. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/template_spec.rb +1264 -0
  531. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/uri_spec.rb +6840 -0
  532. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/spec_helper.rb +33 -0
  533. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/clobber.rake +4 -0
  534. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/gem.rake +95 -0
  535. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/git.rake +47 -0
  536. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/metrics.rake +24 -0
  537. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/profile.rake +72 -0
  538. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/rspec.rake +23 -0
  539. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/yard.rake +29 -0
  540. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.github/workflows/ruby.yml +41 -0
  541. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.gitignore +8 -0
  542. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.rspec +3 -0
  543. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/CHANGELOG.md +375 -0
  544. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Gemfile +43 -0
  545. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Guardfile +10 -0
  546. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/LICENSE +20 -0
  547. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/README.md +118 -0
  548. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Rakefile +40 -0
  549. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/ethon.gemspec +26 -0
  550. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curl.rb +90 -0
  551. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/classes.rb +65 -0
  552. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/codes.rb +122 -0
  553. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/constants.rb +80 -0
  554. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/form_options.rb +37 -0
  555. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/functions.rb +58 -0
  556. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/infos.rb +151 -0
  557. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/messages.rb +19 -0
  558. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/options.rb +503 -0
  559. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/settings.rb +12 -0
  560. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/callbacks.rb +149 -0
  561. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/debug_info.rb +47 -0
  562. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/features.rb +31 -0
  563. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/form.rb +107 -0
  564. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/header.rb +61 -0
  565. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/actionable.rb +157 -0
  566. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/custom.rb +29 -0
  567. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/delete.rb +25 -0
  568. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/get.rb +24 -0
  569. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/head.rb +24 -0
  570. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/options.rb +24 -0
  571. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/patch.rb +24 -0
  572. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/post.rb +26 -0
  573. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/postable.rb +32 -0
  574. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/put.rb +27 -0
  575. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/putable.rb +25 -0
  576. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http.rb +68 -0
  577. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/informations.rb +116 -0
  578. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/mirror.rb +36 -0
  579. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/operations.rb +64 -0
  580. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/options.rb +50 -0
  581. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/params.rb +29 -0
  582. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/queryable.rb +154 -0
  583. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/response_callbacks.rb +136 -0
  584. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/util.rb +28 -0
  585. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy.rb +315 -0
  586. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/ethon_error.rb +9 -0
  587. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/global_init.rb +13 -0
  588. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/invalid_option.rb +13 -0
  589. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/invalid_value.rb +13 -0
  590. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_add.rb +12 -0
  591. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_fdset.rb +12 -0
  592. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_remove.rb +12 -0
  593. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_timeout.rb +13 -0
  594. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/select.rb +13 -0
  595. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors.rb +17 -0
  596. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/libc.rb +21 -0
  597. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/loggable.rb +59 -0
  598. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/operations.rb +228 -0
  599. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/options.rb +117 -0
  600. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/stack.rb +49 -0
  601. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi.rb +126 -0
  602. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/version.rb +6 -0
  603. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon.rb +36 -0
  604. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/benchmarks.rb +104 -0
  605. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/memory_leaks.rb +114 -0
  606. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/perf_spec_helper.rb +37 -0
  607. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/memory_test_helpers.rb +76 -0
  608. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/os_memory_leak_tracker.rb +48 -0
  609. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/ruby_object_leak_tracker.rb +49 -0
  610. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/curl_spec.rb +38 -0
  611. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/callbacks_spec.rb +81 -0
  612. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/debug_info_spec.rb +54 -0
  613. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/features_spec.rb +24 -0
  614. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/form_spec.rb +104 -0
  615. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/header_spec.rb +79 -0
  616. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/custom_spec.rb +177 -0
  617. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/delete_spec.rb +21 -0
  618. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/get_spec.rb +126 -0
  619. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/head_spec.rb +80 -0
  620. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/options_spec.rb +51 -0
  621. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/patch_spec.rb +51 -0
  622. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/post_spec.rb +317 -0
  623. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/put_spec.rb +168 -0
  624. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http_spec.rb +64 -0
  625. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/informations_spec.rb +126 -0
  626. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/mirror_spec.rb +47 -0
  627. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/operations_spec.rb +271 -0
  628. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/options_spec.rb +193 -0
  629. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/queryable_spec.rb +235 -0
  630. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/response_callbacks_spec.rb +152 -0
  631. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/util_spec.rb +28 -0
  632. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy_spec.rb +203 -0
  633. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/libc_spec.rb +14 -0
  634. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/loggable_spec.rb +22 -0
  635. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/operations_spec.rb +298 -0
  636. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/options_spec.rb +182 -0
  637. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/stack_spec.rb +80 -0
  638. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi_spec.rb +152 -0
  639. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/spec_helper.rb +28 -0
  640. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/localhost_server.rb +95 -0
  641. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/server.rb +115 -0
  642. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/CHANGELOG.md +473 -0
  643. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/COPYING +49 -0
  644. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/Gemfile +23 -0
  645. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/LICENSE +24 -0
  646. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/LICENSE.SPECS +22 -0
  647. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/README.md +137 -0
  648. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/Rakefile +206 -0
  649. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/ffi.gemspec +42 -0
  650. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/2.5/ffi_c.so +0 -0
  651. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/2.6/ffi_c.so +0 -0
  652. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/2.7/ffi_c.so +0 -0
  653. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.0/ffi_c.so +0 -0
  654. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.1/ffi_c.so +0 -0
  655. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.2/ffi_c.so +0 -0
  656. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.3/ffi_c.so +0 -0
  657. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.4/ffi_c.so +0 -0
  658. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/abstract_memory.rb +44 -0
  659. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/autopointer.rb +180 -0
  660. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/buffer.rb +4 -0
  661. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/callback.rb +4 -0
  662. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/compat.rb +43 -0
  663. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/data_converter.rb +67 -0
  664. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/dynamic_library.rb +118 -0
  665. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/enum.rb +302 -0
  666. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/errno.rb +43 -0
  667. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/ffi.rb +109 -0
  668. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/function.rb +71 -0
  669. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/io.rb +62 -0
  670. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/library.rb +576 -0
  671. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/library_path.rb +109 -0
  672. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/managedstruct.rb +84 -0
  673. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/memorypointer.rb +1 -0
  674. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
  675. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-freebsd/types.conf +128 -0
  676. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-freebsd12/types.conf +181 -0
  677. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-linux/types.conf +175 -0
  678. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
  679. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-windows/types.conf +52 -0
  680. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/arm-freebsd/types.conf +152 -0
  681. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/arm-freebsd12/types.conf +152 -0
  682. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/arm-linux/types.conf +132 -0
  683. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/hppa1.1-linux/types.conf +178 -0
  684. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/hppa2.0-linux/types.conf +178 -0
  685. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  686. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-darwin/types.conf +100 -0
  687. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  688. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-freebsd12/types.conf +152 -0
  689. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-gnu/types.conf +107 -0
  690. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-linux/types.conf +103 -0
  691. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  692. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  693. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-solaris/types.conf +122 -0
  694. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-windows/types.conf +52 -0
  695. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/ia64-linux/types.conf +104 -0
  696. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/loongarch64-linux/types.conf +141 -0
  697. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mips-linux/types.conf +102 -0
  698. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mips64-linux/types.conf +104 -0
  699. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mips64el-linux/types.conf +104 -0
  700. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  701. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa32r6-linux/types.conf +102 -0
  702. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa32r6el-linux/types.conf +102 -0
  703. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa64r6-linux/types.conf +104 -0
  704. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa64r6el-linux/types.conf +104 -0
  705. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  706. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  707. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-linux/types.conf +130 -0
  708. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  709. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc64-linux/types.conf +104 -0
  710. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc64le-linux/types.conf +100 -0
  711. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/riscv64-linux/types.conf +104 -0
  712. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/s390-linux/types.conf +102 -0
  713. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/s390x-linux/types.conf +102 -0
  714. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparc-linux/types.conf +102 -0
  715. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  716. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparcv9-linux/types.conf +102 -0
  717. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  718. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  719. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sw_64-linux/types.conf +141 -0
  720. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  721. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-darwin/types.conf +130 -0
  722. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-dragonflybsd/types.conf +130 -0
  723. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  724. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-freebsd12/types.conf +158 -0
  725. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  726. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-linux/types.conf +132 -0
  727. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  728. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-netbsd/types.conf +128 -0
  729. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-openbsd/types.conf +134 -0
  730. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  731. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-windows/types.conf +52 -0
  732. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform.rb +187 -0
  733. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/pointer.rb +167 -0
  734. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct.rb +317 -0
  735. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct_by_reference.rb +72 -0
  736. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct_layout.rb +96 -0
  737. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct_layout_builder.rb +227 -0
  738. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/const_generator.rb +232 -0
  739. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/generator.rb +105 -0
  740. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/generator_task.rb +32 -0
  741. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/struct_generator.rb +195 -0
  742. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/types_generator.rb +137 -0
  743. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/types.rb +222 -0
  744. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/union.rb +43 -0
  745. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/variadic.rb +80 -0
  746. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/version.rb +3 -0
  747. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi.rb +27 -0
  748. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/rakelib/ffi_gem_helper.rb +65 -0
  749. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/getlogin.rb +8 -0
  750. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/getpid.rb +8 -0
  751. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/gettimeofday.rb +18 -0
  752. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/hello.rb +8 -0
  753. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/hello_ractor.rb +11 -0
  754. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/inotify.rb +60 -0
  755. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/pty.rb +75 -0
  756. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/qsort.rb +20 -0
  757. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/qsort_ractor.rb +28 -0
  758. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/abstract_memory.rbs +165 -0
  759. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/auto_pointer.rbs +26 -0
  760. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/buffer.rbs +18 -0
  761. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/data_converter.rbs +10 -0
  762. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/dynamic_library.rbs +9 -0
  763. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/enum.rbs +38 -0
  764. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/function.rbs +39 -0
  765. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/library.rbs +42 -0
  766. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/native_type.rbs +86 -0
  767. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/pointer.rbs +42 -0
  768. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct.rbs +76 -0
  769. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_by_reference.rbs +11 -0
  770. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_by_value.rbs +7 -0
  771. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_layout.rbs +9 -0
  772. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_layout_builder.rbs +5 -0
  773. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/type.rbs +39 -0
  774. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi.rbs +26 -0
  775. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/BSDL +22 -0
  776. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/CHANGES.md +652 -0
  777. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/COPYING +56 -0
  778. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/LEGAL +8 -0
  779. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/README.md +281 -0
  780. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/fbuffer/fbuffer.h +270 -0
  781. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/generator/Makefile +269 -0
  782. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/generator/extconf.rb +16 -0
  783. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/generator/generator.c +2139 -0
  784. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/parser/Makefile +269 -0
  785. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/parser/extconf.rb +15 -0
  786. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/parser/parser.c +1507 -0
  787. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/simd/conf.rb +20 -0
  788. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/simd/simd.h +187 -0
  789. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/vendor/fpconv.c +479 -0
  790. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/vendor/jeaiii-ltoa.h +267 -0
  791. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/json.gemspec +62 -0
  792. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/bigdecimal.rb +58 -0
  793. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/complex.rb +51 -0
  794. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/core.rb +12 -0
  795. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/date.rb +54 -0
  796. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/date_time.rb +67 -0
  797. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/exception.rb +49 -0
  798. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/ostruct.rb +54 -0
  799. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/range.rb +54 -0
  800. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/rational.rb +49 -0
  801. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/regexp.rb +48 -0
  802. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/set.rb +48 -0
  803. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/struct.rb +52 -0
  804. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/symbol.rb +52 -0
  805. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/time.rb +52 -0
  806. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/common.rb +1104 -0
  807. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext/generator/state.rb +106 -0
  808. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext/generator.so +0 -0
  809. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext/parser.so +0 -0
  810. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext.rb +45 -0
  811. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/generic_object.rb +75 -0
  812. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/truffle_ruby/generator.rb +690 -0
  813. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/version.rb +5 -0
  814. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json.rb +620 -0
  815. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/.github/dependabot.yml +6 -0
  816. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/.github/workflows/ci.yml +46 -0
  817. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/.gitignore +9 -0
  818. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/BSDL +22 -0
  819. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/COPYING +57 -0
  820. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/Gemfile +19 -0
  821. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/LEGAL +4 -0
  822. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/README.md +98 -0
  823. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/Rakefile +59 -0
  824. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/colorize.rb +7 -0
  825. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/configuration.rb +46 -0
  826. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/context.rb +233 -0
  827. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/enable_tracepoint_events.rb +62 -0
  828. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/inspector.rb +66 -0
  829. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/parser.rb +251 -0
  830. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/version.rb +3 -0
  831. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert.rb +93 -0
  832. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/power_assert.gemspec +24 -0
  833. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/.yardopts +1 -0
  834. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/CHANGELOG.md +498 -0
  835. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/LICENSE.txt +22 -0
  836. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/README.md +222 -0
  837. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/SECURITY.md +24 -0
  838. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/data/list.txt +15791 -0
  839. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/domain.rb +235 -0
  840. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/errors.rb +41 -0
  841. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/list.rb +247 -0
  842. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/rule.rb +350 -0
  843. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/version.rb +14 -0
  844. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix.rb +177 -0
  845. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/History.rdoc +2403 -0
  846. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/MIT-LICENSE +21 -0
  847. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/README.rdoc +155 -0
  848. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/command_line_usage.rdoc +158 -0
  849. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/Rakefile1 +38 -0
  850. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/Rakefile2 +35 -0
  851. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/a.c +6 -0
  852. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/b.c +6 -0
  853. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/main.c +11 -0
  854. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/glossary.rdoc +42 -0
  855. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/jamis.rb +592 -0
  856. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/proto_rake.rdoc +127 -0
  857. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/rake.1 +156 -0
  858. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/rakefile.rdoc +622 -0
  859. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/rational.rdoc +151 -0
  860. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/exe/rake +27 -0
  861. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/application.rb +831 -0
  862. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/backtrace.rb +24 -0
  863. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/clean.rb +78 -0
  864. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/cloneable.rb +17 -0
  865. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/cpu_counter.rb +107 -0
  866. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/default_loader.rb +15 -0
  867. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/dsl_definition.rb +195 -0
  868. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/early_time.rb +22 -0
  869. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/ext/core.rb +26 -0
  870. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/ext/string.rb +176 -0
  871. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_creation_task.rb +25 -0
  872. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_list.rb +435 -0
  873. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_task.rb +54 -0
  874. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_utils.rb +134 -0
  875. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_utils_ext.rb +134 -0
  876. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/invocation_chain.rb +57 -0
  877. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/invocation_exception_mixin.rb +17 -0
  878. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/late_time.rb +18 -0
  879. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/linked_list.rb +112 -0
  880. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb +54 -0
  881. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/multi_task.rb +14 -0
  882. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/name_space.rb +38 -0
  883. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/packagetask.rb +222 -0
  884. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/phony.rb +16 -0
  885. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/private_reader.rb +21 -0
  886. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/promise.rb +100 -0
  887. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/pseudo_status.rb +30 -0
  888. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/rake_module.rb +67 -0
  889. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb +27 -0
  890. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/rule_recursion_overflow_error.rb +20 -0
  891. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/scope.rb +43 -0
  892. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task.rb +434 -0
  893. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task_argument_error.rb +8 -0
  894. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task_arguments.rb +109 -0
  895. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task_manager.rb +331 -0
  896. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/tasklib.rb +12 -0
  897. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/testtask.rb +189 -0
  898. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/thread_history_display.rb +49 -0
  899. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/thread_pool.rb +163 -0
  900. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/trace_output.rb +23 -0
  901. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/version.rb +10 -0
  902. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/win32.rb +51 -0
  903. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake.rb +71 -0
  904. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/rake.gemspec +100 -0
  905. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/BSDL +24 -0
  906. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/COPYING +64 -0
  907. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/PSFL +271 -0
  908. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/README.md +97 -0
  909. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/Rakefile +66 -0
  910. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/doc/text/getting-started.md +246 -0
  911. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/doc/text/how-to.md +90 -0
  912. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/doc/text/news.md +1533 -0
  913. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/assertion-failed-error.rb +25 -0
  914. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb +2256 -0
  915. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/attribute-matcher.rb +26 -0
  916. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/attribute.rb +227 -0
  917. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/auto-runner-loader.rb +17 -0
  918. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb +569 -0
  919. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/code-snippet-fetcher.rb +58 -0
  920. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/descendant.rb +19 -0
  921. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/dir.rb +108 -0
  922. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/load.rb +197 -0
  923. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/objectspace.rb +34 -0
  924. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/xml.rb +249 -0
  925. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector.rb +73 -0
  926. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/color-scheme.rb +216 -0
  927. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/color.rb +134 -0
  928. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/data-sets.rb +116 -0
  929. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/data.rb +371 -0
  930. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/diff.rb +745 -0
  931. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/error.rb +158 -0
  932. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/exception-handler.rb +82 -0
  933. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/failure.rb +169 -0
  934. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/fault-location-detector.rb +100 -0
  935. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb +298 -0
  936. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/notification.rb +138 -0
  937. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/omission.rb +198 -0
  938. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/pending.rb +155 -0
  939. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/priority.rb +196 -0
  940. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/runner/console.rb +67 -0
  941. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/runner/emacs.rb +8 -0
  942. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/runner/xml.rb +15 -0
  943. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/test-suite-creator.rb +103 -0
  944. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb +899 -0
  945. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/testresult.rb +132 -0
  946. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb +175 -0
  947. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/console/outputlevel.rb +15 -0
  948. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/console/testrunner.rb +733 -0
  949. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/emacs/testrunner.rb +49 -0
  950. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb +53 -0
  951. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb +114 -0
  952. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  953. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/xml/testrunner.rb +224 -0
  954. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/backtracefilter.rb +59 -0
  955. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/method-owner-finder.rb +28 -0
  956. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/observable.rb +90 -0
  957. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/output.rb +32 -0
  958. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/procwrapper.rb +48 -0
  959. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/version.rb +5 -0
  960. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit.rb +519 -0
  961. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test-unit.rb +17 -0
  962. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/adder.rb +13 -0
  963. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/subtracter.rb +12 -0
  964. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/test_adder.rb +20 -0
  965. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/test_subtracter.rb +20 -0
  966. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/test_user.rb +23 -0
  967. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test-descendant.rb +182 -0
  968. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test-load.rb +475 -0
  969. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test_dir.rb +407 -0
  970. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test_objectspace.rb +102 -0
  971. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header-label.csv +3 -0
  972. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header-label.tsv +3 -0
  973. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header.csv +3 -0
  974. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header.tsv +3 -0
  975. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/no-header.csv +2 -0
  976. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/no-header.tsv +2 -0
  977. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/plus.csv +3 -0
  978. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/run-test.rb +22 -0
  979. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-assertions.rb +2187 -0
  980. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-attribute-matcher.rb +38 -0
  981. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-attribute.rb +123 -0
  982. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-code-snippet.rb +79 -0
  983. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-color-scheme.rb +123 -0
  984. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-color.rb +47 -0
  985. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-data.rb +419 -0
  986. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-diff.rb +518 -0
  987. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-emacs-runner.rb +60 -0
  988. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-error.rb +26 -0
  989. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-failure.rb +33 -0
  990. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-fault-location-detector.rb +163 -0
  991. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-fixture.rb +713 -0
  992. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-notification.rb +33 -0
  993. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-omission.rb +81 -0
  994. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-pending.rb +70 -0
  995. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-priority.rb +184 -0
  996. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-case.rb +1284 -0
  997. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-result.rb +113 -0
  998. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-suite-creator.rb +97 -0
  999. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-suite.rb +151 -0
  1000. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/testunit-test-util.rb +33 -0
  1001. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/ui/test_testrunmediator.rb +20 -0
  1002. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test-method-owner-finder.rb +38 -0
  1003. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test-output.rb +11 -0
  1004. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test_backtracefilter.rb +52 -0
  1005. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test_observable.rb +102 -0
  1006. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test_procwrapper.rb +36 -0
  1007. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.github/workflows/ci.yml +30 -0
  1008. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.github/workflows/experimental.yml +33 -0
  1009. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.gitignore +8 -0
  1010. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.rspec +4 -0
  1011. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/CHANGELOG.md +410 -0
  1012. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/CONTRIBUTING.md +20 -0
  1013. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Gemfile +36 -0
  1014. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Guardfile +9 -0
  1015. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/LICENSE +22 -0
  1016. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/README.md +588 -0
  1017. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Rakefile +38 -0
  1018. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/UPGRADE.md +55 -0
  1019. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus/middleware/params_decoder/helper.rb +76 -0
  1020. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus/middleware/params_decoder.rb +57 -0
  1021. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus.rb +1 -0
  1022. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/adapters/faraday.rb +180 -0
  1023. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/dalli.rb +28 -0
  1024. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/rails.rb +28 -0
  1025. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/redis.rb +35 -0
  1026. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/config.rb +85 -0
  1027. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/easy_factory.rb +206 -0
  1028. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors/no_stub.rb +12 -0
  1029. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors/typhoeus_error.rb +8 -0
  1030. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors.rb +9 -0
  1031. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/expectation.rb +217 -0
  1032. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/addable.rb +23 -0
  1033. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/before.rb +31 -0
  1034. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/block_connection.rb +35 -0
  1035. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/cacheable.rb +15 -0
  1036. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/memoizable.rb +56 -0
  1037. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/queueable.rb +83 -0
  1038. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/runnable.rb +19 -0
  1039. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/stubbable.rb +28 -0
  1040. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra.rb +95 -0
  1041. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/pool.rb +70 -0
  1042. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/railtie.rb +12 -0
  1043. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/actions.rb +125 -0
  1044. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/before.rb +30 -0
  1045. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/block_connection.rb +52 -0
  1046. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/cacheable.rb +38 -0
  1047. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/callbacks.rb +151 -0
  1048. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/marshal.rb +22 -0
  1049. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/memoizable.rb +38 -0
  1050. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/operations.rb +40 -0
  1051. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/responseable.rb +29 -0
  1052. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/streamable.rb +34 -0
  1053. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/stubbable.rb +30 -0
  1054. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request.rb +223 -0
  1055. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/cacheable.rb +14 -0
  1056. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/header.rb +105 -0
  1057. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/informations.rb +305 -0
  1058. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/status.rb +106 -0
  1059. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response.rb +68 -0
  1060. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/version.rb +5 -0
  1061. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus.rb +143 -0
  1062. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/perf/profile.rb +14 -0
  1063. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/perf/vs_nethttp.rb +64 -0
  1064. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/rack/typhoeus/middleware/params_decoder/helper_spec.rb +156 -0
  1065. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/rack/typhoeus/middleware/params_decoder_spec.rb +31 -0
  1066. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/spec_helper.rb +29 -0
  1067. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/localhost_server.rb +94 -0
  1068. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/memory_cache.rb +15 -0
  1069. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/server.rb +116 -0
  1070. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/adapters/faraday_spec.rb +339 -0
  1071. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/dalli_spec.rb +41 -0
  1072. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb +41 -0
  1073. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/config_spec.rb +15 -0
  1074. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/easy_factory_spec.rb +143 -0
  1075. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/errors/no_stub_spec.rb +13 -0
  1076. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/expectation_spec.rb +280 -0
  1077. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/addable_spec.rb +22 -0
  1078. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/before_spec.rb +98 -0
  1079. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/block_connection_spec.rb +18 -0
  1080. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/cacheable_spec.rb +88 -0
  1081. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/memoizable_spec.rb +53 -0
  1082. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/queueable_spec.rb +98 -0
  1083. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/runnable_spec.rb +137 -0
  1084. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/stubbable_spec.rb +48 -0
  1085. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra_spec.rb +22 -0
  1086. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/pool_spec.rb +137 -0
  1087. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/actions_spec.rb +19 -0
  1088. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/before_spec.rb +93 -0
  1089. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/block_connection_spec.rb +75 -0
  1090. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/cacheable_spec.rb +94 -0
  1091. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/callbacks_spec.rb +91 -0
  1092. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/marshal_spec.rb +60 -0
  1093. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/memoizable_spec.rb +34 -0
  1094. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/operations_spec.rb +101 -0
  1095. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/responseable_spec.rb +13 -0
  1096. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/stubbable_spec.rb +45 -0
  1097. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request_spec.rb +256 -0
  1098. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/header_spec.rb +147 -0
  1099. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/informations_spec.rb +323 -0
  1100. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/status_spec.rb +256 -0
  1101. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response_spec.rb +100 -0
  1102. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus_spec.rb +105 -0
  1103. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/typhoeus.gemspec +25 -0
  1104. data/vendor/bundle/ruby/3.3.0/specifications/addressable-2.8.7.gemspec +30 -0
  1105. data/vendor/bundle/ruby/3.3.0/specifications/ethon-0.16.0.gemspec +24 -0
  1106. data/vendor/bundle/ruby/3.3.0/specifications/ffi-1.17.2-x86_64-linux-gnu.gemspec +31 -0
  1107. data/vendor/bundle/ruby/3.3.0/specifications/json-2.13.0.gemspec +0 -0
  1108. data/vendor/bundle/ruby/3.3.0/specifications/power_assert-2.0.5.gemspec +24 -0
  1109. data/vendor/bundle/ruby/3.3.0/specifications/public_suffix-6.0.2.gemspec +24 -0
  1110. data/vendor/bundle/ruby/3.3.0/specifications/rake-13.0.6.gemspec +26 -0
  1111. data/vendor/bundle/ruby/3.3.0/specifications/test-unit-3.3.9.gemspec +30 -0
  1112. data/vendor/bundle/ruby/3.3.0/specifications/typhoeus-1.4.1.gemspec +24 -0
  1113. data/vrpayment-ruby-sdk.gemspec +44 -0
  1114. metadata +1224 -0
@@ -0,0 +1,1507 @@
1
+ #include "ruby.h"
2
+ #include "ruby/encoding.h"
3
+
4
+ /* shims */
5
+ /* This is the fallback definition from Ruby 3.4 */
6
+
7
+ #ifndef RBIMPL_STDBOOL_H
8
+ #if defined(__cplusplus)
9
+ # if defined(HAVE_STDBOOL_H) && (__cplusplus >= 201103L)
10
+ # include <cstdbool>
11
+ # endif
12
+ #elif defined(HAVE_STDBOOL_H)
13
+ # include <stdbool.h>
14
+ #elif !defined(HAVE__BOOL)
15
+ typedef unsigned char _Bool;
16
+ # define bool _Bool
17
+ # define true ((_Bool)+1)
18
+ # define false ((_Bool)+0)
19
+ # define __bool_true_false_are_defined
20
+ #endif
21
+ #endif
22
+
23
+ #include "../simd/simd.h"
24
+
25
+ #ifndef RB_UNLIKELY
26
+ #define RB_UNLIKELY(expr) expr
27
+ #endif
28
+
29
+ #ifndef RB_LIKELY
30
+ #define RB_LIKELY(expr) expr
31
+ #endif
32
+
33
+ static VALUE mJSON, eNestingError, Encoding_UTF_8;
34
+ static VALUE CNaN, CInfinity, CMinusInfinity;
35
+
36
+ static ID i_chr, i_aset, i_aref,
37
+ i_leftshift, i_new, i_try_convert, i_uminus, i_encode;
38
+
39
+ static VALUE sym_max_nesting, sym_allow_nan, sym_allow_trailing_comma, sym_symbolize_names, sym_freeze,
40
+ sym_decimal_class, sym_on_load, sym_allow_duplicate_key;
41
+
42
+ static int binary_encindex;
43
+ static int utf8_encindex;
44
+
45
+ #ifndef HAVE_RB_HASH_BULK_INSERT
46
+ // For TruffleRuby
47
+ void
48
+ rb_hash_bulk_insert(long count, const VALUE *pairs, VALUE hash)
49
+ {
50
+ long index = 0;
51
+ while (index < count) {
52
+ VALUE name = pairs[index++];
53
+ VALUE value = pairs[index++];
54
+ rb_hash_aset(hash, name, value);
55
+ }
56
+ RB_GC_GUARD(hash);
57
+ }
58
+ #endif
59
+
60
+ #ifndef HAVE_RB_HASH_NEW_CAPA
61
+ #define rb_hash_new_capa(n) rb_hash_new()
62
+ #endif
63
+
64
+
65
+ /* name cache */
66
+
67
+ #include <string.h>
68
+ #include <ctype.h>
69
+
70
+ // Object names are likely to be repeated, and are frozen.
71
+ // As such we can re-use them if we keep a cache of the ones we've seen so far,
72
+ // and save much more expensive lookups into the global fstring table.
73
+ // This cache implementation is deliberately simple, as we're optimizing for compactness,
74
+ // to be able to fit safely on the stack.
75
+ // As such, binary search into a sorted array gives a good tradeoff between compactness and
76
+ // performance.
77
+ #define JSON_RVALUE_CACHE_CAPA 63
78
+ typedef struct rvalue_cache_struct {
79
+ int length;
80
+ VALUE entries[JSON_RVALUE_CACHE_CAPA];
81
+ } rvalue_cache;
82
+
83
+ static rb_encoding *enc_utf8;
84
+
85
+ #define JSON_RVALUE_CACHE_MAX_ENTRY_LENGTH 55
86
+
87
+ static inline VALUE build_interned_string(const char *str, const long length)
88
+ {
89
+ # ifdef HAVE_RB_ENC_INTERNED_STR
90
+ return rb_enc_interned_str(str, length, enc_utf8);
91
+ # else
92
+ VALUE rstring = rb_utf8_str_new(str, length);
93
+ return rb_funcall(rb_str_freeze(rstring), i_uminus, 0);
94
+ # endif
95
+ }
96
+
97
+ static inline VALUE build_symbol(const char *str, const long length)
98
+ {
99
+ return rb_str_intern(build_interned_string(str, length));
100
+ }
101
+
102
+ static void rvalue_cache_insert_at(rvalue_cache *cache, int index, VALUE rstring)
103
+ {
104
+ MEMMOVE(&cache->entries[index + 1], &cache->entries[index], VALUE, cache->length - index);
105
+ cache->length++;
106
+ cache->entries[index] = rstring;
107
+ }
108
+
109
+ static inline int rstring_cache_cmp(const char *str, const long length, VALUE rstring)
110
+ {
111
+ long rstring_length = RSTRING_LEN(rstring);
112
+ if (length == rstring_length) {
113
+ return memcmp(str, RSTRING_PTR(rstring), length);
114
+ } else {
115
+ return (int)(length - rstring_length);
116
+ }
117
+ }
118
+
119
+ static VALUE rstring_cache_fetch(rvalue_cache *cache, const char *str, const long length)
120
+ {
121
+ if (RB_UNLIKELY(length > JSON_RVALUE_CACHE_MAX_ENTRY_LENGTH)) {
122
+ // Common names aren't likely to be very long. So we just don't
123
+ // cache names above an arbitrary threshold.
124
+ return Qfalse;
125
+ }
126
+
127
+ if (RB_UNLIKELY(!isalpha((unsigned char)str[0]))) {
128
+ // Simple heuristic, if the first character isn't a letter,
129
+ // we're much less likely to see this string again.
130
+ // We mostly want to cache strings that are likely to be repeated.
131
+ return Qfalse;
132
+ }
133
+
134
+ int low = 0;
135
+ int high = cache->length - 1;
136
+ int mid = 0;
137
+ int last_cmp = 0;
138
+
139
+ while (low <= high) {
140
+ mid = (high + low) >> 1;
141
+ VALUE entry = cache->entries[mid];
142
+ last_cmp = rstring_cache_cmp(str, length, entry);
143
+
144
+ if (last_cmp == 0) {
145
+ return entry;
146
+ } else if (last_cmp > 0) {
147
+ low = mid + 1;
148
+ } else {
149
+ high = mid - 1;
150
+ }
151
+ }
152
+
153
+ if (RB_UNLIKELY(memchr(str, '\\', length))) {
154
+ // We assume the overwhelming majority of names don't need to be escaped.
155
+ // But if they do, we have to fallback to the slow path.
156
+ return Qfalse;
157
+ }
158
+
159
+ VALUE rstring = build_interned_string(str, length);
160
+
161
+ if (cache->length < JSON_RVALUE_CACHE_CAPA) {
162
+ if (last_cmp > 0) {
163
+ mid += 1;
164
+ }
165
+
166
+ rvalue_cache_insert_at(cache, mid, rstring);
167
+ }
168
+ return rstring;
169
+ }
170
+
171
+ static VALUE rsymbol_cache_fetch(rvalue_cache *cache, const char *str, const long length)
172
+ {
173
+ if (RB_UNLIKELY(length > JSON_RVALUE_CACHE_MAX_ENTRY_LENGTH)) {
174
+ // Common names aren't likely to be very long. So we just don't
175
+ // cache names above an arbitrary threshold.
176
+ return Qfalse;
177
+ }
178
+
179
+ if (RB_UNLIKELY(!isalpha((unsigned char)str[0]))) {
180
+ // Simple heuristic, if the first character isn't a letter,
181
+ // we're much less likely to see this string again.
182
+ // We mostly want to cache strings that are likely to be repeated.
183
+ return Qfalse;
184
+ }
185
+
186
+ int low = 0;
187
+ int high = cache->length - 1;
188
+ int mid = 0;
189
+ int last_cmp = 0;
190
+
191
+ while (low <= high) {
192
+ mid = (high + low) >> 1;
193
+ VALUE entry = cache->entries[mid];
194
+ last_cmp = rstring_cache_cmp(str, length, rb_sym2str(entry));
195
+
196
+ if (last_cmp == 0) {
197
+ return entry;
198
+ } else if (last_cmp > 0) {
199
+ low = mid + 1;
200
+ } else {
201
+ high = mid - 1;
202
+ }
203
+ }
204
+
205
+ if (RB_UNLIKELY(memchr(str, '\\', length))) {
206
+ // We assume the overwhelming majority of names don't need to be escaped.
207
+ // But if they do, we have to fallback to the slow path.
208
+ return Qfalse;
209
+ }
210
+
211
+ VALUE rsymbol = build_symbol(str, length);
212
+
213
+ if (cache->length < JSON_RVALUE_CACHE_CAPA) {
214
+ if (last_cmp > 0) {
215
+ mid += 1;
216
+ }
217
+
218
+ rvalue_cache_insert_at(cache, mid, rsymbol);
219
+ }
220
+ return rsymbol;
221
+ }
222
+
223
+ /* rvalue stack */
224
+
225
+ #define RVALUE_STACK_INITIAL_CAPA 128
226
+
227
+ enum rvalue_stack_type {
228
+ RVALUE_STACK_HEAP_ALLOCATED = 0,
229
+ RVALUE_STACK_STACK_ALLOCATED = 1,
230
+ };
231
+
232
+ typedef struct rvalue_stack_struct {
233
+ enum rvalue_stack_type type;
234
+ long capa;
235
+ long head;
236
+ VALUE *ptr;
237
+ } rvalue_stack;
238
+
239
+ static rvalue_stack *rvalue_stack_spill(rvalue_stack *old_stack, VALUE *handle, rvalue_stack **stack_ref);
240
+
241
+ static rvalue_stack *rvalue_stack_grow(rvalue_stack *stack, VALUE *handle, rvalue_stack **stack_ref)
242
+ {
243
+ long required = stack->capa * 2;
244
+
245
+ if (stack->type == RVALUE_STACK_STACK_ALLOCATED) {
246
+ stack = rvalue_stack_spill(stack, handle, stack_ref);
247
+ } else {
248
+ REALLOC_N(stack->ptr, VALUE, required);
249
+ stack->capa = required;
250
+ }
251
+ return stack;
252
+ }
253
+
254
+ static VALUE rvalue_stack_push(rvalue_stack *stack, VALUE value, VALUE *handle, rvalue_stack **stack_ref)
255
+ {
256
+ if (RB_UNLIKELY(stack->head >= stack->capa)) {
257
+ stack = rvalue_stack_grow(stack, handle, stack_ref);
258
+ }
259
+ stack->ptr[stack->head] = value;
260
+ stack->head++;
261
+ return value;
262
+ }
263
+
264
+ static inline VALUE *rvalue_stack_peek(rvalue_stack *stack, long count)
265
+ {
266
+ return stack->ptr + (stack->head - count);
267
+ }
268
+
269
+ static inline void rvalue_stack_pop(rvalue_stack *stack, long count)
270
+ {
271
+ stack->head -= count;
272
+ }
273
+
274
+ static void rvalue_stack_mark(void *ptr)
275
+ {
276
+ rvalue_stack *stack = (rvalue_stack *)ptr;
277
+ long index;
278
+ for (index = 0; index < stack->head; index++) {
279
+ rb_gc_mark(stack->ptr[index]);
280
+ }
281
+ }
282
+
283
+ static void rvalue_stack_free(void *ptr)
284
+ {
285
+ rvalue_stack *stack = (rvalue_stack *)ptr;
286
+ if (stack) {
287
+ ruby_xfree(stack->ptr);
288
+ ruby_xfree(stack);
289
+ }
290
+ }
291
+
292
+ static size_t rvalue_stack_memsize(const void *ptr)
293
+ {
294
+ const rvalue_stack *stack = (const rvalue_stack *)ptr;
295
+ return sizeof(rvalue_stack) + sizeof(VALUE) * stack->capa;
296
+ }
297
+
298
+ static const rb_data_type_t JSON_Parser_rvalue_stack_type = {
299
+ "JSON::Ext::Parser/rvalue_stack",
300
+ {
301
+ .dmark = rvalue_stack_mark,
302
+ .dfree = rvalue_stack_free,
303
+ .dsize = rvalue_stack_memsize,
304
+ },
305
+ 0, 0,
306
+ RUBY_TYPED_FREE_IMMEDIATELY,
307
+ };
308
+
309
+ static rvalue_stack *rvalue_stack_spill(rvalue_stack *old_stack, VALUE *handle, rvalue_stack **stack_ref)
310
+ {
311
+ rvalue_stack *stack;
312
+ *handle = TypedData_Make_Struct(0, rvalue_stack, &JSON_Parser_rvalue_stack_type, stack);
313
+ *stack_ref = stack;
314
+ MEMCPY(stack, old_stack, rvalue_stack, 1);
315
+
316
+ stack->capa = old_stack->capa << 1;
317
+ stack->ptr = ALLOC_N(VALUE, stack->capa);
318
+ stack->type = RVALUE_STACK_HEAP_ALLOCATED;
319
+ MEMCPY(stack->ptr, old_stack->ptr, VALUE, old_stack->head);
320
+ return stack;
321
+ }
322
+
323
+ static void rvalue_stack_eagerly_release(VALUE handle)
324
+ {
325
+ if (handle) {
326
+ rvalue_stack *stack;
327
+ TypedData_Get_Struct(handle, rvalue_stack, &JSON_Parser_rvalue_stack_type, stack);
328
+ RTYPEDDATA_DATA(handle) = NULL;
329
+ rvalue_stack_free(stack);
330
+ }
331
+ }
332
+
333
+
334
+ #ifndef HAVE_STRNLEN
335
+ static size_t strnlen(const char *s, size_t maxlen)
336
+ {
337
+ char *p;
338
+ return ((p = memchr(s, '\0', maxlen)) ? p - s : maxlen);
339
+ }
340
+ #endif
341
+
342
+ static int convert_UTF32_to_UTF8(char *buf, uint32_t ch)
343
+ {
344
+ int len = 1;
345
+ if (ch <= 0x7F) {
346
+ buf[0] = (char) ch;
347
+ } else if (ch <= 0x07FF) {
348
+ buf[0] = (char) ((ch >> 6) | 0xC0);
349
+ buf[1] = (char) ((ch & 0x3F) | 0x80);
350
+ len++;
351
+ } else if (ch <= 0xFFFF) {
352
+ buf[0] = (char) ((ch >> 12) | 0xE0);
353
+ buf[1] = (char) (((ch >> 6) & 0x3F) | 0x80);
354
+ buf[2] = (char) ((ch & 0x3F) | 0x80);
355
+ len += 2;
356
+ } else if (ch <= 0x1fffff) {
357
+ buf[0] =(char) ((ch >> 18) | 0xF0);
358
+ buf[1] =(char) (((ch >> 12) & 0x3F) | 0x80);
359
+ buf[2] =(char) (((ch >> 6) & 0x3F) | 0x80);
360
+ buf[3] =(char) ((ch & 0x3F) | 0x80);
361
+ len += 3;
362
+ } else {
363
+ buf[0] = '?';
364
+ }
365
+ return len;
366
+ }
367
+
368
+ enum duplicate_key_action {
369
+ JSON_DEPRECATED = 0,
370
+ JSON_IGNORE,
371
+ JSON_RAISE,
372
+ };
373
+
374
+ typedef struct JSON_ParserStruct {
375
+ VALUE on_load_proc;
376
+ VALUE decimal_class;
377
+ ID decimal_method_id;
378
+ enum duplicate_key_action on_duplicate_key;
379
+ int max_nesting;
380
+ bool allow_nan;
381
+ bool allow_trailing_comma;
382
+ bool parsing_name;
383
+ bool symbolize_names;
384
+ bool freeze;
385
+ } JSON_ParserConfig;
386
+
387
+ typedef struct JSON_ParserStateStruct {
388
+ VALUE stack_handle;
389
+ const char *start;
390
+ const char *cursor;
391
+ const char *end;
392
+ rvalue_stack *stack;
393
+ rvalue_cache name_cache;
394
+ int in_array;
395
+ int current_nesting;
396
+ } JSON_ParserState;
397
+
398
+ static void cursor_position(JSON_ParserState *state, long *line_out, long *column_out)
399
+ {
400
+ const char *cursor = state->cursor;
401
+ long column = 0;
402
+ long line = 1;
403
+
404
+ while (cursor >= state->start) {
405
+ if (*cursor-- == '\n') {
406
+ break;
407
+ }
408
+ column++;
409
+ }
410
+
411
+ while (cursor >= state->start) {
412
+ if (*cursor-- == '\n') {
413
+ line++;
414
+ }
415
+ }
416
+ *line_out = line;
417
+ *column_out = column;
418
+ }
419
+
420
+ static void emit_parse_warning(const char *message, JSON_ParserState *state)
421
+ {
422
+ long line, column;
423
+ cursor_position(state, &line, &column);
424
+
425
+ rb_warn("%s at line %ld column %ld", message, line, column);
426
+ }
427
+
428
+ #define PARSE_ERROR_FRAGMENT_LEN 32
429
+ #ifdef RBIMPL_ATTR_NORETURN
430
+ RBIMPL_ATTR_NORETURN()
431
+ #endif
432
+ static void raise_parse_error(const char *format, JSON_ParserState *state)
433
+ {
434
+ unsigned char buffer[PARSE_ERROR_FRAGMENT_LEN + 3];
435
+ long line, column;
436
+ cursor_position(state, &line, &column);
437
+
438
+ const char *ptr = "EOF";
439
+ if (state->cursor && state->cursor < state->end) {
440
+ ptr = state->cursor;
441
+ size_t len = 0;
442
+ while (len < PARSE_ERROR_FRAGMENT_LEN) {
443
+ char ch = ptr[len];
444
+ if (!ch || ch == '\n' || ch == ' ' || ch == '\t' || ch == '\r') {
445
+ break;
446
+ }
447
+ len++;
448
+ }
449
+
450
+ if (len) {
451
+ buffer[0] = '\'';
452
+ MEMCPY(buffer + 1, ptr, char, len);
453
+
454
+ while (buffer[len] >= 0x80 && buffer[len] < 0xC0) { // Is continuation byte
455
+ len--;
456
+ }
457
+
458
+ if (buffer[len] >= 0xC0) { // multibyte character start
459
+ len--;
460
+ }
461
+
462
+ buffer[len + 1] = '\'';
463
+ buffer[len + 2] = '\0';
464
+ ptr = (const char *)buffer;
465
+ }
466
+ }
467
+
468
+ VALUE msg = rb_sprintf(format, ptr);
469
+ VALUE message = rb_enc_sprintf(enc_utf8, "%s at line %ld column %ld", RSTRING_PTR(msg), line, column);
470
+ RB_GC_GUARD(msg);
471
+
472
+ VALUE exc = rb_exc_new_str(rb_path2class("JSON::ParserError"), message);
473
+ rb_ivar_set(exc, rb_intern("@line"), LONG2NUM(line));
474
+ rb_ivar_set(exc, rb_intern("@column"), LONG2NUM(column));
475
+ rb_exc_raise(exc);
476
+ }
477
+
478
+ #ifdef RBIMPL_ATTR_NORETURN
479
+ RBIMPL_ATTR_NORETURN()
480
+ #endif
481
+ static void raise_parse_error_at(const char *format, JSON_ParserState *state, const char *at)
482
+ {
483
+ state->cursor = at;
484
+ raise_parse_error(format, state);
485
+ }
486
+
487
+ /* unicode */
488
+
489
+ static const signed char digit_values[256] = {
490
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
491
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
492
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1,
493
+ -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1,
494
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
495
+ 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
496
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
497
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
498
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
499
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
500
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
501
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
502
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
503
+ -1, -1, -1, -1, -1, -1, -1
504
+ };
505
+
506
+ static uint32_t unescape_unicode(JSON_ParserState *state, const unsigned char *p)
507
+ {
508
+ signed char b;
509
+ uint32_t result = 0;
510
+ b = digit_values[p[0]];
511
+ if (b < 0) raise_parse_error_at("incomplete unicode character escape sequence at %s", state, (char *)p - 2);
512
+ result = (result << 4) | (unsigned char)b;
513
+ b = digit_values[p[1]];
514
+ if (b < 0) raise_parse_error_at("incomplete unicode character escape sequence at %s", state, (char *)p - 2);
515
+ result = (result << 4) | (unsigned char)b;
516
+ b = digit_values[p[2]];
517
+ if (b < 0) raise_parse_error_at("incomplete unicode character escape sequence at %s", state, (char *)p - 2);
518
+ result = (result << 4) | (unsigned char)b;
519
+ b = digit_values[p[3]];
520
+ if (b < 0) raise_parse_error_at("incomplete unicode character escape sequence at %s", state, (char *)p - 2);
521
+ result = (result << 4) | (unsigned char)b;
522
+ return result;
523
+ }
524
+
525
+ #define GET_PARSER_CONFIG \
526
+ JSON_ParserConfig *config; \
527
+ TypedData_Get_Struct(self, JSON_ParserConfig, &JSON_ParserConfig_type, config)
528
+
529
+ static const rb_data_type_t JSON_ParserConfig_type;
530
+
531
+ static const bool whitespace[256] = {
532
+ [' '] = 1,
533
+ ['\t'] = 1,
534
+ ['\n'] = 1,
535
+ ['\r'] = 1,
536
+ ['/'] = 1,
537
+ };
538
+
539
+ static void
540
+ json_eat_comments(JSON_ParserState *state)
541
+ {
542
+ if (state->cursor + 1 < state->end) {
543
+ switch (state->cursor[1]) {
544
+ case '/': {
545
+ state->cursor = memchr(state->cursor, '\n', state->end - state->cursor);
546
+ if (!state->cursor) {
547
+ state->cursor = state->end;
548
+ } else {
549
+ state->cursor++;
550
+ }
551
+ break;
552
+ }
553
+ case '*': {
554
+ state->cursor += 2;
555
+ while (true) {
556
+ state->cursor = memchr(state->cursor, '*', state->end - state->cursor);
557
+ if (!state->cursor) {
558
+ raise_parse_error_at("unexpected end of input, expected closing '*/'", state, state->end);
559
+ } else {
560
+ state->cursor++;
561
+ if (state->cursor < state->end && *state->cursor == '/') {
562
+ state->cursor++;
563
+ break;
564
+ }
565
+ }
566
+ }
567
+ break;
568
+ }
569
+ default:
570
+ raise_parse_error("unexpected token %s", state);
571
+ break;
572
+ }
573
+ } else {
574
+ raise_parse_error("unexpected token %s", state);
575
+ }
576
+ }
577
+
578
+ static inline void
579
+ json_eat_whitespace(JSON_ParserState *state)
580
+ {
581
+ while (state->cursor < state->end && RB_UNLIKELY(whitespace[(unsigned char)*state->cursor])) {
582
+ if (RB_LIKELY(*state->cursor != '/')) {
583
+ state->cursor++;
584
+ } else {
585
+ json_eat_comments(state);
586
+ }
587
+ }
588
+ }
589
+
590
+ static inline VALUE build_string(const char *start, const char *end, bool intern, bool symbolize)
591
+ {
592
+ if (symbolize) {
593
+ intern = true;
594
+ }
595
+ VALUE result;
596
+ # ifdef HAVE_RB_ENC_INTERNED_STR
597
+ if (intern) {
598
+ result = rb_enc_interned_str(start, (long)(end - start), enc_utf8);
599
+ } else {
600
+ result = rb_utf8_str_new(start, (long)(end - start));
601
+ }
602
+ # else
603
+ result = rb_utf8_str_new(start, (long)(end - start));
604
+ if (intern) {
605
+ result = rb_funcall(rb_str_freeze(result), i_uminus, 0);
606
+ }
607
+ # endif
608
+
609
+ if (symbolize) {
610
+ result = rb_str_intern(result);
611
+ }
612
+
613
+ return result;
614
+ }
615
+
616
+ static inline VALUE json_string_fastpath(JSON_ParserState *state, const char *string, const char *stringEnd, bool is_name, bool intern, bool symbolize)
617
+ {
618
+ size_t bufferSize = stringEnd - string;
619
+
620
+ if (is_name && state->in_array) {
621
+ VALUE cached_key;
622
+ if (RB_UNLIKELY(symbolize)) {
623
+ cached_key = rsymbol_cache_fetch(&state->name_cache, string, bufferSize);
624
+ } else {
625
+ cached_key = rstring_cache_fetch(&state->name_cache, string, bufferSize);
626
+ }
627
+
628
+ if (RB_LIKELY(cached_key)) {
629
+ return cached_key;
630
+ }
631
+ }
632
+
633
+ return build_string(string, stringEnd, intern, symbolize);
634
+ }
635
+
636
+ static VALUE json_string_unescape(JSON_ParserState *state, const char *string, const char *stringEnd, bool is_name, bool intern, bool symbolize)
637
+ {
638
+ size_t bufferSize = stringEnd - string;
639
+ const char *p = string, *pe = string, *unescape, *bufferStart;
640
+ char *buffer;
641
+ int unescape_len;
642
+ char buf[4];
643
+
644
+ if (is_name && state->in_array) {
645
+ VALUE cached_key;
646
+ if (RB_UNLIKELY(symbolize)) {
647
+ cached_key = rsymbol_cache_fetch(&state->name_cache, string, bufferSize);
648
+ } else {
649
+ cached_key = rstring_cache_fetch(&state->name_cache, string, bufferSize);
650
+ }
651
+
652
+ if (RB_LIKELY(cached_key)) {
653
+ return cached_key;
654
+ }
655
+ }
656
+
657
+ VALUE result = rb_str_buf_new(bufferSize);
658
+ rb_enc_associate_index(result, utf8_encindex);
659
+ buffer = RSTRING_PTR(result);
660
+ bufferStart = buffer;
661
+
662
+ while (pe < stringEnd && (pe = memchr(pe, '\\', stringEnd - pe))) {
663
+ unescape = (char *) "?";
664
+ unescape_len = 1;
665
+ if (pe > p) {
666
+ MEMCPY(buffer, p, char, pe - p);
667
+ buffer += pe - p;
668
+ }
669
+ switch (*++pe) {
670
+ case 'n':
671
+ unescape = (char *) "\n";
672
+ break;
673
+ case 'r':
674
+ unescape = (char *) "\r";
675
+ break;
676
+ case 't':
677
+ unescape = (char *) "\t";
678
+ break;
679
+ case '"':
680
+ unescape = (char *) "\"";
681
+ break;
682
+ case '\\':
683
+ unescape = (char *) "\\";
684
+ break;
685
+ case 'b':
686
+ unescape = (char *) "\b";
687
+ break;
688
+ case 'f':
689
+ unescape = (char *) "\f";
690
+ break;
691
+ case 'u':
692
+ if (pe > stringEnd - 5) {
693
+ raise_parse_error_at("incomplete unicode character escape sequence at %s", state, p);
694
+ } else {
695
+ uint32_t ch = unescape_unicode(state, (unsigned char *) ++pe);
696
+ pe += 3;
697
+ /* To handle values above U+FFFF, we take a sequence of
698
+ * \uXXXX escapes in the U+D800..U+DBFF then
699
+ * U+DC00..U+DFFF ranges, take the low 10 bits from each
700
+ * to make a 20-bit number, then add 0x10000 to get the
701
+ * final codepoint.
702
+ *
703
+ * See Unicode 15: 3.8 "Surrogates", 5.3 "Handling
704
+ * Surrogate Pairs in UTF-16", and 23.6 "Surrogates
705
+ * Area".
706
+ */
707
+ if ((ch & 0xFC00) == 0xD800) {
708
+ pe++;
709
+ if (pe > stringEnd - 6) {
710
+ raise_parse_error_at("incomplete surrogate pair at %s", state, p);
711
+ }
712
+ if (pe[0] == '\\' && pe[1] == 'u') {
713
+ uint32_t sur = unescape_unicode(state, (unsigned char *) pe + 2);
714
+ ch = (((ch & 0x3F) << 10) | ((((ch >> 6) & 0xF) + 1) << 16)
715
+ | (sur & 0x3FF));
716
+ pe += 5;
717
+ } else {
718
+ unescape = (char *) "?";
719
+ break;
720
+ }
721
+ }
722
+ unescape_len = convert_UTF32_to_UTF8(buf, ch);
723
+ unescape = buf;
724
+ }
725
+ break;
726
+ default:
727
+ p = pe;
728
+ continue;
729
+ }
730
+ MEMCPY(buffer, unescape, char, unescape_len);
731
+ buffer += unescape_len;
732
+ p = ++pe;
733
+ }
734
+
735
+ if (stringEnd > p) {
736
+ MEMCPY(buffer, p, char, stringEnd - p);
737
+ buffer += stringEnd - p;
738
+ }
739
+ rb_str_set_len(result, buffer - bufferStart);
740
+
741
+ if (symbolize) {
742
+ result = rb_str_intern(result);
743
+ } else if (intern) {
744
+ result = rb_funcall(rb_str_freeze(result), i_uminus, 0);
745
+ }
746
+
747
+ return result;
748
+ }
749
+
750
+ #define MAX_FAST_INTEGER_SIZE 18
751
+ static inline VALUE fast_decode_integer(const char *p, const char *pe)
752
+ {
753
+ bool negative = false;
754
+ if (*p == '-') {
755
+ negative = true;
756
+ p++;
757
+ }
758
+
759
+ long long memo = 0;
760
+ while (p < pe) {
761
+ memo *= 10;
762
+ memo += *p - '0';
763
+ p++;
764
+ }
765
+
766
+ if (negative) {
767
+ memo = -memo;
768
+ }
769
+ return LL2NUM(memo);
770
+ }
771
+
772
+ static VALUE json_decode_large_integer(const char *start, long len)
773
+ {
774
+ VALUE buffer_v;
775
+ char *buffer = RB_ALLOCV_N(char, buffer_v, len + 1);
776
+ MEMCPY(buffer, start, char, len);
777
+ buffer[len] = '\0';
778
+ VALUE number = rb_cstr2inum(buffer, 10);
779
+ RB_ALLOCV_END(buffer_v);
780
+ return number;
781
+ }
782
+
783
+ static inline VALUE
784
+ json_decode_integer(const char *start, const char *end)
785
+ {
786
+ long len = end - start;
787
+ if (RB_LIKELY(len < MAX_FAST_INTEGER_SIZE)) {
788
+ return fast_decode_integer(start, end);
789
+ }
790
+ return json_decode_large_integer(start, len);
791
+ }
792
+
793
+ static VALUE json_decode_large_float(const char *start, long len)
794
+ {
795
+ VALUE buffer_v;
796
+ char *buffer = RB_ALLOCV_N(char, buffer_v, len + 1);
797
+ MEMCPY(buffer, start, char, len);
798
+ buffer[len] = '\0';
799
+ VALUE number = DBL2NUM(rb_cstr_to_dbl(buffer, 1));
800
+ RB_ALLOCV_END(buffer_v);
801
+ return number;
802
+ }
803
+
804
+ static VALUE json_decode_float(JSON_ParserConfig *config, const char *start, const char *end)
805
+ {
806
+ long len = end - start;
807
+
808
+ if (RB_UNLIKELY(config->decimal_class)) {
809
+ VALUE text = rb_str_new(start, len);
810
+ return rb_funcallv(config->decimal_class, config->decimal_method_id, 1, &text);
811
+ } else if (RB_LIKELY(len < 64)) {
812
+ char buffer[64];
813
+ MEMCPY(buffer, start, char, len);
814
+ buffer[len] = '\0';
815
+ return DBL2NUM(rb_cstr_to_dbl(buffer, 1));
816
+ } else {
817
+ return json_decode_large_float(start, len);
818
+ }
819
+ }
820
+
821
+ static inline VALUE json_decode_array(JSON_ParserState *state, JSON_ParserConfig *config, long count)
822
+ {
823
+ VALUE array = rb_ary_new_from_values(count, rvalue_stack_peek(state->stack, count));
824
+ rvalue_stack_pop(state->stack, count);
825
+
826
+ if (config->freeze) {
827
+ RB_OBJ_FREEZE(array);
828
+ }
829
+
830
+ return array;
831
+ }
832
+
833
+ static inline VALUE json_decode_object(JSON_ParserState *state, JSON_ParserConfig *config, size_t count)
834
+ {
835
+ size_t entries_count = count / 2;
836
+ VALUE object = rb_hash_new_capa(entries_count);
837
+ rb_hash_bulk_insert(count, rvalue_stack_peek(state->stack, count), object);
838
+
839
+ if (RB_UNLIKELY(RHASH_SIZE(object) < entries_count)) {
840
+ switch (config->on_duplicate_key) {
841
+ case JSON_IGNORE:
842
+ break;
843
+ case JSON_DEPRECATED:
844
+ emit_parse_warning("detected duplicate keys in JSON object. This will raise an error in json 3.0 unless enabled via `allow_duplicate_key: true`", state);
845
+ break;
846
+ case JSON_RAISE:
847
+ raise_parse_error("duplicate key", state);
848
+ break;
849
+ }
850
+ }
851
+
852
+ rvalue_stack_pop(state->stack, count);
853
+
854
+ if (config->freeze) {
855
+ RB_OBJ_FREEZE(object);
856
+ }
857
+
858
+ return object;
859
+ }
860
+
861
+ static inline VALUE json_decode_string(JSON_ParserState *state, JSON_ParserConfig *config, const char *start, const char *end, bool escaped, bool is_name)
862
+ {
863
+ VALUE string;
864
+ bool intern = is_name || config->freeze;
865
+ bool symbolize = is_name && config->symbolize_names;
866
+ if (escaped) {
867
+ string = json_string_unescape(state, start, end, is_name, intern, symbolize);
868
+ } else {
869
+ string = json_string_fastpath(state, start, end, is_name, intern, symbolize);
870
+ }
871
+
872
+ return string;
873
+ }
874
+
875
+ static inline VALUE json_push_value(JSON_ParserState *state, JSON_ParserConfig *config, VALUE value)
876
+ {
877
+ if (RB_UNLIKELY(config->on_load_proc)) {
878
+ value = rb_proc_call_with_block(config->on_load_proc, 1, &value, Qnil);
879
+ }
880
+ rvalue_stack_push(state->stack, value, &state->stack_handle, &state->stack);
881
+ return value;
882
+ }
883
+
884
+ static const bool string_scan_table[256] = {
885
+ // ASCII Control Characters
886
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
887
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
888
+ // ASCII Characters
889
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // '"'
890
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
892
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, // '\\'
893
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895
+ };
896
+
897
+ #if (defined(__GNUC__ ) || defined(__clang__))
898
+ #define FORCE_INLINE __attribute__((always_inline))
899
+ #else
900
+ #define FORCE_INLINE
901
+ #endif
902
+
903
+ #ifdef HAVE_SIMD
904
+ static SIMD_Implementation simd_impl = SIMD_NONE;
905
+ #endif /* HAVE_SIMD */
906
+
907
+ static inline bool FORCE_INLINE string_scan(JSON_ParserState *state)
908
+ {
909
+ #ifdef HAVE_SIMD
910
+ #if defined(HAVE_SIMD_NEON)
911
+
912
+ uint64_t mask = 0;
913
+ if (string_scan_simd_neon(&state->cursor, state->end, &mask)) {
914
+ state->cursor += trailing_zeros64(mask) >> 2;
915
+ return 1;
916
+ }
917
+
918
+ #elif defined(HAVE_SIMD_SSE2)
919
+ if (simd_impl == SIMD_SSE2) {
920
+ int mask = 0;
921
+ if (string_scan_simd_sse2(&state->cursor, state->end, &mask)) {
922
+ state->cursor += trailing_zeros(mask);
923
+ return 1;
924
+ }
925
+ }
926
+ #endif /* HAVE_SIMD_NEON or HAVE_SIMD_SSE2 */
927
+ #endif /* HAVE_SIMD */
928
+
929
+ while (state->cursor < state->end) {
930
+ if (RB_UNLIKELY(string_scan_table[(unsigned char)*state->cursor])) {
931
+ return 1;
932
+ }
933
+ *state->cursor++;
934
+ }
935
+ return 0;
936
+ }
937
+
938
+ static inline VALUE json_parse_string(JSON_ParserState *state, JSON_ParserConfig *config, bool is_name)
939
+ {
940
+ state->cursor++;
941
+ const char *start = state->cursor;
942
+ bool escaped = false;
943
+
944
+ while (RB_UNLIKELY(string_scan(state))) {
945
+ switch (*state->cursor) {
946
+ case '"': {
947
+ VALUE string = json_decode_string(state, config, start, state->cursor, escaped, is_name);
948
+ state->cursor++;
949
+ return json_push_value(state, config, string);
950
+ }
951
+ case '\\': {
952
+ state->cursor++;
953
+ escaped = true;
954
+ if ((unsigned char)*state->cursor < 0x20) {
955
+ raise_parse_error("invalid ASCII control character in string: %s", state);
956
+ }
957
+ break;
958
+ }
959
+ default:
960
+ raise_parse_error("invalid ASCII control character in string: %s", state);
961
+ break;
962
+ }
963
+
964
+ state->cursor++;
965
+ }
966
+
967
+ raise_parse_error("unexpected end of input, expected closing \"", state);
968
+ return Qfalse;
969
+ }
970
+
971
+ static VALUE json_parse_any(JSON_ParserState *state, JSON_ParserConfig *config)
972
+ {
973
+ json_eat_whitespace(state);
974
+ if (state->cursor >= state->end) {
975
+ raise_parse_error("unexpected end of input", state);
976
+ }
977
+
978
+ switch (*state->cursor) {
979
+ case 'n':
980
+ if ((state->end - state->cursor >= 4) && (memcmp(state->cursor, "null", 4) == 0)) {
981
+ state->cursor += 4;
982
+ return json_push_value(state, config, Qnil);
983
+ }
984
+
985
+ raise_parse_error("unexpected token %s", state);
986
+ break;
987
+ case 't':
988
+ if ((state->end - state->cursor >= 4) && (memcmp(state->cursor, "true", 4) == 0)) {
989
+ state->cursor += 4;
990
+ return json_push_value(state, config, Qtrue);
991
+ }
992
+
993
+ raise_parse_error("unexpected token %s", state);
994
+ break;
995
+ case 'f':
996
+ // Note: memcmp with a small power of two compile to an integer comparison
997
+ if ((state->end - state->cursor >= 5) && (memcmp(state->cursor + 1, "alse", 4) == 0)) {
998
+ state->cursor += 5;
999
+ return json_push_value(state, config, Qfalse);
1000
+ }
1001
+
1002
+ raise_parse_error("unexpected token %s", state);
1003
+ break;
1004
+ case 'N':
1005
+ // Note: memcmp with a small power of two compile to an integer comparison
1006
+ if (config->allow_nan && (state->end - state->cursor >= 3) && (memcmp(state->cursor + 1, "aN", 2) == 0)) {
1007
+ state->cursor += 3;
1008
+ return json_push_value(state, config, CNaN);
1009
+ }
1010
+
1011
+ raise_parse_error("unexpected token %s", state);
1012
+ break;
1013
+ case 'I':
1014
+ if (config->allow_nan && (state->end - state->cursor >= 8) && (memcmp(state->cursor, "Infinity", 8) == 0)) {
1015
+ state->cursor += 8;
1016
+ return json_push_value(state, config, CInfinity);
1017
+ }
1018
+
1019
+ raise_parse_error("unexpected token %s", state);
1020
+ break;
1021
+ case '-':
1022
+ // Note: memcmp with a small power of two compile to an integer comparison
1023
+ if ((state->end - state->cursor >= 9) && (memcmp(state->cursor + 1, "Infinity", 8) == 0)) {
1024
+ if (config->allow_nan) {
1025
+ state->cursor += 9;
1026
+ return json_push_value(state, config, CMinusInfinity);
1027
+ } else {
1028
+ raise_parse_error("unexpected token %s", state);
1029
+ }
1030
+ }
1031
+ // Fallthrough
1032
+ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': {
1033
+ bool integer = true;
1034
+
1035
+ // /\A-?(0|[1-9]\d*)(\.\d+)?([Ee][-+]?\d+)?/
1036
+ const char *start = state->cursor;
1037
+ state->cursor++;
1038
+
1039
+ while ((state->cursor < state->end) && (*state->cursor >= '0') && (*state->cursor <= '9')) {
1040
+ state->cursor++;
1041
+ }
1042
+
1043
+ long integer_length = state->cursor - start;
1044
+
1045
+ if (RB_UNLIKELY(start[0] == '0' && integer_length > 1)) {
1046
+ raise_parse_error_at("invalid number: %s", state, start);
1047
+ } else if (RB_UNLIKELY(integer_length > 2 && start[0] == '-' && start[1] == '0')) {
1048
+ raise_parse_error_at("invalid number: %s", state, start);
1049
+ } else if (RB_UNLIKELY(integer_length == 1 && start[0] == '-')) {
1050
+ raise_parse_error_at("invalid number: %s", state, start);
1051
+ }
1052
+
1053
+ if ((state->cursor < state->end) && (*state->cursor == '.')) {
1054
+ integer = false;
1055
+ state->cursor++;
1056
+
1057
+ if (state->cursor == state->end || *state->cursor < '0' || *state->cursor > '9') {
1058
+ raise_parse_error("invalid number: %s", state);
1059
+ }
1060
+
1061
+ while ((state->cursor < state->end) && (*state->cursor >= '0') && (*state->cursor <= '9')) {
1062
+ state->cursor++;
1063
+ }
1064
+ }
1065
+
1066
+ if ((state->cursor < state->end) && ((*state->cursor == 'e') || (*state->cursor == 'E'))) {
1067
+ integer = false;
1068
+ state->cursor++;
1069
+ if ((state->cursor < state->end) && ((*state->cursor == '+') || (*state->cursor == '-'))) {
1070
+ state->cursor++;
1071
+ }
1072
+
1073
+ if (state->cursor == state->end || *state->cursor < '0' || *state->cursor > '9') {
1074
+ raise_parse_error("invalid number: %s", state);
1075
+ }
1076
+
1077
+ while ((state->cursor < state->end) && (*state->cursor >= '0') && (*state->cursor <= '9')) {
1078
+ state->cursor++;
1079
+ }
1080
+ }
1081
+
1082
+ if (integer) {
1083
+ return json_push_value(state, config, json_decode_integer(start, state->cursor));
1084
+ }
1085
+ return json_push_value(state, config, json_decode_float(config, start, state->cursor));
1086
+ }
1087
+ case '"': {
1088
+ // %r{\A"[^"\\\t\n\x00]*(?:\\[bfnrtu\\/"][^"\\]*)*"}
1089
+ return json_parse_string(state, config, false);
1090
+ break;
1091
+ }
1092
+ case '[': {
1093
+ state->cursor++;
1094
+ json_eat_whitespace(state);
1095
+ long stack_head = state->stack->head;
1096
+
1097
+ if ((state->cursor < state->end) && (*state->cursor == ']')) {
1098
+ state->cursor++;
1099
+ return json_push_value(state, config, json_decode_array(state, config, 0));
1100
+ } else {
1101
+ state->current_nesting++;
1102
+ if (RB_UNLIKELY(config->max_nesting && (config->max_nesting < state->current_nesting))) {
1103
+ rb_raise(eNestingError, "nesting of %d is too deep", state->current_nesting);
1104
+ }
1105
+ state->in_array++;
1106
+ json_parse_any(state, config);
1107
+ }
1108
+
1109
+ while (true) {
1110
+ json_eat_whitespace(state);
1111
+
1112
+ if (state->cursor < state->end) {
1113
+ if (*state->cursor == ']') {
1114
+ state->cursor++;
1115
+ long count = state->stack->head - stack_head;
1116
+ state->current_nesting--;
1117
+ state->in_array--;
1118
+ return json_push_value(state, config, json_decode_array(state, config, count));
1119
+ }
1120
+
1121
+ if (*state->cursor == ',') {
1122
+ state->cursor++;
1123
+ if (config->allow_trailing_comma) {
1124
+ json_eat_whitespace(state);
1125
+ if ((state->cursor < state->end) && (*state->cursor == ']')) {
1126
+ continue;
1127
+ }
1128
+ }
1129
+ json_parse_any(state, config);
1130
+ continue;
1131
+ }
1132
+ }
1133
+
1134
+ raise_parse_error("expected ',' or ']' after array value", state);
1135
+ }
1136
+ break;
1137
+ }
1138
+ case '{': {
1139
+ const char *object_start_cursor = state->cursor;
1140
+
1141
+ state->cursor++;
1142
+ json_eat_whitespace(state);
1143
+ long stack_head = state->stack->head;
1144
+
1145
+ if ((state->cursor < state->end) && (*state->cursor == '}')) {
1146
+ state->cursor++;
1147
+ return json_push_value(state, config, json_decode_object(state, config, 0));
1148
+ } else {
1149
+ state->current_nesting++;
1150
+ if (RB_UNLIKELY(config->max_nesting && (config->max_nesting < state->current_nesting))) {
1151
+ rb_raise(eNestingError, "nesting of %d is too deep", state->current_nesting);
1152
+ }
1153
+
1154
+ if (*state->cursor != '"') {
1155
+ raise_parse_error("expected object key, got %s", state);
1156
+ }
1157
+ json_parse_string(state, config, true);
1158
+
1159
+ json_eat_whitespace(state);
1160
+ if ((state->cursor >= state->end) || (*state->cursor != ':')) {
1161
+ raise_parse_error("expected ':' after object key", state);
1162
+ }
1163
+ state->cursor++;
1164
+
1165
+ json_parse_any(state, config);
1166
+ }
1167
+
1168
+ while (true) {
1169
+ json_eat_whitespace(state);
1170
+
1171
+ if (state->cursor < state->end) {
1172
+ if (*state->cursor == '}') {
1173
+ state->cursor++;
1174
+ state->current_nesting--;
1175
+ size_t count = state->stack->head - stack_head;
1176
+
1177
+ // Temporary rewind cursor in case an error is raised
1178
+ const char *final_cursor = state->cursor;
1179
+ state->cursor = object_start_cursor;
1180
+ VALUE object = json_decode_object(state, config, count);
1181
+ state->cursor = final_cursor;
1182
+
1183
+ return json_push_value(state, config, object);
1184
+ }
1185
+
1186
+ if (*state->cursor == ',') {
1187
+ state->cursor++;
1188
+ json_eat_whitespace(state);
1189
+
1190
+ if (config->allow_trailing_comma) {
1191
+ if ((state->cursor < state->end) && (*state->cursor == '}')) {
1192
+ continue;
1193
+ }
1194
+ }
1195
+
1196
+ if (*state->cursor != '"') {
1197
+ raise_parse_error("expected object key, got: %s", state);
1198
+ }
1199
+ json_parse_string(state, config, true);
1200
+
1201
+ json_eat_whitespace(state);
1202
+ if ((state->cursor >= state->end) || (*state->cursor != ':')) {
1203
+ raise_parse_error("expected ':' after object key, got: %s", state);
1204
+ }
1205
+ state->cursor++;
1206
+
1207
+ json_parse_any(state, config);
1208
+
1209
+ continue;
1210
+ }
1211
+ }
1212
+
1213
+ raise_parse_error("expected ',' or '}' after object value, got: %s", state);
1214
+ }
1215
+ break;
1216
+ }
1217
+
1218
+ default:
1219
+ raise_parse_error("unexpected character: %s", state);
1220
+ break;
1221
+ }
1222
+
1223
+ raise_parse_error("unreacheable: %s", state);
1224
+ }
1225
+
1226
+ static void json_ensure_eof(JSON_ParserState *state)
1227
+ {
1228
+ json_eat_whitespace(state);
1229
+ if (state->cursor != state->end) {
1230
+ raise_parse_error("unexpected token at end of stream %s", state);
1231
+ }
1232
+ }
1233
+
1234
+ /*
1235
+ * Document-class: JSON::Ext::Parser
1236
+ *
1237
+ * This is the JSON parser implemented as a C extension. It can be configured
1238
+ * to be used by setting
1239
+ *
1240
+ * JSON.parser = JSON::Ext::Parser
1241
+ *
1242
+ * with the method parser= in JSON.
1243
+ *
1244
+ */
1245
+
1246
+ static VALUE convert_encoding(VALUE source)
1247
+ {
1248
+ int encindex = RB_ENCODING_GET(source);
1249
+
1250
+ if (RB_LIKELY(encindex == utf8_encindex)) {
1251
+ return source;
1252
+ }
1253
+
1254
+ if (encindex == binary_encindex) {
1255
+ // For historical reason, we silently reinterpret binary strings as UTF-8
1256
+ return rb_enc_associate_index(rb_str_dup(source), utf8_encindex);
1257
+ }
1258
+
1259
+ return rb_funcall(source, i_encode, 1, Encoding_UTF_8);
1260
+ }
1261
+
1262
+ static int parser_config_init_i(VALUE key, VALUE val, VALUE data)
1263
+ {
1264
+ JSON_ParserConfig *config = (JSON_ParserConfig *)data;
1265
+
1266
+ if (key == sym_max_nesting) { config->max_nesting = RTEST(val) ? FIX2INT(val) : 0; }
1267
+ else if (key == sym_allow_nan) { config->allow_nan = RTEST(val); }
1268
+ else if (key == sym_allow_trailing_comma) { config->allow_trailing_comma = RTEST(val); }
1269
+ else if (key == sym_symbolize_names) { config->symbolize_names = RTEST(val); }
1270
+ else if (key == sym_freeze) { config->freeze = RTEST(val); }
1271
+ else if (key == sym_on_load) { config->on_load_proc = RTEST(val) ? val : Qfalse; }
1272
+ else if (key == sym_allow_duplicate_key) { config->on_duplicate_key = RTEST(val) ? JSON_IGNORE : JSON_RAISE; }
1273
+ else if (key == sym_decimal_class) {
1274
+ if (RTEST(val)) {
1275
+ if (rb_respond_to(val, i_try_convert)) {
1276
+ config->decimal_class = val;
1277
+ config->decimal_method_id = i_try_convert;
1278
+ } else if (rb_respond_to(val, i_new)) {
1279
+ config->decimal_class = val;
1280
+ config->decimal_method_id = i_new;
1281
+ } else if (RB_TYPE_P(val, T_CLASS)) {
1282
+ VALUE name = rb_class_name(val);
1283
+ const char *name_cstr = RSTRING_PTR(name);
1284
+ const char *last_colon = strrchr(name_cstr, ':');
1285
+ if (last_colon) {
1286
+ const char *mod_path_end = last_colon - 1;
1287
+ VALUE mod_path = rb_str_substr(name, 0, mod_path_end - name_cstr);
1288
+ config->decimal_class = rb_path_to_class(mod_path);
1289
+
1290
+ const char *method_name_beg = last_colon + 1;
1291
+ long before_len = method_name_beg - name_cstr;
1292
+ long len = RSTRING_LEN(name) - before_len;
1293
+ VALUE method_name = rb_str_substr(name, before_len, len);
1294
+ config->decimal_method_id = SYM2ID(rb_str_intern(method_name));
1295
+ } else {
1296
+ config->decimal_class = rb_mKernel;
1297
+ config->decimal_method_id = SYM2ID(rb_str_intern(name));
1298
+ }
1299
+ }
1300
+ }
1301
+ }
1302
+
1303
+ return ST_CONTINUE;
1304
+ }
1305
+
1306
+ static void parser_config_init(JSON_ParserConfig *config, VALUE opts)
1307
+ {
1308
+ config->max_nesting = 100;
1309
+
1310
+ if (!NIL_P(opts)) {
1311
+ Check_Type(opts, T_HASH);
1312
+ if (RHASH_SIZE(opts) > 0) {
1313
+ // We assume in most cases few keys are set so it's faster to go over
1314
+ // the provided keys than to check all possible keys.
1315
+ rb_hash_foreach(opts, parser_config_init_i, (VALUE)config);
1316
+ }
1317
+
1318
+ }
1319
+ }
1320
+
1321
+ /*
1322
+ * call-seq: new(opts => {})
1323
+ *
1324
+ * Creates a new JSON::Ext::ParserConfig instance.
1325
+ *
1326
+ * It will be configured by the _opts_ hash. _opts_ can have the following
1327
+ * keys:
1328
+ *
1329
+ * _opts_ can have the following keys:
1330
+ * * *max_nesting*: The maximum depth of nesting allowed in the parsed data
1331
+ * structures. Disable depth checking with :max_nesting => false|nil|0, it
1332
+ * defaults to 100.
1333
+ * * *allow_nan*: If set to true, allow NaN, Infinity and -Infinity in
1334
+ * defiance of RFC 4627 to be parsed by the Parser. This option defaults to
1335
+ * false.
1336
+ * * *symbolize_names*: If set to true, returns symbols for the names
1337
+ * (keys) in a JSON object. Otherwise strings are returned, which is
1338
+ * also the default. It's not possible to use this option in
1339
+ * conjunction with the *create_additions* option.
1340
+ * * *decimal_class*: Specifies which class to use instead of the default
1341
+ * (Float) when parsing decimal numbers. This class must accept a single
1342
+ * string argument in its constructor.
1343
+ */
1344
+ static VALUE cParserConfig_initialize(VALUE self, VALUE opts)
1345
+ {
1346
+ GET_PARSER_CONFIG;
1347
+
1348
+ parser_config_init(config, opts);
1349
+
1350
+ RB_OBJ_WRITTEN(self, Qundef, config->decimal_class);
1351
+
1352
+ return self;
1353
+ }
1354
+
1355
+ static VALUE cParser_parse(JSON_ParserConfig *config, VALUE Vsource)
1356
+ {
1357
+ Vsource = convert_encoding(StringValue(Vsource));
1358
+ StringValue(Vsource);
1359
+
1360
+ VALUE rvalue_stack_buffer[RVALUE_STACK_INITIAL_CAPA];
1361
+ rvalue_stack stack = {
1362
+ .type = RVALUE_STACK_STACK_ALLOCATED,
1363
+ .ptr = rvalue_stack_buffer,
1364
+ .capa = RVALUE_STACK_INITIAL_CAPA,
1365
+ };
1366
+
1367
+ long len;
1368
+ const char *start;
1369
+ RSTRING_GETMEM(Vsource, start, len);
1370
+
1371
+ JSON_ParserState _state = {
1372
+ .start = start,
1373
+ .cursor = start,
1374
+ .end = start + len,
1375
+ .stack = &stack,
1376
+ };
1377
+ JSON_ParserState *state = &_state;
1378
+
1379
+ VALUE result = json_parse_any(state, config);
1380
+
1381
+ // This may be skipped in case of exception, but
1382
+ // it won't cause a leak.
1383
+ rvalue_stack_eagerly_release(state->stack_handle);
1384
+
1385
+ json_ensure_eof(state);
1386
+
1387
+ return result;
1388
+ }
1389
+
1390
+ /*
1391
+ * call-seq: parse(source)
1392
+ *
1393
+ * Parses the current JSON text _source_ and returns the complete data
1394
+ * structure as a result.
1395
+ * It raises JSON::ParserError if fail to parse.
1396
+ */
1397
+ static VALUE cParserConfig_parse(VALUE self, VALUE Vsource)
1398
+ {
1399
+ GET_PARSER_CONFIG;
1400
+ return cParser_parse(config, Vsource);
1401
+ }
1402
+
1403
+ static VALUE cParser_m_parse(VALUE klass, VALUE Vsource, VALUE opts)
1404
+ {
1405
+ Vsource = convert_encoding(StringValue(Vsource));
1406
+ StringValue(Vsource);
1407
+
1408
+ JSON_ParserConfig _config = {0};
1409
+ JSON_ParserConfig *config = &_config;
1410
+ parser_config_init(config, opts);
1411
+
1412
+ return cParser_parse(config, Vsource);
1413
+ }
1414
+
1415
+ static void JSON_ParserConfig_mark(void *ptr)
1416
+ {
1417
+ JSON_ParserConfig *config = ptr;
1418
+ rb_gc_mark(config->on_load_proc);
1419
+ rb_gc_mark(config->decimal_class);
1420
+ }
1421
+
1422
+ static void JSON_ParserConfig_free(void *ptr)
1423
+ {
1424
+ JSON_ParserConfig *config = ptr;
1425
+ ruby_xfree(config);
1426
+ }
1427
+
1428
+ static size_t JSON_ParserConfig_memsize(const void *ptr)
1429
+ {
1430
+ return sizeof(JSON_ParserConfig);
1431
+ }
1432
+
1433
+ static const rb_data_type_t JSON_ParserConfig_type = {
1434
+ "JSON::Ext::Parser/ParserConfig",
1435
+ {
1436
+ JSON_ParserConfig_mark,
1437
+ JSON_ParserConfig_free,
1438
+ JSON_ParserConfig_memsize,
1439
+ },
1440
+ 0, 0,
1441
+ RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED,
1442
+ };
1443
+
1444
+ static VALUE cJSON_parser_s_allocate(VALUE klass)
1445
+ {
1446
+ JSON_ParserConfig *config;
1447
+ return TypedData_Make_Struct(klass, JSON_ParserConfig, &JSON_ParserConfig_type, config);
1448
+ }
1449
+
1450
+ void Init_parser(void)
1451
+ {
1452
+ #ifdef HAVE_RB_EXT_RACTOR_SAFE
1453
+ rb_ext_ractor_safe(true);
1454
+ #endif
1455
+
1456
+ #undef rb_intern
1457
+ rb_require("json/common");
1458
+ mJSON = rb_define_module("JSON");
1459
+ VALUE mExt = rb_define_module_under(mJSON, "Ext");
1460
+ VALUE cParserConfig = rb_define_class_under(mExt, "ParserConfig", rb_cObject);
1461
+ eNestingError = rb_path2class("JSON::NestingError");
1462
+ rb_gc_register_mark_object(eNestingError);
1463
+ rb_define_alloc_func(cParserConfig, cJSON_parser_s_allocate);
1464
+ rb_define_method(cParserConfig, "initialize", cParserConfig_initialize, 1);
1465
+ rb_define_method(cParserConfig, "parse", cParserConfig_parse, 1);
1466
+
1467
+ VALUE cParser = rb_define_class_under(mExt, "Parser", rb_cObject);
1468
+ rb_define_singleton_method(cParser, "parse", cParser_m_parse, 2);
1469
+
1470
+ CNaN = rb_const_get(mJSON, rb_intern("NaN"));
1471
+ rb_gc_register_mark_object(CNaN);
1472
+
1473
+ CInfinity = rb_const_get(mJSON, rb_intern("Infinity"));
1474
+ rb_gc_register_mark_object(CInfinity);
1475
+
1476
+ CMinusInfinity = rb_const_get(mJSON, rb_intern("MinusInfinity"));
1477
+ rb_gc_register_mark_object(CMinusInfinity);
1478
+
1479
+ rb_global_variable(&Encoding_UTF_8);
1480
+ Encoding_UTF_8 = rb_const_get(rb_path2class("Encoding"), rb_intern("UTF_8"));
1481
+
1482
+ sym_max_nesting = ID2SYM(rb_intern("max_nesting"));
1483
+ sym_allow_nan = ID2SYM(rb_intern("allow_nan"));
1484
+ sym_allow_trailing_comma = ID2SYM(rb_intern("allow_trailing_comma"));
1485
+ sym_symbolize_names = ID2SYM(rb_intern("symbolize_names"));
1486
+ sym_freeze = ID2SYM(rb_intern("freeze"));
1487
+ sym_on_load = ID2SYM(rb_intern("on_load"));
1488
+ sym_decimal_class = ID2SYM(rb_intern("decimal_class"));
1489
+ sym_allow_duplicate_key = ID2SYM(rb_intern("allow_duplicate_key"));
1490
+
1491
+ i_chr = rb_intern("chr");
1492
+ i_aset = rb_intern("[]=");
1493
+ i_aref = rb_intern("[]");
1494
+ i_leftshift = rb_intern("<<");
1495
+ i_new = rb_intern("new");
1496
+ i_try_convert = rb_intern("try_convert");
1497
+ i_uminus = rb_intern("-@");
1498
+ i_encode = rb_intern("encode");
1499
+
1500
+ binary_encindex = rb_ascii8bit_encindex();
1501
+ utf8_encindex = rb_utf8_encindex();
1502
+ enc_utf8 = rb_utf8_encoding();
1503
+
1504
+ #ifdef HAVE_SIMD
1505
+ simd_impl = find_simd_implementation();
1506
+ #endif
1507
+ }