stripe 10.4.0.pre.beta.1 → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +46 -246
 - data/OPENAPI_VERSION +1 -1
 - data/README.md +0 -11
 - data/VERSION +1 -1
 - data/lib/stripe/api_operations/request.rb +1 -2
 - data/lib/stripe/api_operations/singleton_save.rb +86 -0
 - data/lib/stripe/api_version.rb +0 -1
 - data/lib/stripe/object_types.rb +0 -20
 - data/lib/stripe/resources/file.rb +1 -1
 - data/lib/stripe/resources/financial_connections/account.rb +0 -3
 - data/lib/stripe/resources/invoice.rb +0 -21
 - data/lib/stripe/resources/quote.rb +0 -94
 - data/lib/stripe/resources/subscription_schedule.rb +0 -18
 - data/lib/stripe/resources/tax/settings.rb +1 -1
 - data/lib/stripe/resources/terminal/reader.rb +0 -54
 - data/lib/stripe/resources.rb +0 -19
 - data/lib/stripe/stripe_client.rb +28 -62
 - data/lib/stripe/stripe_configuration.rb +1 -2
 - data/lib/stripe/util.rb +1 -8
 - data/lib/stripe/version.rb +1 -1
 - data/lib/stripe.rb +1 -46
 - metadata +5 -24
 - data/lib/stripe/request_signing_authenticator.rb +0 -79
 - data/lib/stripe/resources/account_notice.rb +0 -14
 - data/lib/stripe/resources/capital/financing_offer.rb +0 -32
 - data/lib/stripe/resources/capital/financing_summary.rb +0 -12
 - data/lib/stripe/resources/capital/financing_transaction.rb +0 -13
 - data/lib/stripe/resources/confirmation_token.rb +0 -11
 - data/lib/stripe/resources/customer_session.rb +0 -12
 - data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -13
 - data/lib/stripe/resources/gift_cards/card.rb +0 -25
 - data/lib/stripe/resources/gift_cards/transaction.rb +0 -56
 - data/lib/stripe/resources/invoice_payment.rb +0 -11
 - data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -69
 - data/lib/stripe/resources/issuing/personalization_design.rb +0 -77
 - data/lib/stripe/resources/issuing/physical_bundle.rb +0 -13
 - data/lib/stripe/resources/margin.rb +0 -14
 - data/lib/stripe/resources/order.rb +0 -89
 - data/lib/stripe/resources/quote_phase.rb +0 -29
 - data/lib/stripe/resources/quote_preview_invoice.rb +0 -42
 - data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -10
 - data/lib/stripe/resources/tax/form.rb +0 -39
 
    
        data/lib/stripe/stripe_client.rb
    CHANGED
    
    | 
         @@ -209,10 +209,9 @@ module Stripe 
     | 
|
| 
       209 
209 
     | 
    
         
             
                end
         
     | 
| 
       210 
210 
     | 
    
         | 
| 
       211 
211 
     | 
    
         
             
                def execute_request(method, path,
         
     | 
| 
       212 
     | 
    
         
            -
                                    api_base: nil, api_key: nil,
         
     | 
| 
       213 
     | 
    
         
            -
                                    headers: {}, params: {}, api_mode: nil, usage: [])
         
     | 
| 
      
 212 
     | 
    
         
            +
                                    api_base: nil, api_key: nil, headers: {}, params: {}, usage: [])
         
     | 
| 
       214 
213 
     | 
    
         
             
                  http_resp, api_key = execute_request_internal(
         
     | 
| 
       215 
     | 
    
         
            -
                    method, path, api_base, api_key, headers, params,  
     | 
| 
      
 214 
     | 
    
         
            +
                    method, path, api_base, api_key, headers, params, usage
         
     | 
| 
       216 
215 
     | 
    
         
             
                  )
         
     | 
| 
       217 
216 
     | 
    
         | 
| 
       218 
217 
     | 
    
         
             
                  begin
         
     | 
| 
         @@ -243,7 +242,6 @@ module Stripe 
     | 
|
| 
       243 
242 
     | 
    
         
             
                def execute_request_stream(method, path,
         
     | 
| 
       244 
243 
     | 
    
         
             
                                           api_base: nil, api_key: nil, usage: [],
         
     | 
| 
       245 
244 
     | 
    
         
             
                                           headers: {}, params: {},
         
     | 
| 
       246 
     | 
    
         
            -
                                           api_mode: nil,
         
     | 
| 
       247 
245 
     | 
    
         
             
                                           &read_body_chunk_block)
         
     | 
| 
       248 
246 
     | 
    
         
             
                  unless block_given?
         
     | 
| 
       249 
247 
     | 
    
         
             
                    raise ArgumentError,
         
     | 
| 
         @@ -251,8 +249,7 @@ module Stripe 
     | 
|
| 
       251 
249 
     | 
    
         
             
                  end
         
     | 
| 
       252 
250 
     | 
    
         | 
| 
       253 
251 
     | 
    
         
             
                  http_resp, api_key = execute_request_internal(
         
     | 
| 
       254 
     | 
    
         
            -
                    method, path, api_base, api_key,
         
     | 
| 
       255 
     | 
    
         
            -
                    headers, params, api_mode, usage, &read_body_chunk_block
         
     | 
| 
      
 252 
     | 
    
         
            +
                    method, path, api_base, api_key, headers, params, usage, &read_body_chunk_block
         
     | 
| 
       256 
253 
     | 
    
         
             
                  )
         
     | 
| 
       257 
254 
     | 
    
         | 
| 
       258 
255 
     | 
    
         
             
                  # When the read_body_chunk_block is given, we no longer have access to the
         
     | 
| 
         @@ -431,8 +428,8 @@ module Stripe 
     | 
|
| 
       431 
428 
     | 
    
         
             
                end
         
     | 
| 
       432 
429 
     | 
    
         | 
| 
       433 
430 
     | 
    
         
             
                private def execute_request_internal(method, path,
         
     | 
| 
       434 
     | 
    
         
            -
                                                     api_base, api_key, headers, params,
         
     | 
| 
       435 
     | 
    
         
            -
                                                      
     | 
| 
      
 431 
     | 
    
         
            +
                                                     api_base, api_key, headers, params, usage,
         
     | 
| 
      
 432 
     | 
    
         
            +
                                                     &read_body_chunk_block)
         
     | 
| 
       436 
433 
     | 
    
         
             
                  raise ArgumentError, "method should be a symbol" \
         
     | 
| 
       437 
434 
     | 
    
         
             
                  unless method.is_a?(Symbol)
         
     | 
| 
       438 
435 
     | 
    
         
             
                  raise ArgumentError, "path should be a string" \
         
     | 
| 
         @@ -440,10 +437,9 @@ module Stripe 
     | 
|
| 
       440 
437 
     | 
    
         | 
| 
       441 
438 
     | 
    
         
             
                  api_base ||= config.api_base
         
     | 
| 
       442 
439 
     | 
    
         
             
                  api_key ||= config.api_key
         
     | 
| 
       443 
     | 
    
         
            -
                  authenticator ||= config.authenticator
         
     | 
| 
       444 
440 
     | 
    
         
             
                  params = Util.objects_to_ids(params)
         
     | 
| 
       445 
441 
     | 
    
         | 
| 
       446 
     | 
    
         
            -
                   
     | 
| 
      
 442 
     | 
    
         
            +
                  check_api_key!(api_key)
         
     | 
