lithic 0.1.0.pre.alpha.17 → 0.1.0.pre.alpha.19
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +34 -0
- data/README.md +7 -7
- data/lib/lithic/file_part.rb +55 -0
- data/lib/lithic/internal/cursor_page.rb +1 -1
- data/lib/lithic/internal/single_page.rb +1 -1
- data/lib/lithic/internal/transport/base_client.rb +7 -7
- data/lib/lithic/internal/transport/pooled_net_requester.rb +1 -1
- data/lib/lithic/internal/type/array_of.rb +2 -0
- data/lib/lithic/internal/type/base_model.rb +1 -1
- data/lib/lithic/internal/type/base_page.rb +1 -1
- data/lib/lithic/internal/type/converter.rb +4 -1
- data/lib/lithic/internal/type/{io_like.rb → file_input.rb} +30 -15
- data/lib/lithic/internal/type/hash_of.rb +2 -0
- data/lib/lithic/internal/util.rb +69 -61
- data/lib/lithic/models/account.rb +50 -19
- data/lib/lithic/models/account_holder.rb +139 -59
- data/lib/lithic/models/account_holder_create_params.rb +144 -52
- data/lib/lithic/models/account_holder_create_response.rb +18 -7
- data/lib/lithic/models/account_holder_list_params.rb +33 -11
- data/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rb +13 -4
- data/lib/lithic/models/account_holder_simulate_enrollment_review_params.rb +10 -3
- data/lib/lithic/models/account_holder_simulate_enrollment_review_response.rb +169 -60
- data/lib/lithic/models/account_holder_update_params.rb +147 -53
- data/lib/lithic/models/account_holder_update_response.rb +202 -74
- data/lib/lithic/models/account_holder_upload_document_params.rb +4 -2
- data/lib/lithic/models/account_list_params.rb +17 -5
- data/lib/lithic/models/account_spend_limits.rb +27 -9
- data/lib/lithic/models/account_update_params.rb +17 -5
- data/lib/lithic/models/address.rb +17 -6
- data/lib/lithic/models/address_update.rb +17 -6
- data/lib/lithic/models/aggregate_balance.rb +26 -10
- data/lib/lithic/models/aggregate_balance_list_params.rb +2 -1
- data/lib/lithic/models/auth_rules/auth_rule.rb +24 -9
- data/lib/lithic/models/auth_rules/auth_rule_condition.rb +8 -3
- data/lib/lithic/models/auth_rules/v2/backtest_create_params.rb +4 -2
- data/lib/lithic/models/auth_rules/v2/backtest_create_response.rb +1 -1
- data/lib/lithic/models/auth_rules/v2/backtest_results.rb +46 -18
- data/lib/lithic/models/auth_rules/v2_apply_params.rb +8 -4
- data/lib/lithic/models/auth_rules/v2_apply_response.rb +31 -12
- data/lib/lithic/models/auth_rules/v2_create_params.rb +14 -7
- data/lib/lithic/models/auth_rules/v2_create_response.rb +31 -12
- data/lib/lithic/models/auth_rules/v2_draft_params.rb +2 -1
- data/lib/lithic/models/auth_rules/v2_draft_response.rb +31 -12
- data/lib/lithic/models/auth_rules/v2_list_params.rb +15 -5
- data/lib/lithic/models/auth_rules/v2_list_response.rb +31 -12
- data/lib/lithic/models/auth_rules/v2_promote_response.rb +31 -12
- data/lib/lithic/models/auth_rules/v2_retrieve_response.rb +32 -12
- data/lib/lithic/models/auth_rules/v2_update_params.rb +15 -6
- data/lib/lithic/models/auth_rules/v2_update_response.rb +31 -12
- data/lib/lithic/models/auth_rules/velocity_limit_params.rb +27 -7
- data/lib/lithic/models/auth_stream_secret.rb +1 -1
- data/lib/lithic/models/balance.rb +26 -10
- data/lib/lithic/models/balance_list_params.rb +12 -4
- data/lib/lithic/models/book_transfer_create_params.rb +23 -8
- data/lib/lithic/models/book_transfer_list_params.rb +28 -9
- data/lib/lithic/models/book_transfer_response.rb +54 -20
- data/lib/lithic/models/book_transfer_reverse_params.rb +2 -1
- data/lib/lithic/models/card.rb +7 -2
- data/lib/lithic/models/card_convert_physical_params.rb +12 -4
- data/lib/lithic/models/card_create_params.rb +45 -15
- data/lib/lithic/models/card_embed_params.rb +4 -2
- data/lib/lithic/models/card_list_params.rb +21 -7
- data/lib/lithic/models/card_program.rb +17 -7
- data/lib/lithic/models/card_program_list_params.rb +11 -3
- data/lib/lithic/models/card_provision_params.rb +20 -6
- data/lib/lithic/models/card_reissue_params.rb +12 -4
- data/lib/lithic/models/card_renew_params.rb +18 -6
- data/lib/lithic/models/card_search_by_pan_params.rb +2 -1
- data/lib/lithic/models/card_spend_limits.rb +27 -9
- data/lib/lithic/models/card_update_params.rb +21 -7
- data/lib/lithic/models/cards/aggregate_balance_list_params.rb +4 -2
- data/lib/lithic/models/cards/aggregate_balance_list_response.rb +24 -9
- data/lib/lithic/models/cards/balance_list_params.rb +7 -2
- data/lib/lithic/models/cards/balance_list_response.rb +26 -10
- data/lib/lithic/models/cards/financial_transaction_list_params.rb +21 -7
- data/lib/lithic/models/carrier.rb +1 -1
- data/lib/lithic/models/credit_products/prime_rate_create_params.rb +4 -2
- data/lib/lithic/models/credit_products/prime_rate_retrieve_params.rb +4 -2
- data/lib/lithic/models/credit_products/prime_rate_retrieve_response.rb +6 -4
- data/lib/lithic/models/digital_card_art.rb +13 -7
- data/lib/lithic/models/digital_card_art_list_params.rb +11 -3
- data/lib/lithic/models/dispute.rb +40 -18
- data/lib/lithic/models/dispute_create_params.rb +10 -5
- data/lib/lithic/models/dispute_evidence.rb +17 -7
- data/lib/lithic/models/dispute_initiate_evidence_upload_params.rb +2 -1
- data/lib/lithic/models/dispute_list_evidences_params.rb +17 -5
- data/lib/lithic/models/dispute_list_params.rb +21 -7
- data/lib/lithic/models/dispute_update_params.rb +8 -4
- data/lib/lithic/models/document.rb +31 -14
- data/lib/lithic/models/event.rb +9 -3
- data/lib/lithic/models/event_list_attempts_params.rb +18 -5
- data/lib/lithic/models/event_list_params.rb +21 -7
- data/lib/lithic/models/event_subscription.rb +7 -3
- data/lib/lithic/models/events/subscription_create_params.rb +12 -4
- data/lib/lithic/models/events/subscription_list_attempts_params.rb +18 -5
- data/lib/lithic/models/events/subscription_list_params.rb +11 -3
- data/lib/lithic/models/events/subscription_recover_params.rb +9 -2
- data/lib/lithic/models/events/subscription_replay_missing_params.rb +9 -2
- data/lib/lithic/models/events/subscription_retrieve_secret_response.rb +1 -1
- data/lib/lithic/models/events/subscription_send_simulated_example_params.rb +2 -1
- data/lib/lithic/models/events/subscription_update_params.rb +12 -4
- data/lib/lithic/models/external_bank_account_create_params.rb +40 -16
- data/lib/lithic/models/external_bank_account_create_response.rb +53 -22
- data/lib/lithic/models/external_bank_account_list_params.rb +17 -3
- data/lib/lithic/models/external_bank_account_list_response.rb +53 -22
- data/lib/lithic/models/external_bank_account_retrieve_response.rb +53 -22
- data/lib/lithic/models/external_bank_account_retry_micro_deposits_response.rb +54 -22
- data/lib/lithic/models/external_bank_account_retry_prenote_response.rb +53 -22
- data/lib/lithic/models/external_bank_account_update_params.rb +21 -8
- data/lib/lithic/models/external_bank_account_update_response.rb +53 -22
- data/lib/lithic/models/external_bank_accounts/micro_deposit_create_response.rb +54 -22
- data/lib/lithic/models/external_payment_list_params.rb +27 -9
- data/lib/lithic/models/financial_account.rb +25 -8
- data/lib/lithic/models/financial_account_list_params.rb +6 -3
- data/lib/lithic/models/financial_account_update_status_params.rb +4 -2
- data/lib/lithic/models/financial_accounts/balance_list_params.rb +7 -2
- data/lib/lithic/models/financial_accounts/balance_list_response.rb +26 -10
- data/lib/lithic/models/financial_accounts/credit_configuration_update_params.rb +6 -2
- data/lib/lithic/models/financial_accounts/financial_account_credit_config.rb +12 -5
- data/lib/lithic/models/financial_accounts/financial_transaction_list_params.rb +22 -7
- data/lib/lithic/models/financial_accounts/loan_tape.rb +119 -47
- data/lib/lithic/models/financial_accounts/loan_tape_list_params.rb +17 -5
- data/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rb +2 -1
- data/lib/lithic/models/financial_accounts/statement.rb +97 -40
- data/lib/lithic/models/financial_accounts/statement_list_params.rb +19 -6
- data/lib/lithic/models/financial_accounts/statement_retrieve_params.rb +2 -1
- data/lib/lithic/models/financial_accounts/statements/line_item_list_params.rb +14 -4
- data/lib/lithic/models/financial_accounts/statements/statement_line_items.rb +25 -9
- data/lib/lithic/models/financial_transaction.rb +42 -15
- data/lib/lithic/models/kyb.rb +101 -36
- data/lib/lithic/models/kyb_business_entity.rb +35 -12
- data/lib/lithic/models/kyc.rb +34 -12
- data/lib/lithic/models/kyc_exempt.rb +23 -9
- data/lib/lithic/models/management_operation_list_params.rb +25 -8
- data/lib/lithic/models/message_attempt.rb +17 -7
- data/lib/lithic/models/non_pci_card.rb +73 -28
- data/lib/lithic/models/payment.rb +52 -18
- data/lib/lithic/models/payment_create_params.rb +14 -1
- data/lib/lithic/models/payment_create_response.rb +1 -1
- data/lib/lithic/models/payment_list_params.rb +23 -5
- data/lib/lithic/models/payment_retry_response.rb +1 -1
- data/lib/lithic/models/payment_simulate_action_params.rb +6 -3
- data/lib/lithic/models/payment_simulate_action_response.rb +5 -3
- data/lib/lithic/models/payment_simulate_receipt_params.rb +14 -5
- data/lib/lithic/models/payment_simulate_receipt_response.rb +5 -3
- data/lib/lithic/models/payment_simulate_release_params.rb +2 -1
- data/lib/lithic/models/payment_simulate_release_response.rb +5 -3
- data/lib/lithic/models/payment_simulate_return_params.rb +4 -2
- data/lib/lithic/models/payment_simulate_return_response.rb +5 -3
- data/lib/lithic/models/reports/settlement/network_total_list_params.rb +30 -11
- data/lib/lithic/models/reports/settlement/network_total_list_response.rb +39 -14
- data/lib/lithic/models/reports/settlement/network_total_retrieve_response.rb +39 -14
- data/lib/lithic/models/reports/settlement_list_details_params.rb +11 -3
- data/lib/lithic/models/required_document.rb +10 -3
- data/lib/lithic/models/responder_endpoint_check_status_params.rb +2 -1
- data/lib/lithic/models/responder_endpoint_create_params.rb +4 -2
- data/lib/lithic/models/responder_endpoint_create_response.rb +1 -1
- data/lib/lithic/models/responder_endpoint_delete_params.rb +2 -1
- data/lib/lithic/models/responder_endpoint_status.rb +3 -2
- data/lib/lithic/models/settlement_detail.rb +50 -21
- data/lib/lithic/models/settlement_report.rb +29 -10
- data/lib/lithic/models/settlement_summary_details.rb +21 -8
- data/lib/lithic/models/shipping_address.rb +31 -11
- data/lib/lithic/models/three_ds/authentication_retrieve_response.rb +215 -71
- data/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rb +9 -2
- data/lib/lithic/models/three_ds/authentication_simulate_params.rb +28 -8
- data/lib/lithic/models/three_ds/authentication_simulate_response.rb +5 -1
- data/lib/lithic/models/three_ds/challenge_response.rb +7 -2
- data/lib/lithic/models/three_ds/decisioning_retrieve_secret_response.rb +1 -1
- data/lib/lithic/models/tokenization.rb +37 -17
- data/lib/lithic/models/tokenization_decisioning_rotate_secret_response.rb +1 -1
- data/lib/lithic/models/tokenization_list_params.rb +22 -8
- data/lib/lithic/models/tokenization_resend_activation_code_params.rb +6 -1
- data/lib/lithic/models/tokenization_secret.rb +1 -1
- data/lib/lithic/models/tokenization_simulate_params.rb +22 -8
- data/lib/lithic/models/tokenization_update_digital_card_art_params.rb +6 -1
- data/lib/lithic/models/transaction.rb +248 -89
- data/lib/lithic/models/transaction_list_params.rb +26 -9
- data/lib/lithic/models/transaction_simulate_authorization_advice_params.rb +8 -2
- data/lib/lithic/models/transaction_simulate_authorization_advice_response.rb +3 -2
- data/lib/lithic/models/transaction_simulate_authorization_params.rb +27 -10
- data/lib/lithic/models/transaction_simulate_authorization_response.rb +7 -2
- data/lib/lithic/models/transaction_simulate_clearing_params.rb +8 -2
- data/lib/lithic/models/transaction_simulate_clearing_response.rb +1 -1
- data/lib/lithic/models/transaction_simulate_credit_authorization_params.rb +15 -5
- data/lib/lithic/models/transaction_simulate_credit_authorization_response.rb +3 -2
- data/lib/lithic/models/transaction_simulate_return_params.rb +6 -3
- data/lib/lithic/models/transaction_simulate_return_response.rb +3 -2
- data/lib/lithic/models/transaction_simulate_return_reversal_params.rb +2 -1
- data/lib/lithic/models/transaction_simulate_return_reversal_response.rb +1 -1
- data/lib/lithic/models/transaction_simulate_void_params.rb +10 -3
- data/lib/lithic/models/transaction_simulate_void_response.rb +1 -1
- data/lib/lithic/models/transactions/events/enhanced_data.rb +52 -24
- data/lib/lithic/models/transfer.rb +46 -17
- data/lib/lithic/models/transfer_create_params.rb +17 -5
- data/lib/lithic/resources/account_holders.rb +166 -60
- data/lib/lithic/resources/accounts.rb +40 -13
- data/lib/lithic/resources/aggregate_balances.rb +2 -1
- data/lib/lithic/resources/auth_rules/v2/backtests.rb +10 -5
- data/lib/lithic/resources/auth_rules/v2.rb +68 -30
- data/lib/lithic/resources/balances.rb +12 -4
- data/lib/lithic/resources/book_transfers.rb +57 -20
- data/lib/lithic/resources/card_programs.rb +13 -4
- data/lib/lithic/resources/cards/aggregate_balances.rb +4 -2
- data/lib/lithic/resources/cards/balances.rb +8 -2
- data/lib/lithic/resources/cards/financial_transactions.rb +25 -8
- data/lib/lithic/resources/cards.rb +161 -53
- data/lib/lithic/resources/credit_products/extended_credit.rb +2 -1
- data/lib/lithic/resources/credit_products/prime_rates.rb +12 -6
- data/lib/lithic/resources/digital_card_art.rb +17 -4
- data/lib/lithic/resources/disputes.rb +61 -22
- data/lib/lithic/resources/events/subscriptions.rb +78 -21
- data/lib/lithic/resources/events.rb +40 -12
- data/lib/lithic/resources/external_bank_accounts.rb +79 -27
- data/lib/lithic/resources/external_payments.rb +46 -14
- data/lib/lithic/resources/financial_accounts/balances.rb +9 -3
- data/lib/lithic/resources/financial_accounts/credit_configuration.rb +10 -4
- data/lib/lithic/resources/financial_accounts/financial_transactions.rb +28 -10
- data/lib/lithic/resources/financial_accounts/loan_tapes.rb +23 -8
- data/lib/lithic/resources/financial_accounts/statements/line_items.rb +16 -5
- data/lib/lithic/resources/financial_accounts/statements.rb +25 -9
- data/lib/lithic/resources/financial_accounts.rb +22 -11
- data/lib/lithic/resources/management_operations.rb +31 -10
- data/lib/lithic/resources/payments.rb +64 -17
- data/lib/lithic/resources/reports/settlement/network_totals.rb +32 -12
- data/lib/lithic/resources/reports/settlement.rb +15 -5
- data/lib/lithic/resources/responder_endpoints.rb +8 -4
- data/lib/lithic/resources/three_ds/authentication.rb +21 -5
- data/lib/lithic/resources/three_ds/decisioning.rb +8 -2
- data/lib/lithic/resources/tokenizations.rb +70 -25
- data/lib/lithic/resources/transactions/enhanced_commercial_data.rb +2 -1
- data/lib/lithic/resources/transactions/events/enhanced_commercial_data.rb +2 -1
- data/lib/lithic/resources/transactions.rb +106 -37
- data/lib/lithic/resources/transfers.rb +17 -5
- data/lib/lithic/version.rb +1 -1
- data/lib/lithic.rb +2 -1
- data/rbi/lib/lithic/file_part.rbi +34 -0
- data/rbi/lib/lithic/internal/transport/base_client.rbi +17 -3
- data/rbi/lib/lithic/internal/type/{io_like.rbi → file_input.rbi} +6 -2
- data/rbi/lib/lithic/internal/util.rbi +24 -19
- data/rbi/lib/lithic/models/account.rbi +62 -6
- data/rbi/lib/lithic/models/account_holder.rbi +139 -8
- data/rbi/lib/lithic/models/account_holder_create_params.rbi +131 -6
- data/rbi/lib/lithic/models/account_holder_create_response.rbi +14 -3
- data/rbi/lib/lithic/models/account_holder_list_params.rbi +19 -0
- data/rbi/lib/lithic/models/account_holder_simulate_enrollment_document_review_params.rbi +5 -0
- data/rbi/lib/lithic/models/account_holder_simulate_enrollment_review_params.rbi +10 -2
- data/rbi/lib/lithic/models/account_holder_simulate_enrollment_review_response.rbi +172 -17
- data/rbi/lib/lithic/models/account_holder_update_params.rbi +99 -0
- data/rbi/lib/lithic/models/account_holder_update_response.rbi +176 -19
- data/rbi/lib/lithic/models/account_holder_upload_document_params.rbi +7 -2
- data/rbi/lib/lithic/models/account_list_params.rbi +10 -3
- data/rbi/lib/lithic/models/account_spend_limits.rbi +30 -6
- data/rbi/lib/lithic/models/account_update_params.rbi +16 -0
- data/rbi/lib/lithic/models/address.rbi +19 -2
- data/rbi/lib/lithic/models/address_update.rbi +17 -2
- data/rbi/lib/lithic/models/aggregate_balance.rbi +14 -0
- data/rbi/lib/lithic/models/aggregate_balance_list_params.rbi +5 -2
- data/rbi/lib/lithic/models/auth_rules/auth_rule.rbi +15 -0
- data/rbi/lib/lithic/models/auth_rules/auth_rule_condition.rbi +54 -2
- data/rbi/lib/lithic/models/auth_rules/v2/backtest_create_params.rbi +7 -2
- data/rbi/lib/lithic/models/auth_rules/v2/backtest_create_response.rbi +4 -2
- data/rbi/lib/lithic/models/auth_rules/v2/backtest_results.rbi +60 -12
- data/rbi/lib/lithic/models/auth_rules/v2_apply_params.rbi +5 -3
- data/rbi/lib/lithic/models/auth_rules/v2_apply_response.rbi +22 -4
- data/rbi/lib/lithic/models/auth_rules/v2_create_params.rbi +7 -0
- data/rbi/lib/lithic/models/auth_rules/v2_create_response.rbi +22 -4
- data/rbi/lib/lithic/models/auth_rules/v2_draft_params.rbi +5 -2
- data/rbi/lib/lithic/models/auth_rules/v2_draft_response.rbi +22 -4
- data/rbi/lib/lithic/models/auth_rules/v2_list_params.rbi +7 -0
- data/rbi/lib/lithic/models/auth_rules/v2_list_response.rbi +22 -4
- data/rbi/lib/lithic/models/auth_rules/v2_promote_response.rbi +22 -4
- data/rbi/lib/lithic/models/auth_rules/v2_retrieve_response.rbi +22 -4
- data/rbi/lib/lithic/models/auth_rules/v2_update_params.rbi +10 -0
- data/rbi/lib/lithic/models/auth_rules/v2_update_response.rbi +22 -4
- data/rbi/lib/lithic/models/auth_rules/velocity_limit_params.rbi +33 -5
- data/rbi/lib/lithic/models/auth_stream_secret.rbi +4 -2
- data/rbi/lib/lithic/models/balance.rbi +14 -0
- data/rbi/lib/lithic/models/balance_list_params.rbi +5 -0
- data/rbi/lib/lithic/models/book_transfer_create_params.rbi +12 -0
- data/rbi/lib/lithic/models/book_transfer_list_params.rbi +14 -0
- data/rbi/lib/lithic/models/book_transfer_response.rbi +41 -2
- data/rbi/lib/lithic/models/book_transfer_reverse_params.rbi +5 -2
- data/rbi/lib/lithic/models/card.rbi +8 -2
- data/rbi/lib/lithic/models/card_convert_physical_params.rbi +18 -3
- data/rbi/lib/lithic/models/card_create_params.rbi +84 -0
- data/rbi/lib/lithic/models/card_embed_params.rbi +7 -2
- data/rbi/lib/lithic/models/card_list_params.rbi +11 -0
- data/rbi/lib/lithic/models/card_program.rbi +8 -0
- data/rbi/lib/lithic/models/card_program_list_params.rbi +11 -2
- data/rbi/lib/lithic/models/card_provision_params.rbi +17 -0
- data/rbi/lib/lithic/models/card_reissue_params.rbi +18 -3
- data/rbi/lib/lithic/models/card_renew_params.rbi +21 -0
- data/rbi/lib/lithic/models/card_search_by_pan_params.rbi +5 -2
- data/rbi/lib/lithic/models/card_spend_limits.rbi +30 -6
- data/rbi/lib/lithic/models/card_update_params.rbi +35 -0
- data/rbi/lib/lithic/models/cards/aggregate_balance_list_params.rbi +7 -2
- data/rbi/lib/lithic/models/cards/aggregate_balance_list_response.rbi +13 -0
- data/rbi/lib/lithic/models/cards/balance_list_params.rbi +9 -2
- data/rbi/lib/lithic/models/cards/balance_list_response.rbi +14 -0
- data/rbi/lib/lithic/models/cards/financial_transaction_list_params.rbi +11 -0
- data/rbi/lib/lithic/models/carrier.rbi +4 -2
- data/rbi/lib/lithic/models/credit_products/prime_rate_create_params.rbi +7 -2
- data/rbi/lib/lithic/models/credit_products/prime_rate_retrieve_params.rbi +7 -2
- data/rbi/lib/lithic/models/credit_products/prime_rate_retrieve_response.rbi +12 -4
- data/rbi/lib/lithic/models/digital_card_art.rbi +8 -3
- data/rbi/lib/lithic/models/digital_card_art_list_params.rbi +11 -2
- data/rbi/lib/lithic/models/dispute.rbi +66 -0
- data/rbi/lib/lithic/models/dispute_create_params.rbi +6 -3
- data/rbi/lib/lithic/models/dispute_evidence.rbi +15 -3
- data/rbi/lib/lithic/models/dispute_initiate_evidence_upload_params.rbi +5 -2
- data/rbi/lib/lithic/models/dispute_list_evidences_params.rbi +10 -3
- data/rbi/lib/lithic/models/dispute_list_params.rbi +11 -0
- data/rbi/lib/lithic/models/dispute_update_params.rbi +5 -3
- data/rbi/lib/lithic/models/document.rbi +27 -3
- data/rbi/lib/lithic/models/event.rbi +39 -2
- data/rbi/lib/lithic/models/event_list_attempts_params.rbi +9 -0
- data/rbi/lib/lithic/models/event_list_params.rbi +11 -0
- data/rbi/lib/lithic/models/event_subscription.rbi +10 -2
- data/rbi/lib/lithic/models/events/subscription_create_params.rbi +12 -2
- data/rbi/lib/lithic/models/events/subscription_list_attempts_params.rbi +9 -0
- data/rbi/lib/lithic/models/events/subscription_list_params.rbi +11 -2
- data/rbi/lib/lithic/models/events/subscription_recover_params.rbi +9 -2
- data/rbi/lib/lithic/models/events/subscription_replay_missing_params.rbi +9 -2
- data/rbi/lib/lithic/models/events/subscription_retrieve_secret_response.rbi +4 -2
- data/rbi/lib/lithic/models/events/subscription_send_simulated_example_params.rbi +5 -2
- data/rbi/lib/lithic/models/events/subscription_update_params.rbi +12 -2
- data/rbi/lib/lithic/models/external_bank_account_create_params.rbi +20 -0
- data/rbi/lib/lithic/models/external_bank_account_create_response.rbi +33 -0
- data/rbi/lib/lithic/models/external_bank_account_list_params.rbi +5 -0
- data/rbi/lib/lithic/models/external_bank_account_list_response.rbi +33 -0
- data/rbi/lib/lithic/models/external_bank_account_retrieve_response.rbi +33 -0
- data/rbi/lib/lithic/models/external_bank_account_retry_micro_deposits_response.rbi +33 -0
- data/rbi/lib/lithic/models/external_bank_account_retry_prenote_response.rbi +33 -0
- data/rbi/lib/lithic/models/external_bank_account_update_params.rbi +9 -0
- data/rbi/lib/lithic/models/external_bank_account_update_response.rbi +33 -0
- data/rbi/lib/lithic/models/external_bank_accounts/micro_deposit_create_response.rbi +33 -0
- data/rbi/lib/lithic/models/external_payment_list_params.rbi +14 -0
- data/rbi/lib/lithic/models/financial_account.rbi +8 -0
- data/rbi/lib/lithic/models/financial_account_list_params.rbi +9 -2
- data/rbi/lib/lithic/models/financial_account_update_status_params.rbi +7 -2
- data/rbi/lib/lithic/models/financial_accounts/balance_list_params.rbi +9 -2
- data/rbi/lib/lithic/models/financial_accounts/balance_list_response.rbi +14 -0
- data/rbi/lib/lithic/models/financial_accounts/credit_configuration_update_params.rbi +2 -0
- data/rbi/lib/lithic/models/financial_accounts/financial_account_credit_config.rbi +5 -0
- data/rbi/lib/lithic/models/financial_accounts/financial_transaction_list_params.rbi +11 -0
- data/rbi/lib/lithic/models/financial_accounts/loan_tape.rbi +94 -13
- data/rbi/lib/lithic/models/financial_accounts/loan_tape_list_params.rbi +10 -3
- data/rbi/lib/lithic/models/financial_accounts/loan_tape_retrieve_params.rbi +5 -2
- data/rbi/lib/lithic/models/financial_accounts/statement.rbi +72 -10
- data/rbi/lib/lithic/models/financial_accounts/statement_list_params.rbi +10 -0
- data/rbi/lib/lithic/models/financial_accounts/statement_retrieve_params.rbi +5 -2
- data/rbi/lib/lithic/models/financial_accounts/statements/line_item_list_params.rbi +7 -3
- data/rbi/lib/lithic/models/financial_accounts/statements/statement_line_items.rbi +10 -0
- data/rbi/lib/lithic/models/financial_transaction.rbi +44 -2
- data/rbi/lib/lithic/models/kyb.rbi +94 -4
- data/rbi/lib/lithic/models/kyb_business_entity.rbi +28 -2
- data/rbi/lib/lithic/models/kyc.rbi +40 -4
- data/rbi/lib/lithic/models/kyc_exempt.rbi +13 -0
- data/rbi/lib/lithic/models/management_operation_list_params.rbi +13 -0
- data/rbi/lib/lithic/models/message_attempt.rbi +10 -3
- data/rbi/lib/lithic/models/non_pci_card.rbi +78 -2
- data/rbi/lib/lithic/models/payment.rbi +57 -2
- data/rbi/lib/lithic/models/payment_create_params.rbi +2 -0
- data/rbi/lib/lithic/models/payment_create_response.rbi +4 -2
- data/rbi/lib/lithic/models/payment_list_params.rbi +9 -0
- data/rbi/lib/lithic/models/payment_retry_response.rbi +4 -2
- data/rbi/lib/lithic/models/payment_simulate_action_params.rbi +9 -2
- data/rbi/lib/lithic/models/payment_simulate_action_response.rbi +8 -2
- data/rbi/lib/lithic/models/payment_simulate_receipt_params.rbi +13 -3
- data/rbi/lib/lithic/models/payment_simulate_receipt_response.rbi +8 -2
- data/rbi/lib/lithic/models/payment_simulate_release_params.rbi +5 -2
- data/rbi/lib/lithic/models/payment_simulate_release_response.rbi +8 -2
- data/rbi/lib/lithic/models/payment_simulate_return_params.rbi +7 -2
- data/rbi/lib/lithic/models/payment_simulate_return_response.rbi +8 -2
- data/rbi/lib/lithic/models/reports/settlement/network_total_list_params.rbi +16 -0
- data/rbi/lib/lithic/models/reports/settlement/network_total_list_response.rbi +26 -2
- data/rbi/lib/lithic/models/reports/settlement/network_total_retrieve_response.rbi +26 -2
- data/rbi/lib/lithic/models/reports/settlement_list_details_params.rbi +11 -2
- data/rbi/lib/lithic/models/required_document.rbi +10 -2
- data/rbi/lib/lithic/models/responder_endpoint_check_status_params.rbi +5 -2
- data/rbi/lib/lithic/models/responder_endpoint_create_params.rbi +7 -2
- data/rbi/lib/lithic/models/responder_endpoint_create_response.rbi +4 -2
- data/rbi/lib/lithic/models/responder_endpoint_delete_params.rbi +5 -2
- data/rbi/lib/lithic/models/responder_endpoint_status.rbi +6 -2
- data/rbi/lib/lithic/models/settlement_detail.rbi +26 -0
- data/rbi/lib/lithic/models/settlement_report.rbi +25 -0
- data/rbi/lib/lithic/models/settlement_summary_details.rbi +11 -0
- data/rbi/lib/lithic/models/shipping_address.rbi +20 -0
- data/rbi/lib/lithic/models/three_ds/authentication_retrieve_response.rbi +165 -19
- data/rbi/lib/lithic/models/three_ds/authentication_simulate_otp_entry_params.rbi +8 -2
- data/rbi/lib/lithic/models/three_ds/authentication_simulate_params.rbi +31 -6
- data/rbi/lib/lithic/models/three_ds/authentication_simulate_response.rbi +5 -2
- data/rbi/lib/lithic/models/three_ds/challenge_response.rbi +9 -2
- data/rbi/lib/lithic/models/three_ds/decisioning_retrieve_secret_response.rbi +4 -2
- data/rbi/lib/lithic/models/tokenization.rbi +27 -2
- data/rbi/lib/lithic/models/tokenization_decisioning_rotate_secret_response.rbi +4 -2
- data/rbi/lib/lithic/models/tokenization_list_params.rbi +11 -0
- data/rbi/lib/lithic/models/tokenization_resend_activation_code_params.rbi +7 -2
- data/rbi/lib/lithic/models/tokenization_secret.rbi +4 -2
- data/rbi/lib/lithic/models/tokenization_simulate_params.rbi +11 -0
- data/rbi/lib/lithic/models/tokenization_update_digital_card_art_params.rbi +8 -2
- data/rbi/lib/lithic/models/transaction.rbi +246 -35
- data/rbi/lib/lithic/models/transaction_list_params.rbi +14 -0
- data/rbi/lib/lithic/models/transaction_simulate_authorization_advice_params.rbi +8 -2
- data/rbi/lib/lithic/models/transaction_simulate_authorization_advice_response.rbi +6 -2
- data/rbi/lib/lithic/models/transaction_simulate_authorization_params.rbi +35 -0
- data/rbi/lib/lithic/models/transaction_simulate_authorization_response.rbi +7 -2
- data/rbi/lib/lithic/models/transaction_simulate_clearing_params.rbi +15 -2
- data/rbi/lib/lithic/models/transaction_simulate_clearing_response.rbi +4 -2
- data/rbi/lib/lithic/models/transaction_simulate_credit_authorization_params.rbi +17 -2
- data/rbi/lib/lithic/models/transaction_simulate_credit_authorization_response.rbi +6 -2
- data/rbi/lib/lithic/models/transaction_simulate_return_params.rbi +9 -2
- data/rbi/lib/lithic/models/transaction_simulate_return_response.rbi +6 -2
- data/rbi/lib/lithic/models/transaction_simulate_return_reversal_params.rbi +5 -2
- data/rbi/lib/lithic/models/transaction_simulate_return_reversal_response.rbi +4 -2
- data/rbi/lib/lithic/models/transaction_simulate_void_params.rbi +14 -2
- data/rbi/lib/lithic/models/transaction_simulate_void_response.rbi +4 -2
- data/rbi/lib/lithic/models/transactions/events/enhanced_data.rbi +57 -16
- data/rbi/lib/lithic/models/transfer.rbi +41 -2
- data/rbi/lib/lithic/models/transfer_create_params.rbi +17 -2
- data/sig/lithic/file_part.rbs +21 -0
- data/sig/lithic/internal/transport/base_client.rbs +9 -3
- data/sig/lithic/internal/type/{io_like.rbs → file_input.rbs} +1 -1
- data/sig/lithic/internal/util.rbs +14 -12
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05aee8aa5e025c482dcce7eda27b3c395985006317087846d579d0ad8d7991e7
|
4
|
+
data.tar.gz: cd3fc85b83558917f6c34dce35268e67593914dc57ef1de4148984cfe9921cd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be54eb3eb00a6277372c104183d09f3d6bb7f4b8e771aaa5061084d9c06722b48eb2452e773176d1ea9ccc53584e9bce4585734d2fb80f5be7832a54909ef474
|
7
|
+
data.tar.gz: 1f5aed27dd5929a0a3066f073d5c544c0844c7ecb17bfb4e9f46c76693fecd7b0deeb3abb8dab3175d574afadc5c14ebf958fc81bede86b2ef69d325dc549fa3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,39 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.1.0-alpha.19 (2025-04-25)
|
4
|
+
|
5
|
+
Full Changelog: [v0.1.0-alpha.18...v0.1.0-alpha.19](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.18...v0.1.0-alpha.19)
|
6
|
+
|
7
|
+
### Bug Fixes
|
8
|
+
|
9
|
+
* make a typo for `FilePart.content` ([4eb5bee](https://github.com/lithic-com/lithic-ruby/commit/4eb5bee30c1bfbc394092b72b338908643010f5a))
|
10
|
+
|
11
|
+
## 0.1.0-alpha.18 (2025-04-25)
|
12
|
+
|
13
|
+
Full Changelog: [v0.1.0-alpha.17...v0.1.0-alpha.18](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.17...v0.1.0-alpha.18)
|
14
|
+
|
15
|
+
### Features
|
16
|
+
|
17
|
+
* support specifying content-type with FilePart class ([0cf245e](https://github.com/lithic-com/lithic-ruby/commit/0cf245eaa7321b8ae3ee08a9c585403cf654f9ca))
|
18
|
+
* support webmock for testing ([56900e6](https://github.com/lithic-com/lithic-ruby/commit/56900e694ecd63ff000e880f2cd6add9e5548e86))
|
19
|
+
|
20
|
+
|
21
|
+
### Bug Fixes
|
22
|
+
|
23
|
+
* ensure gem release is unaffected by renaming ([84a2f71](https://github.com/lithic-com/lithic-ruby/commit/84a2f7191fa58067637c050575de5552aec2cf09))
|
24
|
+
|
25
|
+
|
26
|
+
### Chores
|
27
|
+
|
28
|
+
* broadly detect json family of content-type headers ([2b4f4bc](https://github.com/lithic-com/lithic-ruby/commit/2b4f4bca7f025906e369ed32f4cd71e357cd79a8))
|
29
|
+
* **ci:** add timeout thresholds for CI jobs ([2f4319b](https://github.com/lithic-com/lithic-ruby/commit/2f4319b37459d2899350a1d05aec39a8134ac3e1))
|
30
|
+
* **ci:** only use depot for staging repos ([99e9f7d](https://github.com/lithic-com/lithic-ruby/commit/99e9f7d78c04ab805321dabe41d5431717fc5eb4))
|
31
|
+
* **ci:** run on more branches and use depot runners ([84743d4](https://github.com/lithic-com/lithic-ruby/commit/84743d4c86aeeadc23ef0cb025f77944e9822a4e))
|
32
|
+
* consistently use string in examples, even for enums ([c35c6f4](https://github.com/lithic-com/lithic-ruby/commit/c35c6f45e00d6eed30d43f8b4335c6761f3fe2f5))
|
33
|
+
* **internal:** improve response envelope unwrap functionality ([d2c37aa](https://github.com/lithic-com/lithic-ruby/commit/d2c37aa27246c9379a2400020047cd1c7761f03d))
|
34
|
+
* **internal:** minor type annotation improvements ([964cec1](https://github.com/lithic-com/lithic-ruby/commit/964cec1b7eb9904a6f643dcbcaaff3ae64276032))
|
35
|
+
* show truncated parameter docs in yard ([3d5f4b7](https://github.com/lithic-com/lithic-ruby/commit/3d5f4b7b7fc6d780cb19fe3cddac32306de1aaf2))
|
36
|
+
|
3
37
|
## 0.1.0-alpha.17 (2025-04-21)
|
4
38
|
|
5
39
|
Full Changelog: [v0.1.0-alpha.16...v0.1.0-alpha.17](https://github.com/lithic-com/lithic-ruby/compare/v0.1.0-alpha.16...v0.1.0-alpha.17)
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
|
|
15
15
|
<!-- x-release-please-start-version -->
|
16
16
|
|
17
17
|
```ruby
|
18
|
-
gem "lithic", "~> 0.1.0.pre.alpha.
|
18
|
+
gem "lithic", "~> 0.1.0.pre.alpha.19"
|
19
19
|
```
|
20
20
|
|
21
21
|
<!-- x-release-please-end -->
|
@@ -31,7 +31,7 @@ lithic = Lithic::Client.new(
|
|
31
31
|
environment: "sandbox" # defaults to "production"
|
32
32
|
)
|
33
33
|
|
34
|
-
card = lithic.cards.create(type:
|
34
|
+
card = lithic.cards.create(type: "SINGLE_USE")
|
35
35
|
|
36
36
|
puts(card.token)
|
37
37
|
```
|
@@ -43,7 +43,7 @@ This library is written with [Sorbet type definitions](https://sorbet.org/docs/r
|
|
43
43
|
When using sorbet, it is recommended to use model classes as below. This provides stronger type checking and tooling integration.
|
44
44
|
|
45
45
|
```ruby
|
46
|
-
lithic.cards.create(type:
|
46
|
+
lithic.cards.create(type: "SINGLE_USE")
|
47
47
|
```
|
48
48
|
|
49
49
|
### Pagination
|
@@ -71,7 +71,7 @@ When the library is unable to connect to the API, or if the API returns a non-su
|
|
71
71
|
|
72
72
|
```ruby
|
73
73
|
begin
|
74
|
-
card = lithic.cards.create(type:
|
74
|
+
card = lithic.cards.create(type: "an_incorrect_type")
|
75
75
|
rescue Lithic::Errors::APIError => e
|
76
76
|
puts(e.status) # 400
|
77
77
|
end
|
@@ -139,11 +139,11 @@ In all places where a `BaseModel` type is specified, vanilla Ruby `Hash` can als
|
|
139
139
|
|
140
140
|
```ruby
|
141
141
|
# This has tooling readability, for auto-completion, static analysis, and goto definition with supported language services
|
142
|
-
params = Lithic::Models::CardCreateParams.new(type:
|
142
|
+
params = Lithic::Models::CardCreateParams.new(type: "SINGLE_USE")
|
143
143
|
|
144
144
|
# This also works
|
145
145
|
params = {
|
146
|
-
type:
|
146
|
+
type: "SINGLE_USE"
|
147
147
|
}
|
148
148
|
```
|
149
149
|
|
@@ -203,7 +203,7 @@ end
|
|
203
203
|
It is possible to pass a compatible model / parameter class to a method that expects keyword arguments by using the `**` splat operator.
|
204
204
|
|
205
205
|
```ruby
|
206
|
-
params = Lithic::Models::CardCreateParams.new(type:
|
206
|
+
params = Lithic::Models::CardCreateParams.new(type: "SINGLE_USE")
|
207
207
|
lithic.cards.create(**params)
|
208
208
|
```
|
209
209
|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Lithic
|
4
|
+
class FilePart
|
5
|
+
# @return [Pathname, StringIO, IO, String]
|
6
|
+
attr_reader :content
|
7
|
+
|
8
|
+
# @return [String, nil]
|
9
|
+
attr_reader :content_type
|
10
|
+
|
11
|
+
# @return [String, nil]
|
12
|
+
attr_reader :filename
|
13
|
+
|
14
|
+
# @api private
|
15
|
+
#
|
16
|
+
# @return [String]
|
17
|
+
private def read
|
18
|
+
case content
|
19
|
+
in Pathname
|
20
|
+
content.read(binmode: true)
|
21
|
+
in StringIO
|
22
|
+
content.string
|
23
|
+
in IO
|
24
|
+
content.read
|
25
|
+
in String
|
26
|
+
content
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# @param a [Object]
|
31
|
+
#
|
32
|
+
# @return [String]
|
33
|
+
def to_json(*a) = read.to_json(*a)
|
34
|
+
|
35
|
+
# @param a [Object]
|
36
|
+
#
|
37
|
+
# @return [String]
|
38
|
+
def to_yaml(*a) = read.to_yaml(*a)
|
39
|
+
|
40
|
+
# @param content [Pathname, StringIO, IO, String]
|
41
|
+
# @param filename [String, nil]
|
42
|
+
# @param content_type [String, nil]
|
43
|
+
def initialize(content, filename: nil, content_type: nil)
|
44
|
+
@content = content
|
45
|
+
@filename =
|
46
|
+
case content
|
47
|
+
in Pathname
|
48
|
+
filename.nil? ? content.basename.to_path : File.basename(filename)
|
49
|
+
else
|
50
|
+
filename.nil? ? nil : File.basename(filename)
|
51
|
+
end
|
52
|
+
@content_type = content_type
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -153,7 +153,7 @@ module Lithic
|
|
153
153
|
|
154
154
|
# @api private
|
155
155
|
# @return [Lithic::Internal::Transport::PooledNetRequester]
|
156
|
-
|
156
|
+
attr_reader :requester
|
157
157
|
|
158
158
|
# @api private
|
159
159
|
#
|
@@ -214,11 +214,11 @@ module Lithic
|
|
214
214
|
#
|
215
215
|
# @option req [Object, nil] :body
|
216
216
|
#
|
217
|
-
# @option req [Symbol, nil] :unwrap
|
217
|
+
# @option req [Symbol, Integer, Array<Symbol, Integer>, Proc, nil] :unwrap
|
218
218
|
#
|
219
|
-
# @option req [Class
|
219
|
+
# @option req [Class<Lithic::Internal::Type::BasePage>, nil] :page
|
220
220
|
#
|
221
|
-
# @option req [Class
|
221
|
+
# @option req [Class<Lithic::Internal::Type::BaseStream>, nil] :stream
|
222
222
|
#
|
223
223
|
# @option req [Lithic::Internal::Type::Converter, Class, nil] :model
|
224
224
|
#
|
@@ -415,11 +415,11 @@ module Lithic
|
|
415
415
|
#
|
416
416
|
# @param body [Object, nil]
|
417
417
|
#
|
418
|
-
# @param unwrap [Symbol, nil]
|
418
|
+
# @param unwrap [Symbol, Integer, Array<Symbol, Integer>, Proc, nil]
|
419
419
|
#
|
420
|
-
# @param page [Class
|
420
|
+
# @param page [Class<Lithic::Internal::Type::BasePage>, nil]
|
421
421
|
#
|
422
|
-
# @param stream [Class
|
422
|
+
# @param stream [Class<Lithic::Internal::Type::BaseStream>, nil]
|
423
423
|
#
|
424
424
|
# @param model [Lithic::Internal::Type::Converter, Class, nil]
|
425
425
|
#
|
@@ -389,7 +389,7 @@ module Lithic
|
|
389
389
|
|
390
390
|
# Create a new instance of a model.
|
391
391
|
#
|
392
|
-
# @param data [Hash{Symbol=>Object},
|
392
|
+
# @param data [Hash{Symbol=>Object}, self]
|
393
393
|
def initialize(data = {})
|
394
394
|
case Lithic::Internal::Util.coerce_hash(data)
|
395
395
|
in Hash => coerced
|
@@ -43,7 +43,10 @@ module Lithic
|
|
43
43
|
value.string
|
44
44
|
in Pathname | IO
|
45
45
|
state[:can_retry] = false if value.is_a?(IO)
|
46
|
-
Lithic::
|
46
|
+
Lithic::FilePart.new(value)
|
47
|
+
in Lithic::FilePart
|
48
|
+
state[:can_retry] = false if value.content.is_a?(IO)
|
49
|
+
value
|
47
50
|
else
|
48
51
|
value
|
49
52
|
end
|
@@ -7,8 +7,12 @@ module Lithic
|
|
7
7
|
#
|
8
8
|
# @abstract
|
9
9
|
#
|
10
|
-
# Either `Pathname` or `StringIO
|
11
|
-
|
10
|
+
# Either `Pathname` or `StringIO`, or `IO`, or
|
11
|
+
# `Lithic::Internal::Type::FileInput`.
|
12
|
+
#
|
13
|
+
# Note: when `IO` is used, all retries are disabled, since many IO` streams are
|
14
|
+
# not rewindable.
|
15
|
+
class FileInput
|
12
16
|
extend Lithic::Internal::Type::Converter
|
13
17
|
|
14
18
|
private_class_method :new
|
@@ -20,7 +24,7 @@ module Lithic
|
|
20
24
|
# @return [Boolean]
|
21
25
|
def self.===(other)
|
22
26
|
case other
|
23
|
-
in StringIO |
|
27
|
+
in Pathname | StringIO | IO | String | Lithic::FilePart
|
24
28
|
true
|
25
29
|
else
|
26
30
|
false
|
@@ -32,7 +36,7 @@ module Lithic
|
|
32
36
|
# @param other [Object]
|
33
37
|
#
|
34
38
|
# @return [Boolean]
|
35
|
-
def self.==(other) = other.is_a?(Class) && other <= Lithic::Internal::Type::
|
39
|
+
def self.==(other) = other.is_a?(Class) && other <= Lithic::Internal::Type::FileInput
|
36
40
|
|
37
41
|
class << self
|
38
42
|
# @api private
|
@@ -63,17 +67,28 @@ module Lithic
|
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
|
76
|
-
|
70
|
+
# @api private
|
71
|
+
#
|
72
|
+
# @param value [Pathname, StringIO, IO, String, Object]
|
73
|
+
#
|
74
|
+
# @param state [Hash{Symbol=>Object}] .
|
75
|
+
#
|
76
|
+
# @option state [Boolean] :can_retry
|
77
|
+
#
|
78
|
+
# @return [Pathname, StringIO, IO, String, Object]
|
79
|
+
def dump(value, state:)
|
80
|
+
# rubocop:disable Lint/DuplicateBranch
|
81
|
+
case value
|
82
|
+
in IO
|
83
|
+
state[:can_retry] = false
|
84
|
+
in Lithic::FilePart if value.content.is_a?(IO)
|
85
|
+
state[:can_retry] = false
|
86
|
+
else
|
87
|
+
end
|
88
|
+
# rubocop:enable Lint/DuplicateBranch
|
89
|
+
|
90
|
+
value
|
91
|
+
end
|
77
92
|
end
|
78
93
|
end
|
79
94
|
end
|
data/lib/lithic/internal/util.rb
CHANGED
@@ -175,18 +175,17 @@ module Lithic
|
|
175
175
|
# @api private
|
176
176
|
#
|
177
177
|
# @param data [Hash{Symbol=>Object}, Array<Object>, Object]
|
178
|
-
# @param pick [Symbol, Integer, Array<Symbol, Integer>, nil]
|
179
|
-
# @param sentinel [Object, nil]
|
178
|
+
# @param pick [Symbol, Integer, Array<Symbol, Integer>, Proc, nil]
|
180
179
|
# @param blk [Proc, nil]
|
181
180
|
#
|
182
181
|
# @return [Object, nil]
|
183
|
-
def dig(data, pick,
|
184
|
-
case [data, pick
|
185
|
-
in [_, nil
|
182
|
+
def dig(data, pick, &blk)
|
183
|
+
case [data, pick]
|
184
|
+
in [_, nil]
|
186
185
|
data
|
187
|
-
in [Hash, Symbol
|
188
|
-
|
189
|
-
in [Hash | Array, Array
|
186
|
+
in [Hash, Symbol] | [Array, Integer]
|
187
|
+
data.fetch(pick) { blk&.call }
|
188
|
+
in [Hash | Array, Array]
|
190
189
|
pick.reduce(data) do |acc, key|
|
191
190
|
case acc
|
192
191
|
in Hash if acc.key?(key)
|
@@ -194,11 +193,13 @@ module Lithic
|
|
194
193
|
in Array if key.is_a?(Integer) && key < acc.length
|
195
194
|
acc[key]
|
196
195
|
else
|
197
|
-
return blk
|
196
|
+
return blk&.call
|
198
197
|
end
|
199
198
|
end
|
200
|
-
in _
|
201
|
-
|
199
|
+
in [_, Proc]
|
200
|
+
pick.call(data)
|
201
|
+
else
|
202
|
+
blk&.call
|
202
203
|
end
|
203
204
|
end
|
204
205
|
end
|
@@ -348,27 +349,6 @@ module Lithic
|
|
348
349
|
end
|
349
350
|
end
|
350
351
|
|
351
|
-
# @api private
|
352
|
-
class SerializationAdapter
|
353
|
-
# @return [Pathname, IO]
|
354
|
-
attr_reader :inner
|
355
|
-
|
356
|
-
# @param a [Object]
|
357
|
-
#
|
358
|
-
# @return [String]
|
359
|
-
def to_json(*a) = (inner.is_a?(IO) ? inner.read : inner.read(binmode: true)).to_json(*a)
|
360
|
-
|
361
|
-
# @param a [Object]
|
362
|
-
#
|
363
|
-
# @return [String]
|
364
|
-
def to_yaml(*a) = (inner.is_a?(IO) ? inner.read : inner.read(binmode: true)).to_yaml(*a)
|
365
|
-
|
366
|
-
# @api private
|
367
|
-
#
|
368
|
-
# @param inner [Pathname, IO]
|
369
|
-
def initialize(inner) = @inner = inner
|
370
|
-
end
|
371
|
-
|
372
352
|
# @api private
|
373
353
|
#
|
374
354
|
# An adapter that satisfies the IO interface required by `::IO.copy_stream`
|
@@ -471,46 +451,44 @@ module Lithic
|
|
471
451
|
end
|
472
452
|
end
|
473
453
|
|
454
|
+
# @type [Regexp]
|
455
|
+
JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
|
456
|
+
# @type [Regexp]
|
457
|
+
JSONL_CONTENT = %r{^application/(?:x-)?jsonl}
|
458
|
+
|
474
459
|
class << self
|
475
460
|
# @api private
|
476
461
|
#
|
477
462
|
# @param y [Enumerator::Yielder]
|
478
|
-
# @param boundary [String]
|
479
|
-
# @param key [Symbol, String]
|
480
463
|
# @param val [Object]
|
481
464
|
# @param closing [Array<Proc>]
|
482
|
-
|
483
|
-
|
465
|
+
# @param content_type [String, nil]
|
466
|
+
private def write_multipart_content(y, val:, closing:, content_type: nil)
|
467
|
+
content_type ||= "application/octet-stream"
|
484
468
|
|
485
|
-
y << "--#{boundary}\r\n"
|
486
|
-
y << "Content-Disposition: form-data"
|
487
|
-
unless key.nil?
|
488
|
-
name = ERB::Util.url_encode(key.to_s)
|
489
|
-
y << "; name=\"#{name}\""
|
490
|
-
end
|
491
|
-
case val
|
492
|
-
in Pathname | IO
|
493
|
-
filename = ERB::Util.url_encode(File.basename(val.to_path))
|
494
|
-
y << "; filename=\"#{filename}\""
|
495
|
-
else
|
496
|
-
end
|
497
|
-
y << "\r\n"
|
498
469
|
case val
|
470
|
+
in Lithic::FilePart
|
471
|
+
return write_multipart_content(
|
472
|
+
y,
|
473
|
+
val: val.content,
|
474
|
+
closing: closing,
|
475
|
+
content_type: val.content_type
|
476
|
+
)
|
499
477
|
in Pathname
|
500
|
-
y << "Content-Type:
|
478
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
501
479
|
io = val.open(binmode: true)
|
502
480
|
closing << io.method(:close)
|
503
481
|
IO.copy_stream(io, y)
|
504
482
|
in IO
|
505
|
-
y << "Content-Type:
|
483
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
506
484
|
IO.copy_stream(val, y)
|
507
485
|
in StringIO
|
508
|
-
y << "Content-Type:
|
486
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
509
487
|
y << val.string
|
510
488
|
in String
|
511
|
-
y << "Content-Type:
|
489
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
512
490
|
y << val.to_s
|
513
|
-
in
|
491
|
+
in -> { primitive?(_1) }
|
514
492
|
y << "Content-Type: text/plain\r\n\r\n"
|
515
493
|
y << val.to_s
|
516
494
|
else
|
@@ -520,6 +498,36 @@ module Lithic
|
|
520
498
|
y << "\r\n"
|
521
499
|
end
|
522
500
|
|
501
|
+
# @api private
|
502
|
+
#
|
503
|
+
# @param y [Enumerator::Yielder]
|
504
|
+
# @param boundary [String]
|
505
|
+
# @param key [Symbol, String]
|
506
|
+
# @param val [Object]
|
507
|
+
# @param closing [Array<Proc>]
|
508
|
+
private def write_multipart_chunk(y, boundary:, key:, val:, closing:)
|
509
|
+
y << "--#{boundary}\r\n"
|
510
|
+
y << "Content-Disposition: form-data"
|
511
|
+
|
512
|
+
unless key.nil?
|
513
|
+
name = ERB::Util.url_encode(key.to_s)
|
514
|
+
y << "; name=\"#{name}\""
|
515
|
+
end
|
516
|
+
|
517
|
+
case val
|
518
|
+
in Lithic::FilePart unless val.filename.nil?
|
519
|
+
filename = ERB::Util.url_encode(val.filename)
|
520
|
+
y << "; filename=\"#{filename}\""
|
521
|
+
in Pathname | IO
|
522
|
+
filename = ERB::Util.url_encode(File.basename(val.to_path))
|
523
|
+
y << "; filename=\"#{filename}\""
|
524
|
+
else
|
525
|
+
end
|
526
|
+
y << "\r\n"
|
527
|
+
|
528
|
+
write_multipart_content(y, val: val, closing: closing)
|
529
|
+
end
|
530
|
+
|
523
531
|
# @api private
|
524
532
|
#
|
525
533
|
# @param body [Object]
|
@@ -560,14 +568,12 @@ module Lithic
|
|
560
568
|
# @return [Object]
|
561
569
|
def encode_content(headers, body)
|
562
570
|
content_type = headers["content-type"]
|
563
|
-
body = body.inner if body.is_a?(Lithic::Internal::Util::SerializationAdapter)
|
564
|
-
|
565
571
|
case [content_type, body]
|
566
|
-
in [
|
572
|
+
in [Lithic::Internal::Util::JSON_CONTENT, Hash | Array | -> { primitive?(_1) }]
|
567
573
|
[headers, JSON.fast_generate(body)]
|
568
|
-
in [
|
574
|
+
in [Lithic::Internal::Util::JSONL_CONTENT, Enumerable] unless body.is_a?(Lithic::Internal::Type::FileInput)
|
569
575
|
[headers, body.lazy.map { JSON.fast_generate(_1) }]
|
570
|
-
in [%r{^multipart/form-data}, Hash |
|
576
|
+
in [%r{^multipart/form-data}, Hash | Lithic::Internal::Type::FileInput]
|
571
577
|
boundary, strio = encode_multipart_streaming(body)
|
572
578
|
headers = {**headers, "content-type" => "#{content_type}; boundary=#{boundary}"}
|
573
579
|
[headers, strio]
|
@@ -575,6 +581,8 @@ module Lithic
|
|
575
581
|
[headers, body.to_s]
|
576
582
|
in [_, StringIO]
|
577
583
|
[headers, body.string]
|
584
|
+
in [_, Lithic::FilePart]
|
585
|
+
[headers, body.content]
|
578
586
|
else
|
579
587
|
[headers, body]
|
580
588
|
end
|
@@ -611,7 +619,7 @@ module Lithic
|
|
611
619
|
# @return [Object]
|
612
620
|
def decode_content(headers, stream:, suppress_error: false)
|
613
621
|
case (content_type = headers["content-type"])
|
614
|
-
in
|
622
|
+
in Lithic::Internal::Util::JSON_CONTENT
|
615
623
|
json = stream.to_a.join
|
616
624
|
begin
|
617
625
|
JSON.parse(json, symbolize_names: true)
|
@@ -619,7 +627,7 @@ module Lithic
|
|
619
627
|
raise e unless suppress_error
|
620
628
|
json
|
621
629
|
end
|
622
|
-
in
|
630
|
+
in Lithic::Internal::Util::JSONL_CONTENT
|
623
631
|
lines = decode_lines(stream)
|
624
632
|
chain_fused(lines) do |y|
|
625
633
|
lines.each { y << JSON.parse(_1, symbolize_names: true) }
|