| 
       447 
443 
     | 
    
         | 
| 
       448 
444 
     | 
    
         
             
                  body_params = nil
         
     | 
| 
       449 
445 
     | 
    
         
             
                  query_params = nil
         
     | 
| 
         @@ -456,9 +452,8 @@ module Stripe 
     | 
|
| 
       456 
452 
     | 
    
         | 
| 
       457 
453 
     | 
    
         
             
                  query_params, path = merge_query_params(query_params, path)
         
     | 
| 
       458 
454 
     | 
    
         | 
| 
       459 
     | 
    
         
            -
                  headers = request_headers(api_key, method 
     | 
| 
      
 455 
     | 
    
         
            +
                  headers = request_headers(api_key, method)
         
     | 
| 
       460 
456 
     | 
    
         
             
                            .update(Util.normalize_headers(headers))
         
     | 
| 
       461 
     | 
    
         
            -
             
     | 
| 
       462 
457 
     | 
    
         
             
                  url = api_url(path, api_base)
         
     | 
| 
       463 
458 
     | 
    
         | 
| 
       464 
459 
     | 
    
         
             
                  # Merge given query parameters with any already encoded in the path.
         
     | 
| 
         @@ -469,16 +464,13 @@ module Stripe 
     | 
|
| 
       469 
464 
     | 
    
         
             
                  # a log-friendly variant of the encoded form. File objects are displayed
         
     | 
| 
       470 
465 
     | 
    
         
             
                  # as such instead of as their file contents.
         
     | 
| 
       471 
466 
     | 
    
         
             
                  body, body_log =
         
     | 
| 
       472 
     | 
    
         
            -
                    body_params ? encode_body(body_params, headers 
     | 
| 
       473 
     | 
    
         
            -
             
     | 
| 
       474 
     | 
    
         
            -
                  authenticator.authenticate(method, headers, body) unless api_key
         
     | 
| 
      
 467 
     | 
    
         
            +
                    body_params ? encode_body(body_params, headers) : [nil, nil]
         
     | 
| 
       475 
468 
     | 
    
         | 
| 
       476 
469 
     | 
    
         
             
                  # stores information on the request we're about to make so that we don't
         
     | 
| 
       477 
470 
     | 
    
         
             
                  # have to pass as many parameters around for logging.
         
     | 
| 
       478 
471 
     | 
    
         
             
                  context = RequestLogContext.new
         
     | 
| 
       479 
472 
     | 
    
         
             
                  context.account         = headers["Stripe-Account"]
         
     | 
| 
       480 
473 
     | 
    
         
             
                  context.api_key         = api_key
         
     | 
| 
       481 
     | 
    
         
            -
                  context.authenticator   = authenticator
         
     | 
| 
       482 
474 
     | 
    
         
             
                  context.api_version     = headers["Stripe-Version"]
         
     | 
| 
       483 
475 
     | 
    
         
             
                  context.body            = body_log
         
     | 
| 
       484 
476 
     | 
    
         
             
                  context.idempotency_key = headers["Idempotency-Key"]
         
     | 
| 
         @@ -515,16 +507,8 @@ module Stripe 
     | 
|
| 
       515 
507 
     | 
    
         
             
                  (api_base || config.api_base) + url
         
     | 
| 
       516 
508 
     | 
    
         
             
                end
         
     | 
| 
       517 
509 
     | 
    
         | 
| 
       518 
     | 
    
         
            -
                private def  
     | 
| 
       519 
     | 
    
         
            -
                   
     | 
| 
       520 
     | 
    
         
            -
                    raise AuthenticationError, "Can't specify both API key " \
         
     | 
| 
       521 
     | 
    
         
            -
                                               "and authenticator. Either set your API key" \
         
     | 
| 
       522 
     | 
    
         
            -
                                               'using "Stripe.api_key = <API-KEY>", or set your authenticator ' \
         
     | 
| 
       523 
     | 
    
         
            -
                                               'using "Stripe.authenticator = <AUTHENTICATOR>"' \
         
     | 
| 
       524 
     | 
    
         
            -
                  end
         
     | 
| 
       525 
     | 
    
         
            -
             
     | 
| 
       526 
     | 
    
         
            -
                  unless api_key || authenticator
         
     | 
| 
       527 
     | 
    
         
            -
                    # Default to missing API key error message for general users.
         
     | 
| 
      
 510 
     | 
    
         
            +
                private def check_api_key!(api_key)
         
     | 
| 
      
 511 
     | 
    
         
            +
                  unless api_key
         
     | 
| 
       528 
512 
     | 
    
         
             
                    raise AuthenticationError, "No API key provided. " \
         
     | 
| 
       529 
513 
     | 
    
         
             
                                               'Set your API key using "Stripe.api_key = <API-KEY>". ' \
         
     | 
| 
       530 
514 
     | 
    
         
             
                                               "You can generate API keys from the Stripe web interface. " \
         
     | 
| 
         @@ -543,7 +527,7 @@ module Stripe 
     | 
|
| 
       543 
527 
     | 
    
         
             
                # Encodes a set of body parameters using multipart if `Content-Type` is set
         
     | 
| 
       544 
528 
     | 
    
         
             
                # for that, or standard form-encoding otherwise. Returns the encoded body
         
     | 
| 
       545 
529 
     | 
    
         
             
                # and a version of the encoded body that's safe to be logged.
         
     | 
| 
       546 
     | 
    
         
            -
                private def encode_body(body_params, headers 
     | 
| 
      
 530 
     | 
    
         
            +
                private def encode_body(body_params, headers)
         
     | 
| 
       547 
531 
     | 
    
         
             
                  body = nil
         
     | 
| 
       548 
532 
     | 
    
         
             
                  flattened_params = Util.flatten_params(body_params)
         
     | 
| 
       549 
533 
     | 
    
         | 
| 
         @@ -559,22 +543,15 @@ module Stripe 
     | 
|
| 
       559 
543 
     | 
    
         
             
                    flattened_params =
         
     | 
| 
       560 
544 
     | 
    
         
             
                      flattened_params.map { |k, v| [k, v.is_a?(String) ? v : v.to_s] }.to_h
         
     | 
| 
       561 
545 
     | 
    
         | 
| 
       562 
     | 
    
         
            -
                  elsif api_mode == :preview
         
     | 
| 
       563 
     | 
    
         
            -
                    body = JSON.generate(body_params)
         
     | 
| 
       564 
     | 
    
         
            -
                    headers["Content-Type"] = "application/json"
         
     | 
| 
       565 
546 
     | 
    
         
             
                  else
         
     | 
| 
       566 
547 
     | 
    
         
             
                    body = Util.encode_parameters(body_params)
         
     | 
| 
       567 
548 
     | 
    
         
             
                  end
         
     | 
| 
       568 
549 
     | 
    
         | 
| 
       569 
     | 
    
         
            -
                   
     | 
| 
       570 
     | 
    
         
            -
             
     | 
| 
       571 
     | 
    
         
            -
             
     | 
| 
       572 
     | 
    
         
            -
             
     | 
| 
       573 
     | 
    
         
            -
             
     | 
| 
       574 
     | 
    
         
            -
                               # forms of certain characters introduce a lot of visual noise and it's
         
     | 
| 
       575 
     | 
    
         
            -
                               # nice to have a clearer format for logs.
         
     | 
| 
       576 
     | 
    
         
            -
                               flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
         
     | 
| 
       577 
     | 
    
         
            -
                             end
         
     | 
| 
      
 550 
     | 
    
         
            +
                  # We don't use `Util.encode_parameters` partly as an optimization (to not
         
     | 
| 
      
 551 
     | 
    
         
            +
                  # redo work we've already done), and partly because the encoded forms of
         
     | 
| 
      
 552 
     | 
    
         
            +
                  # certain characters introduce a lot of visual noise and it's nice to
         
     | 
| 
      
 553 
     | 
    
         
            +
                  # have a clearer format for logs.
         
     | 
| 
      
 554 
     | 
    
         
            +
                  body_log = flattened_params.map { |k, v| "#{k}=#{v}" }.join("&")
         
     | 
| 
       578 
555 
     | 
    
         | 
| 
       579 
556 
     | 
    
         
             
                  [body, body_log]
         
     | 
| 
       580 
557 
     | 
    
         
             
                end
         
     | 
| 
         @@ -761,11 +738,10 @@ module Stripe 
     | 
|
| 
       761 
738 
     | 
    
         
             
                end
         
     | 
| 
       762 
739 
     | 
    
         | 
| 
       763 
740 
     | 
    
         
             
                private def specific_api_error(resp, error_data, context)
         
     | 
| 
       764 
     | 
    
         
            -
                  message = error_data[:message]
         
     | 
| 
       765 
741 
     | 
    
         
             
                  Util.log_error("Stripe API error",
         
     | 
| 
       766 
742 
     | 
    
         
             
                                 status: resp.http_status,
         
     | 
| 
       767 
743 
     | 
    
         
             
                                 error_code: error_data[:code],
         
     | 
| 
       768 
     | 
    
         
            -
                                 error_message: message,
         
     | 
| 
      
 744 
     | 
    
         
            +
                                 error_message: error_data[:message],
         
     | 
| 
       769 
745 
     | 
    
         
             
                                 error_param: error_data[:param],
         
     | 
| 
       770 
746 
     | 
    
         
             
                                 error_type: error_data[:type],
         
     | 
| 
       771 
747 
     | 
    
         
             
                                 idempotency_key: context.idempotency_key,
         
     | 
| 
         @@ -786,26 +762,26 @@ module Stripe 
     | 
|
| 
       786 
762 
     | 
    
         
             
                  when 400, 404
         
     | 
| 
       787 
763 
     | 
    
         
             
                    case error_data[:type]
         
     | 
| 
       788 
764 
     | 
    
         
             
                    when "idempotency_error"
         
     | 
| 
       789 
     | 
    
         
            -
                      IdempotencyError.new(message, **opts)
         
     | 
| 
      
 765 
     | 
    
         
            +
                      IdempotencyError.new(error_data[:message], **opts)
         
     | 
| 
       790 
766 
     | 
    
         
             
                    else
         
     | 
| 
       791 
767 
     | 
    
         
             
                      InvalidRequestError.new(
         
     | 
| 
       792 
     | 
    
         
            -
                        message, error_data[:param],
         
     | 
| 
      
 768 
     | 
    
         
            +
                        error_data[:message], error_data[:param],
         
     | 
| 
       793 
769 
     | 
    
         
             
                        **opts
         
     | 
| 
       794 
770 
     | 
    
         
             
                      )
         
     | 
| 
       795 
771 
     | 
    
         
             
                    end
         
     | 
| 
       796 
772 
     | 
    
         
             
                  when 401
         
     | 
| 
       797 
     | 
    
         
            -
                    AuthenticationError.new(message, **opts)
         
     | 
| 
      
 773 
     | 
    
         
            +
                    AuthenticationError.new(error_data[:message], **opts)
         
     | 
| 
       798 
774 
     | 
    
         
             
                  when 402
         
     | 
| 
       799 
775 
     | 
    
         
             
                    CardError.new(
         
     | 
| 
       800 
     | 
    
         
            -
                      message, error_data[:param],
         
     | 
| 
      
 776 
     | 
    
         
            +
                      error_data[:message], error_data[:param],
         
     | 
| 
       801 
777 
     | 
    
         
             
                      **opts
         
     | 
| 
       802 
778 
     | 
    
         
             
                    )
         
     | 
| 
       803 
779 
     | 
    
         
             
                  when 403
         
     | 
| 
       804 
     | 
    
         
            -
                    PermissionError.new(message, **opts)
         
     | 
| 
      
 780 
     | 
    
         
            +
                    PermissionError.new(error_data[:message], **opts)
         
     | 
| 
       805 
781 
     | 
    
         
             
                  when 429
         
     | 
| 
       806 
     | 
    
         
            -
                    RateLimitError.new(message, **opts)
         
     | 
| 
      
 782 
     | 
    
         
            +
                    RateLimitError.new(error_data[:message], **opts)
         
     | 
| 
       807 
783 
     | 
    
         
             
                  else
         
     | 
| 
       808 
     | 
    
         
            -
                    APIError.new(message, **opts)
         
     | 
| 
      
 784 
     | 
    
         
            +
                    APIError.new(error_data[:message], **opts)
         
     | 
| 
       809 
785 
     | 
    
         
             
                  end
         
     | 
| 
       810 
786 
     | 
    
         
             
                end
         
     | 
| 
       811 
787 
     | 
    
         | 
| 
         @@ -873,20 +849,16 @@ module Stripe 
     | 
|
| 
       873 
849 
     | 
    
         
             
                        message + "\n\n(Network error: #{error.message})"
         
     | 
| 
       874 
850 
     | 
    
         
             
                end
         
     | 
| 
       875 
851 
     | 
    
         | 
| 
       876 
     | 
    
         
            -
                private def request_headers(api_key, method 
     | 
| 
      
 852 
     | 
    
         
            +
                private def request_headers(api_key, method)
         
     | 
| 
       877 
853 
     | 
    
         
             
                  user_agent = "Stripe/v1 RubyBindings/#{Stripe::VERSION}"
         
     | 
| 
       878 
854 
     | 
    
         
             
                  user_agent += " " + format_app_info(Stripe.app_info) unless Stripe.app_info.nil?
         
     | 
| 
       879 
855 
     | 
    
         | 
| 
       880 
856 
     | 
    
         
             
                  headers = {
         
     | 
| 
       881 
857 
     | 
    
         
             
                    "User-Agent" => user_agent,
         
     | 
| 
       882 
858 
     | 
    
         
             
                    "Authorization" => "Bearer #{api_key}",
         
     | 
| 
      
 859 
     | 
    
         
            +
                    "Content-Type" => "application/x-www-form-urlencoded",
         
     | 
| 
       883 
860 
     | 
    
         
             
                  }
         
     | 
| 
       884 
861 
     | 
    
         | 
| 
       885 
     | 
    
         
            -
                  if api_mode != :preview
         
     | 
| 
       886 
     | 
    
         
            -
                    # TODO: (major) don't set Content-Type if method is not post
         
     | 
| 
       887 
     | 
    
         
            -
                    headers["Content-Type"] = "application/x-www-form-urlencoded"
         
     | 
| 
       888 
     | 
    
         
            -
                  end
         
     | 
| 
       889 
     | 
    
         
            -
             
     | 
| 
       890 
862 
     | 
    
         
             
                  if config.enable_telemetry? && !@last_request_metrics.nil?
         
     | 
| 
       891 
863 
     | 
    
         
             
                    headers["X-Stripe-Client-Telemetry"] = JSON.generate(
         
     | 
| 
       892 
864 
     | 
    
         
             
                      last_request_metrics: @last_request_metrics.payload
         
     | 
| 
         @@ -899,12 +871,7 @@ module Stripe 
     | 
|
| 
       899 
871 
     | 
    
         
             
                    headers["Idempotency-Key"] ||= SecureRandom.uuid
         
     | 
| 
       900 
872 
     | 
    
         
             
                  end
         
     | 
| 
       901 
873 
     | 
    
         | 
| 
       902 
     | 
    
         
            -
                   
     | 
| 
       903 
     | 
    
         
            -
                    headers["Stripe-Version"] = ApiVersion::PREVIEW
         
     | 
| 
       904 
     | 
    
         
            -
                  elsif config.api_version
         
     | 
| 
       905 
     | 
    
         
            -
                    headers["Stripe-Version"] = config.api_version
         
     | 
| 
       906 
     | 
    
         
            -
                  end
         
     | 
| 
       907 
     | 
    
         
            -
             
     | 
| 
      
 874 
     | 
    
         
            +
                  headers["Stripe-Version"] = config.api_version if config.api_version
         
     | 
| 
       908 
875 
     | 
    
         
             
                  headers["Stripe-Account"] = config.stripe_account if config.stripe_account
         
     | 
| 
       909 
876 
     | 
    
         | 
| 
       910 
877 
     | 
    
         
             
                  user_agent = @system_profiler.user_agent
         
     | 
| 
         @@ -987,8 +954,7 @@ module Stripe 
     | 
|
| 
       987 
954 
     | 
    
         
             
                # that we can log certain information. It's useful because it means that we
         
     | 
| 
       988 
955 
     | 
    
         
             
                # don't have to pass around as many parameters.
         
     | 
| 
       989 
956 
     | 
    
         
             
                class RequestLogContext
         
     | 
| 
       990 
     | 
    
         
            -
                  attr_accessor :body, :account, :api_key, : 
     | 
| 
       991 
     | 
    
         
            -
                                :request_id
         
     | 
| 
      
 957 
     | 
    
         
            +
                  attr_accessor :body, :account, :api_key, :api_version, :idempotency_key, :method, :path, :query, :request_id
         
     | 
| 
       992 
958 
     | 
    
         | 
| 
       993 
959 
     | 
    
         
             
                  # The idea with this method is that we might want to update some of
         
     | 
| 
       994 
960 
     | 
    
         
             
                  # context information because a response that we've received from the API
         
     | 
| 
         @@ -25,7 +25,7 @@ module Stripe 
     | 
|
| 
       25 
25 
     | 
    
         
             
              # If `.logger` is set, the value of `.log_level` is ignored. The decision on
         
     | 
| 
       26 
26 
     | 
    
         
             
              # what levels to print is entirely deferred to the logger.
         
     | 
| 
       27 
27 
     | 
    
         
             
              class StripeConfiguration
         
     | 
| 
       28 
     | 
    
         
            -
                attr_accessor :api_key, :api_version, : 
     | 
| 
      
 28 
     | 
    
         
            +
                attr_accessor :api_key, :api_version, :client_id, :enable_telemetry, :logger, :stripe_account
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                attr_reader :api_base, :uploads_base, :connect_base, :ca_bundle_path, :log_level, :initial_network_retry_delay,
         
     | 
| 
       31 
31 
     | 
    
         
             
                            # rubocop:todo Layout/LineLength
         
     | 
| 
         @@ -50,7 +50,6 @@ module Stripe 
     | 
|
| 
       50 
50 
     | 
    
         | 
| 
       51 
51 
     | 
    
         
             
                def initialize
         
     | 
| 
       52 
52 
     | 
    
         
             
                  @api_version = ApiVersion::CURRENT
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
53 
     | 
    
         
             
                  @ca_bundle_path = Stripe::DEFAULT_CA_BUNDLE_PATH
         
     | 
| 
       55 
54 
     | 
    
         
             
                  @enable_telemetry = true
         
     | 
| 
       56 
55 
     | 
    
         
             
                  @verify_ssl_certs = true
         
     | 
    
        data/lib/stripe/util.rb
    CHANGED
    
    | 
         @@ -7,7 +7,6 @@ module Stripe 
     | 
|
| 
       7 
7 
     | 
    
         
             
                # Options that a user is allowed to specify.
         
     | 
| 
       8 
8 
     | 
    
         
             
                OPTS_USER_SPECIFIED = Set[
         
     | 
| 
       9 
9 
     | 
    
         
             
                  :api_key,
         
     | 
| 
       10 
     | 
    
         
            -
                  :authenticator,
         
     | 
| 
       11 
10 
     | 
    
         
             
                  :idempotency_key,
         
     | 
| 
       12 
11 
     | 
    
         
             
                  :stripe_account,
         
     | 
| 
       13 
12 
     | 
    
         
             
                  :stripe_version
         
     | 
| 
         @@ -280,13 +279,7 @@ module Stripe 
     | 
|
| 
       280 
279 
     | 
    
         
             
                  when String
         
     | 
| 
       281 
280 
     | 
    
         
             
                    { api_key: opts }
         
     | 
| 
       282 
281 
     | 
    
         
             
                  when Hash
         
     | 
| 
       283 
     | 
    
         
            -
                     
     | 
| 
       284 
     | 
    
         
            -
                    # no need to check the api_key per request.
         
     | 
| 
       285 
     | 
    
         
            -
                    if !(opts.key?(:client) &&
         
     | 
| 
       286 
     | 
    
         
            -
                       opts.fetch(:client).config.authenticator) &&
         
     | 
| 
       287 
     | 
    
         
            -
                       opts.key?(:api_key)
         
     | 
| 
       288 
     | 
    
         
            -
                      check_api_key!(opts.fetch(:api_key))
         
     | 
| 
       289 
     | 
    
         
            -
                    end
         
     | 
| 
      
 282 
     | 
    
         
            +
                    check_api_key!(opts.fetch(:api_key)) if opts.key?(:api_key)
         
     | 
| 
       290 
283 
     | 
    
         
             
                    # Explicitly use dup here instead of clone to avoid preserving freeze
         
     | 
| 
       291 
284 
     | 
    
         
             
                    # state on input params.
         
     | 
| 
       292 
285 
     | 
    
         
             
                    opts.dup
         
     | 
    
        data/lib/stripe/version.rb
    CHANGED
    
    
    
        data/lib/stripe.rb
    CHANGED
    
    | 
         @@ -13,7 +13,6 @@ require "set" 
     | 
|
| 
       13 
13 
     | 
    
         
             
            require "socket"
         
     | 
| 
       14 
14 
     | 
    
         
             
            require "uri"
         
     | 
| 
       15 
15 
     | 
    
         
             
            require "forwardable"
         
     | 
| 
       16 
     | 
    
         
            -
            require "base64"
         
     | 
| 
       17 
16 
     | 
    
         | 
| 
       18 
17 
     | 
    
         
             
            # Version
         
     | 
| 
       19 
18 
     | 
    
         
             
            require "stripe/api_version"
         
     | 
| 
         @@ -26,6 +25,7 @@ require "stripe/api_operations/list" 
     | 
|
| 
       26 
25 
     | 
    
         
             
            require "stripe/api_operations/nested_resource"
         
     | 
| 
       27 
26 
     | 
    
         
             
            require "stripe/api_operations/request"
         
     | 
| 
       28 
27 
     | 
    
         
             
            require "stripe/api_operations/save"
         
     | 
| 
      
 28 
     | 
    
         
            +
            require "stripe/api_operations/singleton_save"
         
     | 
| 
       29 
29 
     | 
    
         
             
            require "stripe/api_operations/search"
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
            # API resource support classes
         
     | 
| 
         @@ -45,7 +45,6 @@ require "stripe/api_resource_test_helpers" 
     | 
|
| 
       45 
45 
     | 
    
         
             
            require "stripe/singleton_api_resource"
         
     | 
| 
       46 
46 
     | 
    
         
             
            require "stripe/webhook"
         
     | 
| 
       47 
47 
     | 
    
         
             
            require "stripe/stripe_configuration"
         
     | 
| 
       48 
     | 
    
         
            -
            require "stripe/request_signing_authenticator"
         
     | 
| 
       49 
48 
     | 
    
         | 
| 
       50 
49 
     | 
    
         
             
            # Named API resources
         
     | 
| 
       51 
50 
     | 
    
         
             
            require "stripe/resources"
         
     | 
| 
         @@ -72,7 +71,6 @@ module Stripe 
     | 
|
| 
       72 
71 
     | 
    
         | 
| 
       73 
72 
     | 
    
         
             
                # User configurable options
         
     | 
| 
       74 
73 
     | 
    
         
             
                def_delegators :@config, :api_key, :api_key=
         
     | 
| 
       75 
     | 
    
         
            -
                def_delegators :@config, :authenticator, :authenticator=
         
     | 
| 
       76 
74 
     | 
    
         
             
                def_delegators :@config, :api_version, :api_version=
         
     | 
| 
       77 
75 
     | 
    
         
             
                def_delegators :@config, :stripe_account, :stripe_account=
         
     | 
| 
       78 
76 
     | 
    
         
             
                def_delegators :@config, :api_base, :api_base=
         
     | 
| 
         @@ -119,49 +117,6 @@ module Stripe 
     | 
|
| 
       119 
117 
     | 
    
         
             
                  version: version,
         
     | 
| 
       120 
118 
     | 
    
         
             
                }
         
     | 
| 
       121 
119 
     | 
    
         
             
              end
         
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
       123 
     | 
    
         
            -
              class Preview
         
     | 
| 
       124 
     | 
    
         
            -
                def self._get_default_opts(opts)
         
     | 
| 
       125 
     | 
    
         
            -
                  { api_mode: :preview }.merge(opts)
         
     | 
| 
       126 
     | 
    
         
            -
                end
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
                def self.get(url, opts = {})
         
     | 
| 
       129 
     | 
    
         
            -
                  Stripe.raw_request(:get, url, {}, _get_default_opts(opts))
         
     | 
| 
       130 
     | 
    
         
            -
                end
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
                def self.post(url, params = {}, opts = {})
         
     | 
| 
       133 
     | 
    
         
            -
                  Stripe.raw_request(:post, url, params, _get_default_opts(opts))
         
     | 
| 
       134 
     | 
    
         
            -
                end
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
                def self.delete(url, opts = {})
         
     | 
| 
       137 
     | 
    
         
            -
                  Stripe.raw_request(:delete, url, {}, _get_default_opts(opts))
         
     | 
| 
       138 
     | 
    
         
            -
                end
         
     | 
| 
       139 
     | 
    
         
            -
              end
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
              class RawRequest
         
     | 
| 
       142 
     | 
    
         
            -
                include Stripe::APIOperations::Request
         
     | 
| 
       143 
     | 
    
         
            -
             
     | 
| 
       144 
     | 
    
         
            -
                def initialize
         
     | 
| 
       145 
     | 
    
         
            -
                  @opts = {}
         
     | 
| 
       146 
     | 
    
         
            -
                end
         
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
       148 
     | 
    
         
            -
                def execute(method, url, params = {}, opts = {})
         
     | 
| 
       149 
     | 
    
         
            -
                  resp, = execute_resource_request(method, url, params, opts)
         
     | 
| 
       150 
     | 
    
         
            -
             
     | 
| 
       151 
     | 
    
         
            -
                  resp
         
     | 
| 
       152 
     | 
    
         
            -
                end
         
     | 
| 
       153 
     | 
    
         
            -
              end
         
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
              # Sends a request to Stripe REST API
         
     | 
| 
       156 
     | 
    
         
            -
              def self.raw_request(method, url, params = {}, opts = {})
         
     | 
| 
       157 
     | 
    
         
            -
                req = RawRequest.new
         
     | 
| 
       158 
     | 
    
         
            -
                req.execute(method, url, params, opts)
         
     | 
| 
       159 
     | 
    
         
            -
              end
         
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
              def self.deserialize(data)
         
     | 
| 
       162 
     | 
    
         
            -
                data = JSON.parse(data) if data.is_a?(String)
         
     | 
| 
       163 
     | 
    
         
            -
                Util.convert_to_stripe_object(data, {})
         
     | 
| 
       164 
     | 
    
         
            -
              end
         
     | 
| 
       165 
120 
     | 
    
         
             
            end
         
     | 
| 
       166 
121 
     | 
    
         | 
| 
       167 
122 
     | 
    
         
             
            Stripe.log_level = ENV["STRIPE_LOG"] unless ENV["STRIPE_LOG"].nil?
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: stripe
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 10.4.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 10.4.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Stripe
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2023-12- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-12-22 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: Stripe is the easiest way to accept payments online.  See https://stripe.com
         
     | 
| 
       14 
14 
     | 
    
         
             
              for details.
         
     | 
| 
         @@ -39,6 +39,7 @@ files: 
     | 
|
| 
       39 
39 
     | 
    
         
             
            - lib/stripe/api_operations/request.rb
         
     | 
| 
       40 
40 
     | 
    
         
             
            - lib/stripe/api_operations/save.rb
         
     | 
| 
       41 
41 
     | 
    
         
             
            - lib/stripe/api_operations/search.rb
         
     | 
| 
      
 42 
     | 
    
         
            +
            - lib/stripe/api_operations/singleton_save.rb
         
     | 
| 
       42 
43 
     | 
    
         
             
            - lib/stripe/api_resource.rb
         
     | 
| 
       43 
44 
     | 
    
         
             
            - lib/stripe/api_resource_test_helpers.rb
         
     | 
| 
       44 
45 
     | 
    
         
             
            - lib/stripe/api_version.rb
         
     | 
| 
         @@ -50,11 +51,9 @@ files: 
     | 
|
| 
       50 
51 
     | 
    
         
             
            - lib/stripe/multipart_encoder.rb
         
     | 
| 
       51 
52 
     | 
    
         
             
            - lib/stripe/oauth.rb
         
     | 
| 
       52 
53 
     | 
    
         
             
            - lib/stripe/object_types.rb
         
     | 
| 
       53 
     | 
    
         
            -
            - lib/stripe/request_signing_authenticator.rb
         
     | 
| 
       54 
54 
     | 
    
         
             
            - lib/stripe/resources.rb
         
     | 
| 
       55 
55 
     | 
    
         
             
            - lib/stripe/resources/account.rb
         
     | 
| 
       56 
56 
     | 
    
         
             
            - lib/stripe/resources/account_link.rb
         
     | 
| 
       57 
     | 
    
         
            -
            - lib/stripe/resources/account_notice.rb
         
     | 
| 
       58 
57 
     | 
    
         
             
            - lib/stripe/resources/account_session.rb
         
     | 
| 
       59 
58 
     | 
    
         
             
            - lib/stripe/resources/alipay_account.rb
         
     | 
| 
       60 
59 
     | 
    
         
             
            - lib/stripe/resources/apple_pay_domain.rb
         
     | 
| 
         @@ -67,9 +66,6 @@ files: 
     | 
|
| 
       67 
66 
     | 
    
         
             
            - lib/stripe/resources/billing_portal/configuration.rb
         
     | 
| 
       68 
67 
     | 
    
         
             
            - lib/stripe/resources/billing_portal/session.rb
         
     | 
| 
       69 
68 
     | 
    
         
             
            - lib/stripe/resources/capability.rb
         
     | 
| 
       70 
     | 
    
         
            -
            - lib/stripe/resources/capital/financing_offer.rb
         
     | 
| 
       71 
     | 
    
         
            -
            - lib/stripe/resources/capital/financing_summary.rb
         
     | 
| 
       72 
     | 
    
         
            -
            - lib/stripe/resources/capital/financing_transaction.rb
         
     | 
| 
       73 
69 
     | 
    
         
             
            - lib/stripe/resources/card.rb
         
     | 
| 
       74 
70 
     | 
    
         
             
            - lib/stripe/resources/cash_balance.rb
         
     | 
| 
       75 
71 
     | 
    
         
             
            - lib/stripe/resources/charge.rb
         
     | 
| 
         @@ -77,7 +73,6 @@ files: 
     | 
|
| 
       77 
73 
     | 
    
         
             
            - lib/stripe/resources/climate/order.rb
         
     | 
| 
       78 
74 
     | 
    
         
             
            - lib/stripe/resources/climate/product.rb
         
     | 
| 
       79 
75 
     | 
    
         
             
            - lib/stripe/resources/climate/supplier.rb
         
     | 
| 
       80 
     | 
    
         
            -
            - lib/stripe/resources/confirmation_token.rb
         
     | 
| 
       81 
76 
     | 
    
         
             
            - lib/stripe/resources/country_spec.rb
         
     | 
| 
       82 
77 
     | 
    
         
             
            - lib/stripe/resources/coupon.rb
         
     | 
| 
       83 
78 
     | 
    
         
             
            - lib/stripe/resources/credit_note.rb
         
     | 
| 
         @@ -85,7 +80,6 @@ files: 
     | 
|
| 
       85 
80 
     | 
    
         
             
            - lib/stripe/resources/customer.rb
         
     | 
| 
       86 
81 
     | 
    
         
             
            - lib/stripe/resources/customer_balance_transaction.rb
         
     | 
| 
       87 
82 
     | 
    
         
             
            - lib/stripe/resources/customer_cash_balance_transaction.rb
         
     | 
| 
       88 
     | 
    
         
            -
            - lib/stripe/resources/customer_session.rb
         
     | 
| 
       89 
83 
     | 
    
         
             
            - lib/stripe/resources/discount.rb
         
     | 
| 
       90 
84 
     | 
    
         
             
            - lib/stripe/resources/dispute.rb
         
     | 
| 
       91 
85 
     | 
    
         
             
            - lib/stripe/resources/ephemeral_key.rb
         
     | 
| 
         @@ -94,34 +88,25 @@ files: 
     | 
|
| 
       94 
88 
     | 
    
         
             
            - lib/stripe/resources/file.rb
         
     | 
| 
       95 
89 
     | 
    
         
             
            - lib/stripe/resources/file_link.rb
         
     | 
| 
       96 
90 
     | 
    
         
             
            - lib/stripe/resources/financial_connections/account.rb
         
     | 
| 
       97 
     | 
    
         
            -
            - lib/stripe/resources/financial_connections/account_inferred_balance.rb
         
     | 
| 
       98 
91 
     | 
    
         
             
            - lib/stripe/resources/financial_connections/account_owner.rb
         
     | 
| 
       99 
92 
     | 
    
         
             
            - lib/stripe/resources/financial_connections/account_ownership.rb
         
     | 
| 
       100 
93 
     | 
    
         
             
            - lib/stripe/resources/financial_connections/session.rb
         
     | 
| 
       101 
94 
     | 
    
         
             
            - lib/stripe/resources/financial_connections/transaction.rb
         
     | 
| 
       102 
95 
     | 
    
         
             
            - lib/stripe/resources/funding_instructions.rb
         
     | 
| 
       103 
     | 
    
         
            -
            - lib/stripe/resources/gift_cards/card.rb
         
     | 
| 
       104 
     | 
    
         
            -
            - lib/stripe/resources/gift_cards/transaction.rb
         
     | 
| 
       105 
96 
     | 
    
         
             
            - lib/stripe/resources/identity/verification_report.rb
         
     | 
| 
       106 
97 
     | 
    
         
             
            - lib/stripe/resources/identity/verification_session.rb
         
     | 
| 
       107 
98 
     | 
    
         
             
            - lib/stripe/resources/invoice.rb
         
     | 
| 
       108 
99 
     | 
    
         
             
            - lib/stripe/resources/invoice_item.rb
         
     | 
| 
       109 
100 
     | 
    
         
             
            - lib/stripe/resources/invoice_line_item.rb
         
     | 
| 
       110 
     | 
    
         
            -
            - lib/stripe/resources/invoice_payment.rb
         
     | 
| 
       111 
101 
     | 
    
         
             
            - lib/stripe/resources/issuing/authorization.rb
         
     | 
| 
       112 
102 
     | 
    
         
             
            - lib/stripe/resources/issuing/card.rb
         
     | 
| 
       113 
103 
     | 
    
         
             
            - lib/stripe/resources/issuing/cardholder.rb
         
     | 
| 
       114 
     | 
    
         
            -
            - lib/stripe/resources/issuing/credit_underwriting_record.rb
         
     | 
| 
       115 
104 
     | 
    
         
             
            - lib/stripe/resources/issuing/dispute.rb
         
     | 
| 
       116 
     | 
    
         
            -
            - lib/stripe/resources/issuing/personalization_design.rb
         
     | 
| 
       117 
     | 
    
         
            -
            - lib/stripe/resources/issuing/physical_bundle.rb
         
     | 
| 
       118 
105 
     | 
    
         
             
            - lib/stripe/resources/issuing/token.rb
         
     | 
| 
       119 
106 
     | 
    
         
             
            - lib/stripe/resources/issuing/transaction.rb
         
     | 
| 
       120 
107 
     | 
    
         
             
            - lib/stripe/resources/line_item.rb
         
     | 
| 
       121 
108 
     | 
    
         
             
            - lib/stripe/resources/login_link.rb
         
     | 
| 
       122 
109 
     | 
    
         
             
            - lib/stripe/resources/mandate.rb
         
     | 
| 
       123 
     | 
    
         
            -
            - lib/stripe/resources/margin.rb
         
     | 
| 
       124 
     | 
    
         
            -
            - lib/stripe/resources/order.rb
         
     | 
| 
       125 
110 
     | 
    
         
             
            - lib/stripe/resources/payment_intent.rb
         
     | 
| 
       126 
111 
     | 
    
         
             
            - lib/stripe/resources/payment_link.rb
         
     | 
| 
       127 
112 
     | 
    
         
             
            - lib/stripe/resources/payment_method.rb
         
     | 
| 
         @@ -134,9 +119,6 @@ files: 
     | 
|
| 
       134 
119 
     | 
    
         
             
            - lib/stripe/resources/product.rb
         
     | 
| 
       135 
120 
     | 
    
         
             
            - lib/stripe/resources/promotion_code.rb
         
     | 
| 
       136 
121 
     | 
    
         
             
            - lib/stripe/resources/quote.rb
         
     | 
| 
       137 
     | 
    
         
            -
            - lib/stripe/resources/quote_phase.rb
         
     | 
| 
       138 
     | 
    
         
            -
            - lib/stripe/resources/quote_preview_invoice.rb
         
     | 
| 
       139 
     | 
    
         
            -
            - lib/stripe/resources/quote_preview_subscription_schedule.rb
         
     | 
| 
       140 
122 
     | 
    
         
             
            - lib/stripe/resources/radar/early_fraud_warning.rb
         
     | 
| 
       141 
123 
     | 
    
         
             
            - lib/stripe/resources/radar/value_list.rb
         
     | 
| 
       142 
124 
     | 
    
         
             
            - lib/stripe/resources/radar/value_list_item.rb
         
     | 
| 
         @@ -157,7 +139,6 @@ files: 
     | 
|
| 
       157 
139 
     | 
    
         
             
            - lib/stripe/resources/subscription_schedule.rb
         
     | 
| 
       158 
140 
     | 
    
         
             
            - lib/stripe/resources/tax/calculation.rb
         
     | 
| 
       159 
141 
     | 
    
         
             
            - lib/stripe/resources/tax/calculation_line_item.rb
         
     | 
| 
       160 
     | 
    
         
            -
            - lib/stripe/resources/tax/form.rb
         
     | 
| 
       161 
142 
     | 
    
         
             
            - lib/stripe/resources/tax/registration.rb
         
     | 
| 
       162 
143 
     | 
    
         
             
            - lib/stripe/resources/tax/settings.rb
         
     | 
| 
       163 
144 
     | 
    
         
             
            - lib/stripe/resources/tax/transaction.rb
         
     | 
| 
         @@ -219,9 +200,9 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       219 
200 
     | 
    
         
             
                  version: 2.3.0
         
     | 
| 
       220 
201 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       221 
202 
     | 
    
         
             
              requirements:
         
     | 
| 
       222 
     | 
    
         
            -
              - - " 
     | 
| 
      
 203 
     | 
    
         
            +
              - - ">="
         
     | 
| 
       223 
204 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       224 
     | 
    
         
            -
                  version:  
     | 
| 
      
 205 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       225 
206 
     | 
    
         
             
            requirements: []
         
     | 
| 
       226 
207 
     | 
    
         
             
            rubygems_version: 3.3.26
         
     | 
| 
       227 
208 
     | 
    
         
             
            signing_key: 
         
     | 
| 
         @@ -1,79 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Stripe
         
     | 
| 
       4 
     | 
    
         
            -
              class RequestSigningAuthenticator
         
     | 
| 
       5 
     | 
    
         
            -
                AUTHORIZATION_HEADER_NAME = "Authorization"
         
     | 
| 
       6 
     | 
    
         
            -
                CONTENT_TYPE_HEADER_NAME = "Content-Type"
         
     | 
| 
       7 
     | 
    
         
            -
                STRIPE_CONTEXT_HEADER_NAME = "Stripe-Context"
         
     | 
| 
       8 
     | 
    
         
            -
                STRIPE_ACCOUNT_HEADER_NAME = "Stripe-Account"
         
     | 
| 
       9 
     | 
    
         
            -
                CONTENT_DIGEST_HEADER_NAME = "Content-Digest"
         
     | 
| 
       10 
     | 
    
         
            -
                SIGNATURE_INPUT_HEADER_NAME = "Signature-Input"
         
     | 
| 
       11 
     | 
    
         
            -
                SIGNATURE_HEADER_NAME = "Signature"
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                attr_reader :auth_token, :sign_lambda
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                def initialize(auth_token, sign_lambda)
         
     | 
| 
       16 
     | 
    
         
            -
                  raise ArgumentError, "auth_token must be a string" unless auth_token.is_a?(String)
         
     | 
| 
       17 
     | 
    
         
            -
                  raise ArgumentError, "sign_lambda must be a lambda" unless sign_lambda.is_a?(Proc)
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                  @auth_token = auth_token
         
     | 
| 
       20 
     | 
    
         
            -
                  @sign_lambda = sign_lambda
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                def authenticate(method, headers, body)
         
     | 
| 
       24 
     | 
    
         
            -
                  covered_headers = [CONTENT_TYPE_HEADER_NAME,
         
     | 
| 
       25 
     | 
    
         
            -
                                     CONTENT_DIGEST_HEADER_NAME,
         
     | 
| 
       26 
     | 
    
         
            -
                                     STRIPE_CONTEXT_HEADER_NAME,
         
     | 
| 
       27 
     | 
    
         
            -
                                     STRIPE_ACCOUNT_HEADER_NAME,
         
     | 
| 
       28 
     | 
    
         
            -
                                     AUTHORIZATION_HEADER_NAME,]
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                  headers[AUTHORIZATION_HEADER_NAME] = "STRIPE-V2-SIG #{auth_token}"
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                  if method == :get
         
     | 
| 
       33 
     | 
    
         
            -
                    covered_headers -= [CONTENT_TYPE_HEADER_NAME,
         
     | 
| 
       34 
     | 
    
         
            -
                                        CONTENT_DIGEST_HEADER_NAME,]
         
     | 
| 
       35 
     | 
    
         
            -
                  else
         
     | 
| 
       36 
     | 
    
         
            -
                    content = body || ""
         
     | 
| 
       37 
     | 
    
         
            -
                    headers[CONTENT_DIGEST_HEADER_NAME] =
         
     | 
| 
       38 
     | 
    
         
            -
                      %(sha-256=:#{content_digest(content)}:)
         
     | 
| 
       39 
     | 
    
         
            -
                  end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                  covered_headers_formatted = covered_headers
         
     | 
| 
       42 
     | 
    
         
            -
                                              .map { |string| %("#{string.downcase}") }
         
     | 
| 
       43 
     | 
    
         
            -
                                              .join(" ")
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                  signature_input = "(#{covered_headers_formatted});created=#{created_time}"
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                  inputs = covered_headers
         
     | 
| 
       48 
     | 
    
         
            -
                           .map { |header| %("#{header.downcase}": #{headers[header]}) }
         
     | 
| 
       49 
     | 
    
         
            -
                           .join("\n")
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                  signature_base = %(#{inputs}\n"@signature-params": #{signature_input})
         
     | 
| 
       52 
     | 
    
         
            -
                                   .encode(Encoding::UTF_8)
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                  headers[SIGNATURE_INPUT_HEADER_NAME] = "sig1=#{signature_input}"
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
                  headers[SIGNATURE_HEADER_NAME] =
         
     | 
| 
       57 
     | 
    
         
            -
                    "sig1=:#{encoded_signature(signature_base)}:"
         
     | 
| 
       58 
     | 
    
         
            -
                end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                private def sign(signature_base)
         
     | 
| 
       61 
     | 
    
         
            -
                  @sign_lambda.call(signature_base)
         
     | 
| 
       62 
     | 
    
         
            -
                end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                private def encoded_signature(signature_base)
         
     | 
| 
       65 
     | 
    
         
            -
                  Base64.strict_encode64(sign(signature_base))
         
     | 
| 
       66 
     | 
    
         
            -
                rescue StandardError
         
     | 
| 
       67 
     | 
    
         
            -
                  raise AuthenticationError, "Encountered '#{e.message} (#{e.class})' " \
         
     | 
| 
       68 
     | 
    
         
            -
                                             "when calculating request signature."
         
     | 
| 
       69 
     | 
    
         
            -
                end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                private def content_digest(content)
         
     | 
| 
       72 
     | 
    
         
            -
                  Base64.strict_encode64(OpenSSL::Digest.new("SHA256").digest(content))
         
     | 
| 
       73 
     | 
    
         
            -
                end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                private def created_time
         
     | 
| 
       76 
     | 
    
         
            -
                  Time.now.to_i
         
     | 
| 
       77 
     | 
    
         
            -
                end
         
     | 
| 
       78 
     | 
    
         
            -
              end
         
     | 
| 
       79 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,14 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # File generated from our OpenAPI spec
         
     | 
| 
       2 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Stripe
         
     | 
| 
       5 
     | 
    
         
            -
              # A notice to a Connected account. Notice can be sent by Stripe on your behalf or you can opt to send the notices yourself.
         
     | 
| 
       6 
     | 
    
         
            -
              #
         
     | 
| 
       7 
     | 
    
         
            -
              # See the [guide to send notices](https://stripe.com/docs/issuing/compliance-us/issuing-regulated-customer-notices) to your connected accounts.
         
     | 
| 
       8 
     | 
    
         
            -
              class AccountNotice < APIResource
         
     | 
| 
       9 
     | 
    
         
            -
                extend Stripe::APIOperations::List
         
     | 
| 
       10 
     | 
    
         
            -
                include Stripe::APIOperations::Save
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                OBJECT_NAME = "account_notice"
         
     | 
| 
       13 
     | 
    
         
            -
              end
         
     | 
| 
       14 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,32 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # File generated from our OpenAPI spec
         
     | 
| 
       2 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Stripe
         
     | 
| 
       5 
     | 
    
         
            -
              module Capital
         
     | 
| 
       6 
     | 
    
         
            -
                # This is an object representing an offer of financing from
         
     | 
| 
       7 
     | 
    
         
            -
                # Stripe Capital to a Connect subaccount.
         
     | 
| 
       8 
     | 
    
         
            -
                class FinancingOffer < APIResource
         
     | 
| 
       9 
     | 
    
         
            -
                  extend Stripe::APIOperations::List
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                  OBJECT_NAME = "capital.financing_offer"
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                  def mark_delivered(params = {}, opts = {})
         
     | 
| 
       14 
     | 
    
         
            -
                    request_stripe_object(
         
     | 
| 
       15 
     | 
    
         
            -
                      method: :post,
         
     | 
| 
       16 
     | 
    
         
            -
                      path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(self["id"]) }),
         
     | 
| 
       17 
     | 
    
         
            -
                      params: params,
         
     | 
| 
       18 
     | 
    
         
            -
                      opts: opts
         
     | 
| 
       19 
     | 
    
         
            -
                    )
         
     | 
| 
       20 
     | 
    
         
            -
                  end
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                  def self.mark_delivered(financing_offer, params = {}, opts = {})
         
     | 
| 
       23 
     | 
    
         
            -
                    request_stripe_object(
         
     | 
| 
       24 
     | 
    
         
            -
                      method: :post,
         
     | 
| 
       25 
     | 
    
         
            -
                      path: format("/v1/capital/financing_offers/%<financing_offer>s/mark_delivered", { financing_offer: CGI.escape(financing_offer) }),
         
     | 
| 
       26 
     | 
    
         
            -
                      params: params,
         
     | 
| 
       27 
     | 
    
         
            -
                      opts: opts
         
     | 
| 
       28 
     | 
    
         
            -
                    )
         
     | 
| 
       29 
     | 
    
         
            -
                  end
         
     | 
| 
       30 
     | 
    
         
            -
                end
         
     | 
| 
       31 
     | 
    
         
            -
              end
         
     | 
| 
       32 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,12 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # File generated from our OpenAPI spec
         
     | 
| 
       2 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Stripe
         
     | 
| 
       5 
     | 
    
         
            -
              module Capital
         
     | 
| 
       6 
     | 
    
         
            -
                # A financing object describes an account's current financing state. Used by Connect
         
     | 
| 
       7 
     | 
    
         
            -
                # platforms to read the state of Capital offered to their connected accounts.
         
     | 
| 
       8 
     | 
    
         
            -
                class FinancingSummary < SingletonAPIResource
         
     | 
| 
       9 
     | 
    
         
            -
                  OBJECT_NAME = "capital.financing_summary"
         
     | 
| 
       10 
     | 
    
         
            -
                end
         
     | 
| 
       11 
     | 
    
         
            -
              end
         
     | 
| 
       12 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,13 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # File generated from our OpenAPI spec
         
     | 
| 
       2 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Stripe
         
     | 
| 
       5 
     | 
    
         
            -
              module Capital
         
     | 
| 
       6 
     | 
    
         
            -
                # This is an object representing the details of a transaction on a Capital financing object.
         
     | 
| 
       7 
     | 
    
         
            -
                class FinancingTransaction < APIResource
         
     | 
| 
       8 
     | 
    
         
            -
                  extend Stripe::APIOperations::List
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                  OBJECT_NAME = "capital.financing_transaction"
         
     | 
| 
       11 
     | 
    
         
            -
                end
         
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
       13 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,11 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # File generated from our OpenAPI spec
         
     | 
| 
       2 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Stripe
         
     | 
| 
       5 
     | 
    
         
            -
              # ConfirmationTokens help transport client side data collected by Stripe JS over
         
     | 
| 
       6 
     | 
    
         
            -
              # to your server for confirming a PaymentIntent or SetupIntent. If the confirmation
         
     | 
| 
       7 
     | 
    
         
            -
              # is successful, values present on the ConfirmationToken are written onto the Intent.
         
     | 
| 
       8 
     | 
    
         
            -
              class ConfirmationToken < APIResource
         
     | 
| 
       9 
     | 
    
         
            -
                OBJECT_NAME = "confirmation_token"
         
     | 
| 
       10 
     | 
    
         
            -
              end
         
     | 
| 
       11 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,12 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # File generated from our OpenAPI spec
         
     | 
| 
       2 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Stripe
         
     | 
| 
       5 
     | 
    
         
            -
              # A customer session allows you to grant client access to Stripe's frontend SDKs (like StripeJs)
         
     | 
| 
       6 
     | 
    
         
            -
              # control over a customer.
         
     | 
| 
       7 
     | 
    
         
            -
              class CustomerSession < APIResource
         
     | 
| 
       8 
     | 
    
         
            -
                extend Stripe::APIOperations::Create
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                OBJECT_NAME = "customer_session"
         
     | 
| 
       11 
     | 
    
         
            -
              end
         
     | 
| 
       12 
     | 
    
         
            -
            end
         
     